From aaac24913bb5480305e58099967ba7d7611e9537 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 23:49:06 +0000 Subject: [PATCH] Deployed 76541d9 with MkDocs version: 1.6.1 --- .nojekyll | 0 404.html | 1548 ++++ .../analise-de-tarefas/index.html | 2080 +++++ .../aspectos-eticos/index.html | 1813 +++++ .../caracteristicas-da-plataforma/index.html | 1860 +++++ Analise-de-requisitos/cenarios/index.html | 1955 +++++ .../guia-de-estilo/index.html | 1873 +++++ .../metas-de-usabilidade/index.html | 2117 ++++++ .../perfil-de-usuario/index.html | 2283 ++++++ Analise-de-requisitos/personas/index.html | 3341 ++++++++ .../principios-gerais-de-projeto/index.html | 2297 ++++++ Atas/ata1/index.html | 1766 +++++ .../avaliacao-analise-tarefas/index.html" | 2641 +++++++ .../avaliacao-storyboard/index.html" | 1858 +++++ .../resultado-analise-tarefas/index.html" | 1688 +++++ .../resultado-storyboard/index.html" | 1706 +++++ apresentacoes/entrega2/index.html | 1927 +++++ assets/cinemark-icon.png | Bin 0 -> 7680 bytes assets/favicon.ico | Bin 0 -> 7406 bytes assets/ferramentas/discord-icon.png | Bin 0 -> 60452 bytes assets/ferramentas/drawio-icon.png | Bin 0 -> 11183 bytes assets/ferramentas/figma-icon.png | Bin 0 -> 87778 bytes assets/ferramentas/git-icon.png | Bin 0 -> 9601 bytes assets/ferramentas/github-icon.png | Bin 0 -> 14902 bytes assets/ferramentas/github-pages-icon.png | Bin 0 -> 6390 bytes assets/ferramentas/google-sheets-icon.png | Bin 0 -> 368 bytes assets/ferramentas/hta.png | Bin 0 -> 36279 bytes assets/ferramentas/htacinemarkclub.png | Bin 0 -> 22043 bytes assets/ferramentas/htacompraalimento.png | Bin 0 -> 23642 bytes assets/ferramentas/htacompraingresso.png | Bin 0 -> 28527 bytes assets/ferramentas/htareservasala.png | Bin 0 -> 27647 bytes assets/ferramentas/htavoucher.png | Bin 0 -> 27551 bytes assets/ferramentas/mkdocs-icon.png | Bin 0 -> 8483 bytes assets/ferramentas/obs-icon.png | Bin 0 -> 3773 bytes assets/ferramentas/vscode-icon.png | Bin 0 -> 114937 bytes assets/ferramentas/whatsapp-icon.png | Bin 0 -> 10495 bytes assets/ferramentas/youtube-icon.png | Bin 0 -> 10935 bytes assets/images/favicon.png | Bin 0 -> 1870 bytes assets/javascripts/bundle.83f73b43.min.js | 16 + assets/javascripts/bundle.83f73b43.min.js.map | 7 + assets/javascripts/lunr/min/lunr.ar.min.js | 1 + assets/javascripts/lunr/min/lunr.da.min.js | 18 + assets/javascripts/lunr/min/lunr.de.min.js | 18 + assets/javascripts/lunr/min/lunr.du.min.js | 18 + assets/javascripts/lunr/min/lunr.el.min.js | 1 + assets/javascripts/lunr/min/lunr.es.min.js | 18 + assets/javascripts/lunr/min/lunr.fi.min.js | 18 + assets/javascripts/lunr/min/lunr.fr.min.js | 18 + assets/javascripts/lunr/min/lunr.he.min.js | 1 + assets/javascripts/lunr/min/lunr.hi.min.js | 1 + assets/javascripts/lunr/min/lunr.hu.min.js | 18 + assets/javascripts/lunr/min/lunr.hy.min.js | 1 + assets/javascripts/lunr/min/lunr.it.min.js | 18 + assets/javascripts/lunr/min/lunr.ja.min.js | 1 + assets/javascripts/lunr/min/lunr.jp.min.js | 1 + assets/javascripts/lunr/min/lunr.kn.min.js | 1 + assets/javascripts/lunr/min/lunr.ko.min.js | 1 + assets/javascripts/lunr/min/lunr.multi.min.js | 1 + assets/javascripts/lunr/min/lunr.nl.min.js | 18 + assets/javascripts/lunr/min/lunr.no.min.js | 18 + assets/javascripts/lunr/min/lunr.pt.min.js | 18 + assets/javascripts/lunr/min/lunr.ro.min.js | 18 + assets/javascripts/lunr/min/lunr.ru.min.js | 18 + assets/javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + assets/javascripts/lunr/min/lunr.sv.min.js | 18 + assets/javascripts/lunr/min/lunr.ta.min.js | 1 + assets/javascripts/lunr/min/lunr.te.min.js | 1 + assets/javascripts/lunr/min/lunr.th.min.js | 1 + assets/javascripts/lunr/min/lunr.tr.min.js | 18 + assets/javascripts/lunr/min/lunr.vi.min.js | 1 + assets/javascripts/lunr/min/lunr.zh.min.js | 1 + assets/javascripts/lunr/tinyseg.js | 206 + assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.6ce7567c.min.js | 42 + .../workers/search.6ce7567c.min.js.map | 7 + assets/personas/CarlosOliveira.jpeg | Bin 0 -> 10418 bytes assets/personas/JoaoPereira.jpeg | Bin 0 -> 9919 bytes assets/personas/MarianaSilva.jpeg | Bin 0 -> 11924 bytes assets/personas/PaulaTorres.jpeg | Bin 0 -> 14843 bytes assets/personas/RafaelAlmeida.jpeg | Bin 0 -> 9184 bytes assets/principios/princ-antec-neces.gif | 3 + assets/principios/princ-control-liberd.gif | 3 + assets/principios/princ-efici-usuar.gif | 3 + assets/principios/princ-expect-usuario.gif | 3 + assets/principios/princ-padrao.png | Bin 0 -> 534169 bytes assets/principios/princ-padrao2.png | Bin 0 -> 35782 bytes assets/principios/princ-relev-adeq.gif | 3 + assets/principios/princ-simp-taref.gif | 3 + assets/principios/princ-visib-recon.gif | 3 + assets/stylesheets/main.6f8fc17f.min.css | 1 + assets/stylesheets/main.6f8fc17f.min.css.map | 1 + assets/stylesheets/palette.06af60db.min.css | 1 + .../stylesheets/palette.06af60db.min.css.map | 1 + avaliacoes/entrega1/avaliacao+1/index.html | 1875 +++++ avaliacoes/entrega1/avaliacao/index.html | 1881 +++++ avaliacoes/entrega2/avaliacao+1/index.html | 1806 +++++ avaliacoes/entrega2/avaliacao/index.html | 1806 +++++ avaliacoes/entrega3/avaliacao+1/index.html | 1851 +++++ avaliacoes/entrega3/avaliacao/index.html | 1851 +++++ avaliacoes/entrega4/avaliacao+1/index.html | 1806 +++++ avaliacoes/entrega4/avaliacao/index.html | 1806 +++++ img/Cinemark.png | Bin 0 -> 65185 bytes img/mapadeenergia_Grupo4.png | Bin 0 -> 15805 bytes index.html | 1767 +++++ planejamento/Processo de design/index.html | 1973 +++++ planejamento/cronograma/index.html | 2428 ++++++ planejamento/ferramentas/index.html | 1812 +++++ planejamento/mapa-de-energia/index.html | 1662 ++++ planejamento/site-escolhido/index.html | 1753 +++++ planejamento/sites-avaliados/index.html | 1840 +++++ search/search_index.json | 1 + sitemap.xml | 3 + sitemap.xml.gz | Bin 0 -> 127 bytes stylesheets/extra.css | 54 + 115 files changed, 68026 insertions(+) create mode 100644 .nojekyll create mode 100644 404.html create mode 100644 Analise-de-requisitos/analise-de-tarefas/index.html create mode 100644 Analise-de-requisitos/aspectos-eticos/index.html create mode 100644 Analise-de-requisitos/caracteristicas-da-plataforma/index.html create mode 100644 Analise-de-requisitos/cenarios/index.html create mode 100644 Analise-de-requisitos/guia-de-estilo/index.html create mode 100644 Analise-de-requisitos/metas-de-usabilidade/index.html create mode 100644 Analise-de-requisitos/perfil-de-usuario/index.html create mode 100644 Analise-de-requisitos/personas/index.html create mode 100644 Analise-de-requisitos/principios-gerais-de-projeto/index.html create mode 100644 Atas/ata1/index.html create mode 100644 "Desing-Avalia\303\247\303\243o-Desenvolvimento/avaliacao-analise-tarefas/index.html" create mode 100644 "Desing-Avalia\303\247\303\243o-Desenvolvimento/avaliacao-storyboard/index.html" create mode 100644 "Desing-Avalia\303\247\303\243o-Desenvolvimento/resultado-analise-tarefas/index.html" create mode 100644 "Desing-Avalia\303\247\303\243o-Desenvolvimento/resultado-storyboard/index.html" create mode 100644 apresentacoes/entrega2/index.html create mode 100644 assets/cinemark-icon.png create mode 100644 assets/favicon.ico create mode 100644 assets/ferramentas/discord-icon.png create mode 100644 assets/ferramentas/drawio-icon.png create mode 100644 assets/ferramentas/figma-icon.png create mode 100644 assets/ferramentas/git-icon.png create mode 100644 assets/ferramentas/github-icon.png create mode 100644 assets/ferramentas/github-pages-icon.png create mode 100644 assets/ferramentas/google-sheets-icon.png create mode 100644 assets/ferramentas/hta.png create mode 100644 assets/ferramentas/htacinemarkclub.png create mode 100644 assets/ferramentas/htacompraalimento.png create mode 100644 assets/ferramentas/htacompraingresso.png create mode 100644 assets/ferramentas/htareservasala.png create mode 100644 assets/ferramentas/htavoucher.png create mode 100644 assets/ferramentas/mkdocs-icon.png create mode 100644 assets/ferramentas/obs-icon.png create mode 100644 assets/ferramentas/vscode-icon.png create mode 100644 assets/ferramentas/whatsapp-icon.png create mode 100644 assets/ferramentas/youtube-icon.png create mode 100644 assets/images/favicon.png create mode 100644 assets/javascripts/bundle.83f73b43.min.js create mode 100644 assets/javascripts/bundle.83f73b43.min.js.map create mode 100644 assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 assets/javascripts/lunr/tinyseg.js create mode 100644 assets/javascripts/lunr/wordcut.js create mode 100644 assets/javascripts/workers/search.6ce7567c.min.js create mode 100644 assets/javascripts/workers/search.6ce7567c.min.js.map create mode 100644 assets/personas/CarlosOliveira.jpeg create mode 100644 assets/personas/JoaoPereira.jpeg create mode 100644 assets/personas/MarianaSilva.jpeg create mode 100644 assets/personas/PaulaTorres.jpeg create mode 100644 assets/personas/RafaelAlmeida.jpeg create mode 100644 assets/principios/princ-antec-neces.gif create mode 100644 assets/principios/princ-control-liberd.gif create mode 100644 assets/principios/princ-efici-usuar.gif create mode 100644 assets/principios/princ-expect-usuario.gif create mode 100644 assets/principios/princ-padrao.png create mode 100644 assets/principios/princ-padrao2.png create mode 100644 assets/principios/princ-relev-adeq.gif create mode 100644 assets/principios/princ-simp-taref.gif create mode 100644 assets/principios/princ-visib-recon.gif create mode 100644 assets/stylesheets/main.6f8fc17f.min.css create mode 100644 assets/stylesheets/main.6f8fc17f.min.css.map create mode 100644 assets/stylesheets/palette.06af60db.min.css create mode 100644 assets/stylesheets/palette.06af60db.min.css.map create mode 100644 avaliacoes/entrega1/avaliacao+1/index.html create mode 100644 avaliacoes/entrega1/avaliacao/index.html create mode 100644 avaliacoes/entrega2/avaliacao+1/index.html create mode 100644 avaliacoes/entrega2/avaliacao/index.html create mode 100644 avaliacoes/entrega3/avaliacao+1/index.html create mode 100644 avaliacoes/entrega3/avaliacao/index.html create mode 100644 avaliacoes/entrega4/avaliacao+1/index.html create mode 100644 avaliacoes/entrega4/avaliacao/index.html create mode 100644 img/Cinemark.png create mode 100644 img/mapadeenergia_Grupo4.png create mode 100644 index.html create mode 100644 planejamento/Processo de design/index.html create mode 100644 planejamento/cronograma/index.html create mode 100644 planejamento/ferramentas/index.html create mode 100644 planejamento/mapa-de-energia/index.html create mode 100644 planejamento/site-escolhido/index.html create mode 100644 planejamento/sites-avaliados/index.html create mode 100644 search/search_index.json create mode 100644 sitemap.xml create mode 100644 sitemap.xml.gz create mode 100644 stylesheets/extra.css diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..b426e16 --- /dev/null +++ b/404.html @@ -0,0 +1,1548 @@ + + + + + + + + + + + + + + + + + + + + + + + IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ +

404 - Not found

+ +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/Analise-de-requisitos/analise-de-tarefas/index.html b/Analise-de-requisitos/analise-de-tarefas/index.html new file mode 100644 index 0000000..05c7a67 --- /dev/null +++ b/Analise-de-requisitos/analise-de-tarefas/index.html @@ -0,0 +1,2080 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Análise de tarefas - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Análise de tarefas

+ +

Introdução

+

A análise de tarefas é um método essencial para compreender o trabalho dos usuários, como eles realizam suas ações e os motivos por trás delas. Nesse contexto, o trabalho é definido em termos dos objetivos que os usuários desejam ou precisam alcançar.

+

Esse tipo de análise pode ser usado para avaliar a situação atual, para o redesenho ou para a avaliação de intervenções, como a introdução de um novo sistema. Uma das etapas fundamentais nessa análise é coletar e identificar os objetivos que os usuários pretendem atingir com o sistema em questão.

+

No caso do Cinemark, o site possue como foco central a experiência do cliente em relação à compra de ingressos e ao acesso à programação dos cinemas. Outras funcionalidades incluem a compra de alimentos, consulta ao histórico de compras, gerenciamento de reservas, informações sobre promoções e fidelidade.

+

As tarefas principais selecionadas para análise foram:

+
    +
  • Comprar ingressos para filmes em cartaz
  • +
  • Consultar a programação de filmes e sessões disponíveis
  • +
  • Comprar alimentos e bebidas com retirada no cinema
  • +
  • Gerenciar reservas e histórico de compras
  • +
+

Essas tarefas foram definidas seguindo os dados do perfil dos usuários, que apontam maior uso dessas funções no site e aplicativo do Cinemark.

+

Metodologia

+

Para analisar as tarefas realizadas pelos usuários do Cinemark, utilizamos duas técnicas, a Análise Hierárquica de Tarefas (HTA), que foi aplicada para tarefas complexas e sequenciais, e Árvore de Tarefas Concorrentes (CTT), utilizada em tarefas com escolhas ou interações simultâneas. Cada uma foi selecionada com base nas características das tarefas e no nível de interação necessário.

+

Diagrma HTA - Compra Ingresso

+

Análise Hierárquica de Tarefas

+

Análise HTA 1: Comprar ingressos

+

A compra de ingressos é uma das principais tarefas realizadas pelos usuários do Cinemark. Esta tarefa envolve múltiplas etapas, como seleção do filme, escolha da sessão, dos assentos e finalização do pagamento. Análise detalhada:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Objetivos/OperaçõesRelaçõesProblemas e Recomendações
0. Comprar ingressos1 > 2 > 3 > 4Input: acessar o site ou app, selecionar filme e sessão, escolher assentos e finalizar pagamento
Plano: seguir a sequência de passosProblema: interface pode confundir usuários com baixa experiência digital
1. Selecionar filme e sessão1 > 2Plano: escolher o filme, em seguida selecionar o horário e data da sessão
2. Escolher assentosPlano: clicar no mapa interativo e selecionar as cadeiras desejadas
3. Adicionar serviços extrasPlano: incluir alimentos ou upgrade para sala premium
4. Finalizar pagamentoPlano: inserir dados do cartão de crédito, Pix ou cupom de desconto
Feedback: receber confirmação de compra
+

Diagrma HTA - Compra Ingresso

+

Análise HTA 2: Comprar alimentos e bebidas

+

A funcionalidade de compra antecipada de alimentos permite maior conveniência ao usuário, especialmente em horários de pico. Análise:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Objetivos/OperaçõesRelaçõesProblemas e Recomendações
0. Comprar alimentos e bebidas1 > 2 > 3Input: acessar o menu, selecionar itens e realizar o pagamento
Plano: seguir a sequência de passosProblema: falta de clareza nos tamanhos das porções (ex.: pipoca)
1. Acessar o menu de alimentosPlano: abrir o menu dentro do aplicativo ou site
2. Selecionar os itens desejadosPlano: adicionar os itens ao carrinho e verificar preços totais
3. Realizar o pagamentoPlano: incluir alimentos ou upgrade para sala premium
4. Finalizar pagamentoPlano: escolher método de pagamento e confirmar a retirada no cinema escolhido
+

Diagrma HTA - Compra Alimento

+

Análise de Tarefas HTA 3: Reserva de Salas

+

O Cinemark disponibiliza a funcionalidade de reserva de salas para eventos particulares, como reuniões corporativas, festas de aniversário ou exibições exclusivas de filmes. O processo é realizado de forma online por meio do site ou aplicativo.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Objetivos/OperaçõesRelaçõesProblemas e Recomendações
0. Reservar uma sala de cinema1 > 2 > 3 > 4 > 5Problema: Usuários podem enfrentar dificuldades para escolher horários disponíveis
1. Selecionar localPlano: Escolher o cinema desejado
1.1. Escolher cidade
1.2. Selecionar unidade
2. Escolher data e horário1 > 2Plano: Informar data e horário para ver disponibilidade
3. Selecionar tipo de eventoPlano: Informar o tipo de evento (corporativo, festa de aniversário, exibição privada)
4. Preencher dados pessoaisPlano: Inserir informações de contato e detalhes adicionais do evento
5. Confirmar e efetuar reservaPlano: Realizar pagamento ou solicitar orçamento
+

Diagrma HTA - Reserva sala

+

Análise de Tarefas HTA 4: Cinemark Club

+

O Cinemark Club é o programa de assinatura que oferece descontos em ingressos e outros benefícios exclusivos para os membros. A tarefa analisada aborda o processo de adesão ao clube.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Objetivos/OperaçõesRelaçõesProblemas e Recomendações
0. Inscrever-se no Cinemark Club1 > 2 > 3 > 4Problema: Informações pouco claras sobre os benefícios
1. Acessar página de inscriçãoPlano: Entrar no site/app e navegar até a página do Cinemark Club
2. Selecionar planoPlano: Escolher entre os planos disponíveis (mensal ou anual)
3. Preencher dados pessoaisPlano: Informar nome, CPF, e-mail e dados de pagamento
4. Confirmar adesãoPlano: Aceitar os termos e confirmar o pagamento
+

Diagrma HTA - Cinemark Club

+

Análise de Tarefas HTA 5: Voucher Corporativo

+

O Voucher Corporativo é uma funcionalidade voltada para empresas que desejam adquirir ingressos em grande quantidade para colaboradores ou parceiros.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Objetivos/OperaçõesRelaçõesProblemas e Recomendações
0. Adquirir vouchers corporativos1 > 2 > 3Problema: Falta de transparência no processo de entrega dos vouchers
1. Selecionar quantidade e tipo de voucherPlano: Escolher entre vouchers de ingressos normais ou premium
2. Informar dados da empresaPlano: Preencher informações da empresa, como CNPJ e endereço de faturamento
3. Confirmar pagamentoPlano: Escolher forma de pagamento e concluir a transação
+

Diagrma HTA - Voucher Corporativo

+

Árvore de Tarefas Concorrentes (CTT) - Cinemark

+

Motivo da Escolha

+

A Árvore de Tarefas Concorrentes (CTT) foi escolhida para analisar as interações de usuários no sistema Cinemark, pois ela permite representar de forma clara as tarefas concorrentes e sequenciais que ocorrem durante o processo de compra de ingressos, reserva de salas e gestão de benefícios como o Cinemark Club e o voucher corporativo. Esta técnica ajuda a identificar tarefas que podem ser realizadas ao mesmo tempo e a entender as dependências entre elas.

+

Análise da Tarefa CTT 1: Reserva de Salas

+

A tarefa "Reserva de Salas" envolve várias interações do usuário com o sistema, onde o usuário escolhe o filme, o horário, a sala e a quantidade de ingressos. Além disso, pode incluir uma etapa de pagamento ou escolha de benefícios como ingressos promocionais ou vouchers.

+

Fluxo da Tarefa:

+
    +
  • O usuário acessa o site do Cinemark.
  • +
  • O usuário escolhe o filme desejado.
  • +
  • O usuário escolhe a data e o horário da sessão.
  • +
  • O sistema apresenta as salas disponíveis.
  • +
  • O usuário seleciona a sala de sua preferência.
  • +
  • O usuário escolhe a quantidade de ingressos.
  • +
  • O sistema processa o pagamento ou reserva de ingressos.
  • +
  • O usuário recebe a confirmação da reserva.
  • +
+

Análise da Tarefa CTT 2: Cinemark Club

+

O Cinemark Club permite que os usuários acumulem pontos para trocar por ingressos ou benefícios exclusivos. O processo para gerenciar o Cinemark Club inclui fazer login, verificar os pontos acumulados, resgatar prêmios, e eventualmente, renovar a associação.

+

Fluxo da Tarefa:

+
    +
  • O usuário acessa sua conta no Cinemark Club.
  • +
  • O usuário consulta a quantidade de pontos acumulados.
  • +
  • O usuário escolhe um prêmio ou benefício para resgatar.
  • +
  • O usuário aplica o resgate de pontos na compra de ingressos ou produtos.
  • +
  • O sistema atualiza os pontos após o resgate.
  • +
  • O usuário recebe um comprovante de resgate.
  • +
+

Análise da Tarefa CTT 3: Voucher Corporativo

+

Os vouchers corporativos oferecem aos funcionários benefícios como ingressos ou descontos para sessões de cinema. O processo de resgatar um voucher corporativo pode ser feito através do site, sendo necessário um código de acesso fornecido pela empresa.

+

Fluxo da Tarefa:

+
    +
  • O usuário acessa a página de resgate de vouchers corporativos.
  • +
  • O usuário insere o código do voucher.
  • +
  • O sistema valida o código.
  • +
  • O sistema exibe os ingressos disponíveis para resgatar.
  • +
  • O usuário escolhe os ingressos desejados e confirma o resgate.
  • +
  • O sistema processa o resgate e envia a confirmação por e-mail ou mensagem.
  • +
+

Bibliografia

+

Barbosa S. D. J., Silva B. S. da. Interação Humano-Computador. Elsevier, 2010.

+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAna Joyce01/12/2024Anne de Capdeville01/12/2024
2.0Conteúdo da páginaAnne de Capdeville02/12/2024Ana Joyce03/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/Analise-de-requisitos/aspectos-eticos/index.html b/Analise-de-requisitos/aspectos-eticos/index.html new file mode 100644 index 0000000..f9c8148 --- /dev/null +++ b/Analise-de-requisitos/aspectos-eticos/index.html @@ -0,0 +1,1813 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Aspectos éticos - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Aspectos éticos

+ +

Introdução

+

Os aspectos éticos desempenham um papel fundamental na análise de requisitos em projetos de Interação Humano-Computador (IHC), especialmente quando envolvem coleta e uso de dados pessoais dos usuários. O respeito à privacidade, à autonomia e ao consentimento informado são pilares éticos que devem ser observados durante o desenvolvimento de sistemas interativos. Nesse contexto, o Termo de Consentimento surge como um instrumento essencial para assegurar que os participantes compreendam plenamente o propósito do projeto, os dados que serão coletados e como esses serão utilizados.

+

O Termo de Consentimento, além de ser um requisito ético e legal, estabelece uma relação de transparência entre desenvolvedores e usuários. Ele fornece informações claras e acessíveis sobre os direitos dos participantes, como a possibilidade de desistir a qualquer momento e o compromisso com a proteção de seus dados. Assim, a inclusão desse documento na análise de requisitos reforça o compromisso com a ética e a confiança no processo de design centrado no usuário.

+
+

Termo de Consentimento Livre e Esclarecido (TCLE)

+

Título da Pesquisa: Levantamento do Perfil de Usuários para o Site do Cinemark

+

Integrantes Responsáveis:
+- Ana Joyce Guedes Amorim da Silva – [anajoyceguedesamorimdasilva@gmail.com]

+

Instituição Envolvida: Universidade de Brasília - Gama [UnB/FCTE]

+

Finalidade da Pesquisa
+Este estudo tem como objetivo compreender o perfil dos usuários do site do Cinemark para melhorar a experiência de navegação, personalizar serviços e oferecer conteúdos alinhados aos interesses dos usuários. A participação envolve responder a um braindstorm guiado sobre preferências de filmes e uso de funcionalidades do site.

+

Procedimentos
+Você será convidado(a) a participar de uma reunião online que levará aproximadamente +15 minutos para ser concluído.

+

Confidencialidade e Privacidade
+Todas as informações fornecidas serão mantidas em sigilo e utilizadas exclusivamente para os fins desta pesquisa. Os dados serão anonimizados, garantindo que nenhuma informação pessoal possa ser associada diretamente a você.

+

Voluntariedade e Direitos do Participante
+Sua participação é voluntária, e você tem o direito de recusar ou desistir a qualquer momento, sem necessidade de justificativa e sem qualquer prejuízo.

+

Riscos e Benefícios
+Não há riscos significativos associados à participação nesta pesquisa. Como benefício, sua contribuição ajudará a melhorar o site do Cinemark, promovendo uma experiência mais satisfatória para os usuários.

+

Contato para Dúvidas
+Caso tenha dúvidas ou queira mais informações sobre esta pesquisa, entre em contato pelo e-mail: anajoyceguedesamorimdasilva@gmail.com.

+

Termo de Consentimento
+Declaro que fui devidamente informado(a) sobre os objetivos, procedimentos e direitos relacionados a esta pesquisa. Estou ciente de que minha participação é voluntária e posso desistir a qualquer momento. Autorizo o uso das informações fornecidas para os fins descritos acima.

+

Nome Completo do Participante:

+

Assinatura:

+

Data:

+
+

Bibliografia

+

BRASIL. Ministério da Saúde. Resolução nº 466, de 12 de dezembro de 2012. Diretrizes e normas regulamentadoras de pesquisas envolvendo seres humanos. Brasília: CNS, 2012. Disponível em: https://conselho.saude.gov.br/resolucoes/2012/Reso466.pdf. Acesso em: 1 dez. 2024.

+

FRIEDMAN, Batya; HENDRY, David G. Value Sensitive Design: Shaping Technology with Moral Imagination. Cambridge: MIT Press, 2019.

+

GIL, Antonio Carlos. Métodos e Técnicas de Pesquisa Social. 6. ed. São Paulo: Atlas, 2008.

+
+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAna Joyce01/12/2024Anne de Capdeville01/12/2024
1.1Add intro e termoAna Joyce01/12/2024Nome Revisorxx/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/Analise-de-requisitos/caracteristicas-da-plataforma/index.html b/Analise-de-requisitos/caracteristicas-da-plataforma/index.html new file mode 100644 index 0000000..84882bd --- /dev/null +++ b/Analise-de-requisitos/caracteristicas-da-plataforma/index.html @@ -0,0 +1,1860 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Características da plataforma - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+ +
+ + + +
+
+ + + + + + + +

Características da plataforma

+ +

Introdução

+

A análise de requisitos é uma etapa crucial no design centrado no usuário, segundo o ciclo de vida de Mayhew. Ela permite entender como uma aplicação se comporta, exige atenção aos elementos que influenciam diretamente a experiência do usuário, quais são suas capacidades e limitações, e como pode ser aprimorada para atender melhor às necessidades dos usuários. No caso do site Cinemark, foram observados aspectos como compatibilidade tecnológica, usabilidade em diferentes dispositivos e a organização das funcionalidades. Essa análise inicial é essencial para identificar melhorias que podem otimizar a experiência dos usuários.

+

Características da plataforma

+

A plataforma Cinemark foi projetada para proporcionar aos usuários uma experiência intuitiva e eficiente, destacando-se em funcionalidades essenciais para atender ao propósito principal: facilitar o acesso a serviços relacionados a sessões de cinema.

+

Entre os principais recursos da plataforma estão:

+
    +
  • Comprar ingressos para filmes em cartaz
  • +
  • Consultar a programação de filmes e sessões disponíveis
  • +
  • Comprar alimentos e bebidas com retirada no cinema
  • +
  • Realizar reserva de salas
  • +
  • Gerenciar o Cinemark Club
  • +
  • Compra de Voucher Corporativo
  • +
+

Limites

+

Apesar de apresentar muitas qualidades, a plataforma possui alguns pontos de limitação que podem impactar negativamente a experiência do usuário:

+
    +
  • Problemas na responsividade: o site não se ajusta de forma ideal em telas menores, dificultando a visualização.
  • +
  • Necessidade de estar logado: para realizar a compra de um ingresso, deve estar logado em uma conta, faltando a opção de poder realizar a compra sem cadastro e no final solicitar o canal pelo qual deseja receber os ingressos.
  • +
  • Processo de compra temporizado: o curto prazo para concluir a compra pode gerar frustração, especialmente em horários de pico.
  • +
+

Entraves

+

Além das limitações gerais, foram identificados obstáculos específicos que interferem na usabilidade:

+
    +
  • A necessidade de permitir cookies ou fornecer localização sempre que o site é acessado pode ser considerada invasiva e pouco funcional.
  • +
  • Algumas informações importantes, como preços de ingressos ou detalhes do filme, não aparecem diretamente na busca, exigindo etapas extras de navegação.
  • +
  • A interface de login é exigida repetidamente em ações distintas, como acessar reservas ou realizar novas compras.
  • +
  • Os problemas na responsividade, geram no site conflitos ao permitirem que elementos cubram visualmente informações necessárias, assim gerando confusão.
  • +
+

Tecnologias utilizadas

+

A plataforma utiliza linguagens como:

+
    +
  • HTML
  • +
  • CSS
  • +
  • JavaScript
  • +
+

Além desses, também incorpora ferramentas de terceiros para funcionalidades como mapas iterativos e pagamentos seguros.

+

Bibliografia

+

Barbosa S. D. J., Silva B. S. da. Interação Humano-Computador. Elsevier, 2010.

+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAna Joyce02/12/2024Anne de Capdeville02/12/2024
1.1Desenvolvimento da páginaAnne de Capdeville02/12/2024Ana Joyce03/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/Analise-de-requisitos/cenarios/index.html b/Analise-de-requisitos/cenarios/index.html new file mode 100644 index 0000000..86f8731 --- /dev/null +++ b/Analise-de-requisitos/cenarios/index.html @@ -0,0 +1,1955 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Cenários - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Cenários

+ +

Introdução

+

Personas são representações fictícias de usuários que permitem compreender melhor seus objetivos, necessidades e comportamentos em relação a um sistema. De acordo com Barbosa e Silva (2011), as personas são ferramentas fundamentais para design centrado no usuário, pois ajudam a guiar decisões de design e comunicação de maneira clara e objetiva. Neste trabalho, as personas foram utilizadas para explorar cenários de interação que refletem como as funcionalidades do sistema se alinham às demandas e expectativas dos usuários.

+

Metodologia

+

As personas foram desenvolvidas com base no perfil de usuário previamente elaborado, representando diferentes tipos de interações com o sistema. O conjunto inclui cinco personas: duas primárias, duas secundárias e uma antipersona. A quantidade foi definida com base nas diretrizes de Cooper e Baxter (2013), que recomendam de 3 a 12 personas como intervalo ideal. Optar por um número menor de personas também contribui para torná-las mais memoráveis, facilitando o engajamento da equipe de design e desenvolvimento.

+

Os cenários foram construídos a partir das personas, detalhando o contexto, as motivações, as tarefas realizadas e as possíveis dificuldades encontradas durante o uso do sistema. Este processo garantiu que as interações refletissem as demandas específicas de cada perfil, criando uma base sólida para o desenvolvimento e a validação das funcionalidades do sistema.

+

1. João Pereira - Compra de Ingressos

+

Cenário:
+João está em casa em uma noite de sexta-feira, relaxando após um longo dia de estudos de pós-graduação. Ele decide assistir a um filme recém-lançado que seus amigos recomendaram. Pegando seu smartphone, acessa o site do Cinemark. O site é carregado rapidamente, exibindo uma interface responsiva adaptada para dispositivos móveis.

+

João clica na seção de filmes em cartaz e usa a barra de pesquisa para encontrar o filme específico que deseja assistir. Ele vê uma lista de sessões e escolhe o cinema mais próximo, localizado no shopping a 15 minutos de sua casa. Ao clicar no horário da sessão, o site o direciona para a escolha de assentos.

+

João percebe que há assentos disponíveis no meio da sala, sua posição preferida. Ele seleciona rapidamente um lugar e clica em “Finalizar Compra”. Na tela seguinte, insere os dados de seu cartão de crédito e confirma o pagamento. Após alguns segundos, uma mensagem de confirmação aparece com o QR Code do ingresso. Ele salva o código em seu celular e se sente satisfeito por ter evitado filas, garantindo um bom lugar para o filme.

+

Tarefas realizadas no cenário:
+- Acessar o site pelo smartphone.
+- Buscar o filme desejado.
+- Selecionar o cinema e a sessão mais próxima.
+- Escolher assento.
+- Realizar o pagamento.
+- Receber a confirmação com QR Code.

+

Dificuldades potenciais:
+- Conexão lenta ou site não responsivo.
+- Processos confusos para a escolha de assentos ou pagamento.

+

Pontos de sucesso:
+- Navegação fluida e intuitiva.
+- Confirmação de compra imediata.

+
+

2. Mariana Silva - Compra de Combos

+

Cenário Detalhado:
+Mariana está em casa durante a noite de quarta-feira, planejando um final de semana no cinema com sua família. Com o notebook no colo, ela acessa o site do Cinemark para garantir que tudo esteja organizado antecipadamente.

+

Ao entrar na página inicial, Mariana vai direto para a seção de filmes infantis e encontra uma animação que seus filhos adoram. Ela verifica as sessões disponíveis e escolhe a mais conveniente no sábado à tarde, no cinema mais próximo. Em seguida, seleciona os assentos para toda a família, preferindo lugares na fileira de trás para facilitar a movimentação com as crianças.

+

Na tela seguinte, Mariana escolhe combos para os filhos, adicionando pipoca doce e bebidas personalizadas. Ela também seleciona um combo maior para ela e o marido. Todos os itens são exibidos de forma clara no carrinho de compras, permitindo que Mariana revise os valores. Ao finalizar, opta por pagar com cartão de crédito e recebe a confirmação dos ingressos e combos no mesmo fluxo, por e-mail.

+

Tarefas realizadas no cenário:
+- Acessar o site pelo notebook.
+- Navegar pela seção de filmes infantis.
+- Escolher sessão, assentos e combos.
+- Revisar o carrinho e finalizar a compra.
+- Receber confirmação por e-mail.

+

Dificuldades potenciais:
+- Combos mal integrados ao fluxo de compra de ingressos.
+- Falta de clareza na personalização dos itens.

+

Pontos de sucesso:
+- Integração perfeita entre compra de ingressos e combos.
+- Opções personalizáveis com informações claras.

+
+

3. Carlos Oliveira - Reserva de Salas (Antipersona)

+

Cenário Detalhado:
+Carlos está em seu escritório pensando em organizar uma reunião com amigos no cinema. Ele não gosta de usar plataformas digitais, mas tenta acessar o site do Cinemark em seu computador. Na página inicial, Carlos encontra dificuldades para localizar a opção de reservas de salas. Após alguns minutos frustrantes navegando, ele decide ligar para o cinema diretamente.

+

Por telefone, Carlos obtém informações básicas sobre preços e disponibilidade. No entanto, ao descobrir que o pagamento precisa ser feito online ou via cartão de crédito, ele desiste do processo, preferindo outra opção que permita pagamento presencial.

+

Tarefas realizadas no cenário:
+- Procurar informações sobre reservas no site.
+- Entrar em contato com o cinema por telefone.
+- Decidir não utilizar o sistema digital.

+

Dificuldades potenciais:
+- Interface pouco amigável para reservas de salas.
+- Falta de opções de pagamento presencial.

+

Pontos de sucesso:
+- Redirecionamento para atendimento por telefone, minimizando a frustração.

+
+

4. Rafael Almeida - Cinemark Club

+

Cenário Detalhado:
+Rafael está no intervalo de suas aulas na faculdade e decide se inscrever no Cinemark Club para aproveitar benefícios. Usando seu smartphone, ele acessa a página inicial do site e rapidamente encontra o link para cadastro no programa de fidelidade.

+

O formulário é simples, exigindo apenas informações básicas, como nome, CPF e e-mail. Após alguns minutos, Rafael conclui o cadastro e recebe um e-mail de boas-vindas com detalhes sobre os benefícios. Ele decide testar o programa imediatamente, acessando as sessões disponíveis para o fim de semana.

+

Rafael escolhe um filme e aplica o desconto do programa na compra de um ingresso e combo. Todo o processo é concluído em poucos minutos, e ele consegue acessar o histórico de benefícios acumulados diretamente no aplicativo, que instalou em seu celular.

+

Tarefas realizadas no cenário:
+- Realizar cadastro no programa de fidelidade pelo celular.
+- Navegar pelas sessões e aplicar descontos.
+- Finalizar compra de ingresso e combo.
+- Verificar benefícios acumulados no aplicativo.

+

Dificuldades potenciais:
+- Formulário de cadastro extenso ou confuso.
+- Falta de integração entre o programa de fidelidade e o fluxo de compra.

+

Pontos de sucesso:
+- Cadastro rápido e interface responsiva.
+- Descontos aplicados de forma intuitiva.

+
+

5. Paula Torres - Voucher Corporativo

+

Cenário Detalhado:
+Paula está em seu escritório e decide adquirir vouchers corporativos para os funcionários de sua empresa como parte de uma iniciativa de reconhecimento. Ela acessa o site do Cinemark pelo desktop e encontra rapidamente a seção de vouchers empresariais.

+

Na página de compra, Paula escolhe personalizar os vouchers com o logotipo da empresa e adiciona uma mensagem de agradecimento aos funcionários. Após definir a quantidade de vouchers, ela escolhe a opção de pagamento por boleto, garantindo que o processo esteja alinhado às políticas corporativas.

+

Paula recebe a confirmação de pedido por e-mail e, após o pagamento, os vouchers são enviados em formato digital. Ela os distribui aos funcionários durante uma reunião, garantindo uma experiência de presente eficiente e personalizada.

+

Tarefas realizadas no cenário:
+- Navegar até a seção de vouchers corporativos.
+- Personalizar os vouchers.
+- Escolher método de pagamento corporativo.
+- Receber vouchers digitalmente.
+- Distribuir aos funcionários.

+

Dificuldades potenciais:
+- Falta de opções de personalização ou pagamento corporativo.
+- Processos de entrega pouco claros.

+

Pontos de sucesso:
+- Navegação intuitiva e entrega eficiente.
+- Alinhamento às necessidades corporativas.

+
+

Referências Bibliográficas

+
+

1. BARBOSA, S. D. J.; SILVA, B. S. Interação Humano-Computador. Rio de Janeiro: Elsevier, 2011.
+2. Courage, C. & Baxter, K. Understanding your users: a practical guide to user requirements, methods, tools, and techniques. San Francisco, CA: Morgan KaufmannPublishers, 2005.

+
+
+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAna Joyce01/12/2024Anne de Capdeville01/12/2024
1.1introdução, metodologia e cenariosAna Joyce02/12/2024Anne de Capdeville02/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/Analise-de-requisitos/guia-de-estilo/index.html b/Analise-de-requisitos/guia-de-estilo/index.html new file mode 100644 index 0000000..2f907ef --- /dev/null +++ b/Analise-de-requisitos/guia-de-estilo/index.html @@ -0,0 +1,1873 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Guia de estilo - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Introdução

+

Objetivo do guia de estilo

+

Neste documento buscamos registrar as principais decisões de design tomadas para o projeto a fim de que possamos consultá-las quando necessárias de forma que sejam implementadas definitivamente na entrega final. É nossa ferramenta de comunicação central dentro da equipe de forma que facilite as decisões de design e que seja reutilizado nas discussões do projeto e suas extensões.

+

Organização e conteúdo do guia de estilo

+

O Guia de Estilo contará com os seguintes elementos analisados:

+
    +
  • Elementos de interface
  • +
  • Disposição espacial e grid
  • +
  • Janelas
  • +
  • Tipografia
  • +
  • Símbolos não tipográficos
  • +
  • Cores
  • +
  • +

    Animações

    +
  • +
  • +

    Elementos de interação

    +
  • +
  • Estilos de interação
  • +
  • Seleção de um estilo
  • +
  • +

    Aceleradores (teclas de atalho)

    +
  • +
  • +

    Elementos de ação

    +
  • +
  • Preenchimento de campos
  • +
  • Seleção
  • +
  • Ativação
  • +
+

Público-alvo do guia de estilo

+

O Públlico-alvo consiste na equipe de desenvolvedores do Cinemark como também seus designs e partes interessadas. Ademais pode ajudar outros alunos futuros da disciplina em entender os conceitos trabalhados na matéria Interação Humano-Computador e também para embasar decisões em seus projetos.

+

Como utilizar o guia

+

Para cumprir o objetivo deste guia é importante utilizá-lo como fonte de referência para as decisões de design e observação dos princípios e diretrizes do site. A utilização deste artefato é fundamental para orientar a equipe na jornada de construção e garantia de qualidade da interface de usuário.

+

Como manter o guia

+

A fim de manter o guia coerente e padronizado a equipe deve constantemente observar possíveis atualizações no decorrer das fases do ciclo de Mayhew. Assim, poderemos garantir a melhor +Dessa forma, é possível manter a consistência visual e de interação em todo o sistema, garantindo a melhor experiência do usuário e evitando possíveis problemas de usabilidade e acessibilidade.

+

Resultados de análise

+

Descrição do ambiente de trabalho do usuário

+

O site da Cinemark é projetado para ser acessado majoritariamente através de dispositivos modernos, como computadores (notebooks ou desktops) e dispositivos móveis (smartphones e tablets). Por isso, sua interface é responsiva, adaptando-se automaticamente a diferentes tamanhos e resoluções de tela para garantir uma experiência consistente e funcional para todos os usuários.

+

O design responsivo do site considera elementos importantes, como tamanhos adequados de botões, menus de navegação acessíveis e fontes legíveis, mesmo em telas menores, como as de smartphones. Além disso, as funcionalidades são otimizadas para toques (em dispositivos móveis) e cliques (em desktops). Essa abordagem visa melhorar a acessibilidade e usabilidade em diferentes contextos de uso​

+

Apesar de bem adaptado, como é um site robusto com funcionalidades diversas, sua performance pode variar dependendo do dispositivo. Telas grandes, como as de desktops e notebooks, oferecem uma experiência visual mais completa, enquanto dispositivos móveis dependem de simplificações no layout para manter a navegabilidade. A responsividade bem executada permite ao site atender usuários em diferentes situações, desde a consulta rápida de horários no celular até a compra detalhada de ingressos no computador​

+

Entretanto, para maximizar a responsividade e garantir acessibilidade em todos os dispositivos, o site poderia ser revisado regularmente com base nas últimas práticas de design adaptativo e nas tendências de acessibilidade web. Essa melhoria garantiria que a experiência do usuário continue relevante e eficiente frente às constantes inovações tecnológicas.

+

Elementos de interface

+

Figura 1 - Elementos da Interface.

+ + +

Fonte: Pedro Miguel, 2024.

+

Elementos de Interação

+

O site da Cinemark oferece uma experiência rica em elementos de interação e ação, tanto para a navegação quanto para a compra de ingressos e uso de serviços adicionais.

+

Estilos de interação:

+

O site utiliza menus de navegação, botões e caixas de pesquisa que são intuitivos e responsivos. Por exemplo, o menu principal permite acessar a programação de filmes, promoções e serviços como o Cinemark Club.

+

Seleção de um estilo:

+

A interface prioriza uma navegação direta, com design claro e elementos visuais minimalistas, o que facilita a localização de informações rapidamente, como horários de sessões ou compra de ingressos.

+

Aceleradores (teclas de atalho):

+

Apesar de não estarem explicitamente indicados, o site é compatível com atalhos de teclado comuns para navegação web, como "Tab" para alternar entre campos e "Enter" para confirmar ações.

+

Elementos de Ação

+

Preenchimento de campos:

+

Durante a compra de ingressos, os formulários são otimizados para entrada rápida de dados. Campos como seleção de assentos e inserção de informações pessoais são bem organizados e visualmente claros.

+

Seleção:

+

A seleção de filmes e horários é feita por meio de botões com labels claras, como "Comprar Ingresso". Para opções adicionais, como escolher uma sala XD ou poltronas D-BOX, o processo é dinâmico e visualmente destacado.

+

Ativação:

+

O site permite ativar ações rapidamente, como finalizar compras ou inscrever-se no Cinemark Club, com feedback visual imediato, como mudanças de cor ou mensagens de confirmação.

+

Vocabulário e Terminologia

+

Terminologia:

+

O site utiliza um vocabulário acessível e familiar ao público geral, como "Ingressos", "Horários", "Salas 3D", "XD", e "Snack Bar". Termos específicos, como "D-BOX" ou "Cinemark Club", são acompanhados de descrições breves para ajudar o usuário a entender suas funções​.

+

Consistência:

+

As palavras-chave são consistentes em toda a navegação, garantindo que o usuário reconheça facilmente seções ou ações, como "Comprar Ingresso" e "Assine Agora".

+

Tipos de Tela para Tarefas Comuns

+
    +
  • Compra de Ingressos: O fluxo de compra é baseado em uma série de telas consecutivas: seleção de filme, escolha do horário, seleção de assentos, e finalização de pagamento. Cada tela apresenta informações claras e botões de ação bem destacados.
  • +
  • Consulta de Programação: O layout apresenta uma grade de filmes com horários, permitindo ao usuário filtrar por localização, idioma ou formato (e.g., legendado, 3D).
  • +
  • Inscrição em Programas: Telas dedicadas ao Cinemark Club incluem explicações dos benefícios e um formulário direto para cadastro​
  • +
+

Sequências de Diálogos

+
    +
  • Feedbacks Imediatos: Quando o usuário realiza uma ação, como selecionar assentos ou confirmar um pagamento, há feedback visual instantâneo, como alterações de cor ou mensagens de confirmação no topo da tela (e.g., "Compra realizada com sucesso").
  • +
  • Confirmação de Operação: Antes de finalizar ações críticas, como pagamento, o site apresenta um resumo da transação, incluindo o filme, horário e valor, seguido de um botão de confirmação. Isso reduz erros e aumenta a confiança do usuário​.
  • +
  • Mensagens de Erro: Em casos de falhas, como cartões inválidos, o site fornece mensagens de erro simples e orientativas, que guiam o usuário para corrigir o problema sem frustração.
  • +
+

Referências

+

CINEMARK BRASIL. Site oficial Cinemark Brasil. Disponível em: https://www.cinemark.com.br. Acesso em: 3 dez. 2024. +SAC CINEMARK BRASIL. Central de Atendimento Cinemark. Disponível em: https://sac.cinemark.com.br/hc/pt-br. Acesso em: 3 dez. 2024.

+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAna Joyce02/12/2024Anne de Capdeville02/12/2024
2.0Adição da estrutura do Guia de EstiloPedro Miguel03/12/2024Ana Joyce03/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/Analise-de-requisitos/metas-de-usabilidade/index.html b/Analise-de-requisitos/metas-de-usabilidade/index.html new file mode 100644 index 0000000..a4db55e --- /dev/null +++ b/Analise-de-requisitos/metas-de-usabilidade/index.html @@ -0,0 +1,2117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Metas de usabilidade - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Metas de usabilidade

+ +

Introdução

+

Utilizamos princípios de usabilidade eficazes e envolventes para que produtos de software interativos sejam fáceis de aprender e usar. A usabilidade é essencial para otimizar as interações dos usuários, permitindo que realizem suas atividades cotidianas de forma eficiente e agradável. Ela é definida como o grau em que um produto é utilizado por pessoas específicas para alcançar objetivos específicos com eficácia, eficiência e satisfação em um determinado contexto. Dividida em seis metas principais: Eficácia, Eficiência, Segurança, Utilidade, Aprendizado e Memorização, a usabilidade serve como critério para avaliar diferentes aspectos do sistema e da experiência do usuário. Estas metas ajudam os designers a aprimorar o produto, garantindo que atenda às necessidades dos usuários. A seguir, exploraremos cada uma dessas metas e como podem ser alcançadas no contexto do Simples Nacional.

+

Metas

+

1. Eficácia

+

Desempenho Geral

+

O sistema deve demonstrar um desempenho consistente e confiável em todas as suas funcionalidades designadas. Isso inclui a capacidade de executar tarefas de forma eficaz, sem falhas ou interrupções, garantindo que os usuários possam completar suas atividades com sucesso e satisfação.

+

Sistema

+

O sistema demonstra alta eficácia ao ser objetivo e intuitivo. Pop-ups claros e botões grandes orientam os usuários sobre os próximos passos, permitindo que realizem suas tarefas desejadas sem dificuldades.

+

2. Eficiência

+

A capacidade de um sistema em ajudar o usuário a realizar tarefas de maneira rápida e com um mínimo de erros.

+

Sistema

+

O sistema evidencia eficiência ao integrar uma IA para responder a perguntas frequentes, reduzindo a necessidade de atendimento humano e agilizando a resolução de problemas. Além disso, dispõe de uma central de acessibilidade que facilita o uso por todos os usuários. No entanto, ainda há espaço para melhorias com a adição de funcionalidades que possam aumentar ainda mais a eficiência do sistema.

+

3. Segurança

+

O sistema deve prevenir ações que possam resultar em erros graves, protegendo tanto o usuário quanto o sistema de possíveis danos. Isso inclui a implementação de restrições que impeçam a execução de operações perigosas ou irreversíveis.

+

Sistema

+

O sistema possui diversas telas de confirmação e alertas para evitar que o usuário cometa erros. Além disso, há uma descrição detalhada das taxas cobradas e, em vários itens disponíveis para venda, existe um botão "Saiba Mais" que contém as regras de utilização.

+

4. Utilidade

+

A utilidade avalia se um produto oferece as funcionalidades adequadas que correspondem às expectativas dos usuários em um software. Isso quer dizer que o sistema deve equipar os usuários com as ferramentas necessárias para cumprir suas tarefas.

+

Sistema

+

O sistema é altamente útil ao oferecer uma gama de funcionalidades que são facilmente executadas, como: Trocar de cinema, comprar um ingresso, visualizar a programação de um cinema, adicionar um snack ao carrinho, entre outras. No entanto, a adição de um sistema de busca por tipo de sessão ficou em falta, o que pode ser uma melhoria futura.

+

5. Aprendizado

+

Facilidade em aprender a utilizar o sistema. O sistema deve ser intuitivo e fácil de usar, permitindo que os usuários aprendam rapidamente a navegar e interagir com ele.

+

Sistema

+

O usuário aprende fácilmente a utilizar o sistema, pois ele é intuitivo e possui uma interface amigável. A intuição é reforçada por botões e textos explicativos que guiam o usuário em suas ações.

+

6. Memorização

+

O usuário não tem que re-aprender a utilizar o sistema a cada vez que o utiliza. O sistema deve ser fácil de lembrar e não exigir que o usuário memorize muitas informações.

+

Sistema

+

As rotas dentro do sistema são curtas e sem bifurcações, o que facilita a memorização do caminho a ser percorrido.

+

Bibliografia

+
Barbosa S. D. J., Silva B. S. da. Interação Humano-Computador. Elsevier, 2010.
+
+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAna Joyce02/12/2024Anne de Capdeville02/12/2024
1.1Elaboração da páginaJosé Oliveira02/12/2024Anne de Capdeville02/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/Analise-de-requisitos/perfil-de-usuario/index.html b/Analise-de-requisitos/perfil-de-usuario/index.html new file mode 100644 index 0000000..9536d83 --- /dev/null +++ b/Analise-de-requisitos/perfil-de-usuario/index.html @@ -0,0 +1,2283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Perfil de usuário - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Perfil de usuário

+ +

Introdução

+

Traçar o perfil dos usuários do site do Cinemark é fundamental para alinhar suas funcionalidades às necessidades reais do público. Segundo Barbosa e Silva (2011), o perfil de usuário é uma descrição detalhada das características e objetivos dos usuários, garantindo que o sistema atenda adequadamente às suas expectativas. Para isso, foi adotada uma abordagem centrada no cliente, combinando técnicas qualitativas de brainstorm com participantes externos e investigação contextual. Essas metodologias permitem uma compreensão profunda do comportamento dos usuários, identificando suas necessidades, dores e desejos, essenciais para o desenvolvimento de uma experiência de navegação mais eficaz e alinhada ao público.

+
+

Metodologia

+

Para traçar o perfil do usuário do site do Cinemark, foi adotada uma abordagem centrada no usuário, conforme recomendado por Barbosa e Silva (2010), que destacam a importância de compreender as características e objetivos do público para garantir que o sistema atenda às suas necessidades. A metodologia incluiu a realização de um brainstorm com participantes externos e uma investigação contextual aprofundada.

+
+

1. Brainstorm com Participantes

+

A primeira etapa consistiu em um brainstorm com um grupo de X participantes, selecionados com base em critérios definidos para representar potenciais usuários do site. Antes da atividade, todos assinaram um Termo de Consentimento Livre e Esclarecido (TCLE), assegurando a conformidade ética da pesquisa, conforme indicado por Lazar, Feng e Hochheiser (2017).
+Durante o brainstorm, foram exploradas percepções, expectativas e dificuldades relacionadas à navegação no site do Cinemark, utilizando ferramentas como mapas mentais para organização das ideias.

+
+

2. Investigação Contextual

+

A segunda etapa envolveu a observação direta do comportamento dos participantes enquanto utilizavam o site do Cinemark. De acordo com Beyer e Holtzblatt (1998), a investigação contextual permite compreender o uso do sistema em situações reais, capturando detalhes que muitas vezes passam despercebidos em outros métodos.
+Os participantes realizaram tarefas específicas, como consultar horários de filmes e simular a compra de ingressos, enquanto suas interações eram observadas para identificar padrões, dificuldades e preferências.

+
+

3. Análise dos Dados

+

Os dados coletados nas duas etapas foram analisados qualitativamente, com foco em identificar padrões de comportamento, expectativas e frustrações. Baseando-se nos princípios de Cooper, Reimann e Cronin (2007), as informações foram sintetizadas em personas que representam os principais perfis de usuários do site. Essa abordagem permite que os resultados da pesquisa sejam utilizados para orientar melhorias no sistema.

+
+

Resultados: Perguntas e Caminhos Seguidos

+

1. Brainstorm com Participantes

+

Durante o brainstorm, os participantes foram conduzidos a responder perguntas estratégicas para explorar suas percepções, expectativas e dificuldades. As perguntas incluíram:

+
Perguntas do Brainstorm
+
    +
  1. +

    Quais são os motivos principais para você acessar o site do Cinemark?

    +
      +
    • Usuário 1: "Eu procuro horários e compro ingressos online para evitar filas."
    • +
    • Usuário 2: "Gosto de explorar lançamentos e ver trailers."
    • +
    • Usuário 3: "Quero encontrar promoções e opções mais baratas para assistir com amigos."
    • +
    • Usuário 4: "Geralmente acesso para reservar ingressos para sessões noturnas de filmes de terror por exemplo."
    • +
    +
  2. +
  3. +

    O que mais te frustra ao usar o site do Cinemark?

    +
      +
    • Usuário 1: "A página de checkout é lenta e às vezes trava."
    • +
    • Usuário 2: "Os pop-ups atrapalham a navegação."
    • +
    • Usuário 3: "É difícil encontrar informações sobre promoções."
    • +
    • Usuário 4: "Sinto falta de sugestões baseadas no que já assisti."
    • +
    +
  4. +
  5. +

    Como você costuma acessar o site (dispositivo e frequência)?

    +
      +
    • Usuário 1: "Quase sempre pelo celular, principalmente nos finais de semana."
    • +
    • Usuário 2: "Uso o notebook porque gosto de ter uma experiencia melhor."
    • +
    • Usuário 3: "Alterno entre celular e tablet, dependendo de onde estou."
    • +
    • usuário 4: "Pelo celular, à noite, quando decido sair de última hora."
    • +
    +
  6. +
  7. +

    Se pudesse melhorar uma funcionalidade no site, qual seria?

    +
      +
    • Usuário 1: "Tornar a experiência de pagamento mais rápida e intuitiva."
    • +
    • Usuário 2: "Melhorar a interface de busca para deixá-la mais objetiva."
    • +
    • Usuário 3: "Facilitar o acesso a combos e promoções."
    • +
    • Usuário 4: "Adicionar uma seção com recomendações personalizadas."
    • +
    +
  8. +
+
+

2. Investigação Contextual

+
Tarefas Observadas
+

Os participantes foram instruídos a realizar as seguintes tarefas enquanto eram observados:
+1. Consultar horários e sinopses de filmes.
+2. Simular a compra de ingressos.
+3. Pesquisar promoções.

+
Caminhos Seguidos
+

Usuário 1:
+- Entrou na página inicial do site.
+- Clicou no menu principal para acessar a seção de horários.
+- Escolheu um filme de aventura e seguiu para o checkout.
+ - Problema identificado: A página demorou para carregar ao adicionar o ingresso ao carrinho.
+ - Comentário: "Se isso acontecer com frequência, prefiro comprar presencialmente."

+

Usuário 2:
+- Pesquisou o nome de um filme na barra de busca.
+- Navegou pelos trailers antes de decidir pelo filme.
+- Explorou a página de inicial para verificar as datas de estreia.
+ - Problema identificado: Foi direcionado para cinemas fora da sua cidade.
+ - Comentário: "Seria interessante se o site pedisse sua localização, ou deixasse mais nítido a localidade atual"

+

Usuário 3:
+- Entrou na página inicial e procurou por descontos.
+- Tentou achar filtros para visualizar as sessões mais baratas.
+- Tentou comparar o preço de ingressos para sessões XD e 3D.
+ - Problema identificado: Não encontrou informações claras sobre os tipos de salas.
+ - Comentário: "Parece que o site quer que eu adivinhe qual sala é melhor, e compare seus preços."

+

Usuário 4:
+- Navegou diretamente para as sessões noturnas.
+- Selecionou um horário, adicionou ingressos ao carrinho e procurou opções de combos.
+- Explorou a seção de "fidelidade", mas desistiu por achar confusa.
+ - Problema identificado: A navegação entre páginas de ingressos e combos era pouco intuitiva.
+ - Comentário: "Perdi muito tempo tentando entender como os combos funcionam."

+
+

Insights Coletados

+
    +
  1. Foco na Responsividade: A experiência móvel precisa ser priorizada, pois todos os participantes preferem acessar pelo celular em algum momento.
  2. +
  3. Melhoria no Checkout: A lentidão e a complexidade do processo de compra são pontos críticos.
  4. +
  5. Localização: Sugerir ao usuário o cadastro da sua localização, ou informar em qual localização está nop momento.
  6. +
  7. Informações Claras: Combos, tipos de salas e promoções precisam ser mais fáceis de localizar.
  8. +
  9. Personalização: Recomendações baseadas no histórico dos usuários aumentariam o engajamento.
  10. +
+

Essas observações reforçam a necessidade de alinhar a usabilidade do site às expectativas dos usuários, especialmente para públicos jovens e acostumados com tecnologia.

+
+

Conclusão

+

Com base na metodologia aplicada e nos insights coletados, foi possível traçar um perfil detalhado dos usuários do site do Cinemark, alinhado aos atributos descritos por Hackos e Redish (1998) e Courage e Baxter (2005). Este perfil considera aspectos demográficos, experiências, atitudes, e tarefas primárias dos usuários, garantindo que o site atenda às suas necessidades e preferências.

+
+

Perfil do Usuário: Principais Atributos

+
1. Dados Demográficos:
+
    +
  • Idade: Jovens entre 19 e 25 anos.
  • +
  • Sexo: Predominantemente masculino.
  • +
  • Status Socioeconômico: Estudantes universitários, com orçamento limitado, mas priorizando experiências culturais como cinema.
  • +
+
2. Experiência e Educação:
+
    +
  • Experiência com Tecnologia: Usuários com experiência intermediária a avançada no uso de sistemas digitais.
  • +
  • Educação: Nível superior em andamento, na área de Engenharia de Software.
  • +
  • Preferência de Aprendizado: Preferem interfaces intuitivas e aprendizado prático; têm pouca paciência para textos extensos e explicativos.
  • +
+
3. Atitudes e Comportamento:
+
    +
  • Atitudes: Tecnófilos; exploram funcionalidades do site com interesse em sua usabilidade e design.
  • +
  • Comportamento de Compra: Frequentam o site principalmente para:
  • +
  • Comprar ingressos.
  • +
  • Consultar horários e promoções.
  • +
  • Buscar informações sobre lançamentos e tipos de salas.
  • +
+
4. Tarefas Primárias:
+
    +
  • Consultas: Buscar informações sobre filmes, horários e salas.
  • +
  • Compras: Realizar transações para ingressos e combos.
  • +
  • Exploração: Descobrir promoções e lançamentos.
  • +
+
+

Referências Bibliográficas

+
    +
  1. BARBOSA, S. D. J.; SILVA, B. S. Interação Humano-Computador. Rio de Janeiro: Elsevier, 2011.
  2. +
  3. BEYER, H.; HOLTZBLATT, K. Contextual design: defining customer-centered systems. San Francisco: Morgan Kaufmann, 1998.
  4. +
  5. COOPER, A.; REIMANN, R.; CRONIN, D. About Face: The Essentials of Interaction Design. Indianapolis: Wiley Publishing, 2007.
  6. +
  7. LAZAR, J.; FENG, J. H.; HOCHHEISER, H. Research Methods in Human-Computer Interaction. Cambridge: Morgan Kaufmann, 2017.
  8. +
  9. Hackos, J. T., & Redish, J. C. (1998). User and Task Analysis for Interface Design. Wiley.
  10. +
  11. Courage, C., & Baxter, K. (2005). Understanding Your Users: A Practical Guide to User Requirements Methods, Tools, and Techniques. Morgan Kaufmann.
  12. +
+
+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAna Joyce01/12/2024Anne de Capdeville01/12/2024
1.1Intro, metdologia e conclusõesAna Joyce01/12/2024José Oliveira01/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/Analise-de-requisitos/personas/index.html b/Analise-de-requisitos/personas/index.html new file mode 100644 index 0000000..1a5e210 --- /dev/null +++ b/Analise-de-requisitos/personas/index.html @@ -0,0 +1,3341 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Personas - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Personas

+ +

Introdução

+

Personas são representações fictícias de usuários reais, criadas com base em dados e observações para capturar as principais características, comportamentos e necessidades de grupos de usuários. Elas permitem que as equipes de design e desenvolvimento compreendam melhor as demandas dos usuários e alinhem as funcionalidades do sistema com essas necessidades. Como ferramentas estratégicas de design, as personas sintetizam perfis de usuários típicos de forma específica e detalhada, servindo como uma ponte entre os objetivos do sistema e as expectativas dos usuários.

+

Neste trabalho, personas serão utilizadas para analisar e melhorar a experiência de uso de funcionalidades do site Cinemark, como compra de ingressos, aquisição de combos, reserva de salas, solicitação de vouchers corporativos, orçamento para escolas e adesão ao programa Cinemark Club. A aplicação das personas possibilitará compreender como essas funcionalidades interagem com os objetivos dos usuários e como podem ser otimizadas para atender suas expectativas. O referencial teórico foi embasado nos estudos de Barbosa e Silva (2011), que exploram a Interação Humano-Computador (IHC), e Courage e Baxter (2005), que oferecem diretrizes práticas para a compreensão dos usuários.

+
+

Metodologia

+

As personas foram elaboradas a partir do perfil de usuários típicos do site Cinemark, levando em consideração aspectos como objetivos, expectativas, habilidades e contexto de uso. A criação seguiu os princípios recomendados por Cooper e Baxter, que sugerem trabalhar com um número entre 3 e 12 personas para garantir representatividade e memorabilidade. Optou-se por desenvolver um elenco composto por cinco personas: duas primárias, duas secundária e uma antipersona.

+
    +
  • Personas Primárias: Representam os usuários centrais do sistema, cujas demandas têm prioridade no design das funcionalidades.
  • +
  • Persona Secundária: Representa um perfil relevante, mas cujas necessidades podem ser atendidas de forma indireta ou complementar.
  • +
  • Antipersona: Representa um perfil que não é o foco do sistema, mas cuja análise ajuda a evitar decisões de design que não atendem aos objetivos do público-alvo.
  • +
+

As personas foram estruturadas com base nos modelos propostos por Barbosa e Silva (2011) e Courage e Baxter (2005), que enfatizam a necessidade de detalhes claros e específicos para que essas representações sirvam como ferramentas eficazes de design e comunicação. A escolha de uma quantidade reduzida de personas foi estratégica para garantir que elas fossem fáceis de lembrar e úteis no processo de design, aumentando as chances de alinhar o sistema às expectativas do usuário final.

+

Este método visa garantir uma compreensão abrangente dos perfis de usuários, permitindo uma análise criteriosa da interação humana com as funcionalidades do site e proporcionando insights valiosos para o design centrado no usuário.

+

ELENCO

+

1. Persona Primária - Compra de Ingressos

+
+ Persona 1 +

Fonte: Gerada por IA

+
+ +

Status: Persona Primária

+

Nome: João Pereira

+

Gênero: Masculino

+

Idade: 25 anos

+

Profissão: Estudante de Pós-Graduação em Engenharia

+

Escolaridade: Ensino Superior Completo

+

Estado Civil: Solteiro

+

Relacionamento: Mora sozinho

+

Tarefas:

+
    +
  • Buscar filmes em cartaz.
  • +
  • Selecionar o cinema mais próximo.
  • +
  • Escolher assentos e pagar rapidamente pelo ingresso.
  • +
+

Habilidades e Experiências:

+
    +
  • Navega frequentemente em sites e aplicativos de compras.
  • +
  • Experiente em compras online, mas prefere interfaces simples e intuitivas.
  • +
  • Usa dispositivos móveis para acessar serviços.
  • +
+

Objetivo:

+

Assistir a filmes lançados recentemente sem enfrentar filas e garantir um bom assento.

+

Expectativa:

+

Uma interface responsiva, que facilite a busca por filmes e sessões, com um processo de compra rápido e intuitivo.

+

Requisitos:

+
    +
  • Layout responsivo para dispositivos móveis.
  • +
  • Opções claras de seleção de assentos.
  • +
  • Confirmação de compra imediata.
  • +
+
+

2. Persona Secundária - Compra de Combos

+
+ Persona 2 +

Fonte: Gerada por IA

+
+ +

Status: Persona Secundária

+

Nome: Mariana Silva

+

Gênero: Feminino

+

Idade: 30 anos

+

Profissão: Professora de Ensino Fundamental

+

Escolaridade: Ensino Superior Completo

+

Estado Civil: Casada

+

Relacionamento: Mãe de dois filhos pequenos (5 e 8 anos)

+

Tarefas:

+
    +
  • Comprar ingressos e combos com antecedência.
  • +
  • Garantir que os filhos tenham uma experiência completa no cinema.
  • +
+

Habilidades e Experiências:

+
    +
  • Experiente em compras online.
  • +
  • Prefere planejar atividades familiares com antecedência.
  • +
  • Familiaridade moderada com interfaces digitais.
  • +
+

Objetivo:

+

Garantir uma experiência tranquila e prática para toda a família no cinema.

+

Expectativa:

+

Uma navegação integrada entre a compra de ingressos e de combos, sem necessidade de refazer escolhas.

+

Requisitos:

+
    +
  • Opções claras para personalização dos combos.
  • +
  • Integração entre a seleção de ingressos e combos no mesmo fluxo de compra.
  • +
  • Informações detalhadas sobre produtos.
  • +
+
+

3. Antipersona - Reserva de Salas

+
+ Persona 3 +

Fonte: Gerada por IA

+
+ +

Status: Antipersona

+

Nome: Carlos Oliveira

+

Gênero: Masculino

+

Idade: 45 anos

+

Profissão: Microempresário

+

Escolaridade: Ensino Médio Completo

+

Estado Civil: Casado

+

Relacionamento: Tem dois filhos adolescentes

+

Tarefas:

+
    +
  • Reservar uma sala para um evento casual de amigos ou reuniões informais.
  • +
  • Procurar a opção mais barata, mesmo em detrimento da qualidade.
  • +
+

Habilidades e Experiências:

+
    +
  • Pouco familiarizado com plataformas online.
  • +
  • Prefere interações presenciais e pagamento em dinheiro.
  • +
  • Evita interfaces complexas ou formulários detalhados.
  • +
+

Objetivo:

+

Economizar ao máximo em uma experiência de cinema, mesmo que isso prejudique a qualidade do serviço.

+

Expectativa:

+

Preferiria uma interação simplificada, sem necessidade de preencher formulários longos ou receber orçamentos detalhados.

+

Requisitos:

+

Nenhum específico para o sistema digital, já que Carlos provavelmente evitará utilizá-lo.

+
+

4. Persona Primária - Cinemark Club

+
+ Persona 4 +

Fonte: Gerada por IA

+
+ +

Status: Persona Primária

+

Nome: Rafael Almeida

+

Gênero: Masculino

+

Idade: 20 anos

+

Profissão: Estudante de Direito

+

Escolaridade: Ensino Superior Incompleto

+

Estado Civil: Solteiro

+

Relacionamento: Mora com os pais

+

Tarefas:

+
    +
  • Buscar descontos em ingressos e combos.
  • +
  • Participar de programas de fidelidade que ofereçam benefícios.
  • +
  • Realizar o cadastro e acompanhar os benefícios acumulados.
  • +
+

Habilidades e Experiências:

+
    +
  • Experiente em aplicativos de compras e programas de fidelidade.
  • +
  • Usuário frequente de dispositivos móveis.
  • +
  • Impaciente com interfaces que não são responsivas ou claras.
  • +
+

Objetivo:

+

Aproveitar descontos exclusivos e acumular benefícios em um programa de fidelidade.

+

Expectativa:

+

Um cadastro simples e rápido, com informações claras sobre os benefícios disponíveis.

+

Requisitos:

+
    +
  • Integração do programa de fidelidade com a compra de ingressos.
  • +
  • Processo de cadastro otimizado e responsivo.
  • +
  • Opção de gerenciar assinatura pelo celular.
  • +
+
+

5. Persona Secundária - Voucher Corporativo

+
+ Persona 5 +

Fonte: Gerada por IA

+
+ +

Status: Persona Secundária

+

Nome: Paula Torres

+

Gênero: Feminino

+

Idade: 35 anos

+

Profissão: Gerente de Recursos Humanos

+

Escolaridade: Pós-Graduação Completa

+

Estado Civil: Divorciada

+

Relacionamento: Mãe de uma filha de 10 anos

+

Tarefas:

+
    +
  • Comprar vouchers para presentear os funcionários da empresa.
  • +
  • Garantir que o processo seja formal e adequado às políticas da organização.
  • +
+

Habilidades e Experiências:

+
    +
  • Familiaridade com sistemas de pagamento corporativo.
  • +
  • Experiência em plataformas digitais para compras.
  • +
  • Gosta de personalizar presentes para maior impacto.
  • +
+

Objetivo:

+

Adquirir vouchers que proporcionem uma experiência agradável aos funcionários e demonstrem valorização.

+

Expectativa:

+

Uma navegação intuitiva, com opções de personalização e entrega simples.

+

Requisitos:

+
    +
  • Opções de pagamento corporativo, como boletos.
  • +
  • Informações claras sobre como os vouchers podem ser utilizados.
  • +
  • Entrega eficiente e dentro do prazo.
  • +
+
+

Referências Bibliográficas

+
+

1. BARBOSA, S. D. J.; SILVA, B. S. Interação Humano-Computador. Rio de Janeiro: Elsevier, 2011.
+2. Courage, C. & Baxter, K. Understanding your users: a practical guide to user requirements, methods, tools, and techniques. San Francisco, CA: Morgan KaufmannPublishers, 2005.

+
+

Bibliografia

+
+

ALVES, Douglas. Personas . Repositório da disciplina de Requisitos de Software da Universidade de Brasília, 2023. Disponível em: <https://interacao-humano-computador.github.io/2023.1-BilheteriaDigital/analise-de-requisitos/personas/>. Acesso em: 01 dezembro 2024.

+
+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAna Joyce01/12/2024Anne de Capdeville01/12/2024
1.1Add intro, mmetodologia e elencoAna Joyce02/12/2024José Felipe02/12/2024
1.2Consertando as imagensAna Joyce03/12/2024Anne de Capdeville03/12/2024
1.3Consertando as imagens 2Ana Joyce03/12/2024Pedro Miguel05/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/Analise-de-requisitos/principios-gerais-de-projeto/index.html b/Analise-de-requisitos/principios-gerais-de-projeto/index.html new file mode 100644 index 0000000..11e9e69 --- /dev/null +++ b/Analise-de-requisitos/principios-gerais-de-projeto/index.html @@ -0,0 +1,2297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Princípios gerais de projeto - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Princípios gerais de projeto

+ +

Introdução

+

O projeto deve estar fundamento em princípios, diretrizes e padrões que orientam o design e a avaliação do sistema. Os princípios são objetivos gerais de alto nível, enquanto diretrizes representam regras práticas e padrões, soluções específicas para contextos delimitados. Mesmo com essa diferença entre os termos geralmente utilizamos as duas formas em conjunto. Teorias notáveis incluem os princípios de Norman (1988), as heurísticas de Nielsen (1994) e as regras deoutro de Shneiderman (1988), amplamente reconhecidos na área de Interação Humano-Computador.

+

Os Princípios desempenham um papel auxiliar no design, mas não substituem as etapas essencias de análise, concepção e avaliação. Sua aplicação eficaz exige uma compreensão aprofundada do problema, dos usuários e de suas atividades. Norman (1988) destaca a importância de um modelo conceitual claro, que permita ao usuário compreender facilmente o sistema e suas interações. Também cita a correspondência com expectativas, simplicidade, consistência, promoção de eficiência e design para prevenir e lidar com erros.

+

Metodologia

+

A fim de embasar a definição dos princípios e diretrizes aplicáveis ao site Cinemark, utilizamos principalmente o capítulo 10 do livro Interação Humano-Computador e Experiência do Usuário (Barbosa, 2021). Tal seção aborda diretamente a explicação e aplicação das diretrizes essenciais permitindo avaliar a conformidade do site com as boas práticas de usabilidade, a identificação de erros e propostas de melhoria.

+

1. Correspondência com as Expectativas dos Usuários

+

Definição: Segundo Norman, a interface deve alinhar-se ao modelo mental do usuário, garantindo que as ações no sistema reflitam a forma como as tarefas são realizadas no mundo real, explorando mapeamentos naturais e mantendo consistência com as expectativas habituais do usuário.
+Análise: O site Cinemark atende parcialmente ao princípio ao organizar os filmes em cartaz de forma intuitiva e apresentar horários de sessões de forma clara. No entanto, o fluxo de login obrigatório antes de escolher os filmes pode frustrar usuários que desejam explorar o site antes de se identificarem.
+Sugestão: Permitir navegação anônima até a etapa final de compra, mantendo a identificação como opcional até o momento do pagamento, para respeitar o modelo mental típico de compra.

+

Figura 1 - Gif de exemplo

+

Autor: Pedro Miguel

+
+

2. Simplicidade nas Estruturas das Tarefas

+

Definição: Simplificar as estruturas das tarefas significa reduzir a complexidade desnecessária e fornecer suporte para que o usuário realize as tarefas com o menor esforço possível.
+Análise: O Cinemark apresenta uma estrutura linear para compra de ingressos, o que facilita o processo. No entanto, explorar categorias específicas de filmes ou promoções exige vários cliques, o que pode tornar a experiência menos intuitiva.
+Sugestão: Agrupar informações relacionadas, como categorias de filmes e promoções, em menus mais acessíveis na página inicial, reduzindo a necessidade de navegação profunda.

+

Figura 2 - Gif de exemplo 2

+

Autor: Pedro Miguel

+
+

3. Equilíbrio entre Controle e Liberdade do Usuário

+

Definição: O equilíbrio entre controle e liberdade permite que o usuário explore diferentes caminhos para realizar uma tarefa, mantendo o controle sem sobrecarga de opções desnecessárias.
+Análise: O site oferece liberdade ao usuário na escolha de poltronas, mas limita o controle em outras áreas, como a ausência de filtros avançados para horários e tipos de sala, dificultando a busca personalizada.
+Sugestão: Implementar filtros para tipos de sala (3D, IMAX), horários e idiomas, permitindo que o usuário personalize a busca por sessões de acordo com suas preferências.

+

Figura 3 - Gif de exemplo 3

+

Autor: Pedro Miguel

+
+

4. Consistência e Padronização

+

Definição: Interfaces consistentes e padronizadas facilitam o aprendizado e o uso contínuo ao garantir que elementos semelhantes funcionem de maneira uniforme, reduzindo a carga cognitiva do usuário.
+Análise: O site mantém consistência visual e funcional em elementos como botões e ícones, mas a terminologia varia, com rótulos como "Promoções" e "Ofertas" criando confusão desnecessária.
+Sugestão: Uniformizar a nomenclatura em todo o site, utilizando termos consistentes para categorias semelhantes, como unificar "Promoções" e "Ofertas" sob um único título.

+

Figura 4 - Imagem de exemplo 4

+

Autor: Pedro Miguel

+

Figura 5 - Imagem de exemplo 5

+

Autor: Pedro Miguel

+
+

5. Promoção da Eficiência do Usuário

+

Definição: Priorizar a eficiência do usuário envolve otimizar o tempo e os passos necessários para realizar uma tarefa, promovendo atalhos e respostas rápidas do sistema.
+Análise: O fluxo de compra é eficiente e linear, mas o tempo de carregamento de páginas pode ser prolongado, especialmente em dispositivos móveis, prejudicando a experiência.
+Sugestão: Implementar otimizações para carregamento mais rápido, sem abrir outras telas, como compactação de recursos e uma versão mobile mais leve, melhorando a eficiência em dispositivos móveis.

+

Figura 6 - Gif de exemplo 6

+

Autor: Pedro Miguel

+
+

6. Antecipação das Necessidades do Usuário

+

Definição: Interfaces devem prever as necessidades dos usuários, oferecendo informações e ferramentas relevantes antes que sejam solicitadas, aumentando a fluidez da interação.
+Análise: O site exibe filmes populares, mas não personaliza recomendações com base no histórico de navegação ou compras do usuário, perdendo a oportunidade de antecipar preferências.
+Sugestão: Adotar um sistema de recomendação que sugira filmes e sessões com base no comportamento anterior do usuário, personalizando a experiência.

+

Figura 7 - Gif de exemplo 7

+

Autor: Pedro Miguel

+
+

7. Visibilidade e Reconhecimento

+

Definição: Visibilidade garante que os usuários percebam claramente o estado do sistema e as opções disponíveis, enquanto reconhecimento minimiza a necessidade de memorização.
+Análise: O Cinemark fornece feedback visual em ações como a escolha de poltronas, mas mensagens de erro durante o pagamento não são detalhadas, dificultando a correção.
+Sugestão: Aprimorar as mensagens de erro, oferecendo feedback claro e orientado à solução, como destacar problemas específicos no formulário de pagamento.

+

Figura 8 - Gif de exemplo 8

+

Autor: Pedro Miguel

+
+

8. Conteúdo Relevante e Expressão Adequada

+

Definição: Conteúdo claro e relevante reduz a carga cognitiva e melhora a experiência, utilizando informações concisas e livres de ambiguidade.
+Análise: O site apresenta informações objetivas sobre filmes e horários, mas detalhes de promoções e eventos podem ser difíceis de localizar, impactando sua visibilidade.
+Sugestão: Criar uma seção dedicada e destacada para promoções e eventos no menu principal, aumentando sua relevância e acessibilidade.

+

Figura 9 - Gif de exemplo 9

+

Autor: Pedro Miguel

+
+

9. Projeto para Erros

+

Definição: Sistemas devem prever erros do usuário, oferecendo recuperação fácil e evitando que ações críticas sejam realizadas inadvertidamente.
+Análise: O site permite corrigir a seleção de poltronas sem reiniciar o processo, mas mensagens de erro, como as relacionadas ao login ou pagamento, são genéricas e pouco úteis.
+Sugestão: Elaborar mensagens de erro informativas e construtivas, sugerindo ações corretivas claras e evitando linguagem técnica ou confusa.

+

Figura 10 - Gif de exemplo 10

+

Autor: Pedro Miguel

+

Referências

+

BARBOSA, Simone Diniz Junqueira et al. Interação humano-computador e experiência do usuário [livro eletrônico]. 1. ed. Rio de Janeiro: Simone Diniz Junqueira Barbosa, 2021. Disponível em: formato PDF.

+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAna Joyce02/12/2024Anne de Capdeville02/12/2024
1.1Adição da estrutura do documentoPedro Miguel05/12/2024Ana Joyce10/12/2024
1.2Construção dos princípiosPedro Miguel10/12/2024Ana Joyce10/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/Atas/ata1/index.html b/Atas/ata1/index.html new file mode 100644 index 0000000..aab0007 --- /dev/null +++ b/Atas/ata1/index.html @@ -0,0 +1,1766 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Ata 1 - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Ata 1

+ +

Assunto

+

Planejamento e desenvolvimento do trabalho

+

Considerações

+

Realizada a divisão do trabalho, documentação no git pages e desenvolvimento do trabalho, considerando o que deve ser feito e o que já foi realizado.

+

Bibliografia

+
    +
  • Plano de ensino Disciplina Interação Humano Computador, Dr. André Barros de Sales.
  • +
+

Histórico de versão

+ + + + + + + + + + + + + + + + + + + +
VersãoDataDescriçãoAutor(es)Revisor(es)
1.014/11/2024Planejamento do trabalhoAnne de Capdeville- -
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git "a/Desing-Avalia\303\247\303\243o-Desenvolvimento/avaliacao-analise-tarefas/index.html" "b/Desing-Avalia\303\247\303\243o-Desenvolvimento/avaliacao-analise-tarefas/index.html" new file mode 100644 index 0000000..93de03f --- /dev/null +++ "b/Desing-Avalia\303\247\303\243o-Desenvolvimento/avaliacao-analise-tarefas/index.html" @@ -0,0 +1,2641 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Planejamento da Avaliação do Análise de tarefas - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Planejamento da Avaliação da Análise de Tarefas

+

Introdução

+

A avaliação é fundamental para garantir que o sistema atenda aos padrões de qualidade esperados e promova uma experiência satisfatória para os usuários. Este planejamento tem como objetivo realizar uma avaliação da análise de tarefas do site Cinemark.com. Para isso, serão conduzidas entrevistas com usuários reais, baseando-se nos perfis previamente definidos. Essa abordagem permitirá identificar problemas e elucidar melhorias na análise de tarefas, garantindo sua adequação às necessidades reais dos usuários.

+

Os HTAs disponíveis para análise incluem:

+
    +
  • Compra de Vouchers Corporativos.
  • +
  • Reserva de Salas.
  • +
  • Compra de Ingressos e Combos.
  • +
  • Cadastro no Cinemark Club.
  • +
+

Além disso, a tarefa de cancelamento de compra será abordada como uma lacuna a ser preenchida com informações obtidas durante a avaliação.

+
+

Metodologia

+

A metodologia segue o framework DECIDE, onde cada etapa é detalhada a seguir:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LetraDefinição
DDeterminar os objetivos da avaliação.
EExplorar perguntas a serem respondidas com a avaliação.
CEscolher os métodos de avaliação a serem utilizados.
IIdentificar e administrar as questões práticas da avaliação.
DDecidir como lidar com as questões éticas.
EAvaliar, interpretar e apresentar os dados.
+
+

D - Objetivos

+

Os objetivos desta avaliação são:

+
    +
  1. Verificar a conformidade dos artefatos produzidos na análise de tarefas do site Cinemark.com com padrões e boas práticas estabelecidas.
  2. +
  3. Identificar problemas ou lacunas no fluxo de tarefas descrito.
  4. +
  5. Coletar sugestões de melhorias diretamente dos usuários para aprimorar as tarefas analisadas.
  6. +
  7. Coletar informações para desenvolver ou revisar o fluxo de cancelamento de compra.
  8. +
+
+

E - Explorar Perguntas Respondidas com a Avaliação

+

Com base nos objetivos definidos, as perguntas exploradas na avaliação incluem:

+
    +
  • As tarefas analisadas representam corretamente as funcionalidades esperadas para o site?
  • +
  • Os diagramas estão devidamente documentados, com notações, legendas e tabelas?
  • +
  • O fluxo das tarefas descritas no artefato está alinhado com a experiência real dos usuários?
  • +
  • Existem melhorias ou alternativas de design identificadas pelos usuários durante a avaliação?
  • +
+
+

C - Escolher os Métodos de Avaliação

+

A avaliação será conduzida por meio de:

+
    +
  1. Entrevistas com usuários reais: Utilizando um questionário semi-estruturado como roteiro.
  2. +
  3. Observação remota: O entrevistador solicitará que o usuário compartilhe sua tela ao executar tarefas específicas no site.
  4. +
+

Ferramentas sugeridas: Microsoft Teams, Discord ou Google Meet.

+
+

I - Identificar Questões Práticas da Avaliação

+

Recrutamento

+
    +
  • Os participantes serão recrutados com base em perfis que reflitam os principais usuários do site (ex.: frequentadores de cinema, usuários que compram ingressos online regularmente).
  • +
  • Serão entrevistados 6 usuários, permitindo diversidade de perspectivas.
  • +
+

Preparação

+
    +
  • Um entrevistador realizará as perguntas e coletará as respostas.
  • +
  • O usuário será orientado a realizar tarefas específicas no site, enquanto o entrevistador observa e toma notas.
  • +
+

Custos

+
    +
  • A avaliação será feita remotamente, sem custos financeiros diretos para equipe ou usuários.
  • +
+

Prazos

+

Um cronograma será seguido para organizar entrevistas e análises:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
EntrevistadorEntrevistadoDataHorárioLocal
Ana JoyceUsuário 110/12/202417:00 - 17:30Google Meet
Pedro MiguelUsuário 210/12/202419:00 - 19:30Google Meet
+
+

Roteiro de Perguntas

+

Perguntas Gerais

+
    +
  1. Qual o seu nome?
  2. +
  3. Qual o seu grau de familiaridade com o site Cinemark.com?
  4. +
  5. Já utilizou o site para comprar ingressos online? Se sim, descreva sua experiência.
  6. +
+

Tarefas Específicas

+
    +
  1. Como você buscaria por filmes em cartaz?
  2. +
  3. Observação: O fluxo apresentado no diagrama está coerente?
  4. +
  5. Como você compraria um ingresso?
  6. +
  7. Observação: A sequência descrita condiz com sua experiência?
  8. +
  9. Como você utilizaria a funcionalidade de compra de vouchers corporativos?
  10. +
  11. Como você reservou salas no site anteriormente?
  12. +
  13. Como você realizaria o cadastro no Cinemark Club?
  14. +
  15. Como você cancelaria uma compra?
  16. +
  17. Observação: Existem etapas ou funcionalidades ausentes? (HTA ainda a ser desenvolvido.)
  18. +
+

Sugestões

+
    +
  1. Os diagramas das tarefas analisadas são claros e condizentes com a realidade?
  2. +
  3. Você teria alguma sugestão de melhoria para as tarefas ou o site?
  4. +
+
+

D - Decidir como Lidar com Questões Éticas

+
    +
  • Será obtido consentimento dos participantes antes da entrevista.
  • +
  • Garantia de anonimato e confidencialidade das respostas coletadas.
  • +
+
+

Segue uma versão revisada e mais detalhada para a seção E - Explorar Perguntas Respondidas com a Avaliação, incorporando mais nuances e exemplos:

+
+

E - Explorar Perguntas Respondidas com a Avaliação

+

Com base nos objetivos definidos, a avaliação buscará responder perguntas relacionadas à adequação, clareza e eficácia das tarefas descritas no site Cinemark.com. Estas perguntas serão o guia para identificar lacunas e oportunidades de melhoria.

+

1. Representatividade das Tarefas

+
    +
  • As tarefas analisadas representam corretamente as funcionalidades esperadas do site?
    +Exemplo: O fluxo de "Compra de Ingressos e Combos" reflete as opções reais disponíveis para os usuários, como escolha de assentos, promoções ou combos específicos?
  • +
+

2. Documentação e Estrutura

+
    +
  • +

    Os diagramas de tarefas foram devidamente documentados?
    +Exemplo: O uso de notações, legendas e tabelas está claro e compreensível para diferentes públicos (ex.: desenvolvedores, designers, stakeholders)?

    +
  • +
  • +

    Há passos desnecessários, redundantes ou faltando na descrição das tarefas?
    +Exemplo: Durante a tarefa de "Reserva de Salas", o diagrama considera todas as variáveis possíveis, como data indisponível ou erro de pagamento?

    +
  • +
+

3. Experiência do Usuário

+
    +
  • +

    O fluxo descrito nas tarefas está alinhado com a experiência real dos usuários?
    +Exemplo: Na funcionalidade de "Cadastro no Cinemark Club", o usuário encontra dificuldades em entender benefícios ou completar o processo?

    +
  • +
  • +

    Existem barreiras ou dificuldades que os diagramas não capturam, mas que são percebidas pelos usuários durante o uso?
    +Exemplo: O tempo de resposta do site para carregar opções de "Compra de Vouchers Corporativos" interfere na experiência e não está representado?

    +
  • +
+

4. Melhorias e Alternativas

+
    +
  • +

    Existem melhorias ou alternativas de design identificadas pelos usuários durante a avaliação?
    +Exemplo: O usuário sugere funcionalidades extras, como filtros mais intuitivos ao buscar filmes em cartaz ou opções adicionais para cancelar uma compra?

    +
  • +
  • +

    Os fluxos considerados na avaliação incluem cenários de acessibilidade?
    +Exemplo: As tarefas foram testadas para cenários como navegação com teclado, leitura por dispositivos assistivos ou carregamento em redes lentas?

    +
  • +
+

5. Integração com a Tarefa de Cancelamento de Compra

+
    +
  • Quais informações adicionais são necessárias para criar ou revisar o fluxo de cancelamento de compra?
    +Exemplo: O usuário identifica que atualmente não encontra uma opção clara para cancelar uma compra ou percebe que as etapas descritas não correspondem à experiência prática.
  • +
+
+

Aqui está o planejamento do teste piloto adaptado para o seu contexto:

+
+

Planejamento do Teste Piloto

+

Objetivo

+

O objetivo do teste piloto é avaliar o planejamento da avaliação, verificando se a metodologia e os materiais fornecidos são claros e adequados para obter os dados necessários para responder às questões e objetivos do estudo. Durante o teste, será possível analisar a eficácia do questionário e o diagrama de tarefas (HTA) utilizado nas entrevistas, assim como garantir que as instruções fornecidas aos participantes sejam suficientes para orientá-los na execução das tarefas.

+

Data e Participantes

+
    +
  • Data do Teste Piloto: 10/12/2024
  • +
  • Horário: 18:30
  • +
  • Participantes:
  • +
  • Ana Joyce (Entrevistadora)
  • +
  • Anne (Usuário)
  • +
+

Objetivos do Teste Piloto

+
    +
  1. Avaliar a clareza das explicações fornecidas pelo entrevistador durante as entrevistas.
  2. +
  3. Analisar a eficácia dos materiais fornecidos (questionário e diagrama de tarefas).
  4. +
  5. Testar o fluxo de tarefas descrito no diagrama HTA, garantindo que o usuário compreenda as etapas e execute as tarefas corretamente.
  6. +
  7. Identificar possíveis falhas ou problemas nos diagramas de tarefas, com ênfase no fluxo de atividades.
  8. +
+

Metodologia

+

O teste piloto será conduzido como uma sessão normal de avaliação, com os seguintes passos:

+
    +
  1. Execução das Tarefas: O participante (Matheus Henrique) será orientado a realizar as tarefas descritas no diagrama HTA.
  2. +
  3. Observação do Fluxo de Tarefas: Durante a execução das tarefas, o entrevistador (Geovanna Maciel) observará e anotará as dificuldades encontradas.
  4. +
  5. Feedback do Usuário: O participante fornecerá feedback sobre a clareza das instruções e a usabilidade dos materiais, como o questionário e o diagrama de tarefas.
  6. +
+

Resultados Esperados

+

O teste piloto deve identificar: +- Pontos de melhoria no diagrama HTA, especialmente no que se refere à visualização de pedidos e ao fluxo das atividades. +- Se o questionário de avaliação é adequado para coletar as percepções e sugestões dos participantes. +- Se os materiais fornecem as informações necessárias para que o participante execute as tarefas corretamente.

+

Ferramentas Utilizadas

+
    +
  • Diagrama HTA de Tarefas
  • +
  • Questionário de Avaliação
  • +
  • Google Meet
  • +
+

Análise dos Resultados

+

Os resultados serão analisados em termos de: +- Clareza e objetividade dos materiais fornecidos. +- Identificação de erros ou falhas no diagrama de tarefas. +- Sugestões de melhoria nos fluxos de tarefas. +- Adequação do questionário para capturar as percepções dos participantes.

+

Plano de Ação Pós-Teste Piloto

+

Com base nos resultados do teste piloto, serão feitas as seguintes ações: +- Ajustes no diagrama HTA para corrigir o erro identificado na visualização de pedidos. +- Revisão do questionário de avaliação para garantir que ele cubra todas as áreas necessárias. +- Ajustes nas explicações e materiais fornecidos aos participantes, se necessário.

+
+

Resultado do Teste Piloto

+

Abaixo segue o vídeo feito do teste piloto de acordo com o cronograma citado anteriormente em que o Ana Joyce fez papel de usuário e Anne de entrevistadora. Nele pode-se notar ..............., no mais, o teste mostrou que o questionário pode ser utilizado nas entrevistas.

+

Clique aqui

+ +

+ +

Fonte: Ana Joyce e Anne.

+

Referências Bibliográficas

+
+

1. BARBOSA, S. D. J.; SILVA, B. S. Interação Humano-Computador. Rio de Janeiro: Elsevier, 2011.
+2. Courage, C. & Baxter, K. Understanding your users: a practical guide to## Referências Bibliográficas

+

1. BARBOSA, S. D. J.; SILVA, B. S. Interação Humano-Computador. Rio de Janeiro: Elsevier, 2011.
+2. Courage, C. & Baxter, K. Understanding your users: a practical guide to user requirements, methods, tools, and techniques. San Francisco, CA: Morgan KaufmannPublishers, 2005.

+
+

Bibliografia

+
+

ALVES, Douglas. Personas . Repositório da disciplina de Requisitos de Software da Universidade de Brasília, 2023. Disponível em: <https://interacao-humano-computador.github.io/2023.1-BilheteriaDigital/analise-de-requisitos/personas/>. Acesso em: 10 dezembro 2024. + user requirements, methods, tools, and techniques. San Francisco, CA: Morgan KaufmannPublishers, 2005.

+
+
+

Histórico de Versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAnne de Capdeville08/12/2024José Oliveira09/12/2024
1.1Adição do DECIDEAna Joyce08/12/2024Pedro Miguel09/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git "a/Desing-Avalia\303\247\303\243o-Desenvolvimento/avaliacao-storyboard/index.html" "b/Desing-Avalia\303\247\303\243o-Desenvolvimento/avaliacao-storyboard/index.html" new file mode 100644 index 0000000..9118e5d --- /dev/null +++ "b/Desing-Avalia\303\247\303\243o-Desenvolvimento/avaliacao-storyboard/index.html" @@ -0,0 +1,1858 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Planejamento da Avaliação do Storyboard - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Planejamento da Avaliação do Storyboard

+ +

Introdução

+

O storyboard é um esboço visual que representa a sequência de eventos de uma história. Ele é utilizado para planejar a narrativa de um vídeo, animação, filme, entre outros. O storyboard é composto por uma série de quadros que representam as cenas da história, e em cada quadro é possível adicionar descrições, diálogos, e indicações de movimento. Esta técnica proporciona aos desenvolvedores uma visão geral do projeto, facilitando a identificação de problemas e a realização de ajustes antes da produção final.

+

Metodologia

+

Para o planejamento será utilizado o framework decide (Decompose, Empathize, Create, Ideate, Validate, Execute).

+

D - Determine

+

Esta etapa determina os objetivos do storyboard, como elaborar a história, definir o público-alvo, e estabelecer o propósito do projeto. Após a elaboraçào deve-se validar se a versão final atende aos objetivos estabelecidos. E por fim, deve-se decidir se ele possui algo a mais que possa alterado, deletado ou adicionado. +
+etapas:
+- Definir o objetivo do storyboard.
+- Verificar se a história está clara e alinhada com a funcionalidade especificada.
+- Testar com a realidade e ver se há coesão.
+- Verificar se é necessário adicionar, deletar ou alterar algo.

+

E - Explore

+

De acordo com os objetivos definidos no passo anterior, o avaliador deve explorar as perguntas específicas para transformar os objetivos em perguntas a serem respondidas durante a avaliação. As perguntas confeccionadas foram:
+- Os objetivos do storyboard estão claros?
+- Os personagens e suas necessidades estão bem definidos?
+- A história está clara e alinhada com a funcionalidade especificada?
+- A história é coesa?
+- A história é compreensível?
+- A história condiz com a realidade?
+- Há a necessidade de adicionar, deletar ou alterar algo?

+

C - Choose

+

Escolher os metodos de avaliação. A avaliação pode ser feito utilizando um método como o teste com usuário ou avaliação heurística. Para o storyboard, a avaliação heurística é mais adequada, pois permite identificar problemas de usabilidade e de design.

+

I - Identify

+

Nesta etapa, são identificadas as questões práticas relacionadas à avaliação heurística do storyboard. É necessário definir os recursos disponíveis, como tempo, participantes e materiais necessários. Também é importante planejar como a avaliação será conduzida e como os dados serão coletados e analisados.

+

Questões práticas a serem consideradas:

+
    +
  • Quantos avaliadores realizarão a avaliação heurística?
  • +
  • Quais são os critérios de seleção dos avaliadores (experiência em usabilidade, conhecimento do domínio, etc.)?
  • +
  • Quanto tempo será destinado para a avaliação?
  • +
  • Quais heurísticas serão utilizadas como referência?
  • +
  • Como os problemas identificados serão registrados e categorizados?
  • +
  • Como os resultados serão analisados e priorizados?
  • +
  • Onde e quando a avaliação será realizada?
  • +
  • Como garantir que o processo seja consistente e confiável?
  • +
+

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAnne de Capdeville08/12/2024José Oliveira09/12/2024
1.1Elaboração parte da páginaJosé Oliveira08/12/2024Anne de Capdeville09/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git "a/Desing-Avalia\303\247\303\243o-Desenvolvimento/resultado-analise-tarefas/index.html" "b/Desing-Avalia\303\247\303\243o-Desenvolvimento/resultado-analise-tarefas/index.html" new file mode 100644 index 0000000..8a4e695 --- /dev/null +++ "b/Desing-Avalia\303\247\303\243o-Desenvolvimento/resultado-analise-tarefas/index.html" @@ -0,0 +1,1688 @@ + + + + + + + + + + + + + + + + + + + + + + + + + planejamento do relato dos resultados da avaliação do Análise de tarefas - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

planejamento do relato dos resultados da avaliação do Análise de tarefas

+ +

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAnne de Capdeville08/12/2024José Oliveira09/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git "a/Desing-Avalia\303\247\303\243o-Desenvolvimento/resultado-storyboard/index.html" "b/Desing-Avalia\303\247\303\243o-Desenvolvimento/resultado-storyboard/index.html" new file mode 100644 index 0000000..2f69b97 --- /dev/null +++ "b/Desing-Avalia\303\247\303\243o-Desenvolvimento/resultado-storyboard/index.html" @@ -0,0 +1,1706 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Planejamento do relato dos resultados da avaliação do Storyboard - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + +
+
+
+ + + +
+
+
+ + + +
+
+ + + + + + + +

Planejamento do relato dos resultados da avaliação do Storyboard

+ +

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.0Criação da páginaAnne de Capdeville08/12/2024José Oliveira09/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/apresentacoes/entrega2/index.html b/apresentacoes/entrega2/index.html new file mode 100644 index 0000000..e66afdd --- /dev/null +++ b/apresentacoes/entrega2/index.html @@ -0,0 +1,1927 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Entrega 2 e 3 - IHC - Grupo 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + Skip to content + + +
+
+ +
+ + + + + + +
+ + + + + + + +
+ +
+ + + + +
+
+ + + +
+
+
+ + + + + + + +
+
+
+ + + + + + + +
+
+ + + + + + + +

Entrega 2 e 3

+ +

Apresentações:

+

Neste ambiente ficara salvo a apresentação da entrega em formato de vídeo.

+

Aspectos éticos:

+

Clique aqui

+ +

+ +

Fonte: Ana Joyce.

+

Perfil de usuário:

+

Clique aqui

+ +

+ +

Fonte: Ana Joyce.

+

Personas:

+

Clique aqui

+ +

+ +

Cenários:

+

Clique aqui

+ +

+ +

Análise de terefas:

+

Clique aqui

+ +

+ +

Princípios gerais do projeto:

+

Metas de usabilidade:

+

Clique aqui

+ +

+ +

Guia de estilo:

+

Características da plataforma:

+

Clique aqui

+ +

+ +

Histórico de versões

+ + + + + + + + + + + + + + + + + + + + + +
VersãoDescriçãoAutor(es)DataRevisor(es)Data de revisão
1.1adição dos vídeosAna Joyce03/12/2024Pedro Miguel03/12/2024
+ + + + + + + + + + + + + +
+
+ + + +
+ + + +
+ + + +
+
+
+
+ + + + + + + + + + \ No newline at end of file diff --git a/assets/cinemark-icon.png b/assets/cinemark-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..86a8bf0dabd53eb7a166faeb656881e98c5c18b0 GIT binary patch literal 7680 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

n@#gyaE}YL2mtRJ)QICsXQWe_ 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 literal 0 HcmV?d00001 diff --git a/assets/ferramentas/drawio-icon.png b/assets/ferramentas/drawio-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8c53c163a1d173f6100dcbe2a6208aee412b149b GIT binary patch literal 11183 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 literal 0 HcmV?d00001 diff --git a/assets/ferramentas/figma-icon.png b/assets/ferramentas/figma-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9c381c38b519f142e12c7a62766c96fb5a12ae GIT binary patch literal 87778 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 Ze)<0^%<%6{g9>_{`+fH{{1pA`e*-g%{?h;e literal 0 HcmV?d00001 diff --git a/assets/ferramentas/git-icon.png b/assets/ferramentas/git-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d372b560c541dd9acc27efc9072ba7af405574ca GIT binary patch literal 9601 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 literal 0 HcmV?d00001 diff --git a/assets/ferramentas/github-icon.png b/assets/ferramentas/github-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0c2ee5039531c9d487a75cc747e9eb2bdba5ba6f GIT binary patch literal 14902 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 literal 0 HcmV?d00001 diff --git a/assets/ferramentas/github-pages-icon.png b/assets/ferramentas/github-pages-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..069a98ed652f9cc34902802154c6153cb69d5c13 GIT binary patch literal 6390 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 Tq|qJzkCXb^CR){ZU7!6Qkn?>1 literal 0 HcmV?d00001 diff --git a/assets/ferramentas/google-sheets-icon.png b/assets/ferramentas/google-sheets-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0a78f846b843d9262de7e58c5cd6f91227b0ff5d GIT binary patch literal 368 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 BI?(_C literal 0 HcmV?d00001 diff --git a/assets/ferramentas/htacinemarkclub.png b/assets/ferramentas/htacinemarkclub.png new file mode 100644 index 0000000000000000000000000000000000000000..734bcd3bc33859630b6cd5c9d8e56597509a5e32 GIT binary patch literal 22043 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 Ib4q9e0BG=y%m4rY literal 0 HcmV?d00001 diff --git a/assets/ferramentas/htacompraalimento.png b/assets/ferramentas/htacompraalimento.png new file mode 100644 index 0000000000000000000000000000000000000000..9f1999cb17ad32ff8fcd17bbbc2517fef9257304 GIT binary patch literal 23642 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 literal 0 HcmV?d00001 diff --git a/assets/ferramentas/htareservasala.png b/assets/ferramentas/htareservasala.png new file mode 100644 index 0000000000000000000000000000000000000000..a952df0360e381d7d708ffa8ff22cc040cb9d1d7 GIT binary patch literal 27647 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 literal 0 HcmV?d00001 diff --git a/assets/ferramentas/htavoucher.png b/assets/ferramentas/htavoucher.png new file mode 100644 index 0000000000000000000000000000000000000000..92695c0c7a352322ca3639f78958646e25362edf GIT binary patch literal 27551 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 Qd{u0I_F&@1Vio(NTenT(HY$P9buuSpgk&VB_F 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 bTsu;Al7}v;js4kwx0i}?YO+6NJ_P?S8+5A9 literal 0 HcmV?d00001 diff --git a/assets/ferramentas/obs-icon.png b/assets/ferramentas/obs-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b308106117f9812fbc78310f89b45d684a361cc4 GIT binary patch literal 3773 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 literal 0 HcmV?d00001 diff --git a/assets/ferramentas/vscode-icon.png b/assets/ferramentas/vscode-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..37a084767a4432f1e2d317bedd1057660372d31e GIT binary patch literal 114937 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 M(J)l6f!Id;Kghc49{>OV literal 0 HcmV?d00001 diff --git a/assets/ferramentas/youtube-icon.png b/assets/ferramentas/youtube-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2bb3f236940d05520ca7e787abc32f325e0e080a GIT binary patch literal 10935 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 IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/assets/javascripts/bundle.83f73b43.min.js b/assets/javascripts/bundle.83f73b43.min.js new file mode 100644 index 0000000..43d8b70 --- /dev/null +++ b/assets/javascripts/bundle.83f73b43.min.js @@ -0,0 +1,16 @@ +"use strict";(()=>{var Wi=Object.create;var gr=Object.defineProperty;var Di=Object.getOwnPropertyDescriptor;var Vi=Object.getOwnPropertyNames,Vt=Object.getOwnPropertySymbols,Ni=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty,ao=Object.prototype.propertyIsEnumerable;var io=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$=(e,t)=>{for(var r in t||(t={}))yr.call(t,r)&&io(e,r,t[r]);if(Vt)for(var r of Vt(t))ao.call(t,r)&&io(e,r,t[r]);return e};var so=(e,t)=>{var r={};for(var o in e)yr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Vt)for(var o of Vt(e))t.indexOf(o)<0&&ao.call(e,o)&&(r[o]=e[o]);return r};var xr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var zi=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Vi(t))!yr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=Di(t,n))||o.enumerable});return e};var Mt=(e,t,r)=>(r=e!=null?Wi(Ni(e)):{},zi(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var co=(e,t,r)=>new Promise((o,n)=>{var i=p=>{try{s(r.next(p))}catch(c){n(c)}},a=p=>{try{s(r.throw(p))}catch(c){n(c)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,a);s((r=r.apply(e,t)).next())});var lo=xr((Er,po)=>{(function(e,t){typeof Er=="object"&&typeof po!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(k){return!!(k&&k!==document&&k.nodeName!=="HTML"&&k.nodeName!=="BODY"&&"classList"in k&&"contains"in k.classList)}function p(k){var ft=k.type,qe=k.tagName;return!!(qe==="INPUT"&&a[ft]&&!k.readOnly||qe==="TEXTAREA"&&!k.readOnly||k.isContentEditable)}function c(k){k.classList.contains("focus-visible")||(k.classList.add("focus-visible"),k.setAttribute("data-focus-visible-added",""))}function l(k){k.hasAttribute("data-focus-visible-added")&&(k.classList.remove("focus-visible"),k.removeAttribute("data-focus-visible-added"))}function f(k){k.metaKey||k.altKey||k.ctrlKey||(s(r.activeElement)&&c(r.activeElement),o=!0)}function u(k){o=!1}function d(k){s(k.target)&&(o||p(k.target))&&c(k.target)}function y(k){s(k.target)&&(k.target.classList.contains("focus-visible")||k.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(k.target))}function L(k){document.visibilityState==="hidden"&&(n&&(o=!0),X())}function X(){document.addEventListener("mousemove",J),document.addEventListener("mousedown",J),document.addEventListener("mouseup",J),document.addEventListener("pointermove",J),document.addEventListener("pointerdown",J),document.addEventListener("pointerup",J),document.addEventListener("touchmove",J),document.addEventListener("touchstart",J),document.addEventListener("touchend",J)}function te(){document.removeEventListener("mousemove",J),document.removeEventListener("mousedown",J),document.removeEventListener("mouseup",J),document.removeEventListener("pointermove",J),document.removeEventListener("pointerdown",J),document.removeEventListener("pointerup",J),document.removeEventListener("touchmove",J),document.removeEventListener("touchstart",J),document.removeEventListener("touchend",J)}function J(k){k.target.nodeName&&k.target.nodeName.toLowerCase()==="html"||(o=!1,te())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",L,!0),X(),r.addEventListener("focus",d,!0),r.addEventListener("blur",y,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var qr=xr((hy,On)=>{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var $a=/["'&<>]/;On.exports=Pa;function Pa(e){var t=""+e,r=$a.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof It=="object"&&typeof Yr=="object"?Yr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof It=="object"?It.ClipboardJS=r():t.ClipboardJS=r()})(It,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Ui}});var a=i(279),s=i.n(a),p=i(370),c=i.n(p),l=i(817),f=i.n(l);function u(V){try{return document.execCommand(V)}catch(A){return!1}}var d=function(A){var M=f()(A);return u("cut"),M},y=d;function L(V){var A=document.documentElement.getAttribute("dir")==="rtl",M=document.createElement("textarea");M.style.fontSize="12pt",M.style.border="0",M.style.padding="0",M.style.margin="0",M.style.position="absolute",M.style[A?"right":"left"]="-9999px";var F=window.pageYOffset||document.documentElement.scrollTop;return M.style.top="".concat(F,"px"),M.setAttribute("readonly",""),M.value=V,M}var X=function(A,M){var F=L(A);M.container.appendChild(F);var D=f()(F);return u("copy"),F.remove(),D},te=function(A){var M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},F="";return typeof A=="string"?F=X(A,M):A instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(A==null?void 0:A.type)?F=X(A.value,M):(F=f()(A),u("copy")),F},J=te;function k(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(M){return typeof M}:k=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},k(V)}var ft=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},M=A.action,F=M===void 0?"copy":M,D=A.container,Y=A.target,$e=A.text;if(F!=="copy"&&F!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&k(Y)==="object"&&Y.nodeType===1){if(F==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(F==="cut"&&(Y.hasAttribute("readonly")||Y.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if($e)return J($e,{container:D});if(Y)return F==="cut"?y(Y):J(Y,{container:D})},qe=ft;function Fe(V){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fe=function(M){return typeof M}:Fe=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},Fe(V)}function ki(V,A){if(!(V instanceof A))throw new TypeError("Cannot call a class as a function")}function no(V,A){for(var M=0;M0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof D.action=="function"?D.action:this.defaultAction,this.target=typeof D.target=="function"?D.target:this.defaultTarget,this.text=typeof D.text=="function"?D.text:this.defaultText,this.container=Fe(D.container)==="object"?D.container:document.body}},{key:"listenClick",value:function(D){var Y=this;this.listener=c()(D,"click",function($e){return Y.onClick($e)})}},{key:"onClick",value:function(D){var Y=D.delegateTarget||D.currentTarget,$e=this.action(Y)||"copy",Dt=qe({action:$e,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(Dt?"success":"error",{action:$e,text:Dt,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(D){return vr("action",D)}},{key:"defaultTarget",value:function(D){var Y=vr("target",D);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(D){return vr("text",D)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(D){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(D,Y)}},{key:"cut",value:function(D){return y(D)}},{key:"isSupported",value:function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof D=="string"?[D]:D,$e=!!document.queryCommandSupported;return Y.forEach(function(Dt){$e=$e&&!!document.queryCommandSupported(Dt)}),$e}}]),M}(s()),Ui=Fi},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,p){for(;s&&s.nodeType!==n;){if(typeof s.matches=="function"&&s.matches(p))return s;s=s.parentNode}}o.exports=a},438:function(o,n,i){var a=i(828);function s(l,f,u,d,y){var L=c.apply(this,arguments);return l.addEventListener(u,L,y),{destroy:function(){l.removeEventListener(u,L,y)}}}function p(l,f,u,d,y){return typeof l.addEventListener=="function"?s.apply(null,arguments):typeof u=="function"?s.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(L){return s(L,f,u,d,y)}))}function c(l,f,u,d){return function(y){y.delegateTarget=a(y.target,f),y.delegateTarget&&d.call(l,y)}}o.exports=p},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(o,n,i){var a=i(879),s=i(438);function p(u,d,y){if(!u&&!d&&!y)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(y))throw new TypeError("Third argument must be a Function");if(a.node(u))return c(u,d,y);if(a.nodeList(u))return l(u,d,y);if(a.string(u))return f(u,d,y);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(u,d,y){return u.addEventListener(d,y),{destroy:function(){u.removeEventListener(d,y)}}}function l(u,d,y){return Array.prototype.forEach.call(u,function(L){L.addEventListener(d,y)}),{destroy:function(){Array.prototype.forEach.call(u,function(L){L.removeEventListener(d,y)})}}}function f(u,d,y){return s(document.body,u,d,y)}o.exports=p},817:function(o){function n(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var p=window.getSelection(),c=document.createRange();c.selectNodeContents(i),p.removeAllRanges(),p.addRange(c),a=p.toString()}return a}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,a,s){var p=this.e||(this.e={});return(p[i]||(p[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var p=this;function c(){p.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),p=0,c=s.length;for(p;p0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function N(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],a;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(s){a={error:s}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function q(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||p(d,L)})},y&&(n[d]=y(n[d])))}function p(d,y){try{c(o[d](y))}catch(L){u(i[0][3],L)}}function c(d){d.value instanceof nt?Promise.resolve(d.value.v).then(l,f):u(i[0][2],d)}function l(d){p("next",d)}function f(d){p("throw",d)}function u(d,y){d(y),i.shift(),i.length&&p(i[0][0],i[0][1])}}function uo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof he=="function"?he(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(a){return new Promise(function(s,p){a=e[i](a),n(s,p,a.done,a.value)})}}function n(i,a,s,p){Promise.resolve(p).then(function(c){i({value:c,done:s})},a)}}function H(e){return typeof e=="function"}function ut(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var zt=ut(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function Qe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Ue=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=he(a),p=s.next();!p.done;p=s.next()){var c=p.value;c.remove(this)}}catch(L){t={error:L}}finally{try{p&&!p.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var l=this.initialTeardown;if(H(l))try{l()}catch(L){i=L instanceof zt?L.errors:[L]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=he(f),d=u.next();!d.done;d=u.next()){var y=d.value;try{ho(y)}catch(L){i=i!=null?i:[],L instanceof zt?i=q(q([],N(i)),N(L.errors)):i.push(L)}}}catch(L){o={error:L}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new zt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)ho(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Qe(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Qe(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=Ue.EMPTY;function qt(e){return e instanceof Ue||e&&"closed"in e&&H(e.remove)&&H(e.add)&&H(e.unsubscribe)}function ho(e){H(e)?e():e.unsubscribe()}var Pe={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var dt={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,a=n.isStopped,s=n.observers;return i||a?Tr:(this.currentObservers=null,s.push(r),new Ue(function(){o.currentObservers=null,Qe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,a=o.isStopped;n?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new j;return r.source=this,r},t.create=function(r,o){return new To(r,o)},t}(j);var To=function(e){oe(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:Tr},t}(g);var _r=function(e){oe(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(g);var At={now:function(){return(At.delegate||Date).now()},delegate:void 0};var Ct=function(e){oe(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=At);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,a=o._infiniteTimeWindow,s=o._timestampProvider,p=o._windowTime;n||(i.push(r),!a&&i.push(s.now()+p)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,a=n._buffer,s=a.slice(),p=0;p0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t}(gt);var Lo=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(yt);var kr=new Lo(Oo);var Mo=function(e){oe(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=vt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var a=r.actions;o!=null&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==o&&(vt.cancelAnimationFrame(o),r._scheduled=void 0)},t}(gt);var _o=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o=this._scheduled;this._scheduled=void 0;var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(yt);var me=new _o(Mo);var S=new j(function(e){return e.complete()});function Yt(e){return e&&H(e.schedule)}function Hr(e){return e[e.length-1]}function Xe(e){return H(Hr(e))?e.pop():void 0}function ke(e){return Yt(Hr(e))?e.pop():void 0}function Bt(e,t){return typeof Hr(e)=="number"?e.pop():t}var xt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Gt(e){return H(e==null?void 0:e.then)}function Jt(e){return H(e[bt])}function Xt(e){return Symbol.asyncIterator&&H(e==null?void 0:e[Symbol.asyncIterator])}function Zt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Zi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var er=Zi();function tr(e){return H(e==null?void 0:e[er])}function rr(e){return fo(this,arguments,function(){var r,o,n,i;return Nt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,nt(r.read())];case 3:return o=a.sent(),n=o.value,i=o.done,i?[4,nt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,nt(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function or(e){return H(e==null?void 0:e.getReader)}function U(e){if(e instanceof j)return e;if(e!=null){if(Jt(e))return ea(e);if(xt(e))return ta(e);if(Gt(e))return ra(e);if(Xt(e))return Ao(e);if(tr(e))return oa(e);if(or(e))return na(e)}throw Zt(e)}function ea(e){return new j(function(t){var r=e[bt]();if(H(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function ta(e){return new j(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?b(function(n,i){return e(n,i,o)}):le,Te(1),r?De(t):Qo(function(){return new ir}))}}function jr(e){return e<=0?function(){return S}:E(function(t,r){var o=[];t.subscribe(T(r,function(n){o.push(n),e=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new g}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,p=s===void 0?!0:s;return function(c){var l,f,u,d=0,y=!1,L=!1,X=function(){f==null||f.unsubscribe(),f=void 0},te=function(){X(),l=u=void 0,y=L=!1},J=function(){var k=l;te(),k==null||k.unsubscribe()};return E(function(k,ft){d++,!L&&!y&&X();var qe=u=u!=null?u:r();ft.add(function(){d--,d===0&&!L&&!y&&(f=Ur(J,p))}),qe.subscribe(ft),!l&&d>0&&(l=new at({next:function(Fe){return qe.next(Fe)},error:function(Fe){L=!0,X(),f=Ur(te,n,Fe),qe.error(Fe)},complete:function(){y=!0,X(),f=Ur(te,a),qe.complete()}}),U(k).subscribe(l))})(c)}}function Ur(e,t){for(var r=[],o=2;oe.next(document)),e}function P(e,t=document){return Array.from(t.querySelectorAll(e))}function R(e,t=document){let r=fe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function fe(e,t=document){return t.querySelector(e)||void 0}function Ie(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var wa=O(h(document.body,"focusin"),h(document.body,"focusout")).pipe(_e(1),Q(void 0),m(()=>Ie()||document.body),G(1));function et(e){return wa.pipe(m(t=>e.contains(t)),K())}function $t(e,t){return C(()=>O(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?Ht(r=>Le(+!r*t)):le,Q(e.matches(":hover"))))}function Jo(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Jo(e,r)}function x(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Jo(o,n);return o}function sr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function Tt(e){let t=x("script",{src:e});return C(()=>(document.head.appendChild(t),O(h(t,"load"),h(t,"error").pipe(v(()=>$r(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),_(()=>document.head.removeChild(t)),Te(1))))}var Xo=new g,Ta=C(()=>typeof ResizeObserver=="undefined"?Tt("https://unpkg.com/resize-observer-polyfill"):I(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>Xo.next(t)))),v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function ce(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return Ta.pipe(w(r=>r.observe(t)),v(r=>Xo.pipe(b(o=>o.target===t),_(()=>r.unobserve(t)))),m(()=>ce(e)),Q(ce(e)))}function St(e){return{width:e.scrollWidth,height:e.scrollHeight}}function cr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function Zo(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function Ve(e){return{x:e.offsetLeft,y:e.offsetTop}}function en(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function tn(e){return O(h(window,"load"),h(window,"resize")).pipe(Me(0,me),m(()=>Ve(e)),Q(Ve(e)))}function pr(e){return{x:e.scrollLeft,y:e.scrollTop}}function Ne(e){return O(h(e,"scroll"),h(window,"scroll"),h(window,"resize")).pipe(Me(0,me),m(()=>pr(e)),Q(pr(e)))}var rn=new g,Sa=C(()=>I(new IntersectionObserver(e=>{for(let t of e)rn.next(t)},{threshold:0}))).pipe(v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function tt(e){return Sa.pipe(w(t=>t.observe(e)),v(t=>rn.pipe(b(({target:r})=>r===e),_(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function on(e,t=16){return Ne(e).pipe(m(({y:r})=>{let o=ce(e),n=St(e);return r>=n.height-o.height-t}),K())}var lr={drawer:R("[data-md-toggle=drawer]"),search:R("[data-md-toggle=search]")};function nn(e){return lr[e].checked}function Je(e,t){lr[e].checked!==t&&lr[e].click()}function ze(e){let t=lr[e];return h(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function Oa(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function La(){return O(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function an(){let e=h(window,"keydown").pipe(b(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:nn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),b(({mode:t,type:r})=>{if(t==="global"){let o=Ie();if(typeof o!="undefined")return!Oa(o,r)}return!0}),pe());return La().pipe(v(t=>t?S:e))}function ye(){return new URL(location.href)}function lt(e,t=!1){if(B("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function sn(){return new g}function cn(){return location.hash.slice(1)}function pn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Ma(e){return O(h(window,"hashchange"),e).pipe(m(cn),Q(cn()),b(t=>t.length>0),G(1))}function ln(e){return Ma(e).pipe(m(t=>fe(`[id="${t}"]`)),b(t=>typeof t!="undefined"))}function Pt(e){let t=matchMedia(e);return ar(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function mn(){let e=matchMedia("print");return O(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function Nr(e,t){return e.pipe(v(r=>r?t():S))}function zr(e,t){return new j(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let a=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+a*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function je(e,t){return zr(e,t).pipe(v(r=>r.text()),m(r=>JSON.parse(r)),G(1))}function fn(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),G(1))}function un(e,t){let r=new DOMParser;return zr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),G(1))}function dn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function hn(){return O(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(dn),Q(dn()))}function bn(){return{width:innerWidth,height:innerHeight}}function vn(){return h(window,"resize",{passive:!0}).pipe(m(bn),Q(bn()))}function gn(){return z([hn(),vn()]).pipe(m(([e,t])=>({offset:e,size:t})),G(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(ee("size")),n=z([o,r]).pipe(m(()=>Ve(e)));return z([r,t,n]).pipe(m(([{height:i},{offset:a,size:s},{x:p,y:c}])=>({offset:{x:a.x-p,y:a.y-c+i},size:s})))}function _a(e){return h(e,"message",t=>t.data)}function Aa(e){let t=new g;return t.subscribe(r=>e.postMessage(r)),t}function yn(e,t=new Worker(e)){let r=_a(t),o=Aa(t),n=new g;n.subscribe(o);let i=o.pipe(Z(),ie(!0));return n.pipe(Z(),Re(r.pipe(W(i))),pe())}var Ca=R("#__config"),Ot=JSON.parse(Ca.textContent);Ot.base=`${new URL(Ot.base,ye())}`;function xe(){return Ot}function B(e){return Ot.features.includes(e)}function Ee(e,t){return typeof t!="undefined"?Ot.translations[e].replace("#",t.toString()):Ot.translations[e]}function Se(e,t=document){return R(`[data-md-component=${e}]`,t)}function ae(e,t=document){return P(`[data-md-component=${e}]`,t)}function ka(e){let t=R(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>R(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function xn(e){if(!B("announce.dismiss")||!e.childElementCount)return S;if(!e.hidden){let t=R(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return C(()=>{let t=new g;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),ka(e).pipe(w(r=>t.next(r)),_(()=>t.complete()),m(r=>$({ref:e},r)))})}function Ha(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function En(e,t){let r=new g;return r.subscribe(({hidden:o})=>{e.hidden=o}),Ha(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))}function Rt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function wn(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function Tn(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Rt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Rt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function Sn(e){return x("button",{class:"md-clipboard md-icon",title:Ee("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}var Ln=Mt(qr());function Qr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(p=>!e.terms[p]).reduce((p,c)=>[...p,x("del",null,(0,Ln.default)(c))," "],[]).slice(0,-1),i=xe(),a=new URL(e.location,i.base);B("search.highlight")&&a.searchParams.set("h",Object.entries(e.terms).filter(([,p])=>p).reduce((p,[c])=>`${p} ${c}`.trim(),""));let{tags:s}=xe();return x("a",{href:`${a}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&x("nav",{class:"md-tags"},e.tags.map(p=>{let c=s?p in s?`md-tag-icon md-tag--${s[p]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${c}`},p)})),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Ee("search.result.term.missing"),": ",...n)))}function Mn(e){let t=e[0].score,r=[...e],o=xe(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),a=r.findIndex(l=>l.scoreQr(l,1)),...p.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,p.length>0&&p.length===1?Ee("search.result.more.one"):Ee("search.result.more.other",p.length))),...p.map(l=>Qr(l,1)))]:[]];return x("li",{class:"md-search-result__item"},c)}function _n(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?sr(r):r)))}function Kr(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function An(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function Ra(e){var o;let t=xe(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function Cn(e,t){var o;let r=xe();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Ee("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map(Ra)))}var Ia=0;function ja(e){let t=z([et(e),$t(e)]).pipe(m(([o,n])=>o||n),K()),r=C(()=>Zo(e)).pipe(ne(Ne),pt(1),He(t),m(()=>en(e)));return t.pipe(Ae(o=>o),v(()=>z([t,r])),m(([o,n])=>({active:o,offset:n})),pe())}function Fa(e,t){let{content$:r,viewport$:o}=t,n=`__tooltip2_${Ia++}`;return C(()=>{let i=new g,a=new _r(!1);i.pipe(Z(),ie(!1)).subscribe(a);let s=a.pipe(Ht(c=>Le(+!c*250,kr)),K(),v(c=>c?r:S),w(c=>c.id=n),pe());z([i.pipe(m(({active:c})=>c)),s.pipe(v(c=>$t(c,250)),Q(!1))]).pipe(m(c=>c.some(l=>l))).subscribe(a);let p=a.pipe(b(c=>c),re(s,o),m(([c,l,{size:f}])=>{let u=e.getBoundingClientRect(),d=u.width/2;if(l.role==="tooltip")return{x:d,y:8+u.height};if(u.y>=f.height/2){let{height:y}=ce(l);return{x:d,y:-16-y}}else return{x:d,y:16+u.height}}));return z([s,i,p]).subscribe(([c,{offset:l},f])=>{c.style.setProperty("--md-tooltip-host-x",`${l.x}px`),c.style.setProperty("--md-tooltip-host-y",`${l.y}px`),c.style.setProperty("--md-tooltip-x",`${f.x}px`),c.style.setProperty("--md-tooltip-y",`${f.y}px`),c.classList.toggle("md-tooltip2--top",f.y<0),c.classList.toggle("md-tooltip2--bottom",f.y>=0)}),a.pipe(b(c=>c),re(s,(c,l)=>l),b(c=>c.role==="tooltip")).subscribe(c=>{let l=ce(R(":scope > *",c));c.style.setProperty("--md-tooltip-width",`${l.width}px`),c.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(K(),ve(me),re(s)).subscribe(([c,l])=>{l.classList.toggle("md-tooltip2--active",c)}),z([a.pipe(b(c=>c)),s]).subscribe(([c,l])=>{l.role==="dialog"?(e.setAttribute("aria-controls",n),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",n)}),a.pipe(b(c=>!c)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),ja(e).pipe(w(c=>i.next(c)),_(()=>i.complete()),m(c=>$({ref:e},c)))})}function mt(e,{viewport$:t},r=document.body){return Fa(e,{content$:new j(o=>{let n=e.title,i=wn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t})}function Ua(e,t){let r=C(()=>z([tn(e),Ne(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:a,height:s}=ce(e);return{x:o-i.x+a/2,y:n-i.y+s/2}}));return et(e).pipe(v(o=>r.pipe(m(n=>({active:o,offset:n})),Te(+!o||1/0))))}function kn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return C(()=>{let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({offset:s}){e.style.setProperty("--md-tooltip-x",`${s.x}px`),e.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),tt(e).pipe(W(a)).subscribe(s=>{e.toggleAttribute("data-md-visible",s)}),O(i.pipe(b(({active:s})=>s)),i.pipe(_e(250),b(({active:s})=>!s))).subscribe({next({active:s}){s?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Me(16,me)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?e.style.setProperty("--md-tooltip-0",`${-s}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(W(a),b(s=>!(s.metaKey||s.ctrlKey))).subscribe(s=>{s.stopPropagation(),s.preventDefault()}),h(n,"mousedown").pipe(W(a),re(i)).subscribe(([s,{active:p}])=>{var c;if(s.button!==0||s.metaKey||s.ctrlKey)s.preventDefault();else if(p){s.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(c=Ie())==null||c.blur()}}),r.pipe(W(a),b(s=>s===o),Ge(125)).subscribe(()=>e.focus()),Ua(e,t).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function Wa(e){return e.tagName==="CODE"?P(".c, .c1, .cm",e):[e]}function Da(e){let t=[];for(let r of Wa(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let a;for(;a=/(\(\d+\))(!)?/.exec(i.textContent);){let[,s,p]=a;if(typeof p=="undefined"){let c=i.splitText(a.index);i=c.splitText(s.length),t.push(c)}else{i.textContent=s,t.push(i);break}}}}return t}function Hn(e,t){t.append(...Array.from(e.childNodes))}function fr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,a=new Map;for(let s of Da(t)){let[,p]=s.textContent.match(/\((\d+)\)/);fe(`:scope > li:nth-child(${p})`,e)&&(a.set(p,Tn(p,i)),s.replaceWith(a.get(p)))}return a.size===0?S:C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=[];for(let[l,f]of a)c.push([R(".md-typeset",f),R(`:scope > li:nth-child(${l})`,e)]);return o.pipe(W(p)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of c)l?Hn(f,u):Hn(u,f)}),O(...[...a].map(([,l])=>kn(l,t,{target$:r}))).pipe(_(()=>s.complete()),pe())})}function $n(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return $n(t)}}function Pn(e,t){return C(()=>{let r=$n(e);return typeof r!="undefined"?fr(r,e,t):S})}var Rn=Mt(Br());var Va=0;function In(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return In(t)}}function Na(e){return ge(e).pipe(m(({width:t})=>({scrollable:St(e).width>t})),ee("scrollable"))}function jn(e,t){let{matches:r}=matchMedia("(hover)"),o=C(()=>{let n=new g,i=n.pipe(jr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let a=[];if(Rn.default.isSupported()&&(e.closest(".copy")||B("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Va++}`;let l=Sn(c.id);c.insertBefore(l,e),B("content.tooltips")&&a.push(mt(l,{viewport$}))}let s=e.closest(".highlight");if(s instanceof HTMLElement){let c=In(s);if(typeof c!="undefined"&&(s.classList.contains("annotate")||B("content.code.annotate"))){let l=fr(c,e,t);a.push(ge(s).pipe(W(i),m(({width:f,height:u})=>f&&u),K(),v(f=>f?l:S)))}}return P(":scope > span[id]",e).length&&e.classList.add("md-code__content"),Na(e).pipe(w(c=>n.next(c)),_(()=>n.complete()),m(c=>$({ref:e},c)),Re(...a))});return B("content.lazy")?tt(e).pipe(b(n=>n),Te(1),v(()=>o)):o}function za(e,{target$:t,print$:r}){let o=!0;return O(t.pipe(m(n=>n.closest("details:not([open])")),b(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(b(n=>n||!o),w(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Fn(e,t){return C(()=>{let r=new g;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),za(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}var Un=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel p,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel p{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.attributeBoxEven,.attributeBoxOdd{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Gr,Qa=0;function Ka(){return typeof mermaid=="undefined"||mermaid instanceof Element?Tt("https://unpkg.com/mermaid@11/dist/mermaid.min.js"):I(void 0)}function Wn(e){return e.classList.remove("mermaid"),Gr||(Gr=Ka().pipe(w(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Un,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),G(1))),Gr.subscribe(()=>co(this,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${Qa++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),a=r.attachShadow({mode:"closed"});a.innerHTML=n,e.replaceWith(r),i==null||i(a)})),Gr.pipe(m(()=>({ref:e})))}var Dn=x("table");function Vn(e){return e.replaceWith(Dn),Dn.replaceWith(An(e)),I({ref:e})}function Ya(e){let t=e.find(r=>r.checked)||e[0];return O(...e.map(r=>h(r,"change").pipe(m(()=>R(`label[for="${r.id}"]`))))).pipe(Q(R(`label[for="${t.id}"]`)),m(r=>({active:r})))}function Nn(e,{viewport$:t,target$:r}){let o=R(".tabbed-labels",e),n=P(":scope > input",e),i=Kr("prev");e.append(i);let a=Kr("next");return e.append(a),C(()=>{let s=new g,p=s.pipe(Z(),ie(!0));z([s,ge(e),tt(e)]).pipe(W(p),Me(1,me)).subscribe({next([{active:c},l]){let f=Ve(c),{width:u}=ce(c);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=pr(o);(f.xd.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),z([Ne(o),ge(o)]).pipe(W(p)).subscribe(([c,l])=>{let f=St(o);i.hidden=c.x<16,a.hidden=c.x>f.width-l.width-16}),O(h(i,"click").pipe(m(()=>-1)),h(a,"click").pipe(m(()=>1))).pipe(W(p)).subscribe(c=>{let{width:l}=ce(o);o.scrollBy({left:l*c,behavior:"smooth"})}),r.pipe(W(p),b(c=>n.includes(c))).subscribe(c=>c.click()),o.classList.add("tabbed-labels--linked");for(let c of n){let l=R(`label[for="${c.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(W(p),b(f=>!(f.metaKey||f.ctrlKey)),w(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return B("content.tabs.link")&&s.pipe(Ce(1),re(t)).subscribe(([{active:c},{offset:l}])=>{let f=c.innerText.trim();if(c.hasAttribute("data-md-switching"))c.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let y of P("[data-tabs]"))for(let L of P(":scope > input",y)){let X=R(`label[for="${L.id}"]`);if(X!==c&&X.innerText.trim()===f){X.setAttribute("data-md-switching",""),L.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),s.pipe(W(p)).subscribe(()=>{for(let c of P("audio, video",e))c.pause()}),Ya(n).pipe(w(c=>s.next(c)),_(()=>s.complete()),m(c=>$({ref:e},c)))}).pipe(Ke(se))}function zn(e,{viewport$:t,target$:r,print$:o}){return O(...P(".annotate:not(.highlight)",e).map(n=>Pn(n,{target$:r,print$:o})),...P("pre:not(.mermaid) > code",e).map(n=>jn(n,{target$:r,print$:o})),...P("pre.mermaid",e).map(n=>Wn(n)),...P("table:not([class])",e).map(n=>Vn(n)),...P("details",e).map(n=>Fn(n,{target$:r,print$:o})),...P("[data-tabs]",e).map(n=>Nn(n,{viewport$:t,target$:r})),...P("[title]",e).filter(()=>B("content.tooltips")).map(n=>mt(n,{viewport$:t})))}function Ba(e,{alert$:t}){return t.pipe(v(r=>O(I(!0),I(!1).pipe(Ge(2e3))).pipe(m(o=>({message:r,active:o})))))}function qn(e,t){let r=R(".md-typeset",e);return C(()=>{let o=new g;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),Ba(e,t).pipe(w(n=>o.next(n)),_(()=>o.complete()),m(n=>$({ref:e},n)))})}var Ga=0;function Ja(e,t){document.body.append(e);let{width:r}=ce(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=cr(t),n=typeof o!="undefined"?Ne(o):I({x:0,y:0}),i=O(et(t),$t(t)).pipe(K());return z([i,n]).pipe(m(([a,s])=>{let{x:p,y:c}=Ve(t),l=ce(t),f=t.closest("table");return f&&t.parentElement&&(p+=f.offsetLeft+t.parentElement.offsetLeft,c+=f.offsetTop+t.parentElement.offsetTop),{active:a,offset:{x:p-s.x+l.width/2-r/2,y:c-s.y+l.height+8}}}))}function Qn(e){let t=e.title;if(!t.length)return S;let r=`__tooltip_${Ga++}`,o=Rt(r,"inline"),n=R(".md-typeset",o);return n.innerHTML=t,C(()=>{let i=new g;return i.subscribe({next({offset:a}){o.style.setProperty("--md-tooltip-x",`${a.x}px`),o.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),O(i.pipe(b(({active:a})=>a)),i.pipe(_e(250),b(({active:a})=>!a))).subscribe({next({active:a}){a?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe(Me(16,me)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?o.style.setProperty("--md-tooltip-0",`${-a}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Ja(o,e).pipe(w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))}).pipe(Ke(se))}function Xa({viewport$:e}){if(!B("header.autohide"))return I(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Be(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),K()),o=ze("search");return z([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),K(),v(n=>n?r:I(!1)),Q(!1))}function Kn(e,t){return C(()=>z([ge(e),Xa(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),K((r,o)=>r.height===o.height&&r.hidden===o.hidden),G(1))}function Yn(e,{header$:t,main$:r}){return C(()=>{let o=new g,n=o.pipe(Z(),ie(!0));o.pipe(ee("active"),He(t)).subscribe(([{active:a},{hidden:s}])=>{e.classList.toggle("md-header--shadow",a&&!s),e.hidden=s});let i=ue(P("[title]",e)).pipe(b(()=>B("content.tooltips")),ne(a=>Qn(a)));return r.subscribe(o),t.pipe(W(n),m(a=>$({ref:e},a)),Re(i.pipe(W(n))))})}function Za(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=ce(e);return{active:o>=n}}),ee("active"))}function Bn(e,t){return C(()=>{let r=new g;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=fe(".md-content h1");return typeof o=="undefined"?S:Za(o,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))})}function Gn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),K()),n=o.pipe(v(()=>ge(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),ee("bottom"))));return z([o,n,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:p},size:{height:c}}])=>(c=Math.max(0,c-Math.max(0,a-p,i)-Math.max(0,c+p-s)),{offset:a-i,height:c,active:a-i<=p})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function es(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return I(...e).pipe(ne(o=>h(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),G(1))}function Jn(e){let t=P("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=Pt("(prefers-color-scheme: light)");return C(()=>{let i=new g;return i.subscribe(a=>{if(document.body.setAttribute("data-md-color-switching",""),a.color.media==="(prefers-color-scheme)"){let s=matchMedia("(prefers-color-scheme: light)"),p=document.querySelector(s.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");a.color.scheme=p.getAttribute("data-md-color-scheme"),a.color.primary=p.getAttribute("data-md-color-primary"),a.color.accent=p.getAttribute("data-md-color-accent")}for(let[s,p]of Object.entries(a.color))document.body.setAttribute(`data-md-color-${s}`,p);for(let s=0;sa.key==="Enter"),re(i,(a,s)=>s)).subscribe(({index:a})=>{a=(a+1)%t.length,t[a].click(),t[a].focus()}),i.pipe(m(()=>{let a=Se("header"),s=window.getComputedStyle(a);return o.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(p=>(+p).toString(16).padStart(2,"0")).join("")})).subscribe(a=>r.content=`#${a}`),i.pipe(ve(se)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),es(t).pipe(W(n.pipe(Ce(1))),ct(),w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))})}function Xn(e,{progress$:t}){return C(()=>{let r=new g;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(w(o=>r.next({value:o})),_(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Jr=Mt(Br());function ts(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function Zn({alert$:e}){Jr.default.isSupported()&&new j(t=>{new Jr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||ts(R(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(w(t=>{t.trigger.focus()}),m(()=>Ee("clipboard.copied"))).subscribe(e)}function ei(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function rs(e,t){let r=new Map;for(let o of P("url",e)){let n=R("loc",o),i=[ei(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let a of P("[rel=alternate]",o)){let s=a.getAttribute("href");s!=null&&i.push(ei(new URL(s),t))}}return r}function ur(e){return un(new URL("sitemap.xml",e)).pipe(m(t=>rs(t,new URL(e))),de(()=>I(new Map)))}function os(e,t){if(!(e.target instanceof Element))return S;let r=e.target.closest("a");if(r===null)return S;if(r.target||e.metaKey||e.ctrlKey)return S;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),I(new URL(r.href))):S}function ti(e){let t=new Map;for(let r of P(":scope > *",e.head))t.set(r.outerHTML,r);return t}function ri(e){for(let t of P("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return I(e)}function ns(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...B("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=fe(o),i=fe(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=ti(document);for(let[o,n]of ti(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Se("container");return We(P("script",r)).pipe(v(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new j(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),S}),Z(),ie(document))}function oi({location$:e,viewport$:t,progress$:r}){let o=xe();if(location.protocol==="file:")return S;let n=ur(o.base);I(document).subscribe(ri);let i=h(document.body,"click").pipe(He(n),v(([p,c])=>os(p,c)),pe()),a=h(window,"popstate").pipe(m(ye),pe());i.pipe(re(t)).subscribe(([p,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",p)}),O(i,a).subscribe(e);let s=e.pipe(ee("pathname"),v(p=>fn(p,{progress$:r}).pipe(de(()=>(lt(p,!0),S)))),v(ri),v(ns),pe());return O(s.pipe(re(e,(p,c)=>c)),s.pipe(v(()=>e),ee("pathname"),v(()=>e),ee("hash")),e.pipe(K((p,c)=>p.pathname===c.pathname&&p.hash===c.hash),v(()=>i),w(()=>history.back()))).subscribe(p=>{var c,l;history.state!==null||!p.hash?window.scrollTo(0,(l=(c=history.state)==null?void 0:c.y)!=null?l:0):(history.scrollRestoration="auto",pn(p.hash),history.scrollRestoration="manual")}),e.subscribe(()=>{history.scrollRestoration="manual"}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),t.pipe(ee("offset"),_e(100)).subscribe(({offset:p})=>{history.replaceState(p,"")}),s}var ni=Mt(qr());function ii(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,a)=>`${i}${a}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(0,ni.default)(a).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function jt(e){return e.type===1}function dr(e){return e.type===3}function ai(e,t){let r=yn(e);return O(I(location.protocol!=="file:"),ze("search")).pipe(Ae(o=>o),v(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:B("search.suggest")}}})),r}function si(e){var l;let{selectedVersionSitemap:t,selectedVersionBaseURL:r,currentLocation:o,currentBaseURL:n}=e,i=(l=Xr(n))==null?void 0:l.pathname;if(i===void 0)return;let a=ss(o.pathname,i);if(a===void 0)return;let s=ps(t.keys());if(!t.has(s))return;let p=Xr(a,s);if(!p||!t.has(p.href))return;let c=Xr(a,r);if(c)return c.hash=o.hash,c.search=o.search,c}function Xr(e,t){try{return new URL(e,t)}catch(r){return}}function ss(e,t){if(e.startsWith(t))return e.slice(t.length)}function cs(e,t){let r=Math.min(e.length,t.length),o;for(o=0;oS)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:a,aliases:s})=>a===i||s.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),v(n=>h(document.body,"click").pipe(b(i=>!i.metaKey&&!i.ctrlKey),re(o),v(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&n.has(s.href)){let p=s.href;return!i.target.closest(".md-version")&&n.get(p)===a?S:(i.preventDefault(),I(new URL(p)))}}return S}),v(i=>ur(i).pipe(m(a=>{var s;return(s=si({selectedVersionSitemap:a,selectedVersionBaseURL:i,currentLocation:ye(),currentBaseURL:t.base}))!=null?s:i})))))).subscribe(n=>lt(n,!0)),z([r,o]).subscribe(([n,i])=>{R(".md-header__topic").appendChild(Cn(n,i))}),e.pipe(v(()=>o)).subscribe(n=>{var a;let i=__md_get("__outdated",sessionStorage);if(i===null){i=!0;let s=((a=t.version)==null?void 0:a.default)||"latest";Array.isArray(s)||(s=[s]);e:for(let p of s)for(let c of n.aliases.concat(n.version))if(new RegExp(p,"i").test(c)){i=!1;break e}__md_set("__outdated",i,sessionStorage)}if(i)for(let s of ae("outdated"))s.hidden=!1})}function ls(e,{worker$:t}){let{searchParams:r}=ye();r.has("q")&&(Je("search",!0),e.value=r.get("q"),e.focus(),ze("search").pipe(Ae(i=>!i)).subscribe(()=>{let i=ye();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=et(e),n=O(t.pipe(Ae(jt)),h(e,"keyup"),o).pipe(m(()=>e.value),K());return z([n,o]).pipe(m(([i,a])=>({value:i,focus:a})),G(1))}function pi(e,{worker$:t}){let r=new g,o=r.pipe(Z(),ie(!0));z([t.pipe(Ae(jt)),r],(i,a)=>a).pipe(ee("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(ee("focus")).subscribe(({focus:i})=>{i&&Je("search",i)}),h(e.form,"reset").pipe(W(o)).subscribe(()=>e.focus());let n=R("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),ls(e,{worker$:t}).pipe(w(i=>r.next(i)),_(()=>r.complete()),m(i=>$({ref:e},i)),G(1))}function li(e,{worker$:t,query$:r}){let o=new g,n=on(e.parentElement).pipe(b(Boolean)),i=e.parentElement,a=R(":scope > :first-child",e),s=R(":scope > :last-child",e);ze("search").subscribe(l=>s.setAttribute("role",l?"list":"presentation")),o.pipe(re(r),Wr(t.pipe(Ae(jt)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:a.textContent=f.length?Ee("search.result.none"):Ee("search.result.placeholder");break;case 1:a.textContent=Ee("search.result.one");break;default:let u=sr(l.length);a.textContent=Ee("search.result.other",u)}});let p=o.pipe(w(()=>s.innerHTML=""),v(({items:l})=>O(I(...l.slice(0,10)),I(...l.slice(10)).pipe(Be(4),Vr(n),v(([f])=>f)))),m(Mn),pe());return p.subscribe(l=>s.appendChild(l)),p.pipe(ne(l=>{let f=fe("details",l);return typeof f=="undefined"?S:h(f,"toggle").pipe(W(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(b(dr),m(({data:l})=>l)).pipe(w(l=>o.next(l)),_(()=>o.complete()),m(l=>$({ref:e},l)))}function ms(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=ye();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function mi(e,t){let r=new g,o=r.pipe(Z(),ie(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(W(o)).subscribe(n=>n.preventDefault()),ms(e,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))}function fi(e,{worker$:t,keyboard$:r}){let o=new g,n=Se("search-query"),i=O(h(n,"keydown"),h(n,"focus")).pipe(ve(se),m(()=>n.value),K());return o.pipe(He(i),m(([{suggest:s},p])=>{let c=p.split(/([\s-]+)/);if(s!=null&&s.length&&c[c.length-1]){let l=s[s.length-1];l.startsWith(c[c.length-1])&&(c[c.length-1]=l)}else c.length=0;return c})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(b(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(b(dr),m(({data:s})=>s)).pipe(w(s=>o.next(s)),_(()=>o.complete()),m(()=>({ref:e})))}function ui(e,{index$:t,keyboard$:r}){let o=xe();try{let n=ai(o.search,t),i=Se("search-query",e),a=Se("search-result",e);h(e,"click").pipe(b(({target:p})=>p instanceof Element&&!!p.closest("a"))).subscribe(()=>Je("search",!1)),r.pipe(b(({mode:p})=>p==="search")).subscribe(p=>{let c=Ie();switch(p.type){case"Enter":if(c===i){let l=new Map;for(let f of P(":first-child [href]",a)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}p.claim()}break;case"Escape":case"Tab":Je("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof c=="undefined")i.focus();else{let l=[i,...P(":not(details) > [href], summary, details[open] [href]",a)],f=Math.max(0,(Math.max(0,l.indexOf(c))+l.length+(p.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}p.claim();break;default:i!==Ie()&&i.focus()}}),r.pipe(b(({mode:p})=>p==="global")).subscribe(p=>{switch(p.type){case"f":case"s":case"/":i.focus(),i.select(),p.claim();break}});let s=pi(i,{worker$:n});return O(s,li(a,{worker$:n,query$:s})).pipe(Re(...ae("search-share",e).map(p=>mi(p,{query$:s})),...ae("search-suggest",e).map(p=>fi(p,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ye}}function di(e,{index$:t,location$:r}){return z([t,r.pipe(Q(ye()),b(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>ii(o.config)(n.searchParams.get("h"))),m(o=>{var a;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let p=s.textContent,c=o(p);c.length>p.length&&n.set(s,c)}for(let[s,p]of n){let{childNodes:c}=x("span",null,p);s.replaceWith(...Array.from(c))}return{ref:e,nodes:n}}))}function fs(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return z([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(n,Math.max(0,s-i))-n,{height:a,locked:s>=i+n})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function Zr(e,o){var n=o,{header$:t}=n,r=so(n,["header$"]);let i=R(".md-sidebar__scrollwrap",e),{y:a}=Ve(i);return C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=s.pipe(Me(0,me));return c.pipe(re(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*a}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),c.pipe(Ae()).subscribe(()=>{for(let l of P(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2})}}}),ue(P("label[tabindex]",e)).pipe(ne(l=>h(l,"click").pipe(ve(se),m(()=>l),W(p)))).subscribe(l=>{let f=R(`[id="${l.htmlFor}"]`);R(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),fs(e,r).pipe(w(l=>s.next(l)),_(()=>s.complete()),m(l=>$({ref:e},l)))})}function hi(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return st(je(`${r}/releases/latest`).pipe(de(()=>S),m(o=>({version:o.tag_name})),De({})),je(r).pipe(de(()=>S),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),De({}))).pipe(m(([o,n])=>$($({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return je(r).pipe(m(o=>({repositories:o.public_repos})),De({}))}}function bi(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return st(je(`${r}/releases/permalink/latest`).pipe(de(()=>S),m(({tag_name:o})=>({version:o})),De({})),je(r).pipe(de(()=>S),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),De({}))).pipe(m(([o,n])=>$($({},o),n)))}function vi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return hi(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return bi(r,o)}return S}var us;function ds(e){return us||(us=C(()=>{let t=__md_get("__source",sessionStorage);if(t)return I(t);if(ae("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return S}return vi(e.href).pipe(w(o=>__md_set("__source",o,sessionStorage)))}).pipe(de(()=>S),b(t=>Object.keys(t).length>0),m(t=>({facts:t})),G(1)))}function gi(e){let t=R(":scope > :last-child",e);return C(()=>{let r=new g;return r.subscribe(({facts:o})=>{t.appendChild(_n(o)),t.classList.add("md-source__repository--active")}),ds(e).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function hs(e,{viewport$:t,header$:r}){return ge(document.body).pipe(v(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),ee("hidden"))}function yi(e,t){return C(()=>{let r=new g;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(B("navigation.tabs.sticky")?I({hidden:!1}):hs(e,t)).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function bs(e,{viewport$:t,header$:r}){let o=new Map,n=P(".md-nav__link",e);for(let s of n){let p=decodeURIComponent(s.hash.substring(1)),c=fe(`[id="${p}"]`);typeof c!="undefined"&&o.set(s,c)}let i=r.pipe(ee("height"),m(({height:s})=>{let p=Se("main"),c=R(":scope > :first-child",p);return s+.8*(c.offsetTop-p.offsetTop)}),pe());return ge(document.body).pipe(ee("height"),v(s=>C(()=>{let p=[];return I([...o].reduce((c,[l,f])=>{for(;p.length&&o.get(p[p.length-1]).tagName>=f.tagName;)p.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return c.set([...p=[...p,l]].reverse(),u)},new Map))}).pipe(m(p=>new Map([...p].sort(([,c],[,l])=>c-l))),He(i),v(([p,c])=>t.pipe(Fr(([l,f],{offset:{y:u},size:d})=>{let y=u+d.height>=Math.floor(s.height);for(;f.length;){let[,L]=f[0];if(L-c=u&&!y)f=[l.pop(),...f];else break}return[l,f]},[[],[...p]]),K((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([s,p])=>({prev:s.map(([c])=>c),next:p.map(([c])=>c)})),Q({prev:[],next:[]}),Be(2,1),m(([s,p])=>s.prev.length{let i=new g,a=i.pipe(Z(),ie(!0));if(i.subscribe(({prev:s,next:p})=>{for(let[c]of p)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[l]]of s.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",c===s.length-1)}),B("toc.follow")){let s=O(t.pipe(_e(1),m(()=>{})),t.pipe(_e(250),m(()=>"smooth")));i.pipe(b(({prev:p})=>p.length>0),He(o.pipe(ve(se))),re(s)).subscribe(([[{prev:p}],c])=>{let[l]=p[p.length-1];if(l.offsetHeight){let f=cr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2,behavior:c})}}})}return B("navigation.tracking")&&t.pipe(W(a),ee("offset"),_e(250),Ce(1),W(n.pipe(Ce(1))),ct({delay:250}),re(i)).subscribe(([,{prev:s}])=>{let p=ye(),c=s[s.length-1];if(c&&c.length){let[l]=c,{hash:f}=new URL(l.href);p.hash!==f&&(p.hash=f,history.replaceState({},"",`${p}`))}else p.hash="",history.replaceState({},"",`${p}`)}),bs(e,{viewport$:t,header$:r}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function vs(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:a}})=>a),Be(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return z([i,n]).pipe(m(([a,s])=>!(a&&s)),K(),W(o.pipe(Ce(1))),ie(!0),ct({delay:250}),m(a=>({hidden:a})))}function Ei(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(W(a),ee("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),h(e,"click").subscribe(s=>{s.preventDefault(),window.scrollTo({top:0})}),vs(e,{viewport$:t,main$:o,target$:n}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))}function wi({document$:e,viewport$:t}){e.pipe(v(()=>P(".md-ellipsis")),ne(r=>tt(r).pipe(W(e.pipe(Ce(1))),b(o=>o),m(()=>r),Te(1))),b(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,B("content.tooltips")?mt(n,{viewport$:t}).pipe(W(e.pipe(Ce(1))),_(()=>n.removeAttribute("title"))):S})).subscribe(),B("content.tooltips")&&e.pipe(v(()=>P(".md-status")),ne(r=>mt(r,{viewport$:t}))).subscribe()}function Ti({document$:e,tablet$:t}){e.pipe(v(()=>P(".md-toggle--indeterminate")),w(r=>{r.indeterminate=!0,r.checked=!1}),ne(r=>h(r,"change").pipe(Dr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),re(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function gs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Si({document$:e}){e.pipe(v(()=>P("[data-md-scrollfix]")),w(t=>t.removeAttribute("data-md-scrollfix")),b(gs),ne(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Oi({viewport$:e,tablet$:t}){z([ze("search"),t]).pipe(m(([r,o])=>r&&!o),v(r=>I(r).pipe(Ge(r?400:100))),re(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function ys(){return location.protocol==="file:"?Tt(`${new URL("search/search_index.js",eo.base)}`).pipe(m(()=>__index),G(1)):je(new URL("search/search_index.json",eo.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ot=Go(),Ut=sn(),Lt=ln(Ut),to=an(),Oe=gn(),hr=Pt("(min-width: 960px)"),Mi=Pt("(min-width: 1220px)"),_i=mn(),eo=xe(),Ai=document.forms.namedItem("search")?ys():Ye,ro=new g;Zn({alert$:ro});var oo=new g;B("navigation.instant")&&oi({location$:Ut,viewport$:Oe,progress$:oo}).subscribe(ot);var Li;((Li=eo.version)==null?void 0:Li.provider)==="mike"&&ci({document$:ot});O(Ut,Lt).pipe(Ge(125)).subscribe(()=>{Je("drawer",!1),Je("search",!1)});to.pipe(b(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=fe("link[rel=prev]");typeof t!="undefined"&<(t);break;case"n":case".":let r=fe("link[rel=next]");typeof r!="undefined"&<(r);break;case"Enter":let o=Ie();o instanceof HTMLLabelElement&&o.click()}});wi({viewport$:Oe,document$:ot});Ti({document$:ot,tablet$:hr});Si({document$:ot});Oi({viewport$:Oe,tablet$:hr});var rt=Kn(Se("header"),{viewport$:Oe}),Ft=ot.pipe(m(()=>Se("main")),v(e=>Gn(e,{viewport$:Oe,header$:rt})),G(1)),xs=O(...ae("consent").map(e=>En(e,{target$:Lt})),...ae("dialog").map(e=>qn(e,{alert$:ro})),...ae("palette").map(e=>Jn(e)),...ae("progress").map(e=>Xn(e,{progress$:oo})),...ae("search").map(e=>ui(e,{index$:Ai,keyboard$:to})),...ae("source").map(e=>gi(e))),Es=C(()=>O(...ae("announce").map(e=>xn(e)),...ae("content").map(e=>zn(e,{viewport$:Oe,target$:Lt,print$:_i})),...ae("content").map(e=>B("search.highlight")?di(e,{index$:Ai,location$:Ut}):S),...ae("header").map(e=>Yn(e,{viewport$:Oe,header$:rt,main$:Ft})),...ae("header-title").map(e=>Bn(e,{viewport$:Oe,header$:rt})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Nr(Mi,()=>Zr(e,{viewport$:Oe,header$:rt,main$:Ft})):Nr(hr,()=>Zr(e,{viewport$:Oe,header$:rt,main$:Ft}))),...ae("tabs").map(e=>yi(e,{viewport$:Oe,header$:rt})),...ae("toc").map(e=>xi(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Lt})),...ae("top").map(e=>Ei(e,{viewport$:Oe,header$:rt,main$:Ft,target$:Lt})))),Ci=ot.pipe(v(()=>Es),Re(xs),G(1));Ci.subscribe();window.document$=ot;window.location$=Ut;window.target$=Lt;window.keyboard$=to;window.viewport$=Oe;window.tablet$=hr;window.screen$=Mi;window.print$=_i;window.alert$=ro;window.progress$=oo;window.component$=Ci;})(); +//# sourceMappingURL=bundle.83f73b43.min.js.map + diff --git a/assets/javascripts/bundle.83f73b43.min.js.map b/assets/javascripts/bundle.83f73b43.min.js.map new file mode 100644 index 0000000..fe920b7 --- /dev/null +++ b/assets/javascripts/bundle.83f73b43.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/escape-html/index.js", "node_modules/clipboard/dist/clipboard.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/tslib/tslib.es6.mjs", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/findurl/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\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[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*\n * Copyright (c) 2016-2024 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined),\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent\n * @param subscriber The stopped subscriber\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new observable\n * @nocollapse\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param operator the operator defining the operation to take on the observable\n * @return a new observable with the Operator applied\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {Subscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next a handler for each value emitted by the observable\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @nocollapse\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param bufferSize The size of the buffer to replay on subscription\n * @param windowTime The amount of time the buffered items will stay buffered\n * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler.\n * @return {void}\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n * @return {any}\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return {number} A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param {function(state: ?T): ?Subscription} work A function representing a\n * task, or some unit of work to be executed by the Scheduler.\n * @param {number} [delay] Time to wait before executing the work, where the\n * time unit is implicit and defined by the Scheduler itself.\n * @param {T} [state] Some contextual data that the `work` function uses when\n * called by the Scheduler.\n * @return {Subscription} A subscription in order to be able to unsubscribe\n * the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @type {boolean}\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @type {any}\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n const flushId = this._scheduled;\n this._scheduled = undefined;\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:

\n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an