import { EventEmitter } from '@angular/core'; /** * @description * * O componente `po-page-slide` é utilizado para incluir conteúdos secundários * adicionando controles e navegações adicionais, mas mantendo o usuário na * página principal. * * Este componente é ativado a partir do método `#open()` e pode ser encerrado * através do botão que encontra-se no cabeçalho do mesmo ou através do método * `#close()`. * * > Para o correto funcionamento do componente `po-page-slide`, deve ser * > importado o módulo `BrowserAnimationsModule` no módulo principal da sua * > aplicação. * * Módulo da aplicação: * ``` * import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; * import { PoModule } from '@po-ui/ng-components'; * ... * * @NgModule({ * imports: [ * BrowserModule, * BrowserAnimationsModule, * ... * PoModule * ], * declarations: [ * AppComponent, * ... * ], * providers: [], * bootstrap: [AppComponent] * }) * export class AppModule { } * ``` * * Em aplicações Standalone, utilize a seguinte configuração para o bootstrap: * * ``` * import { bootstrapApplication } from '@angular/platform-browser'; * import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; * import { AppComponent } from './app.component'; * * bootstrapApplication(AppComponent, { * providers: [importProvidersFrom(BrowserAnimationsModule)] * }).catch(err => console.error(err)); * ``` * * Caso utilize componentes de field dentro do page-slide, recomenda-se o uso do [Grid System](https://po-ui.io/guides/grid-system). * * No rodapé é possível utilizar o componente [`PoPageSlideFooter`](/documentation/po-page-slide-footer) para customização do template. * * * #### Tokens customizáveis * * É possível alterar o estilo do componente usando os seguintes tokens (CSS): * * > Para maiores informações, acesse o guia [Personalizando o Tema Padrão com Tokens CSS](https://po-ui.io/guides/theme-customization). * * | Propriedade | Descrição | Valor Padrão | * |------------------------------------------|-------------------------------------------------------------------|-------------------------------------------------------------------------------| * | `--font-family` | Família tipográfica usada | `var(--font-family-theme)` | * | `--font-weight` | Peso da fonte | `var(--font-weight-bold)` | * | `--padding-header` | Espaçamento do header | `var(--spacing-md)` | * | `--padding-body` | Espaçamento do conteúdo | `var(--line-height-none)` | * | `--padding-footer` | Espaçamento do footer | `var(--spacing-sm) var(--spacing-md) var(--spacing-xl) var(--spacing-md)` | * | **Default Values** | | | * | `--color-overlay` | Cor do overlay | `var(--color-neutral-dark-80)` | * | `--opacity-overlay` | Cor da opacidade do overlay | `0.7` | * | `--background-color` | Cor de background | `var(--color-neutral-light-00)` | * | `--border-color` | Cor da borda | `var(--color-neutral-light-20)` | * | `--color-title` | Cor do titulo do header | `var(--color-neutral-dark-95)` | * | `--border-radius` | Radius da borda | `var(--border-radius-md) 0 0 var(--border-radius-md)` | * | `--transition-duration` | Duração da transição | `var(--duration-extra-fast)` | * | `--transition-timing` | Duração da transição com o tipo de transição | `var(--duration-extra-slow) var(--timing-standart)` | * | `--page-slide-width-sm` | Tamanho da largura do componente no tamanho `small` | `40%` | * | `--page-slide-width-md` | Tamanho da largura do componente no tamanho `medium` | `50%` | * | `--page-slide-width-lg` | Tamanho da largura do componente no tamanho `large` | `60%` | * | `--page-slide-width-xl` | Tamanho da largura do componente no tamanho `extra large` | `70%` | * | `--page-slide-min-width-auto` | Tamanho da largura mínima do componente no tamanho `auto` | `40%` | * | `--page-slide-max-width-auto` | Tamanho da largura máxima do componente no tamanho `auto` | `90%` | * */ export declare class PoPageSlideBaseComponent { /** * @description * * Título da página. */ title: string; /** * @description * * Subtítulo da página. */ subtitle?: string; /** * @optional * * @description * * Oculta o botão de encerramento da página. * * Esta opção só é possível se a propriedade `p-click-out` estiver habilitada. * * @default `false` */ hideClose: boolean; /** * @optional * * @description * * Define se permite o encerramento da página ao clicar fora da mesma. * * @default `false` */ clickOut: boolean; /** * @optional * * @description * * Permite a expansão dinâmica da largura do `po-page-slide` quando `p-size` for `auto` (automático). * Propriedade necessária para correto funcionamento da `po-table` dentro do `po-page-slide` * * @default `false` */ flexibleWidth: boolean; /** * @optional * * @description * Evento executado ao fechar o page slide. */ closePageSlide: EventEmitter; hidden: boolean; private _componentsSize?; private _initialComponentsSize?; private _size; /** * @optional * * @description * * Define o tamanho da página. * * Valores válidos: * - `sm` (pequeno) * - `md` (médio) * - `lg` (grande) * - `xl` (extra-grande) * - `auto` (automático) * * > Todas as opções de tamanho, exceto `auto`, possuem uma largura máxima de **768px**. * * @default `md` */ set size(value: string); get size(): string; /** * @optional * * @description * * Define o tamanho dos componentes de formulário no template: * - `small`: aplica a medida small de cada componente (disponível apenas para acessibilidade AA). * - `medium`: aplica a medida medium de cada componente. * * > Caso a acessibilidade AA não esteja configurada, o tamanho `medium` será mantido. * Para mais detalhes, consulte a documentação do [po-theme](https://po-ui.io/documentation/po-theme). * * @default `medium` */ set componentsSize(value: string); get componentsSize(): string; protected onThemeChange(): void; private applySizeBasedOnA11y; /** * Ativa a visualização da página. * * Para utilizá-la é necessário ter a instância do componente no DOM, podendo * ser utilizado o `ViewChild` da seguinte forma: * * ```typescript * import { PoPageSlideComponent } from '@po/ng-components'; * * ... * * @ViewChild(PoPageSlideComponent, { static: true }) pageSlide: PoPageSlideComponent; * * public openPage() { * this.pageSlide.open(); * } * ``` */ open(): void; /** * Encerra a visualização da página. * * Para utilizá-la é necessário ter a instância do componente no DOM, podendo * ser utilizado o `ViewChild` da seguinte forma: * * ```typescript * import { PoPageSlideComponent } from '@po-ui/ng-components'; * * ... * * @ViewChild(PoPageSlideComponent, { static: true }) pageSlide: PoPageSlideComponent; * * public closePage() { * this.pageSlide.close(); * } * ``` */ close(): void; }