@govbr-ds/webcomponents 2.0.0-next.59 → 2.0.0-next.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/br-button.br-icon.entry.cjs.js.map +1 -1
- package/dist/cjs/br-button_2.cjs.entry.js +1 -1
- package/dist/cjs/br-loading.cjs.entry.js +1 -1
- package/dist/cjs/br-loading.entry.cjs.js.map +1 -1
- package/dist/cjs/br-scrim.cjs.entry.js +31 -8
- package/dist/cjs/br-scrim.entry.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/webcomponents.cjs.js +1 -1
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/loading/loading.css +1 -1
- package/dist/collection/components/scrim/scrim.js +32 -9
- package/dist/collection/components/scrim/scrim.js.map +1 -1
- package/dist/components/br-breadcrumb.js +1 -1
- package/dist/components/br-button.js +1 -1
- package/dist/components/br-datetime-picker.js +2 -2
- package/dist/components/br-footer-social.js +1 -1
- package/dist/components/br-header-function.js +1 -1
- package/dist/components/br-header-list.js +1 -1
- package/dist/components/br-header.js +1 -1
- package/dist/components/br-input.js +1 -1
- package/dist/components/br-loading.js +5 -5
- package/dist/components/br-menu-header.js +1 -1
- package/dist/components/br-menu-social.js +1 -1
- package/dist/components/br-menu.js +1 -1
- package/dist/components/br-message.js +1 -1
- package/dist/components/br-modal.js +1 -1
- package/dist/components/br-pagination.js +3 -3
- package/dist/components/br-scrim.js +40 -17
- package/dist/components/br-scrim.js.map +1 -1
- package/dist/components/br-select.js +4 -4
- package/dist/components/br-skiplink-item.js +2 -2
- package/dist/components/br-step-item.js +3 -3
- package/dist/components/br-tag.js +4 -4
- package/dist/components/br-tooltip.js +1 -1
- package/dist/components/br-upload.js +1 -1
- package/dist/components/br-wizard.js +2 -2
- package/dist/components/{p-QZ49pYM4.js → p-C0cZs2IJ.js} +4 -4
- package/dist/components/{p-B7xyUEGI.js → p-CJRbqOtI.js} +3 -3
- package/dist/components/{p-JIYnQlb6.js → p-CT3o87ql.js} +3 -3
- package/dist/components/{p-D7Ten_tj.js → p-D3Hzp4nL.js} +3 -3
- package/dist/components/{p-BXt7yUZ9.js → p-D6-v-yTt.js} +3 -3
- package/dist/custom-elements.json +1060 -1041
- package/dist/esm/br-button.br-icon.entry.js.map +1 -1
- package/dist/esm/br-button_2.entry.js +1 -1
- package/dist/esm/br-loading.entry.js +1 -1
- package/dist/esm/br-loading.entry.js.map +1 -1
- package/dist/esm/br-scrim.entry.js +31 -8
- package/dist/esm/br-scrim.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/webcomponents.js +1 -1
- package/dist/hydrate/index.js +34 -11
- package/dist/hydrate/index.mjs +34 -11
- package/dist/types/components/scrim/scrim.d.ts +2 -0
- package/dist/webcomponents/br-button.br-icon.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-loading.entry.esm.js.map +1 -1
- package/dist/webcomponents/br-scrim.entry.esm.js.map +1 -1
- package/dist/webcomponents/{p-4dc26d38.entry.js → p-1e957173.entry.js} +38 -15
- package/dist/webcomponents/p-1e957173.entry.js.map +1 -0
- package/dist/webcomponents/{p-14741c23.entry.js → p-ce211246.entry.js} +2 -2
- package/dist/webcomponents/{p-5d1469bf.entry.js → p-d3873f0c.entry.js} +2 -2
- package/dist/webcomponents/webcomponents.esm.js +1 -1
- package/dist/webcomponents.html-custom-data.json +73 -73
- package/package.json +1 -1
- package/dist/webcomponents/p-4dc26d38.entry.js.map +0 -1
- /package/dist/components/{p-QZ49pYM4.js.map → p-C0cZs2IJ.js.map} +0 -0
- /package/dist/components/{p-B7xyUEGI.js.map → p-CJRbqOtI.js.map} +0 -0
- /package/dist/components/{p-JIYnQlb6.js.map → p-CT3o87ql.js.map} +0 -0
- /package/dist/components/{p-D7Ten_tj.js.map → p-D3Hzp4nL.js.map} +0 -0
- /package/dist/components/{p-BXt7yUZ9.js.map → p-D6-v-yTt.js.map} +0 -0
- /package/dist/webcomponents/{p-14741c23.entry.js.map → p-ce211246.entry.js.map} +0 -0
- /package/dist/webcomponents/{p-5d1469bf.entry.js.map → p-d3873f0c.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-loading.entry.esm.js","sources":["../../packages/webcomponents/src/components/loading/loading.scss?tag=br-loading&encapsulation=shadow","../../packages/webcomponents/src/components/loading/loading.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/loading/loading\";\n\n:host {\n display: block;\n\n .loading-progress-alignment {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/loading?tab=designer).\n */\n@Component({\n tag: 'br-loading',\n styleUrl: 'loading.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Loading {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrLoadingElement\n\n /**\n * Determina o tipo de indicador a ser exibido:\n * - Se verdadeiro, exibirá uma barra de progresso com a porcentagem de progresso.\n * - Se falso, exibirá um indicador de carregamento indeterminado.\n */\n @Prop({ reflect: true }) readonly isProgress: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-loading-${loadingId++}`\n\n /**\n * Define a porcentagem de progresso a ser exibida na barra de progresso.\n * Deve ser um valor numérico entre 0 e 100. Ignorado se `isProgress` estiver definido como falso.\n */\n @Prop({ reflect: true }) readonly progressPercent: number\n\n /**\n * Se verdadeiro, ajusta o tamanho do indicador de carregamento para o tamanho médio.\n */\n @Prop({ reflect: true }) readonly isMedium: boolean = false\n\n /**\n * Texto a ser exibido abaixo do indicador de carregamento.\n * Pode ser usado para fornecer informações adicionais ou descritivas sobre o estado do carregamento.\n */\n @Prop({ reflect: true }) readonly label: string\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-loading': true,\n medium: this.isMedium,\n }\n }\n\n render() {\n return (\n <Host>\n {this.isProgress ? (\n <div\n class={this.getCssClassMap()}\n role=\"progressbar\"\n data-progress={this.progressPercent}\n aria-label=\"Carregando exemplo com porcentagem\"\n aria-valuemin=\"0\"\n aria-valuenow={this.progressPercent}\n aria-valuemax=\"100\"\n id={this.customId}\n >\n <div class=\"br-loading-mask full\">\n <div class=\"br-loading-fill\"></div>\n </div>\n <div class=\"br-loading-mask\">\n <div class=\"br-loading-fill\"></div>\n </div>\n </div>\n ) : (\n <div class=\"loading-progress-alignment\">\n <div\n id={this.customId}\n class={this.getCssClassMap()}\n role=\"progressbar\"\n aria-label=\"Carregando exemplo indeterminado pequeno\"\n ></div>\n <span class=\"rotulo\">{this.label}</span>\n </div>\n )}\n </Host>\n )\n }\n}\n\nlet loadingId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"br-loading.entry.esm.js","sources":["../../packages/webcomponents/src/components/loading/loading.scss?tag=br-loading&encapsulation=shadow","../../packages/webcomponents/src/components/loading/loading.tsx"],"sourcesContent":["@import \"~@govbr-ds/core/src/components/loading/loading\";\n\n:host {\n display: block;\n\n .loading-progress-alignment {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n }\n}\n","import { Component, Element, h, Host, Prop } from '@stencil/core'\n\nimport { CssClassMap } from '../../utils/interfaces'\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/loading?tab=designer).\n */\n@Component({\n tag: 'br-loading',\n styleUrl: 'loading.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Loading {\n /**\n * Referência ao elemento host do componente.\n * Utilize esta propriedade para acessar e manipular o elemento do DOM associado ao componente.\n */\n @Element() el: HTMLBrLoadingElement\n\n /**\n * Determina o tipo de indicador a ser exibido:\n * - Se verdadeiro, exibirá uma barra de progresso com a porcentagem de progresso.\n * - Se falso, exibirá um indicador de carregamento indeterminado.\n */\n @Prop({ reflect: true }) readonly isProgress: boolean = false\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = `br-loading-${loadingId++}`\n\n /**\n * Define a porcentagem de progresso a ser exibida na barra de progresso.\n * Deve ser um valor numérico entre 0 e 100. Ignorado se `isProgress` estiver definido como falso.\n */\n @Prop({ reflect: true }) readonly progressPercent: number\n\n /**\n * Se verdadeiro, ajusta o tamanho do indicador de carregamento para o tamanho médio.\n */\n @Prop({ reflect: true }) readonly isMedium: boolean = false\n\n /**\n * Texto a ser exibido abaixo do indicador de carregamento.\n * Pode ser usado para fornecer informações adicionais ou descritivas sobre o estado do carregamento.\n */\n @Prop({ reflect: true }) readonly label: string\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-loading': true,\n medium: this.isMedium,\n }\n }\n\n render() {\n return (\n <Host>\n {this.isProgress ? (\n <div\n class={this.getCssClassMap()}\n role=\"progressbar\"\n data-progress={this.progressPercent}\n aria-label=\"Carregando exemplo com porcentagem\"\n aria-valuemin=\"0\"\n aria-valuenow={this.progressPercent}\n aria-valuemax=\"100\"\n id={this.customId}\n >\n <div class=\"br-loading-mask full\">\n <div class=\"br-loading-fill\"></div>\n </div>\n <div class=\"br-loading-mask\">\n <div class=\"br-loading-fill\"></div>\n </div>\n </div>\n ) : (\n <div class=\"loading-progress-alignment\">\n <div\n id={this.customId}\n class={this.getCssClassMap()}\n role=\"progressbar\"\n aria-label=\"Carregando exemplo indeterminado pequeno\"\n ></div>\n <span class=\"rotulo\">{this.label}</span>\n </div>\n )}\n </Host>\n )\n }\n}\n\nlet loadingId = 0\n"],"names":[],"mappings":";;;;;;AAAA,MAAM,UAAU,GAAG,og+BAAog+B;;MCY1g+B,OAAO,GAAA,MAAA;AANpB,IAAA,WAAA,CAAA,OAAA,EAAA;;AAaE;;;;AAIG;AAC+B,QAAA,IAAU,CAAA,UAAA,GAAY,KAAK;AAE7D;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,cAAc,SAAS,EAAE,EAAE;AAQhF;;AAEG;AAC+B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AAkD5D;IA1CS,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,IAAI,CAAC,QAAQ;SACtB;;IAGH,MAAM,GAAA;AACJ,QAAA,QACE,CAAC,CAAA,IAAI,uDACF,IAAI,CAAC,UAAU,IACd,WACE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,aAAa,mBACH,IAAI,CAAC,eAAe,EACxB,YAAA,EAAA,oCAAoC,mBACjC,GAAG,EAAA,eAAA,EACF,IAAI,CAAC,eAAe,mBACrB,KAAK,EACnB,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAA,EAEjB,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,sBAAsB,EAAA,EAC/B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,CAAO,CAC/B,EACN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EAC1B,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,iBAAiB,EAAA,CAAO,CAC/B,CACF,KAEN,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,4BAA4B,EAAA,EACrC,CAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,IAAI,EAAC,aAAa,EAAA,YAAA,EACP,0CAA0C,EAChD,CAAA,EACP,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,QAAQ,EAAA,EAAE,IAAI,CAAC,KAAK,CAAQ,CACpC,CACP,CACI;;;;;AAKb,IAAI,SAAS,GAAG,CAAC;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"br-scrim.entry.esm.js","sources":["../../packages/webcomponents/src/components/scrim/scrim.scss?tag=br-scrim&encapsulation=shadow","../../packages/webcomponents/src/components/scrim/scrim.tsx"],"sourcesContent":[":host {\n --br-scrim-opacity: 1;\n\n .br-scrim {\n visibility: hidden;\n transition: visibility 0.3s ease;\n z-index: var(--z-index-layer-4);\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n }\n\n .br-scrim.mode-fullscreen {\n position: fixed;\n inset: 0;\n }\n\n .br-scrim.mode-parent {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n }\n\n .br-scrim.opened {\n visibility: visible;\n pointer-events: auto;\n }\n\n .mask {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--surface-overlay-scrim);\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: auto;\n }\n\n .br-scrim.opened .mask {\n opacity: var(--br-scrim-opacity);\n }\n\n .content {\n position: relative;\n outline: none;\n pointer-events: auto;\n opacity: 0;\n transform: scale(0.9);\n transition:\n opacity 0.3s ease,\n transform 0.3s ease;\n background: transparent;\n padding: 0;\n margin: 0;\n border: none;\n box-shadow: none;\n overflow: visible;\n contain: none;\n display: inline-block;\n width: fit-content;\n height: fit-content;\n z-index: calc(var(--z-index-layer-4) + 1);\n\n &:focus {\n outline: var(--focus-outline);\n outline-offset: var(--focus-offset);\n box-shadow: var(--focus-shadow);\n }\n }\n\n .br-scrim.opened .content {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n }\n\n .br-scrim.position-top .content {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-bottom .content {\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-left .content {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-right .content {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-center .content {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .content ::slotted(*) {\n opacity: 1 !important;\n filter: none;\n }\n\n /* Estilos responsivos */\n @media (width <= 768px) {\n .content {\n max-width: 95%;\n max-height: 95%;\n width: auto;\n }\n\n .br-scrim.position-top .content,\n .br-scrim.position-bottom .content {\n width: 100%;\n max-width: 100%;\n border-radius: 0;\n }\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/scrim?tab=designer).\n *\n * @slot default - Elemento que será exibido junto com o Scrim, devendo ser fornecido através do slot. Esse elemento representa o conteúdo principal a ser destacado sobre o fundo escurecido.\n * @slot activator - Elemento que, quando clicado, ativa/desativa o scrim. Tem prioridade sobre a propriedade 'activator'.\n */\n@Component({\n tag: 'br-scrim',\n styleUrl: 'scrim.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Scrim {\n /**\n * Referência ao elemento host do componente.\n */\n @Element() el: HTMLBrScrimElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Ativa/desativa o scrim\n */\n @Prop({ reflect: true }) isOpen: boolean = false\n\n /**\n * Posiciona o conteúdo no topo, centro, direita, esquerda, abaixo dentro do scrim\n */\n @Prop() positionContent: 'top' | 'center' | 'right' | 'left' | 'bottom'\n\n /**\n * Desativa o fechamento do scrim ao ser clicado\n */\n @Prop() disableCloseOnClick: boolean = false\n\n /**\n * Define o valor de z-index do scrim\n */\n @Prop() zIndex: number | null = null\n\n /**\n * Cor de fundo personalizada para o scrim.\n * Aceita os seguintes formatos de cor:\n * - Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n * - Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n * - Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n * - Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n * - Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n * - Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\n * Se não especificada, usa a cor padrão do tema.\n */\n @Prop() bgColor: string | null = null\n\n /**\n * Define a opacidade personalizada do scrim\n */\n @Prop() customOpacity: number | null = null\n\n /**\n * Define o modo de exibição do scrim:\n * - 'fullscreen': Ocupa toda a tela (position: fixed).\n * - 'parent': Ocupa apenas o elemento pai (position: absolute).\n * O elemento pai deve ter `position: relative` ou outro valor de posicionamento diferente de `static`.\n */\n @Prop() displayMode: 'fullscreen' | 'parent' = 'fullscreen'\n\n /**\n * Define a estratégia de manipulação de rolagem quando scrim está aberto\n * - 'block': Impede a rolagem completamente\n * - 'close': Fecha o scrim quando ocorre rolagem\n */\n @Prop() scrollStrategy: 'block' | 'close'\n\n /**\n * Determina quanto de rolagem (em pixels) é necessário para acionar a ação de fechamento automático do scrim.\n */\n @Prop({ mutable: true }) scrollThreshold: number = 50\n\n /**\n * Define o seletor para o elemento activator.\n * Pode ser:\n * - Um seletor CSS (ex: '.button-class', '#button-id')\n * - A string 'parent' para usar o elemento pai como activator\n * Nota: O slot 'activator' tem prioridade sobre esta propriedade.\n */\n @Prop() activator: string | null = null\n\n /**\n * Define um rótulo acessível personalizado para o diálogo.\n * Se não fornecido, será usado \"Conteúdo do diálogo\" como padrão.\n */\n @Prop() ariaLabel: string | null = null\n\n /** Indica que o scrim foi aberto. */\n @Event() brScrimOpen: EventEmitter\n\n /** Indica que o scrim foi fechado */\n @Event() brScrimClose: EventEmitter\n\n @State() isActive: boolean = false\n @State() hasActivatorSlot: boolean = false\n\n // ======================================================================\n // PROPRIEDADES PRIVADAS E VARIÁVEIS INTERNAS\n // ======================================================================\n private contentRef: HTMLDivElement | null = null\n private activatorElement: HTMLElement | null = null\n private scrollOffset: number = 0\n private lastScrollTop: number = 0\n private previouslyFocusedElement: HTMLElement | null | undefined = null\n private focusTimeoutId: NodeJS.Timeout | null = null\n private restoreFocusTimeoutId: NodeJS.Timeout | null = null\n\n private static readonly FOCUSABLE_SELECTORS = [\n 'a[href]:not([disabled])',\n 'button:not([disabled])',\n 'br-button:not([disabled])',\n 'input:not([disabled])',\n 'br-input:not([disabled])',\n 'select:not([disabled])',\n 'br-select:not([disabled])',\n 'textarea:not([disabled])',\n 'br-textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',')\n\n // ======================================================================\n // LIFECYCLE HOOKS E WATCHERS\n // ======================================================================\n @Watch('isOpen')\n handleOpenChange(newValue: boolean) {\n // Cancelar qualquer timeout anterior\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n this.isActive = newValue\n this.updateStyles()\n\n if (this.isActive) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n this.focusTimeoutId = setTimeout(() => {\n this.focusFirstElement()\n }, 100)\n this.brScrimOpen.emit()\n } else {\n this.resetScrolling()\n this.removeGlobalEventInterception()\n this.restoreFocus()\n this.brScrimClose.emit()\n }\n }\n\n @Watch('zIndex')\n @Watch('bgColor')\n @Watch('customOpacity')\n updateStyles() {\n if (this.zIndex !== null && this.zIndex !== undefined) {\n this.el.style.zIndex = `${this.zIndex}`\n this.el.style.setProperty('--z-index-layer-4', `${this.zIndex}`)\n }\n if (this.bgColor !== null) {\n this.el.style.setProperty('--surface-overlay-scrim', this.bgColor)\n }\n if (this.customOpacity !== null) {\n this.el.style.setProperty('--br-scrim-opacity', `${this.customOpacity}`)\n }\n }\n\n @Watch('activator')\n handleActivatorChange() {\n this.removeActivatorClickListener()\n this.setupActivator()\n }\n\n componentWillLoad() {\n this.hasActivatorSlot = this.checkActivatorSlot('activator')\n this.isActive = this.isOpen\n }\n\n componentDidLoad() {\n this.updateStyles()\n this.setupActivator()\n this.setupActivatorSlotClick()\n this.addContentEventListener()\n\n if (this.isActive) {\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n this.focusFirstElement()\n }\n }\n\n /**\n * Adiciona event listener ao contentRef para capturar eventos de teclado\n * e gerenciar a navegação por teclado dentro do scrim.\n */\n private addContentEventListener() {\n if (this.contentRef !== null) {\n this.contentRef.addEventListener('keydown', this.handleKeyDown)\n }\n }\n\n connectedCallback() {\n if (this.scrollStrategy === 'close') {\n window.addEventListener('scroll', this.handleScrollClose)\n }\n }\n\n disconnectedCallback() {\n // Limpar timeouts pendentes\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n // Remover event listeners\n window.removeEventListener('scroll', this.handleScrollClose)\n window.removeEventListener('scroll', this.handleBlockScroll)\n if (this.contentRef !== null) {\n this.contentRef.removeEventListener('keydown', this.handleKeyDown)\n }\n this.removeActivatorClickListener()\n this.cleanupActivatorSlotClick()\n this.removeGlobalEventInterception()\n }\n\n // ======================================================================\n // GERENCIAMENTO DO ACTIVATOR (ELEMENTO ACIONADOR)\n // ======================================================================\n private checkActivatorSlot(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private setupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (slotEl === null || slotEl === undefined) return\n\n const assignedElements = slotEl.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const el = assignedElements[0] as HTMLElement\n if (el && typeof el.addEventListener === 'function') {\n el.addEventListener('click', this.handleActivatorClick)\n }\n } else if (assignedElements.length > 1) {\n console.warn('br-scrim: Slot \"activator\" deve conter apenas um elemento para aplicar o onClick automaticamente.')\n }\n }\n\n private setupActivator() {\n this.removeActivatorClickListener()\n this.activatorElement = null\n\n if (this.hasActivatorSlot || this.activator == null || this.activator === '') {\n return\n }\n\n if (this.activator === 'parent') {\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.activatorElement = parentElement\n }\n } else {\n try {\n const element = document.querySelector(this.activator)\n if (element instanceof HTMLElement) {\n this.activatorElement = element\n }\n } catch {\n console.warn(`br-scrim: Seletor activator inválido: ${this.activator}`)\n }\n }\n\n this.addActivatorClickListener()\n }\n\n private handleActivatorClick = () => {\n this.toggle()\n }\n\n private addActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.addEventListener('click', this.handleActivatorClick)\n }\n\n private removeActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.removeEventListener('click', this.handleActivatorClick)\n }\n\n private cleanupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n const assignedElements = slotEl?.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const element = assignedElements[0]\n if (element && typeof element.removeEventListener === 'function') {\n element.removeEventListener('click', this.handleActivatorClick)\n }\n }\n }\n\n // ======================================================================\n // ESTRATÉGIAS DE ROLAGEM (SCROLL)\n // ======================================================================\n private applyScrollStrategy() {\n if (this.scrollStrategy === 'block') {\n this.enableScrollBlock()\n } else if (this.scrollStrategy === 'close') {\n this.enableScrollWatcher()\n }\n }\n\n private enableScrollBlock() {\n this.scrollOffset = window.scrollY\n document.body.style.setProperty('position', 'fixed')\n document.body.style.setProperty('top', `-${this.scrollOffset}px`)\n document.body.style.setProperty('left', '0')\n document.body.style.setProperty('right', '0')\n document.body.style.setProperty('width', '100%')\n document.documentElement.style.setProperty('overflow', 'hidden')\n\n window.addEventListener('scroll', this.handleBlockScroll)\n }\n\n private enableScrollWatcher() {\n window.addEventListener('scroll', this.handleScrollClose)\n }\n\n private handleBlockScroll = (e: Event) => {\n if (this.scrollStrategy === 'block' && this.isActive) {\n window.scrollTo(0, this.scrollOffset)\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n private resetScrolling() {\n if (this.scrollStrategy === 'block') {\n document.body.style.removeProperty('position')\n document.body.style.removeProperty('top')\n document.body.style.removeProperty('left')\n document.body.style.removeProperty('right')\n document.body.style.removeProperty('width')\n document.documentElement.style.removeProperty('overflow')\n window.removeEventListener('scroll', this.handleBlockScroll)\n window.scrollTo(0, this.scrollOffset)\n }\n window.removeEventListener('scroll', this.handleScrollClose)\n }\n\n private handleScrollClose = () => {\n if (this.scrollStrategy === 'close' && this.isActive) {\n const currentScroll = window.scrollY\n if (Math.abs(currentScroll - this.lastScrollTop) > this.scrollThreshold) {\n this.handleOpenChange(false)\n }\n this.lastScrollTop = currentScroll\n }\n }\n\n // ======================================================================\n // ACESSIBILIDADE E GERENCIAMENTO DE FOCO\n // ======================================================================\n private focusFirstElement() {\n if (this.contentRef == null) return\n\n this.contentRef.setAttribute('tabindex', '-1')\n this.contentRef.focus()\n\n const focusableElements = this.getFocusableElements()\n\n if (focusableElements.length > 0) {\n const firstElement = focusableElements[0]\n if (firstElement !== null && firstElement !== undefined) {\n firstElement.scrollIntoView({ block: 'nearest', inline: 'nearest' })\n firstElement.focus({ preventScroll: true })\n }\n }\n }\n\n private restoreFocus() {\n let targetElement: HTMLElement | null = null\n\n if (this.previouslyFocusedElement instanceof HTMLElement && this.previouslyFocusedElement.isConnected) {\n targetElement = this.previouslyFocusedElement\n } else if (this.activatorElement instanceof HTMLElement) {\n targetElement = this.activatorElement\n } else {\n const slotEl = this.el.shadowRoot?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (this.hasActivatorSlot) {\n const assignedElements = slotEl.assignedElements?.() ?? []\n if (assignedElements.length > 0 && assignedElements[0] instanceof HTMLElement) {\n targetElement = assignedElements[0] as HTMLElement\n }\n }\n }\n\n if (targetElement !== null && targetElement !== undefined) {\n this.restoreFocusTimeoutId = setTimeout(() => {\n try {\n targetElement?.focus()\n } catch (error) {\n console.warn('br-scrim: Erro ao restaurar foco:', error)\n }\n }, 100)\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n if (this.contentRef == null) return []\n\n const defaultSlot = this.contentRef.querySelector('slot:not([name])') as HTMLSlotElement\n if (defaultSlot === null || defaultSlot === undefined) return []\n\n const assignedElements = defaultSlot.assignedElements({ flatten: true })\n const focusableElements: HTMLElement[] = []\n\n assignedElements.forEach((el) => {\n if (!(el instanceof HTMLElement)) return\n\n if (el.matches(Scrim.FOCUSABLE_SELECTORS)) {\n focusableElements.push(el)\n }\n\n const nestedFocusables = Array.from(el.querySelectorAll<HTMLElement>(Scrim.FOCUSABLE_SELECTORS))\n focusableElements.push(...nestedFocusables)\n })\n\n return this.filterVisibleElements(focusableElements)\n }\n\n private filterVisibleElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(\n (el) => el.offsetWidth > 0 && el.offsetHeight > 0 && getComputedStyle(el).visibility !== 'hidden'\n )\n }\n\n // ======================================================================\n // NAVEGAÇÃO POR TECLADO E INTERCEPTAÇÃO DE EVENTOS\n // ======================================================================\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n if (this.shouldHandleEscape(event)) {\n this.handleOpenChange(false)\n return\n }\n\n if (event.key === 'Tab') {\n this.handleTabNavigation(event)\n }\n }\n\n // Intercepta TODOS os eventos de teclado globalmente quando scrim está ativo\n private handleGlobalKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n this.focusFirstElement()\n return\n }\n\n if (event.key === 'Escape' && !this.disableCloseOnClick) {\n event.preventDefault()\n this.handleOpenChange(false)\n }\n }\n\n // Intercepta TODOS os eventos de clique globalmente quando scrim está ativo\n private handleGlobalClick = (event: MouseEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n if (!this.disableCloseOnClick) {\n this.close()\n }\n return\n }\n }\n\n /**\n * Intercepta eventos de foco globalmente\n */\n private handleGlobalFocus = (event: FocusEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n setTimeout(() => {\n this.focusFirstElement()\n }, 0)\n }\n }\n\n private shouldHandleEscape(event: KeyboardEvent): boolean {\n return (event.key === 'Escape' || event.key === 'Esc') && this.isActive && !this.disableCloseOnClick\n }\n\n private handleTabNavigation(event: KeyboardEvent): void {\n const focusableElements = this.getFocusableElements()\n if (focusableElements.length === 0) {\n event.preventDefault()\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n const isTabForward = !event.shiftKey\n\n if (this.shouldTrapFocus(isTabForward, firstElement, lastElement)) {\n event.preventDefault()\n this.wrapFocus(isTabForward, firstElement, lastElement)\n }\n }\n\n private shouldTrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): boolean {\n return (\n (isTabForward && document.activeElement === lastElement) ||\n (!isTabForward && document.activeElement === firstElement)\n )\n }\n\n private wrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): void {\n ;(isTabForward ? firstElement : lastElement).focus()\n }\n\n /**\n * Verifica se um elemento está dentro do scrim\n */\n private isElementInsideScrim(element: HTMLElement): boolean {\n if (this.el.contains(element)) {\n return true\n }\n\n return false\n }\n\n /**\n * Adiciona interceptação global de eventos\n */\n private addGlobalEventInterception() {\n // Intercepta eventos de teclado globalmente\n document.addEventListener('keydown', this.handleGlobalKeyDown, true)\n document.addEventListener('keyup', this.handleGlobalKeyDown, true)\n document.addEventListener('keypress', this.handleGlobalKeyDown, true)\n\n // Intercepta eventos de clique globalmente\n document.addEventListener('click', this.handleGlobalClick, true)\n document.addEventListener('mousedown', this.handleGlobalClick, true)\n document.addEventListener('mouseup', this.handleGlobalClick, true)\n\n // Intercepta eventos de foco\n document.addEventListener('focus', this.handleGlobalFocus, true)\n document.addEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n /**\n * Remove interceptação global de eventos\n */\n private removeGlobalEventInterception() {\n document.removeEventListener('keydown', this.handleGlobalKeyDown, true)\n document.removeEventListener('keyup', this.handleGlobalKeyDown, true)\n document.removeEventListener('keypress', this.handleGlobalKeyDown, true)\n\n document.removeEventListener('click', this.handleGlobalClick, true)\n document.removeEventListener('mousedown', this.handleGlobalClick, true)\n document.removeEventListener('mouseup', this.handleGlobalClick, true)\n\n document.removeEventListener('focus', this.handleGlobalFocus, true)\n document.removeEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n // ======================================================================\n // MANIPULAÇÃO DE EVENTOS E UTILITÁRIOS\n // ======================================================================\n private handleMaskClick = (_event: MouseEvent) => {\n if (!this.disableCloseOnClick) {\n this.close()\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-scrim': true,\n opened: this.isActive,\n 'scroll-block': this.scrollStrategy === 'block',\n 'position-top': this.positionContent === 'top',\n 'position-bottom': this.positionContent === 'bottom',\n 'position-left': this.positionContent === 'left',\n 'position-right': this.positionContent === 'right',\n 'position-center': this.positionContent === 'center',\n 'mode-fullscreen': this.displayMode === 'fullscreen',\n 'mode-parent': this.displayMode === 'parent',\n }\n }\n\n // ======================================================================\n // MÉTODOS PÚBLICOS (API)\n // ======================================================================\n /**\n * Define o limite de rolagem para o fechamento automático do scrim.\n */\n @Method()\n async setScrollThreshold(threshold: number) {\n this.scrollThreshold = threshold\n }\n\n /**\n * Método público para exibir o scrim\n */\n @Method()\n async open() {\n this.handleOpenChange(true)\n }\n\n /**\n * Método público para esconder o scrim\n */\n @Method()\n async close() {\n this.handleOpenChange(false)\n }\n\n /**\n * Método público para alternar o estado de exibição do scrim\n */\n @Method()\n async toggle() {\n this.handleOpenChange(!this.isActive)\n }\n\n render() {\n return (\n <Host>\n <slot name=\"activator\"></slot>\n <div\n class={this.getCssClassMap()}\n id={this.customId}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.ariaLabel || 'Conteúdo do diálogo'}\n data-visible={this.isActive ? 'true' : 'false'}\n >\n <div class=\"mask\" onClick={this.handleMaskClick}></div>\n <div\n ref={(el) => (this.contentRef = el)}\n id={`${this.customId}-content`}\n class=\"content\"\n tabIndex={-1}\n onKeyDown={this.handleKeyDown}\n >\n <slot></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAAA,MAAM,QAAQ,GAAG,yueAAyue;;MC6B7ue,KAAK,GAAA,MAAA;AANlB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;;;;;;;AAcE;;;AAGG;AAC+B,QAAA,IAAA,CAAA,QAAQ,GAAW,OAAO,CAAC,gBAAgB,EAAE;AAE/E;;AAEG;AACsB,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK;AAOhD;;AAEG;AACK,QAAA,IAAmB,CAAA,mBAAA,GAAY,KAAK;AAE5C;;AAEG;AACK,QAAA,IAAM,CAAA,MAAA,GAAkB,IAAI;AAEpC;;;;;;;;;;AAUG;AACK,QAAA,IAAO,CAAA,OAAA,GAAkB,IAAI;AAErC;;AAEG;AACK,QAAA,IAAa,CAAA,aAAA,GAAkB,IAAI;AAE3C;;;;;AAKG;AACK,QAAA,IAAW,CAAA,WAAA,GAA4B,YAAY;AAS3D;;AAEG;AACsB,QAAA,IAAe,CAAA,eAAA,GAAW,EAAE;AAErD;;;;;;AAMG;AACK,QAAA,IAAS,CAAA,SAAA,GAAkB,IAAI;AAEvC;;;AAGG;AACK,QAAA,IAAS,CAAA,SAAA,GAAkB,IAAI;AAQ9B,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK;AACzB,QAAA,IAAgB,CAAA,gBAAA,GAAY,KAAK;;;;AAKlC,QAAA,IAAU,CAAA,UAAA,GAA0B,IAAI;AACxC,QAAA,IAAgB,CAAA,gBAAA,GAAuB,IAAI;AAC3C,QAAA,IAAY,CAAA,YAAA,GAAW,CAAC;AACxB,QAAA,IAAa,CAAA,aAAA,GAAW,CAAC;AACzB,QAAA,IAAwB,CAAA,wBAAA,GAAmC,IAAI;AAC/D,QAAA,IAAc,CAAA,cAAA,GAA0B,IAAI;AAC5C,QAAA,IAAqB,CAAA,qBAAA,GAA0B,IAAI;AAmLnD,QAAA,IAAoB,CAAA,oBAAA,GAAG,MAAK;YAClC,IAAI,CAAC,MAAM,EAAE;AACf,SAAC;AAqDO,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,CAAQ,KAAI;YACvC,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACpD,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;gBACrC,CAAC,CAAC,cAAc,EAAE;gBAClB,CAAC,CAAC,eAAe,EAAE;;AAEvB,SAAC;AAgBO,QAAA,IAAiB,CAAA,iBAAA,GAAG,MAAK;YAC/B,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACpD,gBAAA,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO;AACpC,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE;AACvE,oBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;;AAE9B,gBAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AAEtC,SAAC;;;;AAkFO,QAAA,IAAA,CAAA,aAAa,GAAG,CAAC,KAAoB,KAAI;YAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE;AAEpB,YAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBAC5B;;AAGF,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;AACvB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;;AAEnC,SAAC;;AAGO,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAoB,KAAI;YACrD,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE;AAEpB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;YAE1C,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE;gBACtC,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;gBACvB,KAAK,CAAC,wBAAwB,EAAE;gBAEhC,IAAI,CAAC,iBAAiB,EAAE;gBACxB;;YAGF,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBACvD,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;;AAEhC,SAAC;;AAGO,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,KAAiB,KAAI;YAChD,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE;AAEpB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;YAE1C,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE;gBACtC,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;gBACvB,KAAK,CAAC,wBAAwB,EAAE;AAEhC,gBAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;oBAC7B,IAAI,CAAC,KAAK,EAAE;;gBAEd;;AAEJ,SAAC;AAED;;AAEG;AACK,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,KAAiB,KAAI;YAChD,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE;AAEpB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;YAE1C,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE;gBACtC,KAAK,CAAC,cAAc,EAAE;gBACtB,KAAK,CAAC,eAAe,EAAE;gBACvB,KAAK,CAAC,wBAAwB,EAAE;gBAEhC,UAAU,CAAC,MAAK;oBACd,IAAI,CAAC,iBAAiB,EAAE;iBACzB,EAAE,CAAC,CAAC;;AAET,SAAC;;;;AAmFO,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,MAAkB,KAAI;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC7B,IAAI,CAAC,KAAK,EAAE;;AAEhB,SAAC;AA8EF;;;;AAjjBC,IAAA,gBAAgB,CAAC,QAAiB,EAAA;;AAEhC,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;AAChC,YAAA,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;AAE5B,QAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE;AACvC,YAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACxC,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;;AAGnC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACxB,IAAI,CAAC,YAAY,EAAE;AAEnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC,aAA4B;YACrE,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,0BAA0B,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,MAAK;gBACpC,IAAI,CAAC,iBAAiB,EAAE;aACzB,EAAE,GAAG,CAAC;AACP,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;;aAClB;YACL,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,6BAA6B,EAAE;YACpC,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;;;IAO5B,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AACrD,YAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,CAAE;AACvC,YAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;;AAElE,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC;;AAEpE,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;AAC/B,YAAA,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,aAAa,CAAA,CAAE,CAAC;;;IAK5E,qBAAqB,GAAA;QACnB,IAAI,CAAC,4BAA4B,EAAE;QACnC,IAAI,CAAC,cAAc,EAAE;;IAGvB,iBAAiB,GAAA;QACf,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;AAC5D,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM;;IAG7B,gBAAgB,GAAA;QACd,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,uBAAuB,EAAE;QAC9B,IAAI,CAAC,uBAAuB,EAAE;AAE9B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,0BAA0B,EAAE;YACjC,IAAI,CAAC,iBAAiB,EAAE;;;AAI5B;;;AAGG;IACK,uBAAuB,GAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;;;IAInE,iBAAiB,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE;YACnC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;;;IAI7D,oBAAoB,GAAA;;AAElB,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE;AAChC,YAAA,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI;;AAE5B,QAAA,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE;AACvC,YAAA,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACxC,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI;;;QAInC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;QAC5D,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;AAC5D,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;;QAEpE,IAAI,CAAC,4BAA4B,EAAE;QACnC,IAAI,CAAC,yBAAyB,EAAE;QAChC,IAAI,CAAC,6BAA6B,EAAE;;;;;AAM9B,IAAA,kBAAkB,CAAC,QAAgB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAU,OAAA,EAAA,QAAQ,CAAI,EAAA,CAAA,CAAC,KAAK,IAAI;;IAGvD,uBAAuB,GAAA;;AAC7B,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,IAAI;YAAE;AAEjC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,wBAAwB,CAAoB;AAC5F,QAAA,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YAAE;QAE7C,MAAM,gBAAgB,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAI,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE;AAE1D,QAAA,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAA,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAgB;YAC7C,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC,gBAAgB,KAAK,UAAU,EAAE;gBACnD,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC;;;AAEpD,aAAA,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC,YAAA,OAAO,CAAC,IAAI,CAAC,mGAAmG,CAAC;;;IAI7G,cAAc,GAAA;QACpB,IAAI,CAAC,4BAA4B,EAAE;AACnC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;AAE5B,QAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE;YAC5E;;AAGF,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC/B,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AAC3C,YAAA,IAAI,aAAa,KAAK,IAAI,EAAE;AAC1B,gBAAA,IAAI,CAAC,gBAAgB,GAAG,aAAa;;;aAElC;AACL,YAAA,IAAI;gBACF,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;AACtD,gBAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AAClC,oBAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO;;;YAEjC,OAAA,EAAA,EAAM;gBACN,OAAO,CAAC,IAAI,CAAC,CAAA,sCAAA,EAAyC,IAAI,CAAC,SAAS,CAAE,CAAA,CAAC;;;QAI3E,IAAI,CAAC,yBAAyB,EAAE;;IAO1B,yBAAyB,GAAA;QAC/B,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;YAAE;QAC3E,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC;;IAGpE,4BAA4B,GAAA;QAClC,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;YAAE;QAC3E,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC;;IAGvE,yBAAyB,GAAA;;AAC/B,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,IAAI;YAAE;AAEjC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,wBAAwB,CAAoB;AAC5F,QAAA,MAAM,gBAAgB,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,MAAA,GAAA,MAAA,GAAA,MAAM,CAAE,gBAAgB,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;AAE3D,QAAA,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAA,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC;YACnC,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,mBAAmB,KAAK,UAAU,EAAE;gBAChE,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,CAAC;;;;;;;IAQ7D,mBAAmB,GAAA;AACzB,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE;YACnC,IAAI,CAAC,iBAAiB,EAAE;;AACnB,aAAA,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE;YAC1C,IAAI,CAAC,mBAAmB,EAAE;;;IAItB,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO;QAClC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC;AACpD,QAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,YAAY,CAAA,EAAA,CAAI,CAAC;QACjE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC;QAC5C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC;QAChD,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC;QAEhE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;;IAGnD,mBAAmB,GAAA;QACzB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;;IAWnD,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO,EAAE;YACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC;YAC3C,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC;YACzD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;YAC5D,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;;QAEvC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC;;;;;IAgBtD,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;YAAE;QAE7B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;AAC9C,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;AAEvB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAErD,QAAA,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC;YACzC,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS,EAAE;AACvD,gBAAA,YAAY,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACpE,YAAY,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;;;;IAKzC,YAAY,GAAA;;QAClB,IAAI,aAAa,GAAuB,IAAI;AAE5C,QAAA,IAAI,IAAI,CAAC,wBAAwB,YAAY,WAAW,IAAI,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE;AACrG,YAAA,aAAa,GAAG,IAAI,CAAC,wBAAwB;;AACxC,aAAA,IAAI,IAAI,CAAC,gBAAgB,YAAY,WAAW,EAAE;AACvD,YAAA,aAAa,GAAG,IAAI,CAAC,gBAAgB;;aAChC;AACL,YAAA,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,EAAE,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,aAAa,CAAC,wBAAwB,CAAoB;AAC7F,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,MAAM,gBAAgB,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAM,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAI,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,EAAE;AAC1D,gBAAA,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,YAAY,WAAW,EAAE;AAC7E,oBAAA,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAgB;;;;QAKxD,IAAI,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAAE;AACzD,YAAA,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,MAAK;AAC3C,gBAAA,IAAI;AACF,oBAAA,aAAa,aAAb,aAAa,KAAA,MAAA,GAAA,MAAA,GAAb,aAAa,CAAE,KAAK,EAAE;;gBACtB,OAAO,KAAK,EAAE;AACd,oBAAA,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC;;aAE3D,EAAE,GAAG,CAAC;;;IAIH,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;AAAE,YAAA,OAAO,EAAE;QAEtC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAoB;AACxF,QAAA,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS;AAAE,YAAA,OAAO,EAAE;AAEhE,QAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACxE,MAAM,iBAAiB,GAAkB,EAAE;AAE3C,QAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;AAC9B,YAAA,IAAI,EAAE,EAAE,YAAY,WAAW,CAAC;gBAAE;YAElC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE;AACzC,gBAAA,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;;AAG5B,YAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAc,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAChG,YAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;AAC7C,SAAC,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC;;AAG9C,IAAA,qBAAqB,CAAC,QAAuB,EAAA;AACnD,QAAA,OAAO,QAAQ,CAAC,MAAM,CACpB,CAAC,EAAE,KAAK,EAAE,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,GAAG,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAC,UAAU,KAAK,QAAQ,CAClG;;AA6EK,IAAA,kBAAkB,CAAC,KAAoB,EAAA;QAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,mBAAmB;;AAG9F,IAAA,mBAAmB,CAAC,KAAoB,EAAA;AAC9C,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACrD,QAAA,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,KAAK,CAAC,cAAc,EAAE;YACtB;;AAGF,QAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;AACnE,QAAA,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,QAAQ;QAEpC,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE;YACjE,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC;;;AAInD,IAAA,eAAe,CAAC,YAAqB,EAAE,YAAyB,EAAE,WAAwB,EAAA;QAChG,QACE,CAAC,YAAY,IAAI,QAAQ,CAAC,aAAa,KAAK,WAAW;aACtD,CAAC,YAAY,IAAI,QAAQ,CAAC,aAAa,KAAK,YAAY,CAAC;;AAItD,IAAA,SAAS,CAAC,YAAqB,EAAE,YAAyB,EAAE,WAAwB,EAAA;AACzF,QAAA,CAAC,YAAY,GAAG,YAAY,GAAG,WAAW,EAAE,KAAK,EAAE;;AAGtD;;AAEG;AACK,IAAA,oBAAoB,CAAC,OAAoB,EAAA;QAC/C,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAA,OAAO,IAAI;;AAGb,QAAA,OAAO,KAAK;;AAGd;;AAEG;IACK,0BAA0B,GAAA;;QAEhC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;QACpE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;QAClE,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;;QAGrE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;QAChE,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;QACpE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;;QAGlE,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;QAChE,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;;AAGpE;;AAEG;IACK,6BAA6B,GAAA;QACnC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;QACvE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;QACrE,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC;QAExE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;QACnE,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;QACvE,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;QAErE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;QACnE,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC;;IAY/D,cAAc,GAAA;QACpB,OAAO;AACL,YAAA,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACrB,YAAA,cAAc,EAAE,IAAI,CAAC,cAAc,KAAK,OAAO;AAC/C,YAAA,cAAc,EAAE,IAAI,CAAC,eAAe,KAAK,KAAK;AAC9C,YAAA,iBAAiB,EAAE,IAAI,CAAC,eAAe,KAAK,QAAQ;AACpD,YAAA,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,MAAM;AAChD,YAAA,gBAAgB,EAAE,IAAI,CAAC,eAAe,KAAK,OAAO;AAClD,YAAA,iBAAiB,EAAE,IAAI,CAAC,eAAe,KAAK,QAAQ;AACpD,YAAA,iBAAiB,EAAE,IAAI,CAAC,WAAW,KAAK,YAAY;AACpD,YAAA,aAAa,EAAE,IAAI,CAAC,WAAW,KAAK,QAAQ;SAC7C;;;;;AAMH;;AAEG;AAEG,IAAA,kBAAkB,CAAC,SAAiB,EAAA;;AACxC,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS;AAClC,SAAC,CAAA;;AAED;;AAEG;IAEG,IAAI,GAAA;;AACR,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AAC7B,SAAC,CAAA;;AAED;;AAEG;IAEG,KAAK,GAAA;;AACT,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC9B,SAAC,CAAA;;AAED;;AAEG;IAEG,MAAM,GAAA;;YACV,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,SAAC,CAAA;;IAED,MAAM,GAAA;AACJ,QAAA,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,WAAW,EAAQ,CAAA,EAC9B,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAC5B,EAAE,EAAE,IAAI,CAAC,QAAQ,EACjB,IAAI,EAAC,QAAQ,EAAA,YAAA,EACF,MAAM,EAAA,YAAA,EACL,IAAI,CAAC,SAAS,IAAI,qBAAqB,kBACrC,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,EAAA,EAE9C,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAQ,CAAA,EACvD,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EACnC,EAAE,EAAE,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAU,QAAA,CAAA,EAC9B,KAAK,EAAC,SAAS,EACf,QAAQ,EAAE,EAAE,EACZ,SAAS,EAAE,IAAI,CAAC,aAAa,EAAA,EAE7B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAa,CACT,CACF,CACD;;;;;;;;;;;;AA/jBa,KAAA,CAAA,mBAAmB,GAAG;IAC5C,yBAAyB;IACzB,wBAAwB;IACxB,2BAA2B;IAC3B,uBAAuB;IACvB,0BAA0B;IAC1B,wBAAwB;IACxB,2BAA2B;IAC3B,0BAA0B;IAC1B,6BAA6B;IAC7B,iCAAiC;AAClC,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;"}
|
|
1
|
+
{"version":3,"file":"br-scrim.entry.esm.js","sources":["../../packages/webcomponents/src/components/scrim/scrim.scss?tag=br-scrim&encapsulation=shadow","../../packages/webcomponents/src/components/scrim/scrim.tsx"],"sourcesContent":[":host {\n --br-scrim-opacity: 1;\n\n .br-scrim {\n visibility: hidden;\n transition: visibility 0.3s ease;\n z-index: var(--z-index-layer-4);\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n }\n\n .br-scrim.mode-fullscreen {\n position: fixed;\n inset: 0;\n }\n\n .br-scrim.mode-parent {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n }\n\n .br-scrim.opened {\n visibility: visible;\n pointer-events: auto;\n }\n\n .mask {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: var(--surface-overlay-scrim);\n opacity: 0;\n transition: opacity 0.3s ease;\n pointer-events: auto;\n }\n\n .br-scrim.opened .mask {\n opacity: var(--br-scrim-opacity);\n }\n\n .content {\n position: relative;\n outline: none;\n pointer-events: auto;\n opacity: 0;\n transform: scale(0.9);\n transition:\n opacity 0.3s ease,\n transform 0.3s ease;\n background: transparent;\n padding: 0;\n margin: 0;\n border: none;\n box-shadow: none;\n overflow: visible;\n contain: none;\n display: inline-block;\n width: fit-content;\n height: fit-content;\n z-index: calc(var(--z-index-layer-4) + 1);\n\n &:focus {\n outline: var(--focus-outline);\n outline-offset: var(--focus-offset);\n box-shadow: var(--focus-shadow);\n }\n }\n\n .br-scrim.opened .content {\n opacity: 1;\n transform: scale(1);\n pointer-events: auto;\n }\n\n .br-scrim.position-top .content {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-bottom .content {\n position: absolute;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n }\n\n .br-scrim.position-left .content {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-right .content {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n }\n\n .br-scrim.position-center .content {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .content ::slotted(*) {\n opacity: 1 !important;\n filter: none;\n }\n\n /* Estilos responsivos */\n @media (width <= 768px) {\n .content {\n max-width: 95%;\n max-height: 95%;\n width: auto;\n }\n\n .br-scrim.position-top .content,\n .br-scrim.position-bottom .content {\n width: 100%;\n max-width: 100%;\n border-radius: 0;\n }\n }\n}\n","import {\n AttachInternals,\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport Helpers from '../../utils/helpers'\nimport { CssClassMap } from '../../utils/interfaces'\n\n/**\n * Para uma descrição detalhada, consulte a [documentação do GovBR-DS](https://www.gov.br/ds/components/scrim?tab=designer).\n *\n * @slot default - Elemento que será exibido junto com o Scrim, devendo ser fornecido através do slot. Esse elemento representa o conteúdo principal a ser destacado sobre o fundo escurecido.\n * @slot activator - Elemento que, quando clicado, ativa/desativa o scrim. Tem prioridade sobre a propriedade 'activator'.\n */\n@Component({\n tag: 'br-scrim',\n styleUrl: 'scrim.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class Scrim {\n /**\n * Referência ao elemento host do componente.\n */\n @Element() el: HTMLBrScrimElement\n\n @AttachInternals() elementInternals: ElementInternals\n\n /**\n * Identificador único.\n * Caso não seja fornecido, um ID gerado automaticamente será usado.\n */\n @Prop({ reflect: true }) readonly customId: string = Helpers.generateUniqueId()\n\n /**\n * Ativa/desativa o scrim\n */\n @Prop({ reflect: true, mutable: true }) isOpen: boolean = false\n\n /**\n * Posiciona o conteúdo no topo, centro, direita, esquerda, abaixo dentro do scrim\n */\n @Prop() positionContent: 'top' | 'center' | 'right' | 'left' | 'bottom'\n\n /**\n * Desativa o fechamento do scrim ao ser clicado\n */\n @Prop() disableCloseOnClick: boolean = false\n\n /**\n * Define o valor de z-index do scrim\n */\n @Prop() zIndex: number | null = null\n\n /**\n * Cor de fundo personalizada para o scrim.\n * Aceita os seguintes formatos de cor:\n * - Cores nomeadas do CSS: 'red', 'blue', 'green', 'yellow', etc.\n * - Códigos hexadecimais: '#ff0000', '#00ff00', '#0000ff', etc.\n * - Valores RGB: 'rgb(255, 0, 0)', 'rgb(0, 255, 0)', etc.\n * - Valores RGBA: 'rgba(255, 0, 0, 0.5)', 'rgba(0, 255, 0, 0.8)', etc.\n * - Valores HSL: 'hsl(0, 100%, 50%)', 'hsl(120, 100%, 50%)', etc.\n * - Valores HSLA: 'hsla(0, 100%, 50%, 0.5)', 'hsla(240, 100%, 50%, 0.7)', etc.\n * Se não especificada, usa a cor padrão do tema.\n */\n @Prop() bgColor: string | null = null\n\n /**\n * Define a opacidade personalizada do scrim\n */\n @Prop() customOpacity: number | null = null\n\n /**\n * Define o modo de exibição do scrim:\n * - 'fullscreen': Ocupa toda a tela (position: fixed).\n * - 'parent': Ocupa apenas o elemento pai (position: absolute).\n * O elemento pai deve ter `position: relative` ou outro valor de posicionamento diferente de `static`.\n */\n @Prop() displayMode: 'fullscreen' | 'parent' = 'fullscreen'\n\n /**\n * Define a estratégia de manipulação de rolagem quando scrim está aberto\n * - 'block': Impede a rolagem completamente\n * - 'close': Fecha o scrim quando ocorre rolagem\n */\n @Prop() scrollStrategy: 'block' | 'close'\n\n /**\n * Determina quanto de rolagem (em pixels) é necessário para acionar a ação de fechamento automático do scrim.\n */\n @Prop({ mutable: true }) scrollThreshold: number = 50\n\n /**\n * Define o seletor para o elemento activator.\n * Pode ser:\n * - Um seletor CSS (ex: '.button-class', '#button-id')\n * - A string 'parent' para usar o elemento pai como activator\n * Nota: O slot 'activator' tem prioridade sobre esta propriedade.\n */\n @Prop() activator: string | null = null\n\n /**\n * Define um rótulo acessível personalizado para o diálogo.\n * Se não fornecido, será usado \"Conteúdo do diálogo\" como padrão.\n */\n @Prop() ariaLabel: string | null = null\n\n /** Indica que o scrim foi aberto. */\n @Event() brScrimOpen: EventEmitter\n\n /** Indica que o scrim foi fechado */\n @Event() brScrimClose: EventEmitter\n\n @State() isActive: boolean = false\n @State() hasActivatorSlot: boolean = false\n\n // ======================================================================\n // PROPRIEDADES PRIVADAS E VARIÁVEIS INTERNAS\n // ======================================================================\n private contentRef: HTMLDivElement | null = null\n private activatorElement: HTMLElement | null = null\n private scrollOffset: number = 0\n private lastScrollTop: number = 0\n private scrollOrigin: number | null = null\n private previouslyFocusedElement: HTMLElement | null | undefined = null\n private focusTimeoutId: NodeJS.Timeout | null = null\n private restoreFocusTimeoutId: NodeJS.Timeout | null = null\n\n private static readonly FOCUSABLE_SELECTORS = [\n 'a[href]:not([disabled])',\n 'button:not([disabled])',\n 'br-button:not([disabled])',\n 'input:not([disabled])',\n 'br-input:not([disabled])',\n 'select:not([disabled])',\n 'br-select:not([disabled])',\n 'textarea:not([disabled])',\n 'br-textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n ].join(',')\n\n // ======================================================================\n // LIFECYCLE HOOKS E WATCHERS\n // ======================================================================\n @Watch('isOpen')\n handleOpenChange(newValue: boolean) {\n // Cancelar qualquer timeout anterior\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n this.isActive = newValue\n if (newValue && this.scrollStrategy === 'close') {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n }\n this.updateStyles()\n\n if (this.isActive) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n this.focusTimeoutId = setTimeout(() => {\n this.focusFirstElement()\n }, 100)\n this.brScrimOpen.emit()\n } else {\n this.resetScrolling()\n this.removeGlobalEventInterception()\n this.restoreFocus()\n this.brScrimClose.emit()\n }\n }\n\n @Watch('zIndex')\n @Watch('bgColor')\n @Watch('customOpacity')\n updateStyles() {\n if (this.zIndex !== null && this.zIndex !== undefined) {\n this.el.style.zIndex = `${this.zIndex}`\n this.el.style.setProperty('--z-index-layer-4', `${this.zIndex}`)\n }\n if (this.bgColor !== null) {\n this.el.style.setProperty('--surface-overlay-scrim', this.bgColor)\n }\n if (this.customOpacity !== null) {\n this.el.style.setProperty('--br-scrim-opacity', `${this.customOpacity}`)\n }\n }\n\n @Watch('activator')\n handleActivatorChange() {\n this.removeActivatorClickListener()\n this.setupActivator()\n }\n\n componentWillLoad() {\n this.hasActivatorSlot = this.checkActivatorSlot('activator')\n this.isActive = this.isOpen\n }\n\n componentDidLoad() {\n this.updateStyles()\n this.setupActivator()\n this.setupActivatorSlotClick()\n this.addContentEventListener()\n\n if (this.isActive) {\n this.applyScrollStrategy()\n this.addGlobalEventInterception()\n this.focusFirstElement()\n }\n }\n\n /**\n * Adiciona event listener ao contentRef para capturar eventos de teclado\n * e gerenciar a navegação por teclado dentro do scrim.\n */\n private addContentEventListener() {\n if (this.contentRef !== null) {\n this.contentRef.addEventListener('keydown', this.handleKeyDown)\n }\n }\n\n connectedCallback() {\n if (this.scrollStrategy === 'close') {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n window.addEventListener('scroll', this.handleScrollClose)\n }\n }\n\n disconnectedCallback() {\n // Limpar timeouts pendentes\n if (this.focusTimeoutId !== null) {\n clearTimeout(this.focusTimeoutId)\n this.focusTimeoutId = null\n }\n if (this.restoreFocusTimeoutId !== null) {\n clearTimeout(this.restoreFocusTimeoutId)\n this.restoreFocusTimeoutId = null\n }\n\n // Remover event listeners\n window.removeEventListener('scroll', this.handleScrollClose)\n window.removeEventListener('scroll', this.handleBlockScroll)\n if (this.contentRef !== null) {\n this.contentRef.removeEventListener('keydown', this.handleKeyDown)\n }\n this.removeActivatorClickListener()\n this.cleanupActivatorSlotClick()\n this.removeGlobalEventInterception()\n }\n\n // ======================================================================\n // GERENCIAMENTO DO ACTIVATOR (ELEMENTO ACIONADOR)\n // ======================================================================\n private checkActivatorSlot(slotName: string): boolean {\n return this.el.querySelector(`[slot=\"${slotName}\"]`) !== null\n }\n\n private setupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (slotEl === null || slotEl === undefined) return\n\n const assignedElements = slotEl.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const el = assignedElements[0] as HTMLElement\n if (el && typeof el.addEventListener === 'function') {\n el.addEventListener('click', this.handleActivatorClick)\n }\n } else if (assignedElements.length > 1) {\n console.warn('br-scrim: Slot \"activator\" deve conter apenas um elemento para aplicar o onClick automaticamente.')\n }\n }\n\n private setupActivator() {\n this.removeActivatorClickListener()\n this.activatorElement = null\n\n if (this.hasActivatorSlot || this.activator == null || this.activator === '') {\n return\n }\n\n if (this.activator === 'parent') {\n const parentElement = this.el.parentElement\n if (parentElement !== null) {\n this.activatorElement = parentElement\n }\n } else {\n try {\n const element = document.querySelector(this.activator)\n if (element instanceof HTMLElement) {\n this.activatorElement = element\n }\n } catch {\n console.warn(`br-scrim: Seletor activator inválido: ${this.activator}`)\n }\n }\n\n this.addActivatorClickListener()\n }\n\n private handleActivatorClick = () => {\n this.toggle()\n }\n\n private addActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.addEventListener('click', this.handleActivatorClick)\n }\n\n private removeActivatorClickListener() {\n if (this.activatorElement === null || this.activatorElement === undefined) return\n this.activatorElement.removeEventListener('click', this.handleActivatorClick)\n }\n\n private cleanupActivatorSlotClick() {\n if (this.el.shadowRoot === null) return\n\n const slotEl = this.el.shadowRoot.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n const assignedElements = slotEl?.assignedElements?.() ?? []\n\n if (assignedElements.length === 1) {\n const element = assignedElements[0]\n if (element && typeof element.removeEventListener === 'function') {\n element.removeEventListener('click', this.handleActivatorClick)\n }\n }\n }\n\n // ======================================================================\n // ESTRATÉGIAS DE ROLAGEM (SCROLL)\n // ======================================================================\n private applyScrollStrategy() {\n if (this.scrollStrategy === 'block') {\n this.enableScrollBlock()\n } else if (this.scrollStrategy === 'close') {\n this.enableScrollWatcher()\n }\n }\n\n private getScrollPosition(): number {\n const targetWindow = this.el?.ownerDocument?.defaultView || window\n return targetWindow?.scrollY ?? targetWindow?.pageYOffset ?? 0\n }\n\n private enableScrollBlock() {\n this.scrollOffset = window.scrollY\n document.body.style.setProperty('position', 'fixed')\n document.body.style.setProperty('top', `-${this.scrollOffset}px`)\n document.body.style.setProperty('left', '0')\n document.body.style.setProperty('right', '0')\n document.body.style.setProperty('width', '100%')\n document.documentElement.style.setProperty('overflow', 'hidden')\n\n window.addEventListener('scroll', this.handleBlockScroll)\n }\n\n private enableScrollWatcher() {\n const currentScroll = window.scrollY\n this.lastScrollTop = currentScroll\n this.scrollOrigin = currentScroll\n window.addEventListener('scroll', this.handleScrollClose)\n }\n\n private handleBlockScroll = (e: Event) => {\n if (this.scrollStrategy === 'block' && this.isActive) {\n window.scrollTo(0, this.scrollOffset)\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n private resetScrolling() {\n if (this.scrollStrategy === 'block') {\n document.body.style.removeProperty('position')\n document.body.style.removeProperty('top')\n document.body.style.removeProperty('left')\n document.body.style.removeProperty('right')\n document.body.style.removeProperty('width')\n document.documentElement.style.removeProperty('overflow')\n window.removeEventListener('scroll', this.handleBlockScroll)\n window.scrollTo(0, this.scrollOffset)\n }\n window.removeEventListener('scroll', this.handleScrollClose)\n this.scrollOrigin = null\n }\n\n private handleScrollClose = () => {\n if (this.scrollStrategy === 'close' && this.isActive) {\n const currentScroll = this.getScrollPosition()\n const reference = this.scrollOrigin ?? this.lastScrollTop\n if (Math.abs(currentScroll - reference) > this.scrollThreshold) {\n this.scrollOrigin = null\n this.isOpen = false\n this.handleOpenChange(false)\n return\n }\n this.lastScrollTop = currentScroll\n }\n }\n\n // ======================================================================\n // ACESSIBILIDADE E GERENCIAMENTO DE FOCO\n // ======================================================================\n private focusFirstElement() {\n if (this.contentRef == null) return\n\n this.contentRef.setAttribute('tabindex', '-1')\n this.contentRef.focus()\n\n const focusableElements = this.getFocusableElements()\n\n if (focusableElements.length > 0) {\n const firstElement = focusableElements[0]\n if (firstElement !== null && firstElement !== undefined) {\n firstElement.scrollIntoView({ block: 'nearest', inline: 'nearest' })\n firstElement.focus({ preventScroll: true })\n }\n }\n }\n\n private restoreFocus() {\n let targetElement: HTMLElement | null = null\n\n if (this.previouslyFocusedElement instanceof HTMLElement && this.previouslyFocusedElement.isConnected) {\n targetElement = this.previouslyFocusedElement\n } else if (this.activatorElement instanceof HTMLElement) {\n targetElement = this.activatorElement\n } else {\n const slotEl = this.el.shadowRoot?.querySelector('slot[name=\"activator\"]') as HTMLSlotElement\n if (this.hasActivatorSlot) {\n const assignedElements = slotEl.assignedElements?.() ?? []\n if (assignedElements.length > 0 && assignedElements[0] instanceof HTMLElement) {\n targetElement = assignedElements[0] as HTMLElement\n }\n }\n }\n\n if (targetElement !== null && targetElement !== undefined) {\n this.restoreFocusTimeoutId = setTimeout(() => {\n try {\n targetElement?.focus()\n } catch (error) {\n console.warn('br-scrim: Erro ao restaurar foco:', error)\n }\n }, 100)\n }\n }\n\n private getFocusableElements(): HTMLElement[] {\n if (this.contentRef == null) return []\n\n const defaultSlot = this.contentRef.querySelector('slot:not([name])') as HTMLSlotElement\n if (defaultSlot === null || defaultSlot === undefined) return []\n\n const assignedElements = defaultSlot.assignedElements({ flatten: true })\n const focusableElements: HTMLElement[] = []\n\n assignedElements.forEach((el) => {\n if (!(el instanceof HTMLElement)) return\n\n if (el.matches(Scrim.FOCUSABLE_SELECTORS)) {\n focusableElements.push(el)\n }\n\n const nestedFocusables = Array.from(el.querySelectorAll<HTMLElement>(Scrim.FOCUSABLE_SELECTORS))\n focusableElements.push(...nestedFocusables)\n })\n\n return this.filterVisibleElements(focusableElements)\n }\n\n private filterVisibleElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(\n (el) => el.offsetWidth > 0 && el.offsetHeight > 0 && getComputedStyle(el).visibility !== 'hidden'\n )\n }\n\n // ======================================================================\n // NAVEGAÇÃO POR TECLADO E INTERCEPTAÇÃO DE EVENTOS\n // ======================================================================\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n if (this.shouldHandleEscape(event)) {\n this.isOpen = false\n return\n }\n\n if (event.key === 'Tab') {\n this.handleTabNavigation(event)\n }\n }\n\n // Intercepta TODOS os eventos de teclado globalmente quando scrim está ativo\n private handleGlobalKeyDown = (event: KeyboardEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n this.focusFirstElement()\n return\n }\n\n if (event.key === 'Escape' && !this.disableCloseOnClick) {\n event.preventDefault()\n this.isOpen = false\n }\n }\n\n // Intercepta TODOS os eventos de clique globalmente quando scrim está ativo\n private handleGlobalClick = (event: MouseEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n if (!this.disableCloseOnClick) {\n this.close()\n }\n return\n }\n }\n\n /**\n * Intercepta eventos de foco globalmente\n */\n private handleGlobalFocus = (event: FocusEvent) => {\n if (!this.isActive) return\n\n const target = event.target as HTMLElement\n\n if (!this.isElementInsideScrim(target)) {\n event.preventDefault()\n event.stopPropagation()\n event.stopImmediatePropagation()\n\n setTimeout(() => {\n this.focusFirstElement()\n }, 0)\n }\n }\n\n private shouldHandleEscape(event: KeyboardEvent): boolean {\n return (event.key === 'Escape' || event.key === 'Esc') && this.isActive && !this.disableCloseOnClick\n }\n\n private handleTabNavigation(event: KeyboardEvent): void {\n const focusableElements = this.getFocusableElements()\n if (focusableElements.length === 0) {\n event.preventDefault()\n return\n }\n\n const firstElement = focusableElements[0]\n const lastElement = focusableElements[focusableElements.length - 1]\n const isTabForward = !event.shiftKey\n\n if (this.shouldTrapFocus(isTabForward, firstElement, lastElement)) {\n event.preventDefault()\n this.wrapFocus(isTabForward, firstElement, lastElement)\n }\n }\n\n private shouldTrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): boolean {\n return (\n (isTabForward && document.activeElement === lastElement) ||\n (!isTabForward && document.activeElement === firstElement)\n )\n }\n\n private wrapFocus(isTabForward: boolean, firstElement: HTMLElement, lastElement: HTMLElement): void {\n ;(isTabForward ? firstElement : lastElement).focus()\n }\n\n /**\n * Verifica se um elemento está dentro do scrim\n */\n private isElementInsideScrim(element: HTMLElement): boolean {\n if (this.el.contains(element)) {\n return true\n }\n\n return false\n }\n\n /**\n * Adiciona interceptação global de eventos\n */\n private addGlobalEventInterception() {\n // Intercepta eventos de teclado globalmente\n document.addEventListener('keydown', this.handleGlobalKeyDown, true)\n document.addEventListener('keyup', this.handleGlobalKeyDown, true)\n document.addEventListener('keypress', this.handleGlobalKeyDown, true)\n\n // Intercepta eventos de clique globalmente\n document.addEventListener('click', this.handleGlobalClick, true)\n document.addEventListener('mousedown', this.handleGlobalClick, true)\n document.addEventListener('mouseup', this.handleGlobalClick, true)\n\n // Intercepta eventos de foco\n document.addEventListener('focus', this.handleGlobalFocus, true)\n document.addEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n /**\n * Remove interceptação global de eventos\n */\n private removeGlobalEventInterception() {\n document.removeEventListener('keydown', this.handleGlobalKeyDown, true)\n document.removeEventListener('keyup', this.handleGlobalKeyDown, true)\n document.removeEventListener('keypress', this.handleGlobalKeyDown, true)\n\n document.removeEventListener('click', this.handleGlobalClick, true)\n document.removeEventListener('mousedown', this.handleGlobalClick, true)\n document.removeEventListener('mouseup', this.handleGlobalClick, true)\n\n document.removeEventListener('focus', this.handleGlobalFocus, true)\n document.removeEventListener('focusin', this.handleGlobalFocus, true)\n }\n\n // ======================================================================\n // MANIPULAÇÃO DE EVENTOS E UTILITÁRIOS\n // ======================================================================\n private handleMaskClick = (_event: MouseEvent) => {\n if (!this.disableCloseOnClick) {\n this.close()\n }\n }\n\n private getCssClassMap(): CssClassMap {\n return {\n 'br-scrim': true,\n opened: this.isActive,\n 'scroll-block': this.scrollStrategy === 'block',\n 'position-top': this.positionContent === 'top',\n 'position-bottom': this.positionContent === 'bottom',\n 'position-left': this.positionContent === 'left',\n 'position-right': this.positionContent === 'right',\n 'position-center': this.positionContent === 'center',\n 'mode-fullscreen': this.displayMode === 'fullscreen',\n 'mode-parent': this.displayMode === 'parent',\n }\n }\n\n // ======================================================================\n // MÉTODOS PÚBLICOS (API)\n // ======================================================================\n /**\n * Define o limite de rolagem para o fechamento automático do scrim.\n */\n @Method()\n async setScrollThreshold(threshold: number) {\n this.scrollThreshold = threshold\n }\n\n /**\n * Método público para exibir o scrim\n */\n @Method()\n async open() {\n this.isOpen = true\n }\n\n /**\n * Método público para esconder o scrim\n */\n @Method()\n async close() {\n this.isOpen = false\n }\n\n /**\n * Método público para alternar o estado de exibição do scrim\n */\n @Method()\n async toggle() {\n this.isOpen = !this.isActive\n }\n\n render() {\n return (\n <Host>\n <slot name=\"activator\"></slot>\n <div\n class={this.getCssClassMap()}\n id={this.customId}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.ariaLabel || 'Conteúdo do diálogo'}\n data-visible={this.isActive ? 'true' : 'false'}\n >\n <div class=\"mask\" onClick={this.handleMaskClick}></div>\n <div\n ref={(el) => (this.contentRef = el)}\n id={`${this.customId}-content`}\n class=\"content\"\n tabIndex={-1}\n onKeyDown={this.handleKeyDown}\n >\n <slot></slot>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -77,6 +77,7 @@ const l = class {
|
|
|
77
77
|
this.activatorElement = null;
|
|
78
78
|
this.scrollOffset = 0;
|
|
79
79
|
this.lastScrollTop = 0;
|
|
80
|
+
this.scrollOrigin = null;
|
|
80
81
|
this.previouslyFocusedElement = null;
|
|
81
82
|
this.focusTimeoutId = null;
|
|
82
83
|
this.restoreFocusTimeoutId = null;
|
|
@@ -91,12 +92,17 @@ const l = class {
|
|
|
91
92
|
}
|
|
92
93
|
};
|
|
93
94
|
this.handleScrollClose = () => {
|
|
95
|
+
var t;
|
|
94
96
|
if (this.scrollStrategy === "close" && this.isActive) {
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
+
const i = this.getScrollPosition();
|
|
98
|
+
const e = (t = this.scrollOrigin) !== null && t !== void 0 ? t : this.lastScrollTop;
|
|
99
|
+
if (Math.abs(i - e) > this.scrollThreshold) {
|
|
100
|
+
this.scrollOrigin = null;
|
|
101
|
+
this.isOpen = false;
|
|
97
102
|
this.handleOpenChange(false);
|
|
103
|
+
return;
|
|
98
104
|
}
|
|
99
|
-
this.lastScrollTop =
|
|
105
|
+
this.lastScrollTop = i;
|
|
100
106
|
}
|
|
101
107
|
};
|
|
102
108
|
// ======================================================================
|
|
@@ -105,7 +111,7 @@ const l = class {
|
|
|
105
111
|
this.handleKeyDown = t => {
|
|
106
112
|
if (!this.isActive) return;
|
|
107
113
|
if (this.shouldHandleEscape(t)) {
|
|
108
|
-
this.
|
|
114
|
+
this.isOpen = false;
|
|
109
115
|
return;
|
|
110
116
|
}
|
|
111
117
|
if (t.key === "Tab") {
|
|
@@ -125,7 +131,7 @@ const l = class {
|
|
|
125
131
|
}
|
|
126
132
|
if (t.key === "Escape" && !this.disableCloseOnClick) {
|
|
127
133
|
t.preventDefault();
|
|
128
|
-
this.
|
|
134
|
+
this.isOpen = false;
|
|
129
135
|
}
|
|
130
136
|
};
|
|
131
137
|
// Intercepta TODOS os eventos de clique globalmente quando scrim está ativo
|
|
@@ -179,6 +185,11 @@ const l = class {
|
|
|
179
185
|
this.restoreFocusTimeoutId = null;
|
|
180
186
|
}
|
|
181
187
|
this.isActive = t;
|
|
188
|
+
if (t && this.scrollStrategy === "close") {
|
|
189
|
+
const t = window.scrollY;
|
|
190
|
+
this.lastScrollTop = t;
|
|
191
|
+
this.scrollOrigin = t;
|
|
192
|
+
}
|
|
182
193
|
this.updateStyles();
|
|
183
194
|
if (this.isActive) {
|
|
184
195
|
this.previouslyFocusedElement = document.activeElement;
|
|
@@ -236,6 +247,9 @@ const l = class {
|
|
|
236
247
|
}
|
|
237
248
|
connectedCallback() {
|
|
238
249
|
if (this.scrollStrategy === "close") {
|
|
250
|
+
const t = window.scrollY;
|
|
251
|
+
this.lastScrollTop = t;
|
|
252
|
+
this.scrollOrigin = t;
|
|
239
253
|
window.addEventListener("scroll", this.handleScrollClose);
|
|
240
254
|
}
|
|
241
255
|
}
|
|
@@ -333,6 +347,11 @@ const l = class {
|
|
|
333
347
|
this.enableScrollWatcher();
|
|
334
348
|
}
|
|
335
349
|
}
|
|
350
|
+
getScrollPosition() {
|
|
351
|
+
var t, i, e, o;
|
|
352
|
+
const a = ((i = (t = this.el) === null || t === void 0 ? void 0 : t.ownerDocument) === null || i === void 0 ? void 0 : i.defaultView) || window;
|
|
353
|
+
return (o = (e = a === null || a === void 0 ? void 0 : a.scrollY) !== null && e !== void 0 ? e : a === null || a === void 0 ? void 0 : a.pageYOffset) !== null && o !== void 0 ? o : 0;
|
|
354
|
+
}
|
|
336
355
|
enableScrollBlock() {
|
|
337
356
|
this.scrollOffset = window.scrollY;
|
|
338
357
|
document.body.style.setProperty("position", "fixed");
|
|
@@ -344,6 +363,9 @@ const l = class {
|
|
|
344
363
|
window.addEventListener("scroll", this.handleBlockScroll);
|
|
345
364
|
}
|
|
346
365
|
enableScrollWatcher() {
|
|
366
|
+
const t = window.scrollY;
|
|
367
|
+
this.lastScrollTop = t;
|
|
368
|
+
this.scrollOrigin = t;
|
|
347
369
|
window.addEventListener("scroll", this.handleScrollClose);
|
|
348
370
|
}
|
|
349
371
|
resetScrolling() {
|
|
@@ -358,6 +380,7 @@ const l = class {
|
|
|
358
380
|
window.scrollTo(0, this.scrollOffset);
|
|
359
381
|
}
|
|
360
382
|
window.removeEventListener("scroll", this.handleScrollClose);
|
|
383
|
+
this.scrollOrigin = null;
|
|
361
384
|
}
|
|
362
385
|
// ======================================================================
|
|
363
386
|
// ACESSIBILIDADE E GERENCIAMENTO DE FOCO
|
|
@@ -514,31 +537,31 @@ const l = class {
|
|
|
514
537
|
* Método público para exibir o scrim
|
|
515
538
|
*/ open() {
|
|
516
539
|
return r(this, void 0, void 0, (function*() {
|
|
517
|
-
this.
|
|
540
|
+
this.isOpen = true;
|
|
518
541
|
}));
|
|
519
542
|
}
|
|
520
543
|
/**
|
|
521
544
|
* Método público para esconder o scrim
|
|
522
545
|
*/ close() {
|
|
523
546
|
return r(this, void 0, void 0, (function*() {
|
|
524
|
-
this.
|
|
547
|
+
this.isOpen = false;
|
|
525
548
|
}));
|
|
526
549
|
}
|
|
527
550
|
/**
|
|
528
551
|
* Método público para alternar o estado de exibição do scrim
|
|
529
552
|
*/ toggle() {
|
|
530
553
|
return r(this, void 0, void 0, (function*() {
|
|
531
|
-
this.
|
|
554
|
+
this.isOpen = !this.isActive;
|
|
532
555
|
}));
|
|
533
556
|
}
|
|
534
557
|
render() {
|
|
535
558
|
return e(o, {
|
|
536
|
-
key: "
|
|
559
|
+
key: "095c3f7ac68969d649afb561140afa5791c9ea53"
|
|
537
560
|
}, e("slot", {
|
|
538
|
-
key: "
|
|
561
|
+
key: "276b5e03bcfdd721c8a33ddd86179a21de49e0fd",
|
|
539
562
|
name: "activator"
|
|
540
563
|
}), e("div", {
|
|
541
|
-
key: "
|
|
564
|
+
key: "10b32b52b0a1a6b935040c75a75efecf79a5334b",
|
|
542
565
|
class: this.getCssClassMap(),
|
|
543
566
|
id: this.customId,
|
|
544
567
|
role: "dialog",
|
|
@@ -546,18 +569,18 @@ const l = class {
|
|
|
546
569
|
"aria-label": this.ariaLabel || "Conteúdo do diálogo",
|
|
547
570
|
"data-visible": this.isActive ? "true" : "false"
|
|
548
571
|
}, e("div", {
|
|
549
|
-
key: "
|
|
572
|
+
key: "a2b6aa741b248ae8a7e6adaa660a39a73cf2cb7e",
|
|
550
573
|
class: "mask",
|
|
551
574
|
onClick: this.handleMaskClick
|
|
552
575
|
}), e("div", {
|
|
553
|
-
key: "
|
|
576
|
+
key: "779e8f58d4ce30ad5093a20c2cf0f182ba6f640d",
|
|
554
577
|
ref: t => this.contentRef = t,
|
|
555
578
|
id: `${this.customId}-content`,
|
|
556
579
|
class: "content",
|
|
557
580
|
tabIndex: -1,
|
|
558
581
|
onKeyDown: this.handleKeyDown
|
|
559
582
|
}, e("slot", {
|
|
560
|
-
key: "
|
|
583
|
+
key: "283ae3594e3c12569c8713f3adb3c5f5649460ce"
|
|
561
584
|
}))));
|
|
562
585
|
}
|
|
563
586
|
static get formAssociated() {
|
|
@@ -583,4 +606,4 @@ l.style = s;
|
|
|
583
606
|
|
|
584
607
|
export { l as br_scrim };
|
|
585
608
|
//# sourceMappingURL=br-scrim.entry.esm.js.map
|
|
586
|
-
//# sourceMappingURL=p-
|
|
609
|
+
//# sourceMappingURL=p-1e957173.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["registerInstance","createEvent","h","Host","getElement","__awaiter","Helpers","scrimCss","Scrim","constructor","hostRef","this","brScrimOpen","brScrimClose","$hostElement$","elementInternals","attachInternals","customId","generateUniqueId","isOpen","disableCloseOnClick","zIndex","bgColor","customOpacity","displayMode","scrollThreshold","activator","ariaLabel","isActive","hasActivatorSlot","contentRef","activatorElement","scrollOffset","lastScrollTop","scrollOrigin","previouslyFocusedElement","focusTimeoutId","restoreFocusTimeoutId","handleActivatorClick","toggle","handleBlockScroll","e","scrollStrategy","window","scrollTo","preventDefault","stopPropagation","handleScrollClose","_a","currentScroll","getScrollPosition","reference","Math","abs","handleOpenChange","handleKeyDown","event","shouldHandleEscape","key","handleTabNavigation","handleGlobalKeyDown","target","isElementInsideScrim","stopImmediatePropagation","focusFirstElement","handleGlobalClick","close","handleGlobalFocus","setTimeout","handleMaskClick","_event","newValue","clearTimeout","scrollY","updateStyles","document","activeElement","applyScrollStrategy","addGlobalEventInterception","emit","resetScrolling","removeGlobalEventInterception","restoreFocus","undefined","el","style","setProperty","handleActivatorChange","removeActivatorClickListener","setupActivator","componentWillLoad","checkActivatorSlot","componentDidLoad","setupActivatorSlotClick","addContentEventListener","addEventListener","connectedCallback","disconnectedCallback","removeEventListener","cleanupActivatorSlotClick","slotName","querySelector","_b","shadowRoot","slotEl","assignedElements","call","length","console","warn","parentElement","element","HTMLElement","addActivatorClickListener","enableScrollBlock","enableScrollWatcher","_c","_d","targetWindow","ownerDocument","defaultView","pageYOffset","body","documentElement","removeProperty","setAttribute","focus","focusableElements","getFocusableElements","firstElement","scrollIntoView","block","inline","preventScroll","targetElement","isConnected","error","defaultSlot","flatten","forEach","matches","FOCUSABLE_SELECTORS","push","nestedFocusables","Array","from","querySelectorAll","filterVisibleElements","elements","filter","offsetWidth","offsetHeight","getComputedStyle","visibility","lastElement","isTabForward","shiftKey","shouldTrapFocus","wrapFocus","contains","getCssClassMap","opened","positionContent","setScrollThreshold","threshold","open","render","name","class","id","role","onClick","ref","tabIndex","onKeyDown","formAssociated","watchers","join"],"sources":["0"],"mappings":"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","ignoreList":[]}
|