import{idlePeriod as i}from"../../@polymer/polymer/lib/utils/async.js";import{Debouncer as a}from"../../@polymer/polymer/lib/utils/debounce.js";import{enqueueDebouncer as e}from"../../@polymer/polymer/lib/utils/flush.js";import{DirMixin as n}from"./vaadin-dir-mixin.js";import{usageStatistics as o}from"../vaadin-usage-statistics/vaadin-usage-statistics.js";let t;window.Vaadin||(window.Vaadin={}),window.Vaadin.registrations=window.Vaadin.registrations||[],window.Vaadin.developmentModeCallback=window.Vaadin.developmentModeCallback||{},window.Vaadin.developmentModeCallback["vaadin-usage-statistics"]=function(){o&&o()};const d=new Set;export const ElementMixin=o=>class VaadinElementMixin extends(n(o)){static finalize(){super.finalize();const{is:n}=this;n&&!d.has(n)&&(window.Vaadin.registrations.push(this),d.add(n),window.Vaadin.developmentModeCallback&&(t=a.debounce(t,i,(()=>{window.Vaadin.developmentModeCallback["vaadin-usage-statistics"]()})),e(t)))}constructor(){super(),null===document.doctype&&console.warn('Vaadin components require the "standards mode" declaration. Please add <!DOCTYPE html> to the HTML document.')}};