aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/web/api/customelementregistry/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/pt-br/web/api/customelementregistry/index.html')
-rw-r--r--files/pt-br/web/api/customelementregistry/index.html93
1 files changed, 93 insertions, 0 deletions
diff --git a/files/pt-br/web/api/customelementregistry/index.html b/files/pt-br/web/api/customelementregistry/index.html
new file mode 100644
index 0000000000..b1e3be4458
--- /dev/null
+++ b/files/pt-br/web/api/customelementregistry/index.html
@@ -0,0 +1,93 @@
+---
+title: CustomElementRegistry
+slug: Web/API/CustomElementRegistry
+translation_of: Web/API/CustomElementRegistry
+---
+<p>{{DefaultAPISidebar("Web Components")}}</p>
+
+<p><span class="seoSummary">A interface <strong><code>CustomElementRegistry</code></strong> provê métodos para registro de elementos customizados e busca de elementos registrados. Para instancia-lo, use a propriedade {{domxref("window.customElements")}}. </span></p>
+
+<h2 id="Métodos">Métodos</h2>
+
+<dl>
+ <dt>{{domxref("CustomElementRegistry.define()")}}</dt>
+ <dd>Define um novo <a href="/en-US/docs/Web/Web_Components/Custom_Elements">elemento customizado</a>.</dd>
+ <dt>{{domxref("CustomElementRegistry.get()")}}</dt>
+ <dd>Retorna o construtor do nome do elemento informado, ou <code>undefined</code> caso não tenha sido definido.</dd>
+ <dt>{{domxref("CustomElementRegistry.whenDefined()")}}</dt>
+ <dd>Retorna um {{jsxref("Promise", "promise")}} vazio que é resolvido quando o elemento customizado é inserido. Se o elemento já foi definido, o retorno ja é informado.</dd>
+</dl>
+
+<h2 id="Exemplos">Exemplos</h2>
+
+<p>O código a seguir foi pego do nosso <a href="https://github.com/mdn/web-components-examples/tree/master/word-count-web-component">word-count-web-component</a> exemplo (<a href="https://mdn.github.io/web-components-examples/word-count-web-component/">veja em ação</a>). Perceba que usamos o método {{domxref("CustomElementRegistry.define()")}} para definir um elemento customizado.</p>
+
+<pre class="brush: js">// Cria uma classe para o elemento
+class WordCount extends HTMLParagraphElement {
+ constructor() {
+ // Sempre execute primeiro o método super
+ super();
+
+ // Conta as palavras no elemento pai
+ var wcParent = this.parentNode;
+
+ function countWords(node){
+ var text = node.innerText || node.textContent
+ return text.split(/\s+/g).length;
+ }
+
+ var count = 'Words: ' + countWords(wcParent);
+
+ // Cria um shadow root
+ var shadow = this.attachShadow({mode: 'open'});
+
+ // Cria um nó de texto e adiciona o contador de palavra nele
+ var text = document.createElement('span');
+ text.textContent = count;
+
+ // Acrescenta ao shadow root
+ shadow.appendChild(text);
+
+
+ // Atualiza o contador quando houver mudança
+ setInterval(function() {
+ var count = 'Words: ' + countWords(wcParent);
+ text.textContent = count;
+ }, 200)
+
+ }
+}
+
+// Define um novo elemento
+customElements.define('word-count', WordCount, { extends: 'p' });</pre>
+
+<div class="note">
+<p>Note: The CustomElementsRegistry is available through the {{domxref("Window.customElements")}} property.</p>
+</div>
+
+<h2 id="Especificações">Especificações</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td>{{SpecName("HTML WHATWG", "custom-elements.html#customelementregistry", "CustomElementRegistry")}}</td>
+ <td>{{Spec2("HTML WHATWG")}}</td>
+ <td>Definição inicial</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilidade_de_navegadores">Compatibilidade de navegadores</h2>
+
+<p> </p>
+
+
+
+<p>{{Compat("api.CustomElementRegistry")}}</p>
+
+<p> </p>