@seniorsistemas/angular-components 17.27.1-feature-sds-110-35ee9b4f → 17.27.1-feature-sds-110-c2d4f9d4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/button/lib/button/button.component.d.ts +1 -1
- package/checkbox/lib/checkbox/checkbox.component.d.ts +11 -13
- package/checkbox/public-api.d.ts +1 -4
- package/checkbox-list/index.d.ts +5 -0
- package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +21 -0
- package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +9 -0
- package/checkbox-list/lib/checkbox-list/models/checkbox-list-data.d.ts +5 -0
- package/checkbox-list/lib/checkbox-list/models/checkbox-list-state.d.ts +7 -0
- package/checkbox-list/package.json +3 -0
- package/checkbox-list/public-api.d.ts +4 -0
- package/dynamic-form/lib/dynamic-form/dynamic-form.module.d.ts +35 -36
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +3 -3
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/select-field.d.ts +2 -0
- package/fesm2022/seniorsistemas-angular-components-button.mjs +4 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +151 -0
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +33 -110
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +19 -22
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +7 -7
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +65 -0
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +145 -0
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-select.mjs +741 -0
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +4 -5
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +8 -8
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +7 -7
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
- package/fieldset/lib/fieldset/fieldset.component.d.ts +1 -1
- package/fieldset/lib/fieldset/fieldset.module.d.ts +2 -2
- package/package.json +41 -21
- package/paginator/index.d.ts +5 -0
- package/paginator/lib/models/paginator.models.d.ts +14 -0
- package/paginator/lib/paginator/paginator.component.d.ts +30 -0
- package/paginator/package.json +3 -0
- package/paginator/public-api.d.ts +2 -0
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +3 -3
- package/table-header/lib/table-header/table-header-checkox.module.d.ts +2 -2
- package/tailwind.css +263 -0
- package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +2 -2
- package/accessibility-events/index.d.ts +0 -5
- package/accessibility-events/lib/accessibility-events/accessibility-events.module.d.ts +0 -8
- package/accessibility-events/lib/accessibility-events/directives/accessibility-event.directive.d.ts +0 -15
- package/accessibility-events/package.json +0 -3
- package/accessibility-events/public-api.d.ts +0 -2
- package/checkbox/lib/checkbox/checkbox.module.d.ts +0 -9
- package/checkbox/lib/checkbox/models/checkbox-data.d.ts +0 -5
- package/checkbox/lib/checkbox/models/checkbox-state.d.ts +0 -7
- package/fesm2022/seniorsistemas-angular-components-accessibility-events.mjs +0 -77
- package/fesm2022/seniorsistemas-angular-components-accessibility-events.mjs.map +0 -1
|
@@ -0,0 +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,8 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { model, input, computed, Component } from '@angular/core';
|
|
3
3
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import
|
|
5
|
-
import { AccessibilityEventsModule } from '@seniorsistemas/angular-components/accessibility-events';
|
|
4
|
+
import { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';
|
|
6
5
|
|
|
7
6
|
class StarRatingComponent {
|
|
8
7
|
onChange = () => { };
|
|
@@ -50,17 +49,17 @@ class StarRatingComponent {
|
|
|
50
49
|
useExisting: StarRatingComponent,
|
|
51
50
|
multi: true,
|
|
52
51
|
},
|
|
53
|
-
], ngImport: i0, template: "@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-[#F5A319] cursor-pointer\"\n (
|
|
52
|
+
], ngImport: i0, template: "@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-[#F5A319] cursor-pointer\"\n (sInteractiveContent)=\"onSelectStar(item + 1)\">\n </i>\n }\n</section>\n", styles: [""], dependencies: [{ kind: "directive", type: InteractiveContentDirective, selector: "[sInteractiveContent]", inputs: ["focusable", "disabled"], outputs: ["sInteractiveContent"] }] });
|
|
54
53
|
}
|
|
55
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StarRatingComponent, decorators: [{
|
|
56
55
|
type: Component,
|
|
57
|
-
args: [{ selector: 's-star-rating', standalone: true, imports: [
|
|
56
|
+
args: [{ selector: 's-star-rating', standalone: true, imports: [InteractiveContentDirective], providers: [
|
|
58
57
|
{
|
|
59
58
|
provide: NG_VALUE_ACCESSOR,
|
|
60
59
|
useExisting: StarRatingComponent,
|
|
61
60
|
multi: true,
|
|
62
61
|
},
|
|
63
|
-
], template: "@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-[#F5A319] cursor-pointer\"\n (
|
|
62
|
+
], template: "@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-[#F5A319] cursor-pointer\"\n (sInteractiveContent)=\"onSelectStar(item + 1)\">\n </i>\n }\n</section>\n" }]
|
|
64
63
|
}] });
|
|
65
64
|
|
|
66
65
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-star-rating.mjs","sources":["../../projects/angular-components/star-rating/src/star-rating/star-rating.component.ts","../../projects/angular-components/star-rating/src/star-rating/star-rating.component.html","../../projects/angular-components/star-rating/src/seniorsistemas-angular-components-star-rating.ts"],"sourcesContent":["import { Component, computed, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-star-rating.mjs","sources":["../../projects/angular-components/star-rating/src/star-rating/star-rating.component.ts","../../projects/angular-components/star-rating/src/star-rating/star-rating.component.html","../../projects/angular-components/star-rating/src/seniorsistemas-angular-components-star-rating.ts"],"sourcesContent":["import { Component, computed, input, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { InteractiveContentDirective } from '@seniorsistemas/angular-components/interactive-content';\nimport { JustifyTypes } from './star-rating-models';\n\n@Component({\n selector: 's-star-rating',\n standalone: true,\n imports: [InteractiveContentDirective],\n templateUrl: './star-rating.component.html',\n styleUrl: './star-rating.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: StarRatingComponent,\n multi: true,\n },\n ],\n})\nexport class StarRatingComponent implements ControlValueAccessor {\n onChange: (value: number) => void = () => { };\n onTouched: (value: number) => void = () => { };\n\n selectedStar = model(0);\n starsRange = input(5);\n justifyContent = input<JustifyTypes>('center');\n disabled = model(false);\n\n protected readonly elementsRender = computed(() => {\n const elements = this.starsRange();\n return Array.from({ length: elements }).map((_x, $index) => $index)\n })\n\n writeValue(obj: number): void {\n if (obj !== null) {\n this.selectedStar.set(obj);\n }\n }\n\n registerOnChange(fn: (value: number) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n\n onSelectStar(selectedIndex: number) {\n this.storeValue(selectedIndex);\n }\n\n private storeValue(selectedIndex: number) {\n if (this.disabled()) {\n return;\n }\n if (selectedIndex === this.selectedStar()) {\n selectedIndex = 0;\n }\n this.writeValue(selectedIndex);\n this.onChange(selectedIndex);\n this.onTouched(selectedIndex);\n }\n}\n","@let justifyContentClassName = 'justify-' + justifyContent();\n<section [class]=\"justifyContentClassName\" class=\"flex gap-2\" [class.opacity-50]=\"disabled()\">\n @for(item of elementsRender(); track item) {\n @let isActivated = selectedStar() <= item;\n <i\n [class.fas]=\"!isActivated\"\n [class.far]=\"isActivated\"\n [class.cursor-pointer]=\"!disabled()\"\n class=\"fa-star text-[#F5A319] cursor-pointer\"\n (sInteractiveContent)=\"onSelectStar(item + 1)\">\n </i>\n }\n</section>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import { Component, Input, NgModule } from '@angular/core';
|
|
|
3
3
|
import { Subject } from 'rxjs';
|
|
4
4
|
import { takeUntil } from 'rxjs/operators';
|
|
5
5
|
import * as i1 from 'primeng/table';
|
|
6
|
-
import * as i2 from '@seniorsistemas/angular-components/checkbox';
|
|
7
|
-
import {
|
|
6
|
+
import * as i2 from '@seniorsistemas/angular-components/checkbox-list';
|
|
7
|
+
import { CheckboxListModule } from '@seniorsistemas/angular-components/checkbox-list';
|
|
8
8
|
import * as i3 from '@angular/forms';
|
|
9
9
|
import { FormsModule } from '@angular/forms';
|
|
10
10
|
import { CommonModule } from '@angular/common';
|
|
@@ -124,19 +124,19 @@ class TableHeaderCheckboxComponent {
|
|
|
124
124
|
}
|
|
125
125
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableHeaderCheckboxComponent, deps: [{ token: i1.Table }, { token: i1.TableService }], target: i0.ɵɵFactoryTarget.Component });
|
|
126
126
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableHeaderCheckboxComponent, selector: "s-table-header-checkbox", inputs: { id: "id", disabled: "disabled", rowProps: "rowProps", useAllObject: "useAllObject" }, ngImport: i0, template: `
|
|
127
|
-
<s-checkbox
|
|
127
|
+
<s-checkbox-list
|
|
128
128
|
[(ngModel)]="checkboxState"
|
|
129
129
|
(ngModelChange)="onClick()"
|
|
130
130
|
[data]="checkboxItems"
|
|
131
131
|
/>
|
|
132
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i2.
|
|
132
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i2.CheckboxListComponent, selector: "s-checkbox-list", inputs: ["data"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
133
133
|
}
|
|
134
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableHeaderCheckboxComponent, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
136
|
args: [{
|
|
137
137
|
selector: 's-table-header-checkbox',
|
|
138
138
|
template: `
|
|
139
|
-
<s-checkbox
|
|
139
|
+
<s-checkbox-list
|
|
140
140
|
[(ngModel)]="checkboxState"
|
|
141
141
|
(ngModelChange)="onClick()"
|
|
142
142
|
[data]="checkboxItems"
|
|
@@ -155,13 +155,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
155
155
|
|
|
156
156
|
class TableHeaderCheckboxModule {
|
|
157
157
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableHeaderCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
158
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TableHeaderCheckboxModule, declarations: [TableHeaderCheckboxComponent], imports: [CommonModule,
|
|
159
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableHeaderCheckboxModule, imports: [CommonModule,
|
|
158
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TableHeaderCheckboxModule, declarations: [TableHeaderCheckboxComponent], imports: [CommonModule, CheckboxListModule, FormsModule], exports: [TableHeaderCheckboxComponent] });
|
|
159
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableHeaderCheckboxModule, imports: [CommonModule, CheckboxListModule, FormsModule] });
|
|
160
160
|
}
|
|
161
161
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableHeaderCheckboxModule, decorators: [{
|
|
162
162
|
type: NgModule,
|
|
163
163
|
args: [{
|
|
164
|
-
imports: [CommonModule,
|
|
164
|
+
imports: [CommonModule, CheckboxListModule, FormsModule],
|
|
165
165
|
exports: [TableHeaderCheckboxComponent],
|
|
166
166
|
declarations: [TableHeaderCheckboxComponent],
|
|
167
167
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-table-header.mjs","sources":["../../projects/angular-components/table-header/src/lib/table-header/table-header-checkbox.component.ts","../../projects/angular-components/table-header/src/lib/table-header/table-header-checkox.module.ts","../../projects/angular-components/table-header/src/seniorsistemas-angular-components-table-header.ts"],"sourcesContent":["import { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { Table, TableService } from 'primeng/table';\nimport { CheckboxData, CheckboxState } from '@seniorsistemas/angular-components/checkbox';\n\n@Component({\n selector: 's-table-header-checkbox',\n template: `\n <s-checkbox\n [(ngModel)]=\"checkboxState\"\n (ngModelChange)=\"onClick()\"\n [data]=\"checkboxItems\"\n />\n `,\n})\nexport class TableHeaderCheckboxComponent implements OnInit, OnDestroy {\n public static nextId = 0;\n\t\n\t@Input()\n public id = `s-table-header-checkbox-${TableHeaderCheckboxComponent.nextId++}`;\n\n @Input()\n public disabled = false;\n\n @Input()\n public rowProps?: string[];\n\n @Input()\n public useAllObject?: boolean;\n\n public checkboxItems: CheckboxData = {\n label: '',\n };\n \n public checked = false;\n public hasFocus = false;\n public checkboxState: CheckboxState = { checked: false };\n\n private _ngUnsubscribe = new Subject<void>();\n\n constructor(\n public readonly table: Table,\n public readonly tableService: TableService,\n ) {\n this.table.tableService.valueSource$.pipe(takeUntil(this._ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.table.tableService.selectionSource$.pipe(takeUntil(this._ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n public ngOnInit(): void {\n this.checked = this.updateCheckedState();\n }\n\n public ngOnDestroy(): void {\n this._ngUnsubscribe.next();\n }\n\n public onFocus(): void {\n this.hasFocus = true;\n }\n\n public onBlur(): void {\n this.hasFocus = false;\n }\n\n public isDisabled(): boolean {\n return this.disabled || !this.table.value || !this.table.value.length;\n }\n\n public onClick(): void {\n if (!this.disabled) {\n if (this.table.value && this.table.value.length > 0) this.onToggleCheckbox(!this.checked);\n }\n }\n\n public updateCheckedState() {\n if (this.table.filteredValue) {\n const val = this.table.filteredValue;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllFilteredValuesChecked();\n } else {\n const val = this.table.value;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllValuesChecked();\n }\n }\n\n public onToggleCheckbox(checked: boolean): void {\n const { filteredValue, value, dataKey } = this.table;\n const gridData = checked ? (filteredValue ? filteredValue.slice() : value.slice()) : [];\n\n if (!dataKey) return;\n\n if (checked) {\n const unselecteds = gridData\n .filter((record) => !this.table._selection.find((selected: any) => record[dataKey] === selected[dataKey]))\n .map((record: any) => {\n if (this.useAllObject) return record;\n\n const newRecord: any = {};\n if (this.rowProps) this.rowProps.forEach((prop: string) => (newRecord[prop] = record[prop]));\n else newRecord[dataKey] = record[dataKey];\n return newRecord;\n });\n this.table._selection = [...this.table._selection, ...unselecteds];\n } else {\n value.forEach((data: any) => {\n this.table._selection = this.table._selection.filter((record: any) => record[dataKey] !== data[dataKey]);\n });\n }\n\n this.table.updateSelectionKeys();\n this.table.selectionChange.emit(this.table._selection);\n this.tableService.onSelectionChange();\n\n if (this.table.isStateful()) this.table.saveState();\n }\n\n public isAllFilteredValuesChecked(): boolean {\n if (!this.table.filteredValue) {\n return false;\n } else {\n for (const rowData of this.table.filteredValue) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n\n public isAllValuesChecked(): boolean {\n if (!this.table.value) {\n return false;\n } else {\n for (const rowData of this.table.value) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { TableHeaderCheckboxComponent } from './table-header-checkbox.component';\nimport { CheckboxModule } from '@seniorsistemas/angular-components/checkbox';\n\n@NgModule({\n imports: [CommonModule, CheckboxModule, FormsModule],\n exports: [TableHeaderCheckboxComponent],\n declarations: [TableHeaderCheckboxComponent],\n})\nexport class TableHeaderCheckboxModule { }\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-table-header.mjs","sources":["../../projects/angular-components/table-header/src/lib/table-header/table-header-checkbox.component.ts","../../projects/angular-components/table-header/src/lib/table-header/table-header-checkox.module.ts","../../projects/angular-components/table-header/src/seniorsistemas-angular-components-table-header.ts"],"sourcesContent":["import { Component, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { CheckboxListData, CheckboxListState } from '@seniorsistemas/angular-components/checkbox-list';\nimport { Table, TableService } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 's-table-header-checkbox',\n template: `\n <s-checkbox-list\n [(ngModel)]=\"checkboxState\"\n (ngModelChange)=\"onClick()\"\n [data]=\"checkboxItems\"\n />\n `,\n})\nexport class TableHeaderCheckboxComponent implements OnInit, OnDestroy {\n public static nextId = 0;\n\n @Input()\n public id = `s-table-header-checkbox-${TableHeaderCheckboxComponent.nextId++}`;\n\n @Input()\n public disabled = false;\n\n @Input()\n public rowProps?: string[];\n\n @Input()\n public useAllObject?: boolean;\n\n public checkboxItems: CheckboxListData = {\n label: '',\n };\n\n public checked = false;\n public hasFocus = false;\n public checkboxState: CheckboxListState = { checked: false };\n\n private _ngUnsubscribe = new Subject<void>();\n\n constructor(\n public readonly table: Table,\n public readonly tableService: TableService,\n ) {\n this.table.tableService.valueSource$.pipe(takeUntil(this._ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n\n this.table.tableService.selectionSource$.pipe(takeUntil(this._ngUnsubscribe)).subscribe(() => {\n this.checked = this.updateCheckedState();\n });\n }\n\n public ngOnInit(): void {\n this.checked = this.updateCheckedState();\n }\n\n public ngOnDestroy(): void {\n this._ngUnsubscribe.next();\n }\n\n public onFocus(): void {\n this.hasFocus = true;\n }\n\n public onBlur(): void {\n this.hasFocus = false;\n }\n\n public isDisabled(): boolean {\n return this.disabled || !this.table.value || !this.table.value.length;\n }\n\n public onClick(): void {\n if (!this.disabled) {\n if (this.table.value && this.table.value.length > 0) this.onToggleCheckbox(!this.checked);\n }\n }\n\n public updateCheckedState() {\n if (this.table.filteredValue) {\n const val = this.table.filteredValue;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllFilteredValuesChecked();\n } else {\n const val = this.table.value;\n return val && val.length > 0 && this.table.selection && this.table.selection.length > 0 && this.isAllValuesChecked();\n }\n }\n\n public onToggleCheckbox(checked: boolean): void {\n const { filteredValue, value, dataKey } = this.table;\n const gridData = checked ? (filteredValue ? filteredValue.slice() : value.slice()) : [];\n\n if (!dataKey) return;\n\n if (checked) {\n const unselecteds = gridData\n .filter((record) => !this.table._selection.find((selected: any) => record[dataKey] === selected[dataKey]))\n .map((record: any) => {\n if (this.useAllObject) return record;\n\n const newRecord: any = {};\n if (this.rowProps) this.rowProps.forEach((prop: string) => (newRecord[prop] = record[prop]));\n else newRecord[dataKey] = record[dataKey];\n return newRecord;\n });\n this.table._selection = [...this.table._selection, ...unselecteds];\n } else {\n value.forEach((data: any) => {\n this.table._selection = this.table._selection.filter((record: any) => record[dataKey] !== data[dataKey]);\n });\n }\n\n this.table.updateSelectionKeys();\n this.table.selectionChange.emit(this.table._selection);\n this.tableService.onSelectionChange();\n\n if (this.table.isStateful()) this.table.saveState();\n }\n\n public isAllFilteredValuesChecked(): boolean {\n if (!this.table.filteredValue) {\n return false;\n } else {\n for (const rowData of this.table.filteredValue) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n\n public isAllValuesChecked(): boolean {\n if (!this.table.value) {\n return false;\n } else {\n for (const rowData of this.table.value) {\n if (!this.table.isSelected(rowData)) {\n return false;\n }\n }\n return true;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CheckboxListModule } from '@seniorsistemas/angular-components/checkbox-list';\nimport { TableHeaderCheckboxComponent } from './table-header-checkbox.component';\n\n@NgModule({\n imports: [CommonModule, CheckboxListModule, FormsModule],\n exports: [TableHeaderCheckboxComponent],\n declarations: [TableHeaderCheckboxComponent],\n})\nexport class TableHeaderCheckboxModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ import { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
|
5
5
|
import { isNullOrUndefined } from '@seniorsistemas/angular-components/utils';
|
|
6
6
|
import * as i1 from '@angular/common';
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
|
8
|
-
import * as i3 from '@seniorsistemas/angular-components/checkbox';
|
|
9
|
-
import {
|
|
8
|
+
import * as i3 from '@seniorsistemas/angular-components/checkbox-list';
|
|
9
|
+
import { CheckboxListModule } from '@seniorsistemas/angular-components/checkbox-list';
|
|
10
10
|
import * as i2 from '@ngx-translate/core';
|
|
11
11
|
import { TranslateModule } from '@ngx-translate/core';
|
|
12
12
|
|
|
@@ -96,11 +96,11 @@ class ThumbnailItemComponent {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThumbnailItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
99
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ThumbnailItemComponent, selector: "s-thumbnail-item", inputs: { itemData: "itemData", isCheckable: "isCheckable", isChecked: "isChecked", combineCheckboxEvent: "combineCheckboxEvent" }, outputs: { checked: "checked", opened: "opened" }, ngImport: i0, template: "<button
|
|
99
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ThumbnailItemComponent, selector: "s-thumbnail-item", inputs: { itemData: "itemData", isCheckable: "isCheckable", isChecked: "isChecked", combineCheckboxEvent: "combineCheckboxEvent" }, outputs: { checked: "checked", opened: "opened" }, ngImport: i0, template: "<button\n *ngIf=\"itemData\"\n class=\"thumbnail-item\"\n (click)=\"onClick()\"\n>\n <div class=\"thumbnail-item-content\">\n <div class=\"content\">\n <ng-container *ngIf=\"itemData.type === 'video'\">\n <s-thumbnail-item-video\n [imageUrl]=\"itemData.imageUrl ? itemData.imageUrl : ''\"\n [videoUrl]=\"itemData.videoUrl ? itemData.videoUrl : ''\"\n >\n </s-thumbnail-item-video>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'image'\">\n <s-thumbnail-item-image\n [imageUrl]=\"itemData.imageUrl ? itemData.imageUrl : ''\"\n ></s-thumbnail-item-image>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'audio'\">\n <i class=\"icon fas fa-volume-down\"></i>\n <span class=\"label\">{{ 'platform.angular_components.listen' | translate }}</span>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'file'\">\n <i class=\"icon fas fa-file-alt\"></i>\n <span class=\"label\">{{ 'platform.angular_components.view' | translate }}</span>\n </ng-container>\n </div>\n <form\n *ngIf=\"isCheckable\"\n [formGroup]=\"checkboxFormGroup\"\n class=\"checkbox\"\n >\n <s-checkbox-list\n [data]=\"{ label: '' }\"\n formControlName=\"checkbox\"\n (click)=\"checkboxClick($event)\"\n ></s-checkbox-list>\n </form>\n </div>\n <span class=\"file-name-label\">{{ itemData.fileName }}</span>\n</button>\n", styles: [".thumbnail-item{align-items:center;background:transparent;border:none;cursor:pointer;display:inline-flex;flex-direction:column;justify-content:center;overflow:hidden;width:100px}.thumbnail-item-content{align-items:center;background-image:linear-gradient(to top right,#5288b6,#00c89a);border-radius:8px;display:flex;flex-direction:column;height:100px;justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:100%;overflow:hidden}.thumbnail-item-content .checkbox{position:absolute;right:8px;top:8px}.thumbnail-item-content .content{align-items:center;color:#fff;display:flex;flex-direction:column;gap:4px;overflow:hidden;width:100%}.thumbnail-item-content .content .icon{font-size:24px}.thumbnail-item-content .content .label{font-size:12px;width:100%;padding:0 8px;overflow:hidden;text-overflow:ellipsis}.thumbnail-item:hover{transform:scale(1.05);transition:all .2s ease-in-out}.thumbnail-item .file-name-label{color:#525966;font-family:Open Sans,sans-serif;font-size:12px;overflow:hidden;text-align:center;text-overflow:ellipsis;text-wrap:nowrap;-webkit-user-select:none;user-select:none;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.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: i3.CheckboxListComponent, selector: "s-checkbox-list", inputs: ["data"] }, { kind: "component", type: ThumbnailItemVideoComponent, selector: "s-thumbnail-item-video", inputs: ["imageUrl", "videoUrl"] }, { kind: "component", type: ThumbnailItemImageComponent, selector: "s-thumbnail-item-image", inputs: ["imageUrl"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
100
100
|
}
|
|
101
101
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThumbnailItemComponent, decorators: [{
|
|
102
102
|
type: Component,
|
|
103
|
-
args: [{ selector: "s-thumbnail-item", template: "<button
|
|
103
|
+
args: [{ selector: "s-thumbnail-item", template: "<button\n *ngIf=\"itemData\"\n class=\"thumbnail-item\"\n (click)=\"onClick()\"\n>\n <div class=\"thumbnail-item-content\">\n <div class=\"content\">\n <ng-container *ngIf=\"itemData.type === 'video'\">\n <s-thumbnail-item-video\n [imageUrl]=\"itemData.imageUrl ? itemData.imageUrl : ''\"\n [videoUrl]=\"itemData.videoUrl ? itemData.videoUrl : ''\"\n >\n </s-thumbnail-item-video>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'image'\">\n <s-thumbnail-item-image\n [imageUrl]=\"itemData.imageUrl ? itemData.imageUrl : ''\"\n ></s-thumbnail-item-image>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'audio'\">\n <i class=\"icon fas fa-volume-down\"></i>\n <span class=\"label\">{{ 'platform.angular_components.listen' | translate }}</span>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'file'\">\n <i class=\"icon fas fa-file-alt\"></i>\n <span class=\"label\">{{ 'platform.angular_components.view' | translate }}</span>\n </ng-container>\n </div>\n <form\n *ngIf=\"isCheckable\"\n [formGroup]=\"checkboxFormGroup\"\n class=\"checkbox\"\n >\n <s-checkbox-list\n [data]=\"{ label: '' }\"\n formControlName=\"checkbox\"\n (click)=\"checkboxClick($event)\"\n ></s-checkbox-list>\n </form>\n </div>\n <span class=\"file-name-label\">{{ itemData.fileName }}</span>\n</button>\n", styles: [".thumbnail-item{align-items:center;background:transparent;border:none;cursor:pointer;display:inline-flex;flex-direction:column;justify-content:center;overflow:hidden;width:100px}.thumbnail-item-content{align-items:center;background-image:linear-gradient(to top right,#5288b6,#00c89a);border-radius:8px;display:flex;flex-direction:column;height:100px;justify-content:center;position:relative;-webkit-user-select:none;user-select:none;width:100%;overflow:hidden}.thumbnail-item-content .checkbox{position:absolute;right:8px;top:8px}.thumbnail-item-content .content{align-items:center;color:#fff;display:flex;flex-direction:column;gap:4px;overflow:hidden;width:100%}.thumbnail-item-content .content .icon{font-size:24px}.thumbnail-item-content .content .label{font-size:12px;width:100%;padding:0 8px;overflow:hidden;text-overflow:ellipsis}.thumbnail-item:hover{transform:scale(1.05);transition:all .2s ease-in-out}.thumbnail-item .file-name-label{color:#525966;font-family:Open Sans,sans-serif;font-size:12px;overflow:hidden;text-align:center;text-overflow:ellipsis;text-wrap:nowrap;-webkit-user-select:none;user-select:none;width:100%}\n"] }]
|
|
104
104
|
}], propDecorators: { itemData: [{
|
|
105
105
|
type: Input
|
|
106
106
|
}], isCheckable: [{
|
|
@@ -162,13 +162,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
162
162
|
|
|
163
163
|
class ThumbnailsModule {
|
|
164
164
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThumbnailsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
165
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ThumbnailsModule, declarations: [ThumbnailsComponent, ThumbnailItemComponent, ThumbnailItemVideoComponent, ThumbnailItemImageComponent], imports: [CommonModule, ReactiveFormsModule, TranslateModule,
|
|
166
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThumbnailsModule, imports: [CommonModule, ReactiveFormsModule, TranslateModule,
|
|
165
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ThumbnailsModule, declarations: [ThumbnailsComponent, ThumbnailItemComponent, ThumbnailItemVideoComponent, ThumbnailItemImageComponent], imports: [CommonModule, ReactiveFormsModule, TranslateModule, CheckboxListModule], exports: [ThumbnailsComponent] });
|
|
166
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThumbnailsModule, imports: [CommonModule, ReactiveFormsModule, TranslateModule, CheckboxListModule] });
|
|
167
167
|
}
|
|
168
168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThumbnailsModule, decorators: [{
|
|
169
169
|
type: NgModule,
|
|
170
170
|
args: [{
|
|
171
|
-
imports: [CommonModule, ReactiveFormsModule, TranslateModule,
|
|
171
|
+
imports: [CommonModule, ReactiveFormsModule, TranslateModule, CheckboxListModule],
|
|
172
172
|
declarations: [ThumbnailsComponent, ThumbnailItemComponent, ThumbnailItemVideoComponent, ThumbnailItemImageComponent],
|
|
173
173
|
exports: [ThumbnailsComponent],
|
|
174
174
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-thumbnails.mjs","sources":["../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.ts","../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.html","../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.ts","../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.html","../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.ts","../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.html","../../projects/angular-components/thumbnails/src/lib/thumbnails/thumbnails.component.ts","../../projects/angular-components/thumbnails/src/lib/thumbnails/thumbnails.component.html","../../projects/angular-components/thumbnails/src/lib/thumbnails/thumbnails.module.ts","../../projects/angular-components/thumbnails/src/seniorsistemas-angular-components-thumbnails.ts"],"sourcesContent":["import { Component, Input, ElementRef, ViewChild, HostListener } from \"@angular/core\";\n\n@Component({\n selector: \"s-thumbnail-item-video\",\n templateUrl: \"./thumbnail-item-video.component.html\",\n styleUrls: [\"./thumbnail-item-video.component.scss\"],\n})\nexport class ThumbnailItemVideoComponent {\n @Input({ required: true })\n public imageUrl!: string;\n\n @Input({ required: true })\n public videoUrl!: string;\n\n @ViewChild(\"videoPlayer\") videoPlayer!: ElementRef;\n\n @HostListener(\"mouseenter\") onMouseEnter(): void {\n if (this.videoPlayer?.nativeElement) {\n this.videoPlayer.nativeElement.play();\n }\n }\n\n @HostListener(\"mouseleave\") onMouseLeave(): void {\n if (this.videoPlayer?.nativeElement) {\n this.videoPlayer.nativeElement.pause();\n this.videoPlayer.nativeElement.currentTime = 0;\n }\n }\n}\n","<div class=\"thumbnail-item-video\" [ngClass]=\"{ 'thumbnail-item-video--playable': videoUrl }\">\n <div\n class=\"thumbnail-image\"\n [ngStyle]=\"{'backgroundImage': 'url(' + imageUrl + ')'}\">\n </div>\n <div class=\"play-overlay\">\n <i class=\"icon fas fa-play\"></i>\n <span class=\"label\">{{ \"platform.angular_components.watch\" | translate }}</span>\n </div>\n <video\n *ngIf=\"videoUrl\"\n #videoPlayer\n class=\"thumbnail-video-preview\"\n [src]=\"videoUrl\"\n [loop]=\"true\"\n [muted]=\"true\"\n preload=\"none\">\n </video>\n</div>\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-thumbnail-item-image\",\n templateUrl: \"./thumbnail-item-image.component.html\",\n styleUrls: [\"./thumbnail-item-image.component.scss\"],\n})\nexport class ThumbnailItemImageComponent {\n @Input({ required: true })\n public imageUrl = '';\n}\n","<div class=\"thumbnail-item-image\">\n <div\n *ngIf=\"imageUrl; else noImage\"\n class=\"thumbnail-image\"\n [ngStyle]=\"{ backgroundImage: 'url(' + imageUrl + ')' }\">\n </div>\n\n <ng-template #noImage>\n <div class=\"content\">\n <i class=\"icon fas fa-image\"></i>\n <span class=\"label\">{{ \"platform.angular_components.view\" | translate }}</span>\n </div>\n </ng-template>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\n\nimport { ThumbnailsItem } from \"../../models/thumbnails-item\";\nimport { CheckboxState } from \"@seniorsistemas/angular-components/checkbox\";\nimport { isNullOrUndefined } from \"@seniorsistemas/angular-components/utils\";\n\n@Component({\n selector: \"s-thumbnail-item\",\n templateUrl: \"./thumbnail-item.component.html\",\n styleUrls: [\"./thumbnail-item.component.scss\"],\n})\nexport class ThumbnailItemComponent implements OnInit {\n @Input()\n public itemData!: ThumbnailsItem;\n\n @Input()\n public isCheckable = true;\n\n @Input()\n public isChecked = false;\n\n @Input() combineCheckboxEvent = true;\n\n @Output()\n public checked = new EventEmitter<{ item: ThumbnailsItem, selected: boolean }>();\n\n @Output()\n public opened = new EventEmitter<ThumbnailsItem>();\n\n public checkboxFormGroup: FormGroup = new FormGroup({});\n\n public ngOnInit(): void {\n this._validateItemData();\n this._createFormGroup();\n }\n\n public onClick() {\n this.opened.emit(this.itemData);\n }\n\n public checkboxClick(event: Event): void {\n if (this.combineCheckboxEvent) {\n return;\n }\n\n event.stopPropagation();\n }\n\n private _createFormGroup(): void {\n this.checkboxFormGroup = new FormGroup({\n checkbox: new FormControl({ checked: this.isChecked }),\n });\n\n this.checkboxFormGroup.get(\"checkbox\")?.valueChanges.subscribe((value: CheckboxState) => {\n this.checked.emit({ item: this.itemData, selected: value.checked });\n });\n }\n\n private _validateItemData(): void {\n if (isNullOrUndefined(this.itemData)) {\n throw new Error(\"itemData is required\");\n }\n }\n}\n","<button *ngIf=\"itemData\" class=\"thumbnail-item\" (click)=\"onClick()\">\n <div class=\"thumbnail-item-content\">\n <div class=\"content\">\n <ng-container *ngIf=\"itemData.type === 'video'\">\n <s-thumbnail-item-video\n [imageUrl]=\"itemData.imageUrl ? itemData.imageUrl : ''\"\n [videoUrl]=\"itemData.videoUrl ? itemData.videoUrl : ''\">\n </s-thumbnail-item-video>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'image'\">\n <s-thumbnail-item-image [imageUrl]=\"itemData.imageUrl ? itemData.imageUrl : ''\"></s-thumbnail-item-image>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'audio'\">\n <i class=\"icon fas fa-volume-down\"></i>\n <span class=\"label\">{{ \"platform.angular_components.listen\" | translate }}</span>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'file'\">\n <i class=\"icon fas fa-file-alt\"></i>\n <span class=\"label\">{{ \"platform.angular_components.view\" | translate }}</span>\n </ng-container>\n </div>\n <form *ngIf=\"isCheckable\" [formGroup]=\"checkboxFormGroup\" class=\"checkbox\">\n <s-checkbox [data]=\"{ label: '' }\" formControlName=\"checkbox\" (click)=\"checkboxClick($event)\"></s-checkbox>\n </form>\n </div>\n <span class=\"file-name-label\">{{ itemData.fileName }}</span>\n</button>\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nimport { ThumbnailsItem } from \"./models/thumbnails-item\";\n\n@Component({\n selector: \"s-thumbnails\",\n templateUrl: \"./thumbnails.component.html\",\n styleUrls: [\"./thumbnails.component.scss\"],\n})\nexport class ThumbnailsComponent {\n @Input()\n public items: ThumbnailsItem[] = [];\n\n @Input()\n public selectable = true;\n\n @Input() combineCheckboxEvent = true;\n\n @Input()\n public set selection(items: ThumbnailsItem[]) {\n this._selection = [...items];\n }\n\n @Output()\n public selectionChange = new EventEmitter<ThumbnailsItem[]>();\n\n @Output()\n public itemOpened = new EventEmitter<ThumbnailsItem>();\n\n private _selection: ThumbnailsItem[] = [];\n\n public onItemOpened(item: ThumbnailsItem): void {\n this.itemOpened.emit(item);\n }\n\n public onItemSelected(items: { item: ThumbnailsItem, selected: boolean }): void {\n if (items.selected) {\n this._selection.push(items.item);\n } else {\n this._selection.splice(\n this._selection.findIndex((item) => item === items.item),\n 1\n );\n }\n\n this.selectionChange.emit(this._selection);\n }\n\n public isSelected(item: ThumbnailsItem) {\n return this._selection.some((i: ThumbnailsItem) => i.id === item.id);\n }\n}\n","<div class=\"thumbnails\">\n @for(item of items; track $index) {\n <s-thumbnail-item\n [combineCheckboxEvent]=\"combineCheckboxEvent\"\n [itemData]=\"item\"\n [isCheckable]=\"selectable\"\n [isChecked]=\"isSelected(item)\"\n (checked)=\"onItemSelected($event)\"\n (opened)=\"onItemOpened($event)\">\n </s-thumbnail-item>\n }\n</div>\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { ThumbnailItemComponent } from \"./components/thumbnail-item/thumbnail-item.component\";\nimport { ThumbnailItemVideoComponent } from \"./components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component\";\nimport { ThumbnailItemImageComponent } from \"./components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component\";\nimport { ThumbnailsComponent } from \"./thumbnails.component\";\nimport { CheckboxModule } from \"@seniorsistemas/angular-components/checkbox\";\n\n@NgModule({\n imports: [CommonModule, ReactiveFormsModule, TranslateModule, CheckboxModule],\n declarations: [ThumbnailsComponent, ThumbnailItemComponent, ThumbnailItemVideoComponent, ThumbnailItemImageComponent],\n exports: [ThumbnailsComponent],\n})\nexport class ThumbnailsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i4.ThumbnailItemVideoComponent","i5.ThumbnailItemImageComponent","i6","i1.ThumbnailItemComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-thumbnails.mjs","sources":["../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.ts","../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.html","../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.ts","../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.html","../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.ts","../../projects/angular-components/thumbnails/src/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.html","../../projects/angular-components/thumbnails/src/lib/thumbnails/thumbnails.component.ts","../../projects/angular-components/thumbnails/src/lib/thumbnails/thumbnails.component.html","../../projects/angular-components/thumbnails/src/lib/thumbnails/thumbnails.module.ts","../../projects/angular-components/thumbnails/src/seniorsistemas-angular-components-thumbnails.ts"],"sourcesContent":["import { Component, Input, ElementRef, ViewChild, HostListener } from \"@angular/core\";\n\n@Component({\n selector: \"s-thumbnail-item-video\",\n templateUrl: \"./thumbnail-item-video.component.html\",\n styleUrls: [\"./thumbnail-item-video.component.scss\"],\n})\nexport class ThumbnailItemVideoComponent {\n @Input({ required: true })\n public imageUrl!: string;\n\n @Input({ required: true })\n public videoUrl!: string;\n\n @ViewChild(\"videoPlayer\") videoPlayer!: ElementRef;\n\n @HostListener(\"mouseenter\") onMouseEnter(): void {\n if (this.videoPlayer?.nativeElement) {\n this.videoPlayer.nativeElement.play();\n }\n }\n\n @HostListener(\"mouseleave\") onMouseLeave(): void {\n if (this.videoPlayer?.nativeElement) {\n this.videoPlayer.nativeElement.pause();\n this.videoPlayer.nativeElement.currentTime = 0;\n }\n }\n}\n","<div class=\"thumbnail-item-video\" [ngClass]=\"{ 'thumbnail-item-video--playable': videoUrl }\">\n <div\n class=\"thumbnail-image\"\n [ngStyle]=\"{'backgroundImage': 'url(' + imageUrl + ')'}\">\n </div>\n <div class=\"play-overlay\">\n <i class=\"icon fas fa-play\"></i>\n <span class=\"label\">{{ \"platform.angular_components.watch\" | translate }}</span>\n </div>\n <video\n *ngIf=\"videoUrl\"\n #videoPlayer\n class=\"thumbnail-video-preview\"\n [src]=\"videoUrl\"\n [loop]=\"true\"\n [muted]=\"true\"\n preload=\"none\">\n </video>\n</div>\n","import { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"s-thumbnail-item-image\",\n templateUrl: \"./thumbnail-item-image.component.html\",\n styleUrls: [\"./thumbnail-item-image.component.scss\"],\n})\nexport class ThumbnailItemImageComponent {\n @Input({ required: true })\n public imageUrl = '';\n}\n","<div class=\"thumbnail-item-image\">\n <div\n *ngIf=\"imageUrl; else noImage\"\n class=\"thumbnail-image\"\n [ngStyle]=\"{ backgroundImage: 'url(' + imageUrl + ')' }\">\n </div>\n\n <ng-template #noImage>\n <div class=\"content\">\n <i class=\"icon fas fa-image\"></i>\n <span class=\"label\">{{ \"platform.angular_components.view\" | translate }}</span>\n </div>\n </ng-template>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\n\nimport { ThumbnailsItem } from \"../../models/thumbnails-item\";\nimport { CheckboxListState } from \"@seniorsistemas/angular-components/checkbox-list\";\nimport { isNullOrUndefined } from \"@seniorsistemas/angular-components/utils\";\n\n@Component({\n selector: \"s-thumbnail-item\",\n templateUrl: \"./thumbnail-item.component.html\",\n styleUrls: [\"./thumbnail-item.component.scss\"],\n})\nexport class ThumbnailItemComponent implements OnInit {\n @Input()\n public itemData!: ThumbnailsItem;\n\n @Input()\n public isCheckable = true;\n\n @Input()\n public isChecked = false;\n\n @Input() combineCheckboxEvent = true;\n\n @Output()\n public checked = new EventEmitter<{ item: ThumbnailsItem, selected: boolean }>();\n\n @Output()\n public opened = new EventEmitter<ThumbnailsItem>();\n\n public checkboxFormGroup: FormGroup = new FormGroup({});\n\n public ngOnInit(): void {\n this._validateItemData();\n this._createFormGroup();\n }\n\n public onClick() {\n this.opened.emit(this.itemData);\n }\n\n public checkboxClick(event: Event): void {\n if (this.combineCheckboxEvent) {\n return;\n }\n\n event.stopPropagation();\n }\n\n private _createFormGroup(): void {\n this.checkboxFormGroup = new FormGroup({\n checkbox: new FormControl({ checked: this.isChecked }),\n });\n\n this.checkboxFormGroup.get(\"checkbox\")?.valueChanges.subscribe((value: CheckboxListState) => {\n this.checked.emit({ item: this.itemData, selected: value.checked });\n });\n }\n\n private _validateItemData(): void {\n if (isNullOrUndefined(this.itemData)) {\n throw new Error(\"itemData is required\");\n }\n }\n}\n","<button\n *ngIf=\"itemData\"\n class=\"thumbnail-item\"\n (click)=\"onClick()\"\n>\n <div class=\"thumbnail-item-content\">\n <div class=\"content\">\n <ng-container *ngIf=\"itemData.type === 'video'\">\n <s-thumbnail-item-video\n [imageUrl]=\"itemData.imageUrl ? itemData.imageUrl : ''\"\n [videoUrl]=\"itemData.videoUrl ? itemData.videoUrl : ''\"\n >\n </s-thumbnail-item-video>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'image'\">\n <s-thumbnail-item-image\n [imageUrl]=\"itemData.imageUrl ? itemData.imageUrl : ''\"\n ></s-thumbnail-item-image>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'audio'\">\n <i class=\"icon fas fa-volume-down\"></i>\n <span class=\"label\">{{ 'platform.angular_components.listen' | translate }}</span>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'file'\">\n <i class=\"icon fas fa-file-alt\"></i>\n <span class=\"label\">{{ 'platform.angular_components.view' | translate }}</span>\n </ng-container>\n </div>\n <form\n *ngIf=\"isCheckable\"\n [formGroup]=\"checkboxFormGroup\"\n class=\"checkbox\"\n >\n <s-checkbox-list\n [data]=\"{ label: '' }\"\n formControlName=\"checkbox\"\n (click)=\"checkboxClick($event)\"\n ></s-checkbox-list>\n </form>\n </div>\n <span class=\"file-name-label\">{{ itemData.fileName }}</span>\n</button>\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\n\nimport { ThumbnailsItem } from \"./models/thumbnails-item\";\n\n@Component({\n selector: \"s-thumbnails\",\n templateUrl: \"./thumbnails.component.html\",\n styleUrls: [\"./thumbnails.component.scss\"],\n})\nexport class ThumbnailsComponent {\n @Input()\n public items: ThumbnailsItem[] = [];\n\n @Input()\n public selectable = true;\n\n @Input() combineCheckboxEvent = true;\n\n @Input()\n public set selection(items: ThumbnailsItem[]) {\n this._selection = [...items];\n }\n\n @Output()\n public selectionChange = new EventEmitter<ThumbnailsItem[]>();\n\n @Output()\n public itemOpened = new EventEmitter<ThumbnailsItem>();\n\n private _selection: ThumbnailsItem[] = [];\n\n public onItemOpened(item: ThumbnailsItem): void {\n this.itemOpened.emit(item);\n }\n\n public onItemSelected(items: { item: ThumbnailsItem, selected: boolean }): void {\n if (items.selected) {\n this._selection.push(items.item);\n } else {\n this._selection.splice(\n this._selection.findIndex((item) => item === items.item),\n 1\n );\n }\n\n this.selectionChange.emit(this._selection);\n }\n\n public isSelected(item: ThumbnailsItem) {\n return this._selection.some((i: ThumbnailsItem) => i.id === item.id);\n }\n}\n","<div class=\"thumbnails\">\n @for(item of items; track $index) {\n <s-thumbnail-item\n [combineCheckboxEvent]=\"combineCheckboxEvent\"\n [itemData]=\"item\"\n [isCheckable]=\"selectable\"\n [isChecked]=\"isSelected(item)\"\n (checked)=\"onItemSelected($event)\"\n (opened)=\"onItemOpened($event)\">\n </s-thumbnail-item>\n }\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\nimport { TranslateModule } from \"@ngx-translate/core\";\n\nimport { CheckboxListModule } from \"@seniorsistemas/angular-components/checkbox-list\";\nimport { ThumbnailItemImageComponent } from \"./components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component\";\nimport { ThumbnailItemVideoComponent } from \"./components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component\";\nimport { ThumbnailItemComponent } from \"./components/thumbnail-item/thumbnail-item.component\";\nimport { ThumbnailsComponent } from \"./thumbnails.component\";\n\n@NgModule({\n imports: [CommonModule, ReactiveFormsModule, TranslateModule, CheckboxListModule],\n declarations: [ThumbnailsComponent, ThumbnailItemComponent, ThumbnailItemVideoComponent, ThumbnailItemImageComponent],\n exports: [ThumbnailsComponent],\n})\nexport class ThumbnailsModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i4.ThumbnailItemVideoComponent","i5.ThumbnailItemImageComponent","i6","i1.ThumbnailItemComponent"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from "@angular/core";
|
|
2
|
-
import { FieldSetToggle } from "./fieldset.models";
|
|
3
2
|
import { HeaderComponent } from "@seniorsistemas/angular-components/structure";
|
|
3
|
+
import { FieldSetToggle } from "./fieldset.models";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class FieldsetComponent {
|
|
6
6
|
legend: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./fieldset.component";
|
|
3
3
|
import * as i2 from "@angular/common";
|
|
4
|
-
import * as i3 from "@seniorsistemas/angular-components/
|
|
4
|
+
import * as i3 from "@seniorsistemas/angular-components/interactive-content";
|
|
5
5
|
import * as i4 from "@angular/platform-browser/animations";
|
|
6
6
|
export declare class FieldsetModule {
|
|
7
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<FieldsetModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<FieldsetModule, [typeof i1.FieldsetComponent], [typeof i2.CommonModule, typeof i3.
|
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<FieldsetModule, [typeof i1.FieldsetComponent], [typeof i2.CommonModule, typeof i3.InteractiveContentDirective, typeof i4.BrowserAnimationsModule], [typeof i1.FieldsetComponent]>;
|
|
9
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<FieldsetModule>;
|
|
10
10
|
}
|