@seniorsistemas/angular-components 17.27.1-fix-interactive-content-46e38731 → 17.27.1-fix-interactive-content-22e06381

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.
Files changed (46) hide show
  1. package/button/lib/button/button.component.d.ts +3 -3
  2. package/button/lib/button/button.module.d.ts +1 -6
  3. package/confirm-dialog/README.md +226 -0
  4. package/confirm-dialog/index.d.ts +5 -0
  5. package/confirm-dialog/lib/confirm-dialog.model.d.ts +8 -0
  6. package/confirm-dialog/lib/confirm-dialog.service.d.ts +8 -0
  7. package/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.d.ts +7 -0
  8. package/confirm-dialog/package.json +3 -0
  9. package/confirm-dialog/public-api.d.ts +2 -0
  10. package/dialog/index.d.ts +5 -0
  11. package/dialog/lib/src/dialog/dialog.component.d.ts +29 -0
  12. package/dialog/lib/src/dialog/models/active-dialog.d.ts +11 -0
  13. package/dialog/lib/src/dialog/models/dialog-models.d.ts +18 -0
  14. package/dialog/lib/src/dialog/services/dialog.service.d.ts +24 -0
  15. package/dialog/lib/src/dialog/services/internal-dialog.service.d.ts +10 -0
  16. package/dialog/package.json +3 -0
  17. package/dialog/public-api.d.ts +4 -0
  18. package/dynamic-form/lib/dynamic-form/components/lookup/lookup.component.d.ts +2 -2
  19. package/dynamic-form/lib/dynamic-form/dynamic-form.module.d.ts +2 -2
  20. package/fesm2022/seniorsistemas-angular-components-button.mjs +16 -25
  21. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  22. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +54 -0
  23. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -0
  24. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +221 -0
  25. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -0
  26. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +72 -67
  27. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  28. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +11 -7
  29. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  30. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +15 -10
  31. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  32. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +1 -0
  33. package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -1
  34. package/fesm2022/seniorsistemas-angular-components-select.mjs +2 -2
  35. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  36. package/fesm2022/seniorsistemas-angular-components-structure.mjs +4 -14
  37. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  38. package/fesm2022/seniorsistemas-angular-components-text-area-ia.mjs +22 -15
  39. package/fesm2022/seniorsistemas-angular-components-text-area-ia.mjs.map +1 -1
  40. package/fieldset/lib/fieldset/fieldset.component.d.ts +7 -5
  41. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +2 -0
  42. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +6 -5
  43. package/package.json +16 -2
  44. package/structure/lib/structure/header.component.d.ts +0 -2
  45. package/tailwind.css +65 -2
  46. package/text-area-ia/lib/text-area-ia/text-area-ia.module.d.ts +7 -6
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-select.mjs","sources":["../../projects/angular-components/select/src/lib/select/components/select-option/select-option.component.ts","../../projects/angular-components/select/src/lib/select/components/select-option/select-option.component.html","../../projects/angular-components/select/src/lib/select/select.component.ts","../../projects/angular-components/select/src/lib/select/select.component.html","../../projects/angular-components/select/src/seniorsistemas-angular-components-select.ts"],"sourcesContent":["import { Component, input, model, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CheckboxComponent } from '@seniorsistemas/angular-components/checkbox';\n\n@Component({\n selector: 's-select-option',\n templateUrl: './select-option.component.html',\n standalone: true,\n imports: [CommonModule, CheckboxComponent],\n})\nexport class SelectOptionComponent {\n public id = input.required<string>();\n public label = input.required<string>();\n public multiple = input.required<boolean>();\n public checkmark = input.required<boolean>();\n public isGrouper = input.required<boolean>();\n public isFocused = input.required<boolean>();\n\n public isSelected = model.required<boolean>();\n\n public selected = output();\n\n public onClick(): void {\n if (this.isGrouper()) {\n return;\n }\n\n this.selected.emit();\n }\n}\n","<li\n [attr.id]=\"id()\"\n class=\"flex select-none items-center gap-3 px-3 py-2\"\n [class.hover:bg-grayscale-10]=\"!isGrouper()\"\n [class.bg-grayscale-10]=\"!isGrouper() && isFocused()\"\n (click)=\"onClick()\"\n>\n @if (!isGrouper() && checkmark() && !multiple() && isSelected()) {\n <i class=\"far fa-check text-grayscale-60\"></i>\n }\n\n @if (!isGrouper() && multiple()) {\n <s-checkbox [checked]=\"isSelected()\"></s-checkbox>\n }\n <span\n class=\"text-grayscale-90\"\n [class.font-bold]=\"isGrouper()\"\n >\n {{ label() }}\n </span>\n</li>\n","import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\n\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\nimport { SelectOptionComponent } from './components/select-option/select-option.component';\nimport { Subject } from 'rxjs';\nimport { CheckboxComponent } from '@seniorsistemas/angular-components/checkbox';\n\ninterface InternalDropdownOption<T> {\n data: T;\n id: string;\n grouper?: boolean;\n}\n@Component({\n selector: 's-select',\n templateUrl: './select.component.html',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n ScrollingModule,\n SelectOptionComponent,\n CheckboxComponent,\n TranslateModule,\n ],\n host: {\n '(document:click)': 'onDocumentClick($event)',\n '(window:resize)': 'onWindowResize($event)',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n ],\n})\nexport class SelectComponent<T> implements ControlValueAccessor, OnInit, OnDestroy {\n public placeholder = input('');\n public multiple = input(false);\n public options = input.required<T[]>();\n public optionLabel = input<keyof T>();\n public optionValue = input<keyof T>();\n public showClear = input(false);\n public filter = input(false);\n public checkmark = input(false);\n public filterBy = input<keyof T | (keyof T)[]>();\n public group = input(false);\n public virtualScroll = input(false);\n public virtualScrollItemSize = input(37);\n public emptyMessage = input<string | null>(null);\n public useRawValue = input(false);\n public dataKey = input<keyof T>();\n\n public disabled = model(false);\n public showOptions = signal(false);\n\n public value = signal<T | null>(null);\n public values = signal<T[]>([]);\n public filterValue = signal('');\n public focusedIndex = signal(-1);\n\n public dropTop = 0;\n public dropLeft = 0;\n public dropWidth = 0;\n\n private _portalHost: DomPortalOutlet | null = null;\n\n /**\n * Verifica se todas as opções visíveis (filtradas e não agrupadoras) estão selecionadas.\n *\n * - Retorna `true` se todas as opções filtradas estiverem presentes em `values()`.\n * - Ignora opções marcadas como `grouper`.\n * - Usa `_getCompareValueExtractor()` para comparar os valores de forma consistente.\n *\n * Esse estado é usado para controlar o checkbox de \"Selecionar todos\" quando todas as opções visíveis estão marcadas.\n */\n public allSelected = computed(() => {\n const selected = this.values();\n const options = this.filteredOptions().filter((o) => !o.grouper);\n return (\n options.length > 0 &&\n options.every((option) =>\n selected.some(\n (s) => this._getCompareValueExtractor()(s) === this._getCompareValueExtractor()(option as T),\n ),\n )\n );\n });\n\n public focusedItem = computed(() => this.filteredOptions().at(this.focusedIndex())?.data ?? null);\n\n /**\n * Converte as opções externas (`options()`) em uma estrutura interna padronizada (`InternalDropdownOption<T>`).\n *\n * - Se os dados forem primitivos (string, number, etc.), gera opções com IDs baseados no índice.\n * - Se os dados forem objetos, delega a criação das opções para `_addIdToOptions()`, que adiciona IDs e marca agrupadores.\n * - Se o modo agrupado estiver ativo (`group()`), transforma as opções em uma lista achatada com agrupadores via `_grouperToFlat()`.\n *\n * Essa estrutura é usada internamente para renderização, filtragem e controle de seleção.\n */\n public internalOptions = computed<InternalDropdownOption<T>[]>(() => {\n const opts = this.options();\n\n const optionsWithId: InternalDropdownOption<T>[] = this.TIsPrimitive()\n ? opts.map((value, index) => ({\n id: `id_primitive_${index}`,\n grouper: false,\n data: value as T,\n }))\n : this._addIdToOptions(opts);\n\n return this.group() ? this._grouperToFlat(optionsWithId) : optionsWithId;\n });\n\n /**\n * Retorna o texto que deve ser exibido no componente com base nos valores selecionados.\n *\n * - No modo múltiplo:\n * - Se houver mais de um item selecionado, exibe uma mensagem traduzida com o total de registros.\n * - Se houver apenas um item selecionado, exibe o label correspondente.\n * - No modo simples:\n * - Exibe o label do valor selecionado. *\n * - Se nenhum valor estiver selecionado, retorna uma string vazia.\n *\n * Essa lógica é usada para mostrar o conteúdo atual do campo de seleção.\n */\n\n public print = computed(() => {\n if (this.multiple()) {\n const selected = this.values();\n if (selected.length > 1) {\n return this._translateService.instant(`platform.angular_components.total_records_selected`, {\n count: selected.length,\n });\n } else if (selected.length === 1) {\n return this._getLabelFromOption(selected[0]);\n }\n } else if (this.value()) {\n return this._getLabelFromOption(this.value() as T);\n }\n\n return '';\n });\n\n public isClean = computed(() => {\n return this.multiple() ? !this.values().length : !this.value();\n });\n\n public TIsPrimitive = computed(() => {\n const opts = this.options();\n if (!opts.length) return false;\n return ['string', 'number', 'boolean'].includes(typeof opts[0]);\n });\n\n /**\n * Indica se o estado de seleção está indeterminado.\n *\n * - Retorna `true` quando **algumas**, mas não todas, opções visíveis estão selecionadas.\n * - Retorna `false` quando **todas** ou **nenhuma** das opções visíveis estão selecionadas.\n * - Ignora opções marcadas como `grouper`.\n *\n * Esse estado é usado, por exemplo, para exibir o checkbox de \"Selecionar todos\" em modo indeterminado.\n */\n\n public selectAllIsIndeterminate = computed(() => {\n const selected = this.values();\n const options = this.filteredOptions().filter((o) => !o.grouper);\n\n const all = options.length > 0 && options.every((o) => selected.includes(o.data));\n const none = options.every((o) => !selected.includes(o.data));\n\n return !all && !none;\n });\n\n /**\n * Retorna a lista de opções filtradas com base no valor digitado pelo usuário.\n *\n * - Se o filtro estiver desativado ou vazio, retorna todas as opções.\n * - Caso contrário, aplica o filtro usando o(s) campo(s) definidos em `filterBy`.\n * - Ignora opções marcadas como `grouper`.\n * - Usa o extrator de label para comparar os valores com o texto buscado.\n */\n\n public filteredOptions = computed(() => {\n const allOptions = this.internalOptions();\n const search = this.filterValue().toLowerCase().trim();\n\n if (!this.filter() || !search) {\n return allOptions;\n }\n\n const filterBy = this.filterBy();\n return allOptions.filter((option) => {\n if (option.grouper) {\n return false;\n }\n\n const labelExtractor = this._getLabelExtractor();\n let label = '';\n\n if (!filterBy) {\n label = labelExtractor(option.data);\n } else if (Array.isArray(filterBy)) {\n label = filterBy.map((by) => String(option.data[by] ?? '')).join(' ');\n } else {\n label = String(option.data[filterBy] ?? '');\n }\n\n return label.toLowerCase().includes(search);\n });\n });\n\n public readonly filterForm = new FormGroup<{ filter: FormControl<string> }>({\n filter: new FormControl<string>('', { nonNullable: true }),\n });\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private _dropdownTemplate = viewChild<TemplateRef<any>>('dropdownTemplate');\n private _containerDiv = viewChild<ElementRef<HTMLDivElement>>('containerDiv');\n private _onChange: (value: T | T[] | null) => void = () => { };\n private _onTouched: () => void = () => { };\n\n private readonly platformId = inject(PLATFORM_ID);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _translateService = inject(TranslateService);\n\n private destroy$ = new Subject<void>();\n\n /**\n * Inicializa o componente, validando os inputs e configurando o filtro com debounce.\n */\n public ngOnInit(): void {\n this._validateInputs();\n\n this.filterForm\n .get('filter')!\n .valueChanges.pipe(debounceTime(300), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((value) => {\n this.filterValue.set(value);\n });\n }\n\n /**\n * Executa limpeza de recursos ao destruir o componente.\n */\n public ngOnDestroy(): void {\n this._destroyDropdownPortal();\n\n if (this._portalHost) {\n this._portalHost.dispose();\n this._portalHost = null;\n }\n\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * Define o valor no componente vindo do formulário externo.\n * @param value Valor atribuído pelo Angular forms.\n */\n public writeValue(value: any): void {\n if (this.multiple()) {\n if (Array.isArray(value)) {\n const items = this.TIsPrimitive()\n ? value.map((v) => this._findOptionByPrimitiveValue(v)).filter(Boolean)\n : this.useRawValue()\n ? value\n : value.map((v) => this._findOptionByValue(v)).filter(Boolean);\n\n this.values.set(items as T[]);\n } else {\n this.values.set([]);\n }\n } else {\n const item = this.TIsPrimitive()\n ? this._findOptionByPrimitiveValue(value)\n : this.useRawValue()\n ? value\n : this._findOptionByValue(value);\n\n this.value.set(item ?? null);\n }\n }\n\n /**\n * Registra a função que será chamada quando o valor mudar.\n * @param onChange Função callback.\n */\n public registerOnChange(onChange: (value: T | T[] | null) => void): void {\n this._onChange = onChange;\n }\n\n /**\n * Registra a função que será chamada quando o componente for \"tocado\".\n * @param onTouched Função callback.\n */\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n /**\n * Define o estado de desabilitado do componente.\n * @param disabled Indica se o componente está desabilitado.\n */\n public setDisabledState(disabled: boolean): void {\n this.disabled.set(disabled);\n }\n\n /**\n * Alterna a exibição da lista de opções (dropdown).\n */\n public toggle(): void {\n if (this.disabled()) {\n return;\n }\n\n const shouldOpen = !this.showOptions();\n this.showOptions.set(shouldOpen);\n\n if (shouldOpen) {\n setTimeout(() => {\n this._createDropdownPortal();\n });\n } else {\n this._destroyDropdownPortal();\n }\n }\n\n /**\n * Seleciona ou desseleciona um item na lista.\n * @param item Item a ser selecionado ou desmarcado.\n */\n public selectItem(item: T): void {\n if (this.disabled()) {\n return;\n }\n\n const getCompareValue = this._getCompareValueExtractor();\n\n if (this.multiple()) {\n const store = [...this.values()];\n const itemValue = getCompareValue(item);\n\n const index = store.findIndex((selectedItem) => {\n return getCompareValue(selectedItem) === itemValue;\n });\n\n if (index !== -1) {\n store.splice(index, 1);\n } else {\n store.push(item);\n }\n\n this.values.set(store);\n\n const result = this.useRawValue() ? store : store.map((i) => this._getValueExtractor()(i));\n\n this._onChange(result);\n } else {\n this.value.set(item);\n\n const result = this.useRawValue() ? item : this._getValueExtractor()(item);\n\n this._onChange(result);\n this._closeDropdown();\n }\n\n this._onTouched();\n }\n\n /**\n * Limpa a seleção atual.\n * @param event Evento do clique.\n */\n public clear(event: MouseEvent): void {\n if (this.disabled()) {\n return;\n }\n\n if (this.multiple()) {\n this.values.set([]);\n this._onChange(this._removeInternalProperties(this.values()));\n } else {\n this.value.set(null);\n this._onChange(this.value());\n }\n\n this._closeDropdown();\n\n this._onTouched();\n event.stopPropagation();\n }\n\n /**\n * Limpa o filtro aplicado à lista de opções.\n */\n public clearFilter(): void {\n this.filterForm.get('filter')?.reset();\n }\n\n /**\n * Fecha o dropdown se o clique ocorrer fora do componente.\n * @param event Evento do clique.\n */\n public onDocumentClick(event: MouseEvent): void {\n const clickTarget = event.target as Node;\n\n const clickedInsideComponent = this._elementRef.nativeElement.contains(clickTarget);\n const dropdownInBody = document.querySelector('.dropdown-body-class')?.contains(clickTarget);\n\n if (!clickedInsideComponent && !dropdownInBody) {\n this._closeDropdown();\n }\n }\n\n /**\n * Fecha o dropdown em eventos de redimensionamento de janela.\n */\n public onWindowResize(_: Event): void {\n if (this.showOptions()) {\n this._closeDropdown();\n }\n }\n\n /**\n * Dispara a abertura/fechamento do dropdown ao clicar no container.\n */\n public onContainerDivClick(): void {\n this.toggle();\n this._containerDiv()?.nativeElement.focus();\n }\n\n /**\n * Trata eventos de teclado para navegação e seleção.\n * @param event Evento do teclado.\n */\n public onKeyDown(event: KeyboardEvent): void {\n const options = this.filteredOptions();\n\n if (!options.length) {\n return;\n }\n\n const _selectOption = () => {\n if (this.focusedIndex() >= 0 && this.focusedIndex() < options.length) {\n event.preventDefault();\n this.selectItem(options[this.focusedIndex()].data);\n }\n };\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this._focusNextOption(options);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this._focusPreviousOption(options);\n break;\n case 'Tab':\n _selectOption();\n this._closeDropdown();\n break;\n case 'Enter':\n if (this.showOptions()) {\n _selectOption();\n } else {\n this.toggle();\n }\n break;\n case 'Escape':\n this._closeDropdown();\n break;\n case ' ':\n _selectOption();\n break;\n }\n }\n\n /**\n * Retorna o rótulo de exibição de uma opção.\n * @param option Item da lista de opções.\n * @returns Texto que será exibido no dropdown.\n */\n public getOptionLabel(option: T): string {\n return this._getLabelFromOption(option);\n }\n\n /**\n * Função usada para o trackBy no for do template.\n * @param _ Índice do item.\n * @param item Item da lista.\n * @returns ID único da opção.\n */\n public trackById(_: number, item: InternalDropdownOption<T>): string {\n return item.id;\n }\n\n /**\n * Verifica se uma opção está selecionada.\n * @param option Opção a ser verificada.\n * @returns Verdadeiro se a opção estiver selecionada.\n */\n public isOptionSelected(option: T): boolean {\n const getCompareValue = this._getCompareValueExtractor();\n\n if (this.multiple()) {\n const selectedValues = this.values().map(getCompareValue);\n return selectedValues.includes(getCompareValue(option));\n } else {\n const currentValue = this.value();\n return currentValue !== null && getCompareValue(currentValue) === getCompareValue(option);\n }\n }\n\n /**\n * Alterna a seleção de todos os itens filtrados.\n */\n public toggleSelectAll(): void {\n if (!this.multiple()) {\n return;\n }\n\n const options = this.filteredOptions().filter((o) => !o.grouper);\n\n if (this.allSelected()) {\n this.values.set([]);\n } else {\n this.values.set(options.map((o) => o.data));\n }\n\n this._onChange(this._removeInternalProperties(this.values()));\n }\n\n /**\n * Procura e retorna uma opção com valor primitivo igual ao informado.\n *\n * @param value Valor primitivo (string, number ou boolean).\n * @returns A opção correspondente, ou `null` se não encontrada.\n */\n private _findOptionByPrimitiveValue(value: any): T | null {\n return this.internalOptions().find((opt) => opt.data === value)?.data ?? null;\n }\n\n /**\n * Remove propriedades internas adicionadas pelo componente, retornando apenas os dados crus.\n *\n * Usado para garantir que apenas os objetos de dados reais sejam emitidos ao formulário,\n * especialmente no modo múltiplo.\n *\n * @param value Valor armazenado internamente (com ou sem `InternalDropdownOption`).\n * @returns Os dados \"puros\", sem propriedades adicionais.\n */\n private _removeInternalProperties(value: any) {\n if (this.TIsPrimitive()) {\n return value;\n }\n\n return Array.isArray(value)\n ? value.map((opt: InternalDropdownOption<T>) => opt.data)\n : (value as InternalDropdownOption<T>).data;\n }\n\n /**\n * Retorna o texto (label) correspondente a uma determinada opção.\n * Usa a propriedade definida em `optionLabel`, ou tenta usar uma propriedade padrão (`label`).\n *\n * @param option A opção a ser exibida.\n * @returns O texto legível da opção para exibição no componente.\n */\n private _getLabelFromOption(option: T): string {\n if (['string', 'number', 'boolean'].includes(typeof option)) {\n return String(option);\n }\n\n const labelKey = this.optionLabel();\n\n if (!labelKey) {\n return String((option as any).label ?? '');\n }\n\n return String(option[labelKey]);\n }\n\n /**\n * Valida os inputs obrigatórios do componente.\n */\n private _validateInputs(): void {\n if (!this.useRawValue() && !this.TIsPrimitive() && !this.optionValue()) {\n throw new Error(\n `The 'optionValue' input must be provided for non-primitive options when useRawValue is false.`,\n );\n }\n\n if (!this.TIsPrimitive() && !this.optionValue() && !this.dataKey()) {\n throw new Error('Either the optionValue or dataKey input must be provided for non-primitive options.');\n }\n\n if (!this.TIsPrimitive() && !this.optionLabel()) {\n throw new Error(`The 'optionLabel' input must be provided for non-primitive options.`);\n }\n }\n\n private _findOptionByValue(value: any): T | null {\n if (this.useRawValue()) {\n return this.options().find((option) => option === value) ?? null;\n }\n\n const getValue = this._getValueExtractor();\n return this.options().find((option) => getValue(option) === value) ?? null;\n }\n\n /**\n * Extrai o valor final de uma opção, com base em `optionValue`.\n * @returns Função que retorna o valor da opção.\n */\n private _getValueExtractor(): (option: T) => any {\n if (this.TIsPrimitive()) {\n return (option: any) => option;\n }\n\n if (this.useRawValue()) {\n return (option: T) => option;\n }\n\n const valueInput = this.optionValue();\n\n if (valueInput) {\n return (option: T) => option[valueInput];\n }\n\n throw new Error(`optionValue is required for non-primitive options.`);\n }\n\n /**\n * Extrai o valor comparável de uma opção.\n * @returns Função que retorna a chave de comparação.\n */\n private _getCompareValueExtractor(): (option: T) => any {\n if (this.TIsPrimitive()) {\n return (option: any) => option;\n }\n\n if (this.dataKey()) {\n const key = this.dataKey()!;\n return (option: T) => option[key];\n }\n\n return this._getValueExtractor();\n }\n\n /**\n * Fecha o dropdown e redefine o foco.\n */\n private _closeDropdown(): void {\n this.showOptions.set(false);\n this._destroyDropdownPortal();\n this.focusedIndex.set(-1);\n }\n\n /**\n * Adiciona identificadores únicos às opções.\n * @param options Lista original de opções.\n * @returns Lista com IDs adicionados.\n */\n private _addIdToOptions(options: T[]): InternalDropdownOption<T>[] {\n const timestamp = Date.now();\n\n return options.map((option, index) => {\n if (this.group() && Array.isArray((option as any).items)) {\n return {\n data: option,\n id: `id_${timestamp}_${index++}`,\n grouper: true,\n };\n }\n\n return {\n data: option,\n id: `id_${timestamp}_${index++}`,\n };\n });\n }\n\n /**\n * Converte uma estrutura agrupada em uma lista achatada.\n * @param options Lista de opções com agrupadores.\n * @returns Lista achatada de opções e grupos.\n */\n private _grouperToFlat(options: InternalDropdownOption<T>[]): InternalDropdownOption<T>[] {\n const result: InternalDropdownOption<T>[] = [];\n\n options.forEach((option) => {\n if (option.grouper && Array.isArray((option.data as any).items)) {\n result.push(option);\n const groupItems = (option.data as any).items.map((item: T, index: number) => ({\n data: item,\n id: `${option.id}_item_${index}`,\n }));\n result.push(...groupItems);\n } else {\n result.push(option);\n }\n });\n\n return result;\n }\n\n /**\n * Move o foco para a próxima opção.\n * @param options Lista de opções visíveis.\n */\n private _focusNextOption(options: InternalDropdownOption<T>[]) {\n let nextIndex = this.focusedIndex() + 1;\n\n while (nextIndex < options.length && options[nextIndex].grouper) {\n nextIndex++;\n }\n\n if (nextIndex < options.length) {\n this.focusedIndex.set(nextIndex);\n this._scrollToFocusedOption();\n }\n }\n\n /**\n * Move o foco para a opção anterior.\n * @param options Lista de opções visíveis.\n */\n private _focusPreviousOption(options: InternalDropdownOption<T>[]) {\n let prevIndex = this.focusedIndex() - 1;\n\n while (prevIndex >= 0 && options[prevIndex].grouper) {\n prevIndex--;\n }\n\n if (prevIndex >= 0) {\n this.focusedIndex.set(prevIndex);\n this._scrollToFocusedOption();\n }\n }\n\n /**\n * Rola o dropdown até a opção atualmente focada.\n */\n private _scrollToFocusedOption() {\n const id = this.filteredOptions()[this.focusedIndex()]?.id;\n\n if (!id) {\n return;\n }\n\n const el = document.getElementById(id);\n el?.scrollIntoView({ block: 'nearest' });\n }\n\n /**\n * Extrai o texto de uma opção, com base em `optionLabel`.\n * @returns Função que retorna o label da opção.\n */\n private _getLabelExtractor(): (option: T) => string {\n if (this.TIsPrimitive()) {\n return (option: any) => String(option);\n }\n\n const labelInput = this.optionLabel();\n\n if (labelInput) {\n return (option: T) => String(option[labelInput] ?? '');\n } else {\n throw new Error(`optionLabel is required for non-primitive options.`);\n }\n }\n\n /**\n * Cria e posiciona dinamicamente o dropdown como portal.\n */\n private _createDropdownPortal(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const container = this._containerDiv();\n const template = this._dropdownTemplate();\n\n if (!container || !template) {\n return;\n }\n\n const dropElementRect = container.nativeElement.getBoundingClientRect();\n\n this.dropTop = dropElementRect.bottom + window.scrollY;\n this.dropLeft = dropElementRect.left + window.scrollX;\n this.dropWidth = dropElementRect.width;\n\n this._destroyDropdownPortal();\n\n this._portalHost = new DomPortalOutlet(document.body);\n\n const portal = new TemplatePortal(template, this._viewContainerRef);\n\n this._portalHost.attach(portal);\n\n const dropdownEl = document.querySelector('.dropdown-body-class') as HTMLElement | null;\n if (dropdownEl) {\n dropdownEl.style.position = 'absolute';\n dropdownEl.style.top = `${this.dropTop + 4}px`;\n dropdownEl.style.left = `${this.dropLeft}px`;\n dropdownEl.style.width = `${this.dropWidth}px`;\n }\n }\n\n /**\n * Remove o portal do dropdown do DOM.\n */\n private _destroyDropdownPortal(): void {\n if (this._portalHost?.hasAttached()) {\n this._portalHost.detach();\n }\n }\n}\n","<ng-template #portalAnchor></ng-template>\n\n<div\n #containerDiv\n class=\"group flex w-full overflow-hidden rounded-[3px] border outline-1 outline-primary focus:outline\"\n [ngClass]=\"{\n 'pointer-events-none border-grayscale-20 bg-grayscale-5': disabled(),\n 'pointer-events-auto border-grayscale-30 bg-grayscale-0': !disabled(),\n }\"\n [attr.aria-disabled]=\"disabled()\"\n (click)=\"onContainerDivClick()\"\n (keydown)=\"onKeyDown($event)\"\n tabindex=\"0\"\n>\n <span\n class=\"flex flex-grow select-none px-3 py-[7px]\"\n [ngClass]=\"{\n 'text-grayscale-90': !disabled() && !isClean(),\n 'text-grayscale-60': !disabled() && isClean(),\n 'text-grayscale-30': disabled(),\n }\"\n >\n {{ print() || placeholder() }}\n </span>\n\n @if (!disabled() && showClear() && !isClean()) {\n <button\n class=\"mx-3\"\n (click)=\"clear($event)\"\n >\n <i class=\"fas fa-times flex items-center\"></i>\n </button>\n }\n\n <div\n class=\"flex items-center border-l px-3 group-hover:bg-grayscale-10 group-focus:border-primary\"\n [ngClass]=\"{ 'border-grayscale-20': disabled(), 'border-grayscale-30': !disabled() }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'text-grayscale-30': disabled(),\n 'text-grayscale-90': !disabled(),\n 'fa-caret-down': !showOptions(),\n 'fa-caret-up': showOptions(),\n }\"\n ></i>\n </div>\n</div>\n\n<ng-template #dropdownTemplate>\n <div\n class=\"dropdown-body-class z-[999] rounded-[3px] bg-grayscale-0 py-1 shadow-md\"\n [style.position]=\"'absolute'\"\n [style.top.px]=\"dropTop\"\n [style.left.px]=\"dropLeft\"\n (click)=\"$event.stopPropagation()\"\n >\n @if (filter()) {\n <div class=\"flex w-full items-center gap-3 px-3 py-1.5\">\n @if (multiple()) {\n <s-checkbox\n #selectAllCheckbox\n [checked]=\"allSelected()\"\n [indeterminate]=\"selectAllIsIndeterminate()\"\n (checkedChange)=\"toggleSelectAll()\"\n ></s-checkbox>\n }\n\n <div class=\"relative flex h-[35px] grow\">\n <form\n class=\"flex grow\"\n [formGroup]=\"filterForm\"\n >\n <input\n class=\"w-full grow rounded-[3px] border border-grayscale-30 pl-2.5 pr-7 outline-1 outline-primary\"\n type=\"text\"\n formControlName=\"filter\"\n (click)=\"$event.stopPropagation()\"\n />\n </form>\n <i class=\"fas fa-search absolute right-2.5 top-2.5 text-grayscale-90\"></i>\n </div>\n <button (click)=\"clearFilter()\">\n <i class=\"fas fa-times flex items-center\"></i>\n </button>\n </div>\n }\n\n <!-- Virtual scroll -->\n @if (virtualScroll() && filteredOptions().length > 10) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize()\"\n class=\"h-52 overflow-auto\"\n >\n <ng-container *cdkVirtualFor=\"let option of filteredOptions(); trackBy: trackById\">\n <s-select-option\n [id]=\"option.id\"\n [label]=\"getOptionLabel(option.data)\"\n [multiple]=\"multiple()\"\n [checkmark]=\"checkmark()\"\n [isSelected]=\"isOptionSelected(option.data)\"\n (selected)=\"selectItem(option.data)\"\n [isGrouper]=\"option.grouper\"\n [isFocused]=\"option.data === focusedItem()\"\n ></s-select-option>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n }\n\n <!-- Normal list -->\n @if (!virtualScroll() || filteredOptions().length <= 10) {\n <ul class=\"max-h-52 overflow-auto\">\n @for (option of filteredOptions(); track option.id) {\n <s-select-option\n [id]=\"option.id\"\n [label]=\"getOptionLabel(option.data)\"\n [multiple]=\"multiple()\"\n [checkmark]=\"checkmark()\"\n [isSelected]=\"isOptionSelected(option.data)\"\n (selected)=\"selectItem(option.data)\"\n [isGrouper]=\"option.grouper ?? false\"\n [isFocused]=\"option.data === focusedItem()\"\n ></s-select-option>\n }\n </ul>\n }\n\n @if (filteredOptions().length === 0) {\n <span class=\"m-3 text-grayscale-60\">{{\n emptyMessage() ?? 'platform.angular_components.no_records_found' | translate\n }}</span>\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-select.mjs","sources":["../../projects/angular-components/select/src/lib/select/components/select-option/select-option.component.ts","../../projects/angular-components/select/src/lib/select/components/select-option/select-option.component.html","../../projects/angular-components/select/src/lib/select/select.component.ts","../../projects/angular-components/select/src/lib/select/select.component.html","../../projects/angular-components/select/src/seniorsistemas-angular-components-select.ts"],"sourcesContent":["import { Component, input, model, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CheckboxComponent } from '@seniorsistemas/angular-components/checkbox';\n\n@Component({\n selector: 's-select-option',\n templateUrl: './select-option.component.html',\n standalone: true,\n imports: [CommonModule, CheckboxComponent],\n})\nexport class SelectOptionComponent {\n public id = input.required<string>();\n public label = input.required<string>();\n public multiple = input.required<boolean>();\n public checkmark = input.required<boolean>();\n public isGrouper = input.required<boolean>();\n public isFocused = input.required<boolean>();\n\n public isSelected = model.required<boolean>();\n\n public selected = output();\n\n public onClick(): void {\n if (this.isGrouper()) {\n return;\n }\n\n this.selected.emit();\n }\n}\n","<li\n [attr.id]=\"id()\"\n class=\"flex select-none items-center gap-3 px-3 py-2\"\n [class.hover:bg-grayscale-10]=\"!isGrouper()\"\n [class.bg-grayscale-10]=\"!isGrouper() && isFocused()\"\n (click)=\"onClick()\"\n>\n @if (!isGrouper() && checkmark() && !multiple() && isSelected()) {\n <i class=\"far fa-check text-grayscale-60\"></i>\n }\n\n @if (!isGrouper() && multiple()) {\n <s-checkbox [checked]=\"isSelected()\"></s-checkbox>\n }\n <span\n class=\"text-grayscale-90\"\n [class.font-bold]=\"isGrouper()\"\n >\n {{ label() }}\n </span>\n</li>\n","import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n computed,\n ElementRef,\n forwardRef,\n inject,\n input,\n model,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n signal,\n TemplateRef,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormGroup, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\n\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\n\nimport { SelectOptionComponent } from './components/select-option/select-option.component';\nimport { Subject } from 'rxjs';\nimport { CheckboxComponent } from '@seniorsistemas/angular-components/checkbox';\n\ninterface InternalDropdownOption<T> {\n data: T;\n id: string;\n grouper?: boolean;\n}\n@Component({\n selector: 's-select',\n templateUrl: './select.component.html',\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n ScrollingModule,\n SelectOptionComponent,\n CheckboxComponent,\n TranslateModule,\n ],\n host: {\n '(document:click)': 'onDocumentClick($event)',\n '(window:resize)': 'onWindowResize($event)',\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n ],\n})\nexport class SelectComponent<T> implements ControlValueAccessor, OnInit, OnDestroy {\n public placeholder = input('');\n public multiple = input(false);\n public options = input.required<T[]>();\n public optionLabel = input<keyof T>();\n public optionValue = input<keyof T>();\n public showClear = input(false);\n public filter = input(false);\n public checkmark = input(false);\n public filterBy = input<keyof T | (keyof T)[]>();\n public group = input(false);\n public virtualScroll = input(false);\n public virtualScrollItemSize = input(37);\n public emptyMessage = input<string | null>(null);\n public useRawValue = input(false);\n public dataKey = input<keyof T>();\n\n public disabled = model(false);\n public showOptions = signal(false);\n\n public value = signal<T | null>(null);\n public values = signal<T[]>([]);\n public filterValue = signal('');\n public focusedIndex = signal(-1);\n\n public dropTop = 0;\n public dropLeft = 0;\n public dropWidth = 0;\n\n private _portalHost: DomPortalOutlet | null = null;\n\n /**\n * Verifica se todas as opções visíveis (filtradas e não agrupadoras) estão selecionadas.\n *\n * - Retorna `true` se todas as opções filtradas estiverem presentes em `values()`.\n * - Ignora opções marcadas como `grouper`.\n * - Usa `_getCompareValueExtractor()` para comparar os valores de forma consistente.\n *\n * Esse estado é usado para controlar o checkbox de \"Selecionar todos\" quando todas as opções visíveis estão marcadas.\n */\n public allSelected = computed(() => {\n const selected = this.values();\n const options = this.filteredOptions().filter((o) => !o.grouper);\n return (\n options.length > 0 &&\n options.every((option) =>\n selected.some(\n (s) => this._getCompareValueExtractor()(s) === this._getCompareValueExtractor()(option as T),\n ),\n )\n );\n });\n\n public focusedItem = computed(() => this.filteredOptions().at(this.focusedIndex())?.data ?? null);\n\n /**\n * Converte as opções externas (`options()`) em uma estrutura interna padronizada (`InternalDropdownOption<T>`).\n *\n * - Se os dados forem primitivos (string, number, etc.), gera opções com IDs baseados no índice.\n * - Se os dados forem objetos, delega a criação das opções para `_addIdToOptions()`, que adiciona IDs e marca agrupadores.\n * - Se o modo agrupado estiver ativo (`group()`), transforma as opções em uma lista achatada com agrupadores via `_grouperToFlat()`.\n *\n * Essa estrutura é usada internamente para renderização, filtragem e controle de seleção.\n */\n public internalOptions = computed<InternalDropdownOption<T>[]>(() => {\n const opts = this.options();\n\n const optionsWithId: InternalDropdownOption<T>[] = this.TIsPrimitive()\n ? opts.map((value, index) => ({\n id: `id_primitive_${index}`,\n grouper: false,\n data: value as T,\n }))\n : this._addIdToOptions(opts);\n\n return this.group() ? this._grouperToFlat(optionsWithId) : optionsWithId;\n });\n\n /**\n * Retorna o texto que deve ser exibido no componente com base nos valores selecionados.\n *\n * - No modo múltiplo:\n * - Se houver mais de um item selecionado, exibe uma mensagem traduzida com o total de registros.\n * - Se houver apenas um item selecionado, exibe o label correspondente.\n * - No modo simples:\n * - Exibe o label do valor selecionado. *\n * - Se nenhum valor estiver selecionado, retorna uma string vazia.\n *\n * Essa lógica é usada para mostrar o conteúdo atual do campo de seleção.\n */\n\n public print = computed(() => {\n if (this.multiple()) {\n const selected = this.values();\n if (selected.length > 1) {\n return this._translateService.instant(`platform.angular_components.total_records_selected`, {\n count: selected.length,\n });\n } else if (selected.length === 1) {\n return this._getLabelFromOption(selected[0]);\n }\n } else if (this.value()) {\n return this._getLabelFromOption(this.value() as T);\n }\n\n return '';\n });\n\n public isClean = computed(() => {\n return this.multiple() ? !this.values().length : !this.value();\n });\n\n public TIsPrimitive = computed(() => {\n const opts = this.options();\n if (!opts.length) return false;\n return ['string', 'number', 'boolean'].includes(typeof opts[0]);\n });\n\n /**\n * Indica se o estado de seleção está indeterminado.\n *\n * - Retorna `true` quando **algumas**, mas não todas, opções visíveis estão selecionadas.\n * - Retorna `false` quando **todas** ou **nenhuma** das opções visíveis estão selecionadas.\n * - Ignora opções marcadas como `grouper`.\n *\n * Esse estado é usado, por exemplo, para exibir o checkbox de \"Selecionar todos\" em modo indeterminado.\n */\n\n public selectAllIsIndeterminate = computed(() => {\n const selected = this.values();\n const options = this.filteredOptions().filter((o) => !o.grouper);\n\n const all = options.length > 0 && options.every((o) => selected.includes(o.data));\n const none = options.every((o) => !selected.includes(o.data));\n\n return !all && !none;\n });\n\n /**\n * Retorna a lista de opções filtradas com base no valor digitado pelo usuário.\n *\n * - Se o filtro estiver desativado ou vazio, retorna todas as opções.\n * - Caso contrário, aplica o filtro usando o(s) campo(s) definidos em `filterBy`.\n * - Ignora opções marcadas como `grouper`.\n * - Usa o extrator de label para comparar os valores com o texto buscado.\n */\n\n public filteredOptions = computed(() => {\n const allOptions = this.internalOptions();\n const search = this.filterValue().toLowerCase().trim();\n\n if (!this.filter() || !search) {\n return allOptions;\n }\n\n const filterBy = this.filterBy();\n return allOptions.filter((option) => {\n if (option.grouper) {\n return false;\n }\n\n const labelExtractor = this._getLabelExtractor();\n let label = '';\n\n if (!filterBy) {\n label = labelExtractor(option.data);\n } else if (Array.isArray(filterBy)) {\n label = filterBy.map((by) => String(option.data[by] ?? '')).join(' ');\n } else {\n label = String(option.data[filterBy] ?? '');\n }\n\n return label.toLowerCase().includes(search);\n });\n });\n\n public readonly filterForm = new FormGroup<{ filter: FormControl<string> }>({\n filter: new FormControl<string>('', { nonNullable: true }),\n });\n\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n private _dropdownTemplate = viewChild<TemplateRef<any>>('dropdownTemplate');\n private _containerDiv = viewChild<ElementRef<HTMLDivElement>>('containerDiv');\n private _onChange: (value: T | T[] | null) => void = () => { };\n private _onTouched: () => void = () => { };\n\n private readonly platformId = inject(PLATFORM_ID);\n private readonly _viewContainerRef = inject(ViewContainerRef);\n private readonly _translateService = inject(TranslateService);\n\n private destroy$ = new Subject<void>();\n\n /**\n * Inicializa o componente, validando os inputs e configurando o filtro com debounce.\n */\n public ngOnInit(): void {\n this._validateInputs();\n\n this.filterForm\n .get('filter')!\n .valueChanges.pipe(debounceTime(300), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((value) => {\n this.filterValue.set(value);\n });\n }\n\n /**\n * Executa limpeza de recursos ao destruir o componente.\n */\n public ngOnDestroy(): void {\n this._destroyDropdownPortal();\n\n if (this._portalHost) {\n this._portalHost.dispose();\n this._portalHost = null;\n }\n\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * Define o valor no componente vindo do formulário externo.\n * @param value Valor atribuído pelo Angular forms.\n */\n public writeValue(value: any): void {\n if (this.multiple()) {\n if (Array.isArray(value)) {\n const items = this.TIsPrimitive()\n ? value.map((v) => this._findOptionByPrimitiveValue(v)).filter(Boolean)\n : this.useRawValue()\n ? value\n : value.map((v) => this._findOptionByValue(v)).filter(Boolean);\n\n this.values.set(items as T[]);\n } else {\n this.values.set([]);\n }\n } else {\n const item = this.TIsPrimitive()\n ? this._findOptionByPrimitiveValue(value)\n : this.useRawValue()\n ? value\n : this._findOptionByValue(value);\n\n this.value.set(item ?? null);\n }\n }\n\n /**\n * Registra a função que será chamada quando o valor mudar.\n * @param onChange Função callback.\n */\n public registerOnChange(onChange: (value: T | T[] | null) => void): void {\n this._onChange = onChange;\n }\n\n /**\n * Registra a função que será chamada quando o componente for \"tocado\".\n * @param onTouched Função callback.\n */\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n /**\n * Define o estado de desabilitado do componente.\n * @param disabled Indica se o componente está desabilitado.\n */\n public setDisabledState(disabled: boolean): void {\n this.disabled.set(disabled);\n }\n\n /**\n * Alterna a exibição da lista de opções (dropdown).\n */\n public toggle(): void {\n if (this.disabled()) {\n return;\n }\n\n const shouldOpen = !this.showOptions();\n this.showOptions.set(shouldOpen);\n\n if (shouldOpen) {\n setTimeout(() => {\n this._createDropdownPortal();\n });\n } else {\n this._destroyDropdownPortal();\n }\n }\n\n /**\n * Seleciona ou desseleciona um item na lista.\n * @param item Item a ser selecionado ou desmarcado.\n */\n public selectItem(item: T): void {\n if (this.disabled()) {\n return;\n }\n\n const getCompareValue = this._getCompareValueExtractor();\n\n if (this.multiple()) {\n const store = [...this.values()];\n const itemValue = getCompareValue(item);\n\n const index = store.findIndex((selectedItem) => {\n return getCompareValue(selectedItem) === itemValue;\n });\n\n if (index !== -1) {\n store.splice(index, 1);\n } else {\n store.push(item);\n }\n\n this.values.set(store);\n\n const result = this.useRawValue() ? store : store.map((i) => this._getValueExtractor()(i));\n\n this._onChange(result);\n } else {\n this.value.set(item);\n\n const result = this.useRawValue() ? item : this._getValueExtractor()(item);\n\n this._onChange(result);\n this._closeDropdown();\n }\n\n this._onTouched();\n }\n\n /**\n * Limpa a seleção atual.\n * @param event Evento do clique.\n */\n public clear(event: MouseEvent): void {\n if (this.disabled()) {\n return;\n }\n\n if (this.multiple()) {\n this.values.set([]);\n this._onChange(this._removeInternalProperties(this.values()));\n } else {\n this.value.set(null);\n this._onChange(this.value());\n }\n\n this._closeDropdown();\n\n this._onTouched();\n event.stopPropagation();\n }\n\n /**\n * Limpa o filtro aplicado à lista de opções.\n */\n public clearFilter(): void {\n this.filterForm.get('filter')?.reset();\n }\n\n /**\n * Fecha o dropdown se o clique ocorrer fora do componente.\n * @param event Evento do clique.\n */\n public onDocumentClick(event: MouseEvent): void {\n const clickTarget = event.target as Node;\n\n const clickedInsideComponent = this._elementRef.nativeElement.contains(clickTarget);\n const dropdownInBody = document.querySelector('.dropdown-body-class')?.contains(clickTarget);\n\n if (!clickedInsideComponent && !dropdownInBody) {\n this._closeDropdown();\n }\n }\n\n /**\n * Fecha o dropdown em eventos de redimensionamento de janela.\n */\n public onWindowResize(_: Event): void {\n if (this.showOptions()) {\n this._closeDropdown();\n }\n }\n\n /**\n * Dispara a abertura/fechamento do dropdown ao clicar no container.\n */\n public onContainerDivClick(): void {\n this.toggle();\n this._containerDiv()?.nativeElement.focus();\n }\n\n /**\n * Trata eventos de teclado para navegação e seleção.\n * @param event Evento do teclado.\n */\n public onKeyDown(event: KeyboardEvent): void {\n const options = this.filteredOptions();\n\n if (!options.length) {\n return;\n }\n\n const _selectOption = () => {\n if (this.focusedIndex() >= 0 && this.focusedIndex() < options.length) {\n event.preventDefault();\n this.selectItem(options[this.focusedIndex()].data);\n }\n };\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this._focusNextOption(options);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this._focusPreviousOption(options);\n break;\n case 'Tab':\n _selectOption();\n this._closeDropdown();\n break;\n case 'Enter':\n if (this.showOptions()) {\n _selectOption();\n } else {\n this.toggle();\n }\n break;\n case 'Escape':\n this._closeDropdown();\n break;\n case ' ':\n _selectOption();\n break;\n }\n }\n\n /**\n * Retorna o rótulo de exibição de uma opção.\n * @param option Item da lista de opções.\n * @returns Texto que será exibido no dropdown.\n */\n public getOptionLabel(option: T): string {\n return this._getLabelFromOption(option);\n }\n\n /**\n * Função usada para o trackBy no for do template.\n * @param _ Índice do item.\n * @param item Item da lista.\n * @returns ID único da opção.\n */\n public trackById(_: number, item: InternalDropdownOption<T>): string {\n return item.id;\n }\n\n /**\n * Verifica se uma opção está selecionada.\n * @param option Opção a ser verificada.\n * @returns Verdadeiro se a opção estiver selecionada.\n */\n public isOptionSelected(option: T): boolean {\n const getCompareValue = this._getCompareValueExtractor();\n\n if (this.multiple()) {\n const selectedValues = this.values().map(getCompareValue);\n return selectedValues.includes(getCompareValue(option));\n } else {\n const currentValue = this.value();\n return currentValue !== null && getCompareValue(currentValue) === getCompareValue(option);\n }\n }\n\n /**\n * Alterna a seleção de todos os itens filtrados.\n */\n public toggleSelectAll(): void {\n if (!this.multiple()) {\n return;\n }\n\n const options = this.filteredOptions().filter((o) => !o.grouper);\n\n if (this.allSelected()) {\n this.values.set([]);\n } else {\n this.values.set(options.map((o) => o.data));\n }\n\n this._onChange(this._removeInternalProperties(this.values()));\n }\n\n /**\n * Procura e retorna uma opção com valor primitivo igual ao informado.\n *\n * @param value Valor primitivo (string, number ou boolean).\n * @returns A opção correspondente, ou `null` se não encontrada.\n */\n private _findOptionByPrimitiveValue(value: any): T | null {\n return this.internalOptions().find((opt) => opt.data === value)?.data ?? null;\n }\n\n /**\n * Remove propriedades internas adicionadas pelo componente, retornando apenas os dados crus.\n *\n * Usado para garantir que apenas os objetos de dados reais sejam emitidos ao formulário,\n * especialmente no modo múltiplo.\n *\n * @param value Valor armazenado internamente (com ou sem `InternalDropdownOption`).\n * @returns Os dados \"puros\", sem propriedades adicionais.\n */\n private _removeInternalProperties(value: any) {\n if (this.TIsPrimitive()) {\n return value;\n }\n\n return Array.isArray(value)\n ? value.map((opt: InternalDropdownOption<T>) => opt.data)\n : (value as InternalDropdownOption<T>).data;\n }\n\n /**\n * Retorna o texto (label) correspondente a uma determinada opção.\n * Usa a propriedade definida em `optionLabel`, ou tenta usar uma propriedade padrão (`label`).\n *\n * @param option A opção a ser exibida.\n * @returns O texto legível da opção para exibição no componente.\n */\n private _getLabelFromOption(option: T): string {\n if (['string', 'number', 'boolean'].includes(typeof option)) {\n return String(option);\n }\n\n const labelKey = this.optionLabel();\n\n if (!labelKey) {\n return String((option as any).label ?? '');\n }\n\n return String(option[labelKey]);\n }\n\n /**\n * Valida os inputs obrigatórios do componente.\n */\n private _validateInputs(): void {\n if (!this.useRawValue() && !this.TIsPrimitive() && !this.optionValue()) {\n throw new Error(\n `The 'optionValue' input must be provided for non-primitive options when useRawValue is false.`,\n );\n }\n\n if (!this.TIsPrimitive() && !this.optionValue() && !this.dataKey()) {\n throw new Error('Either the optionValue or dataKey input must be provided for non-primitive options.');\n }\n\n if (!this.TIsPrimitive() && !this.optionLabel()) {\n throw new Error(`The 'optionLabel' input must be provided for non-primitive options.`);\n }\n }\n\n private _findOptionByValue(value: any): T | null {\n if (this.useRawValue()) {\n return this.options().find((option) => option === value) ?? null;\n }\n\n const getValue = this._getValueExtractor();\n return this.options().find((option) => getValue(option) === value) ?? null;\n }\n\n /**\n * Extrai o valor final de uma opção, com base em `optionValue`.\n * @returns Função que retorna o valor da opção.\n */\n private _getValueExtractor(): (option: T) => any {\n if (this.TIsPrimitive()) {\n return (option: any) => option;\n }\n\n if (this.useRawValue()) {\n return (option: T) => option;\n }\n\n const valueInput = this.optionValue();\n\n if (valueInput) {\n return (option: T) => option[valueInput];\n }\n\n throw new Error(`optionValue is required for non-primitive options.`);\n }\n\n /**\n * Extrai o valor comparável de uma opção.\n * @returns Função que retorna a chave de comparação.\n */\n private _getCompareValueExtractor(): (option: T) => any {\n if (this.TIsPrimitive()) {\n return (option: any) => option;\n }\n\n if (this.dataKey()) {\n const key = this.dataKey()!;\n return (option: T) => option[key];\n }\n\n return this._getValueExtractor();\n }\n\n /**\n * Fecha o dropdown e redefine o foco.\n */\n private _closeDropdown(): void {\n this.showOptions.set(false);\n this._destroyDropdownPortal();\n this.focusedIndex.set(-1);\n }\n\n /**\n * Adiciona identificadores únicos às opções.\n * @param options Lista original de opções.\n * @returns Lista com IDs adicionados.\n */\n private _addIdToOptions(options: T[]): InternalDropdownOption<T>[] {\n const timestamp = Date.now();\n\n return options.map((option, index) => {\n if (this.group() && Array.isArray((option as any).items)) {\n return {\n data: option,\n id: `id_${timestamp}_${index++}`,\n grouper: true,\n };\n }\n\n return {\n data: option,\n id: `id_${timestamp}_${index++}`,\n };\n });\n }\n\n /**\n * Converte uma estrutura agrupada em uma lista achatada.\n * @param options Lista de opções com agrupadores.\n * @returns Lista achatada de opções e grupos.\n */\n private _grouperToFlat(options: InternalDropdownOption<T>[]): InternalDropdownOption<T>[] {\n const result: InternalDropdownOption<T>[] = [];\n\n options.forEach((option) => {\n if (option.grouper && Array.isArray((option.data as any).items)) {\n result.push(option);\n const groupItems = (option.data as any).items.map((item: T, index: number) => ({\n data: item,\n id: `${option.id}_item_${index}`,\n }));\n result.push(...groupItems);\n } else {\n result.push(option);\n }\n });\n\n return result;\n }\n\n /**\n * Move o foco para a próxima opção.\n * @param options Lista de opções visíveis.\n */\n private _focusNextOption(options: InternalDropdownOption<T>[]) {\n let nextIndex = this.focusedIndex() + 1;\n\n while (nextIndex < options.length && options[nextIndex].grouper) {\n nextIndex++;\n }\n\n if (nextIndex < options.length) {\n this.focusedIndex.set(nextIndex);\n this._scrollToFocusedOption();\n }\n }\n\n /**\n * Move o foco para a opção anterior.\n * @param options Lista de opções visíveis.\n */\n private _focusPreviousOption(options: InternalDropdownOption<T>[]) {\n let prevIndex = this.focusedIndex() - 1;\n\n while (prevIndex >= 0 && options[prevIndex].grouper) {\n prevIndex--;\n }\n\n if (prevIndex >= 0) {\n this.focusedIndex.set(prevIndex);\n this._scrollToFocusedOption();\n }\n }\n\n /**\n * Rola o dropdown até a opção atualmente focada.\n */\n private _scrollToFocusedOption() {\n const id = this.filteredOptions()[this.focusedIndex()]?.id;\n\n if (!id) {\n return;\n }\n\n const el = document.getElementById(id);\n el?.scrollIntoView({ block: 'nearest' });\n }\n\n /**\n * Extrai o texto de uma opção, com base em `optionLabel`.\n * @returns Função que retorna o label da opção.\n */\n private _getLabelExtractor(): (option: T) => string {\n if (this.TIsPrimitive()) {\n return (option: any) => String(option);\n }\n\n const labelInput = this.optionLabel();\n\n if (labelInput) {\n return (option: T) => String(option[labelInput] ?? '');\n } else {\n throw new Error(`optionLabel is required for non-primitive options.`);\n }\n }\n\n /**\n * Cria e posiciona dinamicamente o dropdown como portal.\n */\n private _createDropdownPortal(): void {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const container = this._containerDiv();\n const template = this._dropdownTemplate();\n\n if (!container || !template) {\n return;\n }\n\n const dropElementRect = container.nativeElement.getBoundingClientRect();\n\n this.dropTop = dropElementRect.bottom + window.scrollY;\n this.dropLeft = dropElementRect.left + window.scrollX;\n this.dropWidth = dropElementRect.width;\n\n this._destroyDropdownPortal();\n\n this._portalHost = new DomPortalOutlet(document.body);\n\n const portal = new TemplatePortal(template, this._viewContainerRef);\n\n this._portalHost.attach(portal);\n\n const dropdownEl = document.querySelector('.dropdown-body-class') as HTMLElement | null;\n if (dropdownEl) {\n dropdownEl.style.position = 'absolute';\n dropdownEl.style.top = `${this.dropTop + 4}px`;\n dropdownEl.style.left = `${this.dropLeft}px`;\n dropdownEl.style.width = `${this.dropWidth}px`;\n }\n }\n\n /**\n * Remove o portal do dropdown do DOM.\n */\n private _destroyDropdownPortal(): void {\n if (this._portalHost?.hasAttached()) {\n this._portalHost.detach();\n }\n }\n}\n","<ng-template #portalAnchor></ng-template>\n\n<div\n #containerDiv\n class=\"group flex w-full overflow-hidden rounded-[3px] border outline-1 outline-primary focus:outline\"\n [ngClass]=\"{\n 'pointer-events-none border-grayscale-20 bg-grayscale-5': disabled(),\n 'pointer-events-auto border-grayscale-30 bg-grayscale-0': !disabled(),\n }\"\n [attr.aria-disabled]=\"disabled()\"\n (click)=\"onContainerDivClick()\"\n (keydown)=\"onKeyDown($event)\"\n tabindex=\"0\"\n>\n <span\n class=\"flex flex-grow select-none px-3 py-[7px]\"\n [ngClass]=\"{\n 'text-grayscale-90': !disabled() && !isClean(),\n 'text-grayscale-60': !disabled() && isClean(),\n 'text-grayscale-30': disabled(),\n }\"\n >\n {{ print() || placeholder() }}\n </span>\n\n @if (!disabled() && showClear() && !isClean()) {\n <button\n class=\"mx-3\"\n (click)=\"clear($event)\"\n >\n <i class=\"fas fa-times flex items-center\"></i>\n </button>\n }\n\n <div\n class=\"flex items-center border-l px-3 group-hover:bg-grayscale-10 group-focus:border-primary\"\n [ngClass]=\"{ 'border-grayscale-20': disabled(), 'border-grayscale-30': !disabled() }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'text-grayscale-30': disabled(),\n 'text-grayscale-90': !disabled(),\n 'fa-caret-down': !showOptions(),\n 'fa-caret-up': showOptions(),\n }\"\n ></i>\n </div>\n</div>\n\n<ng-template #dropdownTemplate>\n <div\n class=\"dropdown-body-class z-[1000] rounded-[3px] bg-grayscale-0 py-1 shadow-md\"\n [style.position]=\"'absolute'\"\n [style.top.px]=\"dropTop\"\n [style.left.px]=\"dropLeft\"\n (click)=\"$event.stopPropagation()\"\n >\n @if (filter()) {\n <div class=\"flex w-full items-center gap-3 px-3 py-1.5\">\n @if (multiple()) {\n <s-checkbox\n #selectAllCheckbox\n [checked]=\"allSelected()\"\n [indeterminate]=\"selectAllIsIndeterminate()\"\n (checkedChange)=\"toggleSelectAll()\"\n ></s-checkbox>\n }\n\n <div class=\"relative flex h-[35px] grow\">\n <form\n class=\"flex grow\"\n [formGroup]=\"filterForm\"\n >\n <input\n class=\"w-full grow rounded-[3px] border border-grayscale-30 pl-2.5 pr-7 outline-1 outline-primary\"\n type=\"text\"\n formControlName=\"filter\"\n (click)=\"$event.stopPropagation()\"\n />\n </form>\n <i class=\"fas fa-search absolute right-2.5 top-2.5 text-grayscale-90\"></i>\n </div>\n <button (click)=\"clearFilter()\">\n <i class=\"fas fa-times flex items-center\"></i>\n </button>\n </div>\n }\n\n <!-- Virtual scroll -->\n @if (virtualScroll() && filteredOptions().length > 10) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize()\"\n class=\"h-52 overflow-auto\"\n >\n <ng-container *cdkVirtualFor=\"let option of filteredOptions(); trackBy: trackById\">\n <s-select-option\n [id]=\"option.id\"\n [label]=\"getOptionLabel(option.data)\"\n [multiple]=\"multiple()\"\n [checkmark]=\"checkmark()\"\n [isSelected]=\"isOptionSelected(option.data)\"\n (selected)=\"selectItem(option.data)\"\n [isGrouper]=\"option.grouper\"\n [isFocused]=\"option.data === focusedItem()\"\n ></s-select-option>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n }\n\n <!-- Normal list -->\n @if (!virtualScroll() || filteredOptions().length <= 10) {\n <ul class=\"max-h-52 overflow-auto\">\n @for (option of filteredOptions(); track option.id) {\n <s-select-option\n [id]=\"option.id\"\n [label]=\"getOptionLabel(option.data)\"\n [multiple]=\"multiple()\"\n [checkmark]=\"checkmark()\"\n [isSelected]=\"isOptionSelected(option.data)\"\n (selected)=\"selectItem(option.data)\"\n [isGrouper]=\"option.grouper ?? false\"\n [isFocused]=\"option.data === focusedItem()\"\n ></s-select-option>\n }\n </ul>\n }\n\n @if (filteredOptions().length === 0) {\n <span class=\"m-3 text-grayscale-60\">{{\n emptyMessage() ?? 'platform.angular_components.no_records_found' | translate\n }}</span>\n }\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,28 +1,18 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { Component, ViewChild, NgModule } from '@angular/core';
3
+ import { Component, NgModule } from '@angular/core';
4
4
 
5
5
  class HeaderComponent {
6
- template;
7
6
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeaderComponent, selector: "s-header", viewQueries: [{ propertyName: "template", first: true, predicate: ["headerTemplate"], descendants: true, static: true }], ngImport: i0, template: `
9
- <ng-template #headerTemplate>
10
- <ng-content></ng-content>
11
- </ng-template>`, isInline: true });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: HeaderComponent, selector: "s-header", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
12
8
  }
13
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HeaderComponent, decorators: [{
14
10
  type: Component,
15
11
  args: [{
16
12
  selector: "s-header",
17
- template: `
18
- <ng-template #headerTemplate>
19
- <ng-content></ng-content>
20
- </ng-template>`,
13
+ template: `<ng-content></ng-content>`,
21
14
  }]
22
- }], propDecorators: { template: [{
23
- type: ViewChild,
24
- args: ['headerTemplate', { static: true }]
25
- }] } });
15
+ }] });
26
16
 
27
17
  class FooterComponent {
28
18
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-structure.mjs","sources":["../../projects/angular-components/structure/src/lib/structure/header.component.ts","../../projects/angular-components/structure/src/lib/structure/footer.component.ts","../../projects/angular-components/structure/src/lib/structure/structure.module.ts","../../projects/angular-components/structure/src/seniorsistemas-angular-components-structure.ts"],"sourcesContent":["import { Component, TemplateRef, ViewChild } from \"@angular/core\";\n\n@Component({\n selector: \"s-header\",\n template: `\n <ng-template #headerTemplate>\n <ng-content></ng-content>\n </ng-template>`,\n})\nexport class HeaderComponent {\n @ViewChild('headerTemplate', { static: true })\n public readonly template: TemplateRef<any> | undefined;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 's-footer',\n template: '<ng-content></ng-content>',\n})\nexport class FooterComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { HeaderComponent } from './header.component';\nimport { FooterComponent } from './footer.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [HeaderComponent, FooterComponent],\n exports: [HeaderComponent, FooterComponent],\n})\nexport class StructureModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MASa,eAAe,CAAA;AAER,IAAA,QAAQ,CAA+B;wGAF9C,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EALd,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGS,sBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAEV,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,CAAA;;;AAGS,sBAAA,CAAA;AACtB,iBAAA,CAAA;8BAGmB,QAAQ,EAAA,CAAA;sBADvB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MCJpC,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gDAFd,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,2BAA2B;AACxC,iBAAA,CAAA;;;MCMY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,YAAA,EAAA,CAHT,eAAe,EAAE,eAAe,aADrC,YAAY,CAAA,EAAA,OAAA,EAAA,CAEZ,eAAe,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAEjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAJd,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAIb,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;AAChD,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;AAC9C,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-structure.mjs","sources":["../../projects/angular-components/structure/src/lib/structure/header.component.ts","../../projects/angular-components/structure/src/lib/structure/footer.component.ts","../../projects/angular-components/structure/src/lib/structure/structure.module.ts","../../projects/angular-components/structure/src/seniorsistemas-angular-components-structure.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\n\n@Component({\n selector: \"s-header\",\n template: `<ng-content></ng-content>`,\n})\nexport class HeaderComponent {\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 's-footer',\n template: '<ng-content></ng-content>',\n})\nexport class FooterComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { HeaderComponent } from './header.component';\nimport { FooterComponent } from './footer.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [HeaderComponent, FooterComponent],\n exports: [HeaderComponent, FooterComponent],\n})\nexport class StructureModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAMa,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gDAFd,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;AACxC,iBAAA,CAAA;;;MCCY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,gDAFd,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;4FAE5B,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,2BAA2B;AACxC,iBAAA,CAAA;;;MCMY,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAf,eAAe,EAAA,YAAA,EAAA,CAHT,eAAe,EAAE,eAAe,aADrC,YAAY,CAAA,EAAA,OAAA,EAAA,CAEZ,eAAe,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA;AAEjC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAJd,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAIb,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;AAChD,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC;AAC9C,iBAAA,CAAA;;;ACVD;;AAEG;;;;"}
@@ -9,16 +9,18 @@ import * as i2 from '@seniorsistemas/angular-components/toast';
9
9
  import * as i3 from '@ngx-translate/core';
10
10
  import { TranslateModule } from '@ngx-translate/core';
11
11
  import * as i4 from '@seniorsistemas/angular-components/speech-recognition';
12
- import * as i5 from 'primeng/dialog';
13
- import { DialogModule } from 'primeng/dialog';
14
- import * as i6 from '@seniorsistemas/angular-components/button';
12
+ import * as i5 from '@seniorsistemas/angular-components/button';
15
13
  import { ButtonModule } from '@seniorsistemas/angular-components/button';
16
- import * as i7 from '@seniorsistemas/angular-components/loading-state';
14
+ import * as i6 from '@seniorsistemas/angular-components/loading-state';
17
15
  import { LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';
18
- import * as i8 from '@angular/common';
16
+ import * as i7 from '@angular/common';
19
17
  import { NgTemplateOutlet } from '@angular/common';
20
- import * as i9 from '@seniorsistemas/angular-components/text-area';
18
+ import * as i8 from '@seniorsistemas/angular-components/text-area';
21
19
  import { TextAreaModule } from '@seniorsistemas/angular-components/text-area';
20
+ import * as i9 from '@seniorsistemas/angular-components/dialog';
21
+ import { DialogComponent } from '@seniorsistemas/angular-components/dialog';
22
+ import * as i10 from '@seniorsistemas/angular-components/template';
23
+ import { TemplateModule } from '@seniorsistemas/angular-components/template';
22
24
 
23
25
  class IAssistService {
24
26
  http;
@@ -151,7 +153,9 @@ class TextAreaIAComponent {
151
153
  this.isVisible = false;
152
154
  }
153
155
  onHideDialog() {
154
- this.formGroup.get('context')?.setValue('');
156
+ if (this.isVisible === false) {
157
+ this.formGroup.get('context')?.setValue('');
158
+ }
155
159
  }
156
160
  submitContext() {
157
161
  const context = this.formGroup.get('context');
@@ -189,7 +193,7 @@ class TextAreaIAComponent {
189
193
  useExisting: forwardRef(() => TextAreaIAComponent),
190
194
  multi: true,
191
195
  },
192
- ], viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textAreaElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<p-dialog\n [(visible)]=\"isVisible\"\n [modal]=\"true\"\n [style]=\"{ width: '50vw' }\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n (onHide)=\"onHideDialog()\"\n>\n <ng-template #header>\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea inputId=\"context\" formControlName=\"context\" [speechRecognition]=\"speechRecognition\" [keepContext]=\"keepContext\" />\n </form>\n\n <ng-template #footer>\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</p-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\">\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <svg\n style=\"width: 100%; height: 100%\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.81451 18.1054L5.99593 17.6059L7.52166 13.4099L7.60877 13.1726L7.61277 13.1614L7.94285 12.2543L8.01159 12.0648L8.05394 11.949L5.2998 8.52426L5.02726 8.18379C5.00569 8.15821 4.9881 8.13104 4.97292 8.10226C4.90099 7.9632 4.85063 7.81294 4.82186 7.6531C4.73075 7.1344 4.90418 6.60771 5.28382 6.24326C5.29421 6.23447 5.3038 6.22567 5.31419 6.21688L5.47164 6.0914L9.3439 3.00238L9.5469 2.84094L9.57088 2.82096L10.4101 2.15041L11.8007 1.04188C11.2181 0.925188 10.6163 0.863647 10.0001 0.863647C4.95374 0.863647 0.863281 4.9541 0.863281 9.99963C0.863281 13.5346 2.87254 16.5989 5.80971 18.1182\"\n fill=\"#0FA389\"\n />\n <path\n d=\"M14.099 1.83472L13.9495 2.24632L11.997 7.61074L11.9427 7.7594L11.9003 7.87369L14.7448 11.4103C14.7463 11.4127 14.7479 11.4143 14.7495 11.4167L14.9414 11.654C14.9541 11.67 14.9661 11.6868 14.9765 11.7044C15.0764 11.8698 15.1444 12.0505 15.1779 12.2431C15.273 12.7826 15.0812 13.3284 14.676 13.6897C14.656 13.7129 14.6345 13.7344 14.6105 13.7536L11.8563 15.9507L11.6789 16.0922L11.6022 16.1537L10.7406 16.8402V16.841L10.3937 17.1176L9.85747 17.5452L9.39951 17.9112L8.11035 18.9398C8.72016 19.0677 9.35155 19.1364 9.99973 19.1364C15.0461 19.1364 19.1365 15.046 19.1365 9.99964C19.1365 6.42789 17.0857 3.33727 14.099 1.83472Z\"\n fill=\"#0FA389\"\n />\n <path\n d=\"M14.7287 12.3222C14.7047 12.1832 14.6551 12.0545 14.5864 11.941L14.3954 11.7036C14.3954 11.7036 14.3946 11.7028 14.3938 11.7028L11.3839 7.96005L10.5031 6.86511L10.4256 6.7676L9.03255 5.03487L8.83674 4.79191C8.79278 4.71678 8.75681 4.63446 8.73204 4.54814C8.72085 4.51058 8.71286 4.47222 8.70566 4.43465C8.68568 4.32196 8.68408 4.21007 8.69847 4.10217L8.62334 4.16291L8.44511 4.30438L5.75731 6.44871L5.60066 6.57339C5.34011 6.82275 5.20584 7.19279 5.27218 7.57482C5.29296 7.68751 5.32892 7.79541 5.37927 7.89292C5.37927 7.89292 5.37927 7.89292 5.38007 7.89371L5.6566 8.23818L8.57139 11.8627L8.63293 11.9394L9.53047 13.0559L9.59041 13.1303L9.98363 13.6186L11.0178 14.9046C11.0186 14.9054 11.0194 14.9069 11.0202 14.9077L11.1361 15.0516V15.0524C11.2184 15.1755 11.2768 15.317 11.3048 15.4728C11.3239 15.5807 11.3263 15.6878 11.3143 15.7925L11.3175 15.7965L11.3943 15.735L11.5717 15.5935L14.3266 13.3964L14.3218 13.3908C14.6335 13.1438 14.8022 12.7394 14.7287 12.3222Z\"\n fill=\"#F3F3F5\"\n />\n <path\n d=\"M10.6822 15.0082C10.6814 15.0074 10.6806 15.0058 10.6806 15.005L10.5672 14.8643L10.3809 14.6325L10.3282 14.567L10.2211 14.4335L9.40028 13.4129L9.32835 13.3242L8.77289 12.6345L8.68098 12.5194L8.44121 12.2205L8.37168 12.4099L8.04159 13.317L8.0376 13.329L7.95128 13.5664L6.42475 17.7623L6.24333 18.2618L5.90605 19.1881L5.73262 19.6645C5.73182 19.6661 5.73102 19.6677 5.73102 19.6685C5.72863 19.6749 5.72703 19.6821 5.72543 19.6885C5.71584 19.7228 5.71424 19.758 5.72063 19.7948C5.74461 19.929 5.87329 20.0193 6.00836 19.9962C6.04112 19.9898 6.07229 19.9778 6.09867 19.9602C6.09867 19.9602 6.09947 19.9602 6.10027 19.9594L6.14103 19.9266L7.39422 18.9268L9.11496 17.5537L9.57292 17.1877L10.1092 16.7601L10.4561 16.4827L10.4537 16.4811C10.7582 16.2382 10.9236 15.8402 10.8509 15.4294C10.8237 15.2735 10.7654 15.1313 10.6822 15.0082Z\"\n fill=\"#0C847B\"\n />\n <path\n d=\"M9.17644 4.56325C9.2124 4.68713 9.26915 4.80062 9.34268 4.90053C9.34348 4.90053 9.34428 4.90213 9.34428 4.90213L9.40342 4.97645C9.40502 4.97805 9.40582 4.97885 9.40662 4.98045L9.56806 5.17946L9.64878 5.28096L9.67915 5.31932L9.8414 5.51993L10.5559 6.40947L10.7054 6.59569L11.2169 7.23188L11.5142 7.60192L11.5693 7.45247L13.5202 2.08964L14.1596 0.332135C14.1596 0.330536 14.1604 0.328139 14.1612 0.32654C14.174 0.288177 14.1772 0.246617 14.17 0.205058C14.1468 0.0699879 14.0182 -0.0195258 13.8823 0.00365186C13.8407 0.0116442 13.8024 0.028428 13.7712 0.0540033L12.578 1.00589L12.498 1.06982L10.6958 2.50844L9.85658 3.17819L9.8326 3.19737L9.6296 3.35961L9.45297 3.50028C9.2116 3.73925 9.08692 4.08931 9.15006 4.44976C9.15726 4.48813 9.16525 4.52649 9.17644 4.56325Z\"\n fill=\"#0C847B\"\n />\n </svg>\n</ng-template>\n", styles: [".footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"], dependencies: [{ kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: i6.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }, { kind: "component", type: i7.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i9.TextAreaComponent, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
196
+ ], viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textAreaElement"], descendants: true, isSignal: true }], ngImport: i0, template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <svg\n style=\"width: 100%; height: 100%\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.81451 18.1054L5.99593 17.6059L7.52166 13.4099L7.60877 13.1726L7.61277 13.1614L7.94285 12.2543L8.01159 12.0648L8.05394 11.949L5.2998 8.52426L5.02726 8.18379C5.00569 8.15821 4.9881 8.13104 4.97292 8.10226C4.90099 7.9632 4.85063 7.81294 4.82186 7.6531C4.73075 7.1344 4.90418 6.60771 5.28382 6.24326C5.29421 6.23447 5.3038 6.22567 5.31419 6.21688L5.47164 6.0914L9.3439 3.00238L9.5469 2.84094L9.57088 2.82096L10.4101 2.15041L11.8007 1.04188C11.2181 0.925188 10.6163 0.863647 10.0001 0.863647C4.95374 0.863647 0.863281 4.9541 0.863281 9.99963C0.863281 13.5346 2.87254 16.5989 5.80971 18.1182\"\n fill=\"#0FA389\"\n />\n <path\n d=\"M14.099 1.83472L13.9495 2.24632L11.997 7.61074L11.9427 7.7594L11.9003 7.87369L14.7448 11.4103C14.7463 11.4127 14.7479 11.4143 14.7495 11.4167L14.9414 11.654C14.9541 11.67 14.9661 11.6868 14.9765 11.7044C15.0764 11.8698 15.1444 12.0505 15.1779 12.2431C15.273 12.7826 15.0812 13.3284 14.676 13.6897C14.656 13.7129 14.6345 13.7344 14.6105 13.7536L11.8563 15.9507L11.6789 16.0922L11.6022 16.1537L10.7406 16.8402V16.841L10.3937 17.1176L9.85747 17.5452L9.39951 17.9112L8.11035 18.9398C8.72016 19.0677 9.35155 19.1364 9.99973 19.1364C15.0461 19.1364 19.1365 15.046 19.1365 9.99964C19.1365 6.42789 17.0857 3.33727 14.099 1.83472Z\"\n fill=\"#0FA389\"\n />\n <path\n d=\"M14.7287 12.3222C14.7047 12.1832 14.6551 12.0545 14.5864 11.941L14.3954 11.7036C14.3954 11.7036 14.3946 11.7028 14.3938 11.7028L11.3839 7.96005L10.5031 6.86511L10.4256 6.7676L9.03255 5.03487L8.83674 4.79191C8.79278 4.71678 8.75681 4.63446 8.73204 4.54814C8.72085 4.51058 8.71286 4.47222 8.70566 4.43465C8.68568 4.32196 8.68408 4.21007 8.69847 4.10217L8.62334 4.16291L8.44511 4.30438L5.75731 6.44871L5.60066 6.57339C5.34011 6.82275 5.20584 7.19279 5.27218 7.57482C5.29296 7.68751 5.32892 7.79541 5.37927 7.89292C5.37927 7.89292 5.37927 7.89292 5.38007 7.89371L5.6566 8.23818L8.57139 11.8627L8.63293 11.9394L9.53047 13.0559L9.59041 13.1303L9.98363 13.6186L11.0178 14.9046C11.0186 14.9054 11.0194 14.9069 11.0202 14.9077L11.1361 15.0516V15.0524C11.2184 15.1755 11.2768 15.317 11.3048 15.4728C11.3239 15.5807 11.3263 15.6878 11.3143 15.7925L11.3175 15.7965L11.3943 15.735L11.5717 15.5935L14.3266 13.3964L14.3218 13.3908C14.6335 13.1438 14.8022 12.7394 14.7287 12.3222Z\"\n fill=\"#F3F3F5\"\n />\n <path\n d=\"M10.6822 15.0082C10.6814 15.0074 10.6806 15.0058 10.6806 15.005L10.5672 14.8643L10.3809 14.6325L10.3282 14.567L10.2211 14.4335L9.40028 13.4129L9.32835 13.3242L8.77289 12.6345L8.68098 12.5194L8.44121 12.2205L8.37168 12.4099L8.04159 13.317L8.0376 13.329L7.95128 13.5664L6.42475 17.7623L6.24333 18.2618L5.90605 19.1881L5.73262 19.6645C5.73182 19.6661 5.73102 19.6677 5.73102 19.6685C5.72863 19.6749 5.72703 19.6821 5.72543 19.6885C5.71584 19.7228 5.71424 19.758 5.72063 19.7948C5.74461 19.929 5.87329 20.0193 6.00836 19.9962C6.04112 19.9898 6.07229 19.9778 6.09867 19.9602C6.09867 19.9602 6.09947 19.9602 6.10027 19.9594L6.14103 19.9266L7.39422 18.9268L9.11496 17.5537L9.57292 17.1877L10.1092 16.7601L10.4561 16.4827L10.4537 16.4811C10.7582 16.2382 10.9236 15.8402 10.8509 15.4294C10.8237 15.2735 10.7654 15.1313 10.6822 15.0082Z\"\n fill=\"#0C847B\"\n />\n <path\n d=\"M9.17644 4.56325C9.2124 4.68713 9.26915 4.80062 9.34268 4.90053C9.34348 4.90053 9.34428 4.90213 9.34428 4.90213L9.40342 4.97645C9.40502 4.97805 9.40582 4.97885 9.40662 4.98045L9.56806 5.17946L9.64878 5.28096L9.67915 5.31932L9.8414 5.51993L10.5559 6.40947L10.7054 6.59569L11.2169 7.23188L11.5142 7.60192L11.5693 7.45247L13.5202 2.08964L14.1596 0.332135C14.1596 0.330536 14.1604 0.328139 14.1612 0.32654C14.174 0.288177 14.1772 0.246617 14.17 0.205058C14.1468 0.0699879 14.0182 -0.0195258 13.8823 0.00365186C13.8407 0.0116442 13.8024 0.028428 13.7712 0.0540033L12.578 1.00589L12.498 1.06982L10.6958 2.50844L9.85658 3.17819L9.8326 3.19737L9.6296 3.35961L9.45297 3.50028C9.2116 3.73925 9.08692 4.08931 9.15006 4.44976C9.15726 4.48813 9.16525 4.52649 9.17644 4.56325Z\"\n fill=\"#0C847B\"\n />\n </svg>\n</ng-template>\n", styles: [".footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"], dependencies: [{ kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }, { kind: "component", type: i6.LoadingStateComponent, selector: "s-loading-state", inputs: ["indicator", "id", "blockWindow", "loading"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i8.TextAreaComponent, selector: "s-textarea", inputs: ["inputId", "rows", "speechRecognition", "keyFilter", "keepContext", "speechRecognitionPlaceholder", "maxLength", "placeholder", "inputStyle", "readOnly"] }, { kind: "component", type: i9.DialogComponent, selector: "s-dialog", inputs: ["header", "visible", "size", "contentClassName", "escapeOnEsc", "destroyClickOutside"], outputs: ["visibleChange"] }, { kind: "directive", type: i10.TemplateDirective, selector: "[sTemplate]", inputs: ["sTemplate"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
193
197
  }
194
198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaIAComponent, decorators: [{
195
199
  type: Component,
@@ -199,7 +203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
199
203
  useExisting: forwardRef(() => TextAreaIAComponent),
200
204
  multi: true,
201
205
  },
202
- ], template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<p-dialog\n [(visible)]=\"isVisible\"\n [modal]=\"true\"\n [style]=\"{ width: '50vw' }\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n (onHide)=\"onHideDialog()\"\n>\n <ng-template #header>\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea inputId=\"context\" formControlName=\"context\" [speechRecognition]=\"speechRecognition\" [keepContext]=\"keepContext\" />\n </form>\n\n <ng-template #footer>\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</p-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\">\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <svg\n style=\"width: 100%; height: 100%\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.81451 18.1054L5.99593 17.6059L7.52166 13.4099L7.60877 13.1726L7.61277 13.1614L7.94285 12.2543L8.01159 12.0648L8.05394 11.949L5.2998 8.52426L5.02726 8.18379C5.00569 8.15821 4.9881 8.13104 4.97292 8.10226C4.90099 7.9632 4.85063 7.81294 4.82186 7.6531C4.73075 7.1344 4.90418 6.60771 5.28382 6.24326C5.29421 6.23447 5.3038 6.22567 5.31419 6.21688L5.47164 6.0914L9.3439 3.00238L9.5469 2.84094L9.57088 2.82096L10.4101 2.15041L11.8007 1.04188C11.2181 0.925188 10.6163 0.863647 10.0001 0.863647C4.95374 0.863647 0.863281 4.9541 0.863281 9.99963C0.863281 13.5346 2.87254 16.5989 5.80971 18.1182\"\n fill=\"#0FA389\"\n />\n <path\n d=\"M14.099 1.83472L13.9495 2.24632L11.997 7.61074L11.9427 7.7594L11.9003 7.87369L14.7448 11.4103C14.7463 11.4127 14.7479 11.4143 14.7495 11.4167L14.9414 11.654C14.9541 11.67 14.9661 11.6868 14.9765 11.7044C15.0764 11.8698 15.1444 12.0505 15.1779 12.2431C15.273 12.7826 15.0812 13.3284 14.676 13.6897C14.656 13.7129 14.6345 13.7344 14.6105 13.7536L11.8563 15.9507L11.6789 16.0922L11.6022 16.1537L10.7406 16.8402V16.841L10.3937 17.1176L9.85747 17.5452L9.39951 17.9112L8.11035 18.9398C8.72016 19.0677 9.35155 19.1364 9.99973 19.1364C15.0461 19.1364 19.1365 15.046 19.1365 9.99964C19.1365 6.42789 17.0857 3.33727 14.099 1.83472Z\"\n fill=\"#0FA389\"\n />\n <path\n d=\"M14.7287 12.3222C14.7047 12.1832 14.6551 12.0545 14.5864 11.941L14.3954 11.7036C14.3954 11.7036 14.3946 11.7028 14.3938 11.7028L11.3839 7.96005L10.5031 6.86511L10.4256 6.7676L9.03255 5.03487L8.83674 4.79191C8.79278 4.71678 8.75681 4.63446 8.73204 4.54814C8.72085 4.51058 8.71286 4.47222 8.70566 4.43465C8.68568 4.32196 8.68408 4.21007 8.69847 4.10217L8.62334 4.16291L8.44511 4.30438L5.75731 6.44871L5.60066 6.57339C5.34011 6.82275 5.20584 7.19279 5.27218 7.57482C5.29296 7.68751 5.32892 7.79541 5.37927 7.89292C5.37927 7.89292 5.37927 7.89292 5.38007 7.89371L5.6566 8.23818L8.57139 11.8627L8.63293 11.9394L9.53047 13.0559L9.59041 13.1303L9.98363 13.6186L11.0178 14.9046C11.0186 14.9054 11.0194 14.9069 11.0202 14.9077L11.1361 15.0516V15.0524C11.2184 15.1755 11.2768 15.317 11.3048 15.4728C11.3239 15.5807 11.3263 15.6878 11.3143 15.7925L11.3175 15.7965L11.3943 15.735L11.5717 15.5935L14.3266 13.3964L14.3218 13.3908C14.6335 13.1438 14.8022 12.7394 14.7287 12.3222Z\"\n fill=\"#F3F3F5\"\n />\n <path\n d=\"M10.6822 15.0082C10.6814 15.0074 10.6806 15.0058 10.6806 15.005L10.5672 14.8643L10.3809 14.6325L10.3282 14.567L10.2211 14.4335L9.40028 13.4129L9.32835 13.3242L8.77289 12.6345L8.68098 12.5194L8.44121 12.2205L8.37168 12.4099L8.04159 13.317L8.0376 13.329L7.95128 13.5664L6.42475 17.7623L6.24333 18.2618L5.90605 19.1881L5.73262 19.6645C5.73182 19.6661 5.73102 19.6677 5.73102 19.6685C5.72863 19.6749 5.72703 19.6821 5.72543 19.6885C5.71584 19.7228 5.71424 19.758 5.72063 19.7948C5.74461 19.929 5.87329 20.0193 6.00836 19.9962C6.04112 19.9898 6.07229 19.9778 6.09867 19.9602C6.09867 19.9602 6.09947 19.9602 6.10027 19.9594L6.14103 19.9266L7.39422 18.9268L9.11496 17.5537L9.57292 17.1877L10.1092 16.7601L10.4561 16.4827L10.4537 16.4811C10.7582 16.2382 10.9236 15.8402 10.8509 15.4294C10.8237 15.2735 10.7654 15.1313 10.6822 15.0082Z\"\n fill=\"#0C847B\"\n />\n <path\n d=\"M9.17644 4.56325C9.2124 4.68713 9.26915 4.80062 9.34268 4.90053C9.34348 4.90053 9.34428 4.90213 9.34428 4.90213L9.40342 4.97645C9.40502 4.97805 9.40582 4.97885 9.40662 4.98045L9.56806 5.17946L9.64878 5.28096L9.67915 5.31932L9.8414 5.51993L10.5559 6.40947L10.7054 6.59569L11.2169 7.23188L11.5142 7.60192L11.5693 7.45247L13.5202 2.08964L14.1596 0.332135C14.1596 0.330536 14.1604 0.328139 14.1612 0.32654C14.174 0.288177 14.1772 0.246617 14.17 0.205058C14.1468 0.0699879 14.0182 -0.0195258 13.8823 0.00365186C13.8407 0.0116442 13.8024 0.028428 13.7712 0.0540033L12.578 1.00589L12.498 1.06982L10.6958 2.50844L9.85658 3.17819L9.8326 3.19737L9.6296 3.35961L9.45297 3.50028C9.2116 3.73925 9.08692 4.08931 9.15006 4.44976C9.15726 4.48813 9.16525 4.52649 9.17644 4.56325Z\"\n fill=\"#0C847B\"\n />\n </svg>\n</ng-template>\n", styles: [".footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"] }]
206
+ ], template: "<s-loading-state\n [loading]=\"isLoading\"\n [blockWindow]=\"true\"\n>\n</s-loading-state>\n\n<s-dialog\n [(visible)]=\"isVisible\"\n [escapeOnEsc]=\"false\"\n [destroyClickOutside]=\"false\"\n size=\"lg\"\n (visibleChange)=\"onHideDialog()\"\n>\n <ng-template sTemplate=\"header\">\n <div class=\"dialog-header\">\n <span class=\"iassist-icon\">\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </span>\n IAssist - Content Generator\n </div>\n </ng-template>\n\n <form [formGroup]=\"formGroup\">\n <label for=\"context\">{{ 'platform.angular_components.context' | translate }}</label>\n <s-textarea\n inputId=\"context\"\n formControlName=\"context\"\n [speechRecognition]=\"speechRecognition\"\n [keepContext]=\"keepContext\"\n />\n </form>\n\n <ng-template sTemplate=\"footer\">\n <div class=\"footer-content\">\n <s-button\n id=\"-submit-button\"\n type=\"button\"\n [label]=\"'platform.angular_components.generate_text' | translate\"\n (clicked)=\"submitContext()\"\n sTooltip=\"(ALT + SHIFT + S)\"\n showDelay=\"500\"\n >\n </s-button>\n <s-button\n id=\"-cancel-button\"\n type=\"button\"\n priority=\"link\"\n [label]=\"'platform.angular_components.cancel' | translate\"\n (clicked)=\"hideDialog()\"\n sTooltip=\"(ALT + SHIFT + C)\"\n showDelay=\"500\"\n >\n </s-button>\n </div>\n </ng-template>\n</s-dialog>\n\n<div class=\"textarea-ia\">\n <s-textarea\n #textAreaElement\n [inputId]=\"id\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [rows]=\"rows\"\n [readOnly]=\"readonly\"\n [placeholder]=\"placeholder\"\n [keepContext]=\"keepContext\"\n [speechRecognitionPlaceholder]=\"speechRecognitionPlaceholder\"\n [maxLength]=\"maxLength\"\n [speechRecognition]=\"speechRecognition\"\n >\n </s-textarea>\n <!--TODO: Tooltip em propriedade-->\n <button\n class=\"iassist-button\"\n [class.speech-recognition]=\"speechRecognition && speechRecognitionService.hasSupportSpeechRecognition\"\n (click)=\"showDialog()\"\n sTooltip=\"IAssist - Content Generator\"\n >\n <ng-container [ngTemplateOutlet]=\"iassistIcon\"></ng-container>\n </button>\n</div>\n\n<ng-template #iassistIcon>\n <svg\n style=\"width: 100%; height: 100%\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.81451 18.1054L5.99593 17.6059L7.52166 13.4099L7.60877 13.1726L7.61277 13.1614L7.94285 12.2543L8.01159 12.0648L8.05394 11.949L5.2998 8.52426L5.02726 8.18379C5.00569 8.15821 4.9881 8.13104 4.97292 8.10226C4.90099 7.9632 4.85063 7.81294 4.82186 7.6531C4.73075 7.1344 4.90418 6.60771 5.28382 6.24326C5.29421 6.23447 5.3038 6.22567 5.31419 6.21688L5.47164 6.0914L9.3439 3.00238L9.5469 2.84094L9.57088 2.82096L10.4101 2.15041L11.8007 1.04188C11.2181 0.925188 10.6163 0.863647 10.0001 0.863647C4.95374 0.863647 0.863281 4.9541 0.863281 9.99963C0.863281 13.5346 2.87254 16.5989 5.80971 18.1182\"\n fill=\"#0FA389\"\n />\n <path\n d=\"M14.099 1.83472L13.9495 2.24632L11.997 7.61074L11.9427 7.7594L11.9003 7.87369L14.7448 11.4103C14.7463 11.4127 14.7479 11.4143 14.7495 11.4167L14.9414 11.654C14.9541 11.67 14.9661 11.6868 14.9765 11.7044C15.0764 11.8698 15.1444 12.0505 15.1779 12.2431C15.273 12.7826 15.0812 13.3284 14.676 13.6897C14.656 13.7129 14.6345 13.7344 14.6105 13.7536L11.8563 15.9507L11.6789 16.0922L11.6022 16.1537L10.7406 16.8402V16.841L10.3937 17.1176L9.85747 17.5452L9.39951 17.9112L8.11035 18.9398C8.72016 19.0677 9.35155 19.1364 9.99973 19.1364C15.0461 19.1364 19.1365 15.046 19.1365 9.99964C19.1365 6.42789 17.0857 3.33727 14.099 1.83472Z\"\n fill=\"#0FA389\"\n />\n <path\n d=\"M14.7287 12.3222C14.7047 12.1832 14.6551 12.0545 14.5864 11.941L14.3954 11.7036C14.3954 11.7036 14.3946 11.7028 14.3938 11.7028L11.3839 7.96005L10.5031 6.86511L10.4256 6.7676L9.03255 5.03487L8.83674 4.79191C8.79278 4.71678 8.75681 4.63446 8.73204 4.54814C8.72085 4.51058 8.71286 4.47222 8.70566 4.43465C8.68568 4.32196 8.68408 4.21007 8.69847 4.10217L8.62334 4.16291L8.44511 4.30438L5.75731 6.44871L5.60066 6.57339C5.34011 6.82275 5.20584 7.19279 5.27218 7.57482C5.29296 7.68751 5.32892 7.79541 5.37927 7.89292C5.37927 7.89292 5.37927 7.89292 5.38007 7.89371L5.6566 8.23818L8.57139 11.8627L8.63293 11.9394L9.53047 13.0559L9.59041 13.1303L9.98363 13.6186L11.0178 14.9046C11.0186 14.9054 11.0194 14.9069 11.0202 14.9077L11.1361 15.0516V15.0524C11.2184 15.1755 11.2768 15.317 11.3048 15.4728C11.3239 15.5807 11.3263 15.6878 11.3143 15.7925L11.3175 15.7965L11.3943 15.735L11.5717 15.5935L14.3266 13.3964L14.3218 13.3908C14.6335 13.1438 14.8022 12.7394 14.7287 12.3222Z\"\n fill=\"#F3F3F5\"\n />\n <path\n d=\"M10.6822 15.0082C10.6814 15.0074 10.6806 15.0058 10.6806 15.005L10.5672 14.8643L10.3809 14.6325L10.3282 14.567L10.2211 14.4335L9.40028 13.4129L9.32835 13.3242L8.77289 12.6345L8.68098 12.5194L8.44121 12.2205L8.37168 12.4099L8.04159 13.317L8.0376 13.329L7.95128 13.5664L6.42475 17.7623L6.24333 18.2618L5.90605 19.1881L5.73262 19.6645C5.73182 19.6661 5.73102 19.6677 5.73102 19.6685C5.72863 19.6749 5.72703 19.6821 5.72543 19.6885C5.71584 19.7228 5.71424 19.758 5.72063 19.7948C5.74461 19.929 5.87329 20.0193 6.00836 19.9962C6.04112 19.9898 6.07229 19.9778 6.09867 19.9602C6.09867 19.9602 6.09947 19.9602 6.10027 19.9594L6.14103 19.9266L7.39422 18.9268L9.11496 17.5537L9.57292 17.1877L10.1092 16.7601L10.4561 16.4827L10.4537 16.4811C10.7582 16.2382 10.9236 15.8402 10.8509 15.4294C10.8237 15.2735 10.7654 15.1313 10.6822 15.0082Z\"\n fill=\"#0C847B\"\n />\n <path\n d=\"M9.17644 4.56325C9.2124 4.68713 9.26915 4.80062 9.34268 4.90053C9.34348 4.90053 9.34428 4.90213 9.34428 4.90213L9.40342 4.97645C9.40502 4.97805 9.40582 4.97885 9.40662 4.98045L9.56806 5.17946L9.64878 5.28096L9.67915 5.31932L9.8414 5.51993L10.5559 6.40947L10.7054 6.59569L11.2169 7.23188L11.5142 7.60192L11.5693 7.45247L13.5202 2.08964L14.1596 0.332135C14.1596 0.330536 14.1604 0.328139 14.1612 0.32654C14.174 0.288177 14.1772 0.246617 14.17 0.205058C14.1468 0.0699879 14.0182 -0.0195258 13.8823 0.00365186C13.8407 0.0116442 13.8024 0.028428 13.7712 0.0540033L12.578 1.00589L12.498 1.06982L10.6958 2.50844L9.85658 3.17819L9.8326 3.19737L9.6296 3.35961L9.45297 3.50028C9.2116 3.73925 9.08692 4.08931 9.15006 4.44976C9.15726 4.48813 9.16525 4.52649 9.17644 4.56325Z\"\n fill=\"#0C847B\"\n />\n </svg>\n</ng-template>\n", styles: [".footer-content{display:flex;flex-grow:0}.textarea-ia{display:flex;align-items:flex-end;gap:8px}.iassist-button{display:flex;justify-content:center;align-items:center;border:none;border-radius:50%;box-shadow:none;cursor:pointer;height:32px;width:32px}.dialog-header{display:flex;gap:12px}.dialog-header .iassist-icon{display:block;height:24px;width:24px}s-textarea{width:100%}.speech-recognition{margin-bottom:12.5px}\n"] }]
203
207
  }], ctorParameters: () => [{ type: IAssistService }, { type: i2$1.FormBuilder }, { type: i3.TranslateService }, { type: i4.SpeechRecognitionService }], propDecorators: { id: [{
204
208
  type: Input
205
209
  }], label: [{
@@ -229,18 +233,20 @@ class TextAreaIAModule {
229
233
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TextAreaIAModule, declarations: [TextAreaIAComponent], imports: [FormsModule,
230
234
  ReactiveFormsModule,
231
235
  TranslateModule,
232
- DialogModule,
233
236
  ButtonModule,
234
237
  LoadingStateModule,
235
238
  NgTemplateOutlet,
236
- TextAreaModule], exports: [TextAreaIAComponent] });
239
+ TextAreaModule,
240
+ DialogComponent,
241
+ TemplateModule], exports: [TextAreaIAComponent] });
237
242
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaIAModule, imports: [FormsModule,
238
243
  ReactiveFormsModule,
239
244
  TranslateModule,
240
- DialogModule,
241
245
  ButtonModule,
242
246
  LoadingStateModule,
243
- TextAreaModule] });
247
+ TextAreaModule,
248
+ DialogComponent,
249
+ TemplateModule] });
244
250
  }
245
251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextAreaIAModule, decorators: [{
246
252
  type: NgModule,
@@ -249,11 +255,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
249
255
  FormsModule,
250
256
  ReactiveFormsModule,
251
257
  TranslateModule,
252
- DialogModule,
253
258
  ButtonModule,
254
259
  LoadingStateModule,
255
260
  NgTemplateOutlet,
256
- TextAreaModule
261
+ TextAreaModule,
262
+ DialogComponent,
263
+ TemplateModule
257
264
  ],
258
265
  declarations: [TextAreaIAComponent],
259
266
  exports: [TextAreaIAComponent],