{"version":3,"file":"ngx-jsonapi-material.mjs","sources":["../../../../libs/ngx-jsonapi-material/src/lib/selection-bar/dom.service.ts","../../../../libs/ngx-jsonapi-material/src/lib/selection-bar/selection-bar.service.ts","../../../../libs/ngx-jsonapi-material/src/lib/selection-bar/resource-selection-bar.service.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/base/update-filters/update-filters.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/destroyer.ts","../../../../libs/ngx-jsonapi-material/src/lib/refresh/refresh.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/refresh/refresh.component.html","../../../../libs/ngx-jsonapi-material/src/lib/list-base/date-pipe/app-date.pipe.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/currency-pipe/app-currency.pipe.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/capitalize-pipe/capitalize.pipe.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/dynamic-pipe/dynamic.pipe.ts","../../../../libs/ngx-jsonapi-material/src/lib/top-warning/top-warning.service.ts","../../../../libs/ngx-jsonapi-material/src/lib/ngx-jsonapi-material.providers.ts","../../../../libs/ngx-jsonapi-material/src/lib/i18n.ts","../../../../libs/ngx-jsonapi-material/src/lib/custom-validators.ts","../../../../libs/ngx-jsonapi-material/src/lib/track-by-id.ts","../../../../libs/ngx-jsonapi-material/src/lib/batch.ts","../../../../libs/ngx-jsonapi-material/src/lib/search-input/search-text.pipe.ts","../../../../libs/ngx-jsonapi-material/src/lib/search-input/search-input.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/search-input/search-input.component.html","../../../../libs/ngx-jsonapi-material/src/lib/select/select.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/select/select.component.html","../../../../libs/ngx-jsonapi-material/src/lib/select/option-footer.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/select/option-footer.component.html","../../../../libs/ngx-jsonapi-material/src/lib/submit/submit.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/submit/submit.component.html","../../../../libs/ngx-jsonapi-material/src/lib/floating-filters/floating-filters.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/floating-filters/floating-filters.component.html","../../../../libs/ngx-jsonapi-material/src/lib/floating-filters/avoid-disabled-style.directive.ts","../../../../libs/ngx-jsonapi-material/src/lib/picture-manager/picture/picture-manager.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/picture-manager/picture/picture-manager.component.html","../../../../libs/ngx-jsonapi-material/src/lib/picture-manager/gallery/gallery-manager.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/picture-manager/gallery/gallery-manager.component.html","../../../../libs/ngx-jsonapi-material/src/lib/chips-autocomplete/chips-autocomplete.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/chips-autocomplete/chips-autocomplete.component.html","../../../../libs/ngx-jsonapi-material/src/lib/delete-confirmation/confirmation-dialog/confirmation-dialog.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/delete-confirmation/confirmation-dialog/confirmation-dialog.component.html","../../../../libs/ngx-jsonapi-material/src/lib/delete-confirmation/delete-confirmation.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/delete-confirmation/delete-confirmation.component.html","../../../../libs/ngx-jsonapi-material/src/lib/edit-text-attribute-dialog/edit-text-attribute-dialog.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/edit-text-attribute-dialog/edit-text-attribute-dialog.component.html","../../../../libs/ngx-jsonapi-material/src/lib/top-warning/top-warning.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/top-warning/top-warning.component.html","../../../../libs/ngx-jsonapi-material/src/lib/top-warning/single-warning/single-warning.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/top-warning/single-warning/single-warning.component.html","../../../../libs/ngx-jsonapi-material/src/lib/fab-speed-dial/fab-speed-dial.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/fab-speed-dial/fab-speed-dial.component.html","../../../../libs/ngx-jsonapi-material/src/lib/fab-speed-dial/fab-speed-dial-mini-button.ts","../../../../libs/ngx-jsonapi-material/src/lib/menu/menu-elements/menu-elements.ts","../../../../libs/ngx-jsonapi-material/src/lib/menu/menu-elements/menu.ts","../../../../libs/ngx-jsonapi-material/src/lib/menu/menu-elements/section.ts","../../../../libs/ngx-jsonapi-material/src/lib/menu/menu-elements/button.ts","../../../../libs/ngx-jsonapi-material/src/lib/menu/dropdown-menu/dropdown-menu.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/menu/dropdown-menu/dropdown-menu.component.html","../../../../libs/ngx-jsonapi-material/src/lib/menu/bottom-sheet/bottom-sheet.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/menu/bottom-sheet/bottom-sheet.component.html","../../../../libs/ngx-jsonapi-material/src/lib/menu/menu.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/menu/menu.component.html","../../../../libs/ngx-jsonapi-material/src/lib/floating-button/floating-button.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/floating-button/floating-button.component.html","../../../../libs/ngx-jsonapi-material/src/lib/dynamic-forms/dynamic-inputs.ts","../../../../libs/ngx-jsonapi-material/src/lib/dynamic-forms/formly-form-flex.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/tabs/tabs.directive.ts","../../../../libs/ngx-jsonapi-material/src/lib/expansion-panel/remember-state.directive.ts","../../../../libs/ngx-jsonapi-material/src/lib/floating-input/floating-input.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/floating-input/floating-input.component.html","../../../../libs/ngx-jsonapi-material/src/lib/filters/interfaces/filter.interface.ts","../../../../libs/ngx-jsonapi-material/src/lib/filters/interfaces/filter-date-range.interface.ts","../../../../libs/ngx-jsonapi-material/src/lib/filters/interfaces/filter-option.interface.ts","../../../../libs/ngx-jsonapi-material/src/lib/filters/basics/filter-options.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/filters/basics/filter-options.component.html","../../../../libs/ngx-jsonapi-material/src/lib/filters/basics/filter-checks.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/filters/basics/filter-checks.component.html","../../../../libs/ngx-jsonapi-material/src/lib/slide/slide-element.ts","../../../../libs/ngx-jsonapi-material/src/lib/slide/slide.ts","../../../../libs/ngx-jsonapi-material/src/lib/slide/slide.html","../../../../libs/ngx-jsonapi-material/src/lib/slide/slide-element-wrapper.ts","../../../../libs/ngx-jsonapi-material/src/lib/slide/slide-header.ts","../../../../libs/ngx-jsonapi-material/src/lib/slide/slide-header.html","../../../../libs/ngx-jsonapi-material/src/lib/slide/slide-group.ts","../../../../libs/ngx-jsonapi-material/src/lib/slide/slide-group.html","../../../../libs/ngx-jsonapi-material/src/lib/slide/slide-animations.ts","../../../../libs/ngx-jsonapi-material/src/lib/pin-option-button/pin-option-button.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/pin-option-button/pin-option-button.component.html","../../../../libs/ngx-jsonapi-material/src/lib/autocomplete/autocomplete.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/autocomplete/autocomplete.component.html","../../../../libs/ngx-jsonapi-material/src/lib/list-base/list-base-common/table-components/responsive-columns.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/list-base-common/table-components/table-columns.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/base/util.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/list-base.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/base/track-by-id.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/base/nothing-here/nothing-here.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/base/nothing-here/nothing-here.component.html","../../../../libs/ngx-jsonapi-material/src/lib/list-base/base/rs-table-spinner/table-spinner.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/base/rs-table-spinner/table-spinner.component.html","../../../../libs/ngx-jsonapi-material/src/lib/list-base/base/table-loader/table-loader.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/base/table-loader/table-loader.component.html","../../../../libs/ngx-jsonapi-material/src/lib/list-base/list-base-common/list-base-common.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/list-base-common/list-base-common.component.html","../../../../libs/ngx-jsonapi-material/src/lib/list-base/list-base-common/list-base-common-paginator/list-base-common-paginator.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/list-base-common/list-base-common-paginator/list-base-common-paginator.component.html","../../../../libs/ngx-jsonapi-material/src/lib/list-base/list-base-common/list-base-common-infinite-scroll/list-base-common-infinite-scroll.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/list-base/list-base-common/list-base-common-infinite-scroll/list-base-common-infinite-scroll.component.html","../../../../libs/ngx-jsonapi-material/src/lib/info-button/info-button.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/info-button/info-button.component.html","../../../../libs/ngx-jsonapi-material/src/lib/selection-bar/selection-bar-container/selection-bar-container.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/selection-bar/selection-bar-container/selection-bar-container.component.html","../../../../libs/ngx-jsonapi-material/src/lib/selection-bar/selection-bar-info/selection-bar-info.component.ts","../../../../libs/ngx-jsonapi-material/src/lib/selection-bar/selection-bar-info/selection-bar-info.component.html","../../../../libs/ngx-jsonapi-material/src/lib/ngx-jsonapi-material.component.ts","../../../../libs/ngx-jsonapi-material/src/index.ts","../../../../libs/ngx-jsonapi-material/src/ngx-jsonapi-material.ts"],"sourcesContent":["import { Injectable, ComponentFactoryResolver, ApplicationRef, Injector, EmbeddedViewRef, ComponentRef, Type } from '@angular/core';\n\nexport interface IChildConfig {\n    inputs: object;\n    outputs: object;\n}\n\n@Injectable()\nexport class DomService {\n    private childComponentRef: ComponentRef<unknown>;\n    private child_dom_element_id: string = 'current-selection-bar';\n\n    public constructor(\n        private componentFactoryResolver: ComponentFactoryResolver,\n        private appRef: ApplicationRef,\n        private injector: Injector\n    ) {}\n\n    public appendComponentTo(parentId: string, child: unknown, childConfig?: IChildConfig): ComponentRef<unknown> {\n        let child_node: HTMLElement | null = document.getElementById(this.child_dom_element_id);\n        if (child_node) {\n            if (!child_node.parentNode) {\n                return this.childComponentRef!;\n            }\n            child_node.parentNode.removeChild(child_node);\n        }\n\n        /** Crea una referencia de componente desde el componente hijo */\n        const childComponentRef: ComponentRef<unknown> = this.componentFactoryResolver\n            .resolveComponentFactory(child as Type<unknown>)\n            .create(this.injector);\n\n        /** Conecta la configuración al hijo (entradas y salidas) */\n        if (!childConfig) {\n            return this.childComponentRef!;\n        }\n        this.attachConfig(childConfig, childComponentRef);\n\n        this.childComponentRef = childComponentRef;\n        // Agrega el componente al appRef de modo que esté dentro del árbol de componentes \"ng\"\n        this.appRef.attachView(childComponentRef.hostView);\n\n        // Obtiene el elemento DOM del componente\n        const childDomElem: HTMLElement = (childComponentRef.hostView as EmbeddedViewRef<unknown>).rootNodes[0] as HTMLElement;\n        childDomElem.setAttribute('id', this.child_dom_element_id);\n\n        const parentElement: HTMLElement | null = document.getElementById(parentId);\n        if (!parentElement) {\n            return this.childComponentRef!;\n        }\n\n        parentElement.appendChild(childDomElem);\n        childDomElem.className = 'width-100';\n\n        return childComponentRef;\n    }\n\n    public removeComponent(): void {\n        if (!this.childComponentRef) return;\n        this.appRef.detachView(this.childComponentRef.hostView);\n        this.childComponentRef.destroy();\n    }\n\n    private attachConfig(config: IChildConfig, componentRef: ComponentRef<unknown>): void {\n        let inputs: Record<string, unknown> = config.inputs as Record<string, unknown>;\n        let outputs: Record<string, unknown> = config.outputs as Record<string, unknown>;\n        Object.keys(inputs).forEach((key): void => {\n            (componentRef.instance as Record<string, unknown>)[key] = inputs[key];\n        });\n        Object.keys(outputs).forEach((key): void => {\n            (componentRef.instance as Record<string, unknown>)[key] = outputs[key];\n        });\n    }\n}\n","import { Injectable, ComponentRef } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { DomService, IChildConfig } from './dom.service';\n\nexport interface IMethodRef {\n    method: string;\n    params?: Record<string, unknown>;\n}\n\n@Injectable()\nexport class SelectionBarService {\n    public selected$: BehaviorSubject<SelectionModel<unknown>> = new BehaviorSubject(new SelectionModel());\n    public callMethod$: BehaviorSubject<IMethodRef> = new BehaviorSubject({ method: '' });\n    private selectionBarElementId: string = 'selection-bar-container';\n\n    public constructor(private domService: DomService) {}\n\n    public selected<T>(selected: SelectionModel<T>): void {\n        this.selected$.next(selected);\n    }\n\n    public callMethod(methodRef: IMethodRef): void {\n        this.callMethod$.next(methodRef);\n    }\n\n    public clearMethod(): void {\n        this.callMethod({ method: '' });\n    }\n\n    public init(component: unknown, inputs: object, outputs: object): ComponentRef<unknown> | undefined {\n        let componentConfig: IChildConfig = {\n            inputs: inputs,\n            outputs: outputs\n        };\n\n        const selectionBarElement: HTMLElement | null = document.getElementById(this.selectionBarElementId);\n        if (!selectionBarElement) {\n            return undefined;\n        }\n\n        if (selectionBarElement.className === 'show') {\n            return undefined; // ts-lint => Value-returning function should use `return undefined;`, not just `return;`\n        }\n\n        let created_component_instance: ComponentRef<unknown> = this.domService.appendComponentTo(\n            this.selectionBarElementId,\n            component,\n            componentConfig\n        );\n        selectionBarElement.className = 'show';\n\n        return created_component_instance;\n    }\n\n    public destroy(): void {\n        this.domService.removeComponent();\n        const selectionBarElement: HTMLElement | null = document.getElementById(this.selectionBarElementId);\n        if (!selectionBarElement) {\n            return;\n        }\n        selectionBarElement.className = 'hidden';\n    }\n}\n","import { Injectable } from '@angular/core';\n\nexport interface IMethodRef {\n    method: string;\n    params?: Record<string, unknown>;\n}\n\n@Injectable()\nexport class ResourceSelectionBarService {\n    public resources: Array<unknown> = [];\n\n    public add_resources(resources: Array<unknown>): void {\n        this.resources = resources;\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n@Injectable()\nexport class UpdateFiltersService {\n    public constructor(public router: Router) {}\n\n    public getRemoteFilter(queryParams: Record<string, unknown>, remoteFilterObject: Record<string, unknown>): Record<string, unknown> {\n        /*\n         * Extracts remoteFilter object from queryParams\n         *\n         * @param queryParams: queryParams from the actual route\n         * @return: remoteFilter object\n         */\n\n        let remoteFilter: Record<string, unknown> = this.parseQueryParams({ ...queryParams });\n\n        Object.keys(queryParams).forEach((key): void => {\n            if (!remoteFilterObject.hasOwnProperty(key)) {\n                delete remoteFilter[key];\n            }\n        });\n\n        return remoteFilter;\n    }\n\n    public getPaginationData(queryParams: Record<string, unknown>, page: Record<string, unknown>): Record<string, unknown> {\n        /*\n         * Extracts pagination data object from queryParams\n         *\n         * @param queryParams: queryParams from the actual route\n         * @return: pagination data object\n         */\n\n        Object.keys(queryParams).forEach((key): void => {\n            if (page.hasOwnProperty(key)) {\n                page[key] = queryParams[key];\n            }\n        });\n\n        return page;\n    }\n\n    public filterByText(text: string, filterName: string, remoteFilter: Record<string, unknown>, page: Record<string, unknown>): void {\n        /*\n         * Applies text filter to the current route\n         *\n         * @param filter: filter to apply in the actual route\n         * @param remoteFilter: (object) route's actual filter\n         * @param page: (object) route's actual pagination data\n         */\n\n        if (remoteFilter[filterName] !== undefined && remoteFilter[filterName] !== text && text.length < 4) {\n            delete remoteFilter[filterName];\n            this.router.navigate([], { queryParams: { ...remoteFilter, ...page } });\n        }\n        if (text.length < 4) {\n            return;\n        }\n\n        remoteFilter[filterName] = text;\n        this.router.navigate([], { queryParams: { ...remoteFilter, ...page } });\n    }\n\n    public applyFilters(filter: Record<string, unknown>): void {\n        /*\n         * Applies new filters to the current route\n         *\n         * @param filter: filter to apply in the actual route\n         */\n\n        Object.keys(filter).forEach((key): void => {\n            /* tslint:disable:strict-comparisons */\n            if (\n                !filter[key] ||\n                (typeof filter[key] === 'object' &&\n                    filter[key] !== null &&\n                    Object.keys(filter[key] as Record<string, unknown>).length === 0 &&\n                    (filter[key] as Record<string, unknown>).constructor === Object)\n            ) {\n                filter[key] = null;\n            }\n\n            if (!filter.hasOwnProperty(key) || typeof filter[key] !== 'object' || !filter[key]) {\n                return;\n            }\n\n            const filterValue: Record<string, unknown> = filter[key] as Record<string, unknown>;\n            Object.keys(filterValue).forEach((subKey): void => {\n                if (!filterValue.hasOwnProperty(subKey)) {\n                    return;\n                }\n\n                let filter_key: string = key + '[' + subKey + ']';\n                filter[filter_key] = filterValue[subKey];\n            });\n            delete filter[key];\n            /* tslint:enable:strict-comparisons */\n        });\n\n        this.router.navigate([], { queryParams: filter });\n    }\n\n    public parseQueryParams(queryParams: Record<string, unknown>): Record<string, unknown> {\n        let parsed_query_params: Record<string, string | Record<string, string>> = {};\n\n        for (let query_param in queryParams) {\n            if (!queryParams.hasOwnProperty(query_param)) {\n                continue;\n            }\n            if (query_param.indexOf('[') !== -1 && query_param.indexOf(']') !== -1) {\n                let splitted_query_params: Array<string> = query_param.split(/\\[|\\]/);\n                if (!parsed_query_params[splitted_query_params[0]]) {\n                    parsed_query_params[splitted_query_params[0]] = {};\n                }\n                parsed_query_params[splitted_query_params[0]][splitted_query_params[1]] = queryParams[query_param] as string;\n            } else {\n                parsed_query_params[query_param] = queryParams[query_param] as string;\n            }\n        }\n        /* tslint:enable:no-for-in */\n\n        return parsed_query_params;\n    }\n}\n","import { Subject, UnaryFunction, Observable, pipe } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nexport class Destroyer {\n    private takeuntil: Subject<void> = new Subject();\n\n    public pipe<T>(): UnaryFunction<Observable<T>, Observable<T>> {\n        return pipe(takeUntil(this.takeuntil));\n    }\n\n    public destroy(): void {\n        this.takeuntil.next();\n        this.takeuntil.complete();\n    }\n}\n","/***\n * Copyright (C) 1997-2017 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { Component, Input, Output, EventEmitter, Injectable, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Destroyer } from '../destroyer';\nimport { Service, DocumentCollection } from 'ngx-jsonapi';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class JamRefreshService {\n    public collection_to_refresh: Subject<DocumentCollection> = new Subject<DocumentCollection>();\n    public refreshSubject: Subject<boolean> = new Subject<boolean>();\n    public autoRefreshSubject: Subject<boolean> = new Subject<boolean>();\n\n    public refresh(): void {\n        this.refreshSubject.next(true);\n    }\n\n    public autoRefresh(): void {\n        this.autoRefreshSubject.next(true);\n    }\n}\n\n@Component({\n    selector: 'jam-refresh',\n    templateUrl: './refresh.component.html',\n    styleUrls: ['./refresh.component.scss'],\n    standalone: true,\n    imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule, MatProgressSpinnerModule, TranslateModule]\n})\nexport class RefreshComponent implements OnInit, OnDestroy {\n    @Input({ required: true }) public collectionToRefresh!: DocumentCollection;\n    @Input({ required: true }) public serviceToRefresh!: Service;\n    @Input() public colorProgressCircular: string = 'white';\n    @Input({ required: true }) public icon!: string;\n    @Output() public reload: EventEmitter<Record<string, unknown>> = new EventEmitter<Record<string, unknown>>();\n\n    public destroyer: Destroyer = new Destroyer();\n\n    public constructor(public changeDetectorRef: ChangeDetectorRef, public jamRefreshService: JamRefreshService) {}\n\n    public ngOnInit(): void {\n        if (!this.collectionToRefresh) {\n            this.jamRefreshService.collection_to_refresh.pipe(this.destroyer.pipe()).subscribe((collection: DocumentCollection): void => {\n                this.collectionToRefresh = collection;\n                this.changeDetectorRef.detectChanges();\n            });\n        }\n    }\n\n    public ngOnDestroy(): void {\n        this.destroyer.destroy();\n    }\n\n    public refreshCollection(): void {\n        this.serviceToRefresh.clearCacheMemory();\n        this.jamRefreshService.refresh();\n    }\n}\n","@if (collectionToRefresh) {\n    <button\n        mat-icon-button\n        [matTooltip]=\"'refresh.tooltip' | translate\"\n        mat-ink-ripple=\"false\"\n        class=\"mat-icon-button mat-button refresh-button\"\n        (click)=\"refreshCollection()\"\n    >\n        @if (!collectionToRefresh.is_loading) {\n            <mat-icon class=\"material-icons\">\n                {{ icon || 'refresh' }}\n            </mat-icon>\n        }\n        @if (collectionToRefresh.is_loading) {\n            <mat-spinner\n                class=\"material-icons elements-up padding-0 margin-0\"\n                color=\"accent\"\n                diameter=\"24\">\n            </mat-spinner>\n        }\n    </button>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n@Pipe({\n    name: 'appdate'\n})\nexport class AppDatePipe extends DatePipe implements PipeTransform {\n    public transform(value: string | number | Date, format?: string, timezone?: string, locale?: string): string;\n    public transform(value: null, format?: string, timezone?: string, locale?: string): null;\n    public transform(value: string | number | Date | null | undefined, format?: string, timezone?: string, locale?: string): string | null;\n    public transform(value: string | number | Date | null | undefined): string | null {\n        if (!value) return null;\n\n        return super.transform(value.toString().replace(/ /g, 'T'), 'dd/MM/yyyy');\n    }\n}\n\n@Pipe({\n    name: 'appdatetime'\n})\nexport class AppDateTimePipe extends DatePipe implements PipeTransform {\n    public transform(value: string | number | Date, format?: string, timezone?: string, locale?: string): string;\n    public transform(value: null, format?: string, timezone?: string, locale?: string): null;\n    public transform(value: string | number | Date | null | undefined, format?: string, timezone?: string, locale?: string): string | null;\n    public transform(value: string | number | Date | null | undefined): string | null {\n        if (!value) return null;\n\n        return super.transform(value.toString().replace(/ /g, 'T'), 'dd/MM/yyyy HH:mm:ss');\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { formatCurrency, getCurrencySymbol } from '@angular/common';\n\n@Pipe({\n    name: 'appcurrency'\n})\nexport class AppCurrencyPipe implements PipeTransform {\n    public transform(\n        value: number,\n        currencyCode: string = '$',\n        currencyId: number = 1,\n        // display: 'code' | 'symbol' | 'symbol-narrow' | string | boolean = 'symbol-narrow',\n        digitsInfo: string = '1.2-2',\n        locale: string = 'en-US'\n    ): string | null {\n        let currencies_supports: { [keys: number]: string } = {\n            1: '$',\n            2: 'US$'\n        };\n        currencyCode = currencies_supports[currencyId];\n\n        return formatCurrency(value, locale, getCurrencySymbol(currencyCode, 'wide', locale), digitsInfo).replace(/([^\\d.,])(\\d)/, '$1 $2');\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n/*\n * Capitalize the first letter of the string\n * Takes a string as a value.\n * Usage:\n *  value | capitalize\n * Example:\n *  // value.name = daniel San\n *  {{ value.name | capitalize  }}\n *  fromats to: Daniel San\n */\n@Pipe({\n    name: 'capitalize',\n    standalone: true\n})\nexport class AppCapitalizePipe implements PipeTransform {\n    public transform(value: null | string): string {\n        if (value === null) return 'Not assigned';\n\n        return value.charAt(0).toUpperCase() + value.slice(1);\n    }\n}\n","import { Pipe, PipeTransform, Injector, Type } from '@angular/core';\n\n@Pipe({\n    name: 'dynamic',\n    standalone: true\n})\nexport class DynamicPipe implements PipeTransform {\n    public constructor(private injector: Injector) {}\n\n    public transform(value: unknown, pipeName: unknown, pipeArgs?: Array<unknown>): unknown {\n        pipeArgs = [];\n        if (!pipeName) {\n            return value;\n        }\n\n        let pipe: PipeTransform = this.injector.get<PipeTransform>(pipeName as Type<PipeTransform>);\n\n        return pipe.transform(value, ...pipeArgs);\n    }\n}\n","/***\n * Copyright (C) 1997-2018 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { Injectable } from '@angular/core';\n\n/**\n * @param id: The id must be composed of the resource followed by a period and a short,\n * descriptive message of the warning in question.\n * @param message: It must be a descriptive warning message.\n * @param link: It is optional, and must contain a route.\n */\nexport interface IWarning {\n    id: string;\n    attributes: {\n        message: string;\n        link?: string;\n        linkQueryParams?: { [key: string]: string };\n        externalLink?: string;\n        linkText?: string;\n    };\n}\n\n@Injectable()\nexport class TopWarningService {\n    public warnings: Array<IWarning> = [];\n\n    /**\n     * Receives a warning resource.\n     *\n     * @param warning\n     */\n    public setWarningMessage(warning: IWarning): void {\n        if (!warning) return;\n\n        if (this.warnings.length <= 0) {\n            this.warnings.push(warning);\n        }\n\n        let search_warning: IWarning | undefined = this.warnings.find((msj_warning): boolean => msj_warning.id === warning.id);\n        if (!search_warning || search_warning.id !== warning.id) {\n            this.warnings.push(warning);\n        }\n    }\n\n    public getWarningMessage(): Array<IWarning> {\n        return this.warnings;\n    }\n\n    public clearMessage(warning_keys: Array<string>): void {\n        for (let warning of this.warnings) {\n            if (!warning_keys.includes(warning.id)) continue;\n            let index: number = this.warnings.indexOf(warning);\n            this.warnings.splice(index, 1);\n        }\n    }\n}\n","import { Provider } from '@angular/core';\nimport { SelectionBarService } from './selection-bar/selection-bar.service';\nimport { ResourceSelectionBarService } from './selection-bar/resource-selection-bar.service';\nimport { DomService } from './selection-bar/dom.service';\nimport { UpdateFiltersService } from './list-base/base/update-filters/update-filters.component';\nimport { JamRefreshService } from './refresh/refresh.component';\nimport { AppDatePipe, AppDateTimePipe } from './list-base/date-pipe/app-date.pipe';\nimport { AppCurrencyPipe } from './list-base/currency-pipe/app-currency.pipe';\nimport { AppCapitalizePipe } from './list-base/capitalize-pipe/capitalize.pipe';\nimport { DynamicPipe } from './list-base/dynamic-pipe/dynamic.pipe';\nimport { TopWarningService } from './top-warning/top-warning.service';\n\n/**\n * Provides all ngx-jsonapi-material services without NgModule\n */\nexport function provideNgxJsonapiMaterial(): Array<Provider> {\n    return [\n        ResourceSelectionBarService,\n        SelectionBarService,\n        DomService,\n        UpdateFiltersService,\n        JamRefreshService,\n        AppDatePipe,\n        AppDateTimePipe,\n        AppCurrencyPipe,\n        AppCapitalizePipe,\n        DynamicPipe,\n        TopWarningService\n    ];\n}\n","import { HttpClient } from '@angular/common/http';\nimport { TranslateService, TranslationObject } from '@ngx-translate/core';\nimport { firstValueFrom } from 'rxjs';\n\nexport const NGX_JSONAPI_MATERIAL_I18N_ES_FILE: string = 'ngx-jsonapi-material-es.json';\nexport const NGX_JSONAPI_MATERIAL_I18N_EN_FILE: string = 'ngx-jsonapi-material-en.json';\n\nexport interface NgxJsonapiMaterialTranslations {\n    es: TranslationObject;\n    en: TranslationObject;\n}\n\nexport async function loadNgxJsonapiMaterialTranslationsFromAssets(\n    httpClient: HttpClient,\n    basePath: string = '/assets/i18n'\n): Promise<NgxJsonapiMaterialTranslations> {\n    const [es, en] = await Promise.all([\n        firstValueFrom(httpClient.get<TranslationObject>(`${basePath}/${NGX_JSONAPI_MATERIAL_I18N_ES_FILE}`)),\n        firstValueFrom(httpClient.get<TranslationObject>(`${basePath}/${NGX_JSONAPI_MATERIAL_I18N_EN_FILE}`))\n    ]);\n\n    return { es, en };\n}\n\nexport function registerNgxJsonapiMaterialTranslations(translate: TranslateService, translations: NgxJsonapiMaterialTranslations): void {\n    translate.setTranslation('es', translations.es, true);\n    translate.setTranslation('en', translations.en, true);\n}\n\nexport async function registerNgxJsonapiMaterialTranslationsFromAssets(\n    translate: TranslateService,\n    httpClient: HttpClient,\n    basePath: string = '/assets/i18n'\n): Promise<void> {\n    const translations: NgxJsonapiMaterialTranslations = await loadNgxJsonapiMaterialTranslationsFromAssets(httpClient, basePath);\n    registerNgxJsonapiMaterialTranslations(translate, translations);\n}\n\nexport default registerNgxJsonapiMaterialTranslationsFromAssets;\n","import { ValidationErrors, ValidatorFn, AbstractControl } from '@angular/forms';\n\nexport class CustomValidators {\n    public patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn {\n        return (control: AbstractControl): ValidationErrors | null => {\n            if (!control.value) return null; // if control is empty return no error\n\n            const VALID: boolean = regex.test(control.value); // test the value of the control against the regexp supplied\n\n            return VALID ? null : error; // if true, return no error (no error), else return error passed in the second parameter\n        };\n    }\n\n    /**\n     * @description NoPassswordMatch allows you to display an error if the password does not match.\n     * @usageNotes\n     * ### Ejemplo\n     * ```typescript\n     * validation: {\n     *     message: {\n     *         NoPassswordMatch: 'Mi mensaje'\n     *     }\n     * }\n     * ```\n     */\n    public passwordMatchValidator(control: AbstractControl): void {\n        const passwordControl: AbstractControl | null = control.get('password');\n        const confirmPasswordControl: AbstractControl | null = control.get('confirm_password');\n\n        if (!passwordControl || !confirmPasswordControl) {\n            return;\n        }\n\n        const PASSWORD: string = passwordControl.value; // get password from our password form control\n        const CONFIRM_PASSWORD: string = confirmPasswordControl.value; // get password from our confirmPassword form control\n\n        // compare is the password math\n        if (PASSWORD !== CONFIRM_PASSWORD) {\n            // if they don't match, set an error in our confirmPassword form control\n            confirmPasswordControl.setErrors({ NoPassswordMatch: true });\n        }\n    }\n}\n","import { Resource } from 'ngx-jsonapi';\n\nexport function trackById(index: number, resource: Resource): string {\n    return resource.id;\n}\n","import { map, concatMap, startWith, filter, switchMap, debounceTime, catchError } from 'rxjs/operators';\nimport { Observable, pipe, of, UnaryFunction } from 'rxjs';\n\nimport { Service, Resource, DocumentCollection, IParamsCollection } from 'ngx-jsonapi';\n\nexport function batchAll<T extends Service<R>, R extends Resource>(\n    service: T,\n    params: IParamsCollection\n): Observable<DocumentCollection<R>> {\n    return <Observable<DocumentCollection<R>>>service.all(params).pipe(\n        concatMap((collection): Observable<DocumentCollection<R>> => {\n            if (!params.page?.size) {\n                return of(collection);\n            }\n            \n            if (collection.data.length < params.page.size) {\n                return of(collection);\n            }\n             \n            params.page.number += 1;\n\n            return batchAll(service, params).pipe(startWith(collection as DocumentCollection<R>)) as Observable<DocumentCollection<R>>;\n        })\n    );\n}\n\nexport const filterOrRequest: <T extends Resource>(params: {\n    attribute_to_search?: string;\n    resourcesArray: Array<T>;\n    getAllFc: (filter: string) => Observable<DocumentCollection<T>>;\n    last_filter_value: string;\n    collection: DocumentCollection<T>;\n    page_size: number;\n}) => UnaryFunction<Observable<string>, Observable<Array<T>>> = <T extends Resource>(params: {\n    attribute_to_search?: string;\n    resourcesArray: Array<T>;\n    getAllFc: (filter: string) => Observable<DocumentCollection<T>>;\n    last_filter_value: string;\n    collection: DocumentCollection<T>;\n    page_size: number;\n}): UnaryFunction<Observable<string>, Observable<Array<T>>> =>\n        pipe(\n            startWith(''),\n            debounceTime(400),\n            filter((filterValue): boolean => typeof filterValue === 'string'),\n            switchMap((filterValue: string): Observable<Array<T>> => {\n                if (filterValue.includes(params.last_filter_value) && params.collection.data.length < params.page_size) {\n                    if (!params.attribute_to_search) {\n                        return of([]);\n                    }\n                    \n                    return of(\n                        params.resourcesArray.filter(\n                            (resource: T): boolean => resource.attributes[params.attribute_to_search!].toLowerCase().indexOf(filterValue) >= 0\n                        )\n                    );\n                }\n\n                return params\n                    .getAllFc(filterValue)\n                    .pipe(catchError((): Array<T> => []))\n                    .pipe(\n                        map((collection: DocumentCollection<T>): Array<T> => {\n                            params.collection = collection;\n                            params.resourcesArray = collection.data;\n                            params.last_filter_value = filterValue;\n\n                            return params.resourcesArray;\n                        })\n                    );\n            })\n        );\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'filter',\n    standalone: true\n})\nexport class FilterPipe implements PipeTransform {\n    /**\n     *\n     * @param items List of items to filter\n     * @param term  a string term to compare with every property of the list\n     *\n     */\n    public static filter(items: Array<Record<string, unknown>>, term: string): Array<Record<string, unknown>> {\n        const toCompare: string = term.toLowerCase();\n        /* tslint:disable:no-for-in */\n\n        return items.filter((item: Record<string, unknown>): boolean => {\n            for (let property in item) {\n                if (property !== 'attributes') {\n                    continue;\n                }\n\n                for (let sub_property in item[property] as Record<string, unknown>) {\n                    const attributes: Record<string, unknown> = item[property] as Record<string, unknown>;\n                    if (!['string', 'number'].includes(typeof attributes[sub_property])) {\n                        continue;\n                    }\n\n                    if ((attributes[sub_property] as string | number).toString().toLowerCase().includes(toCompare)) {\n                        return true;\n                    }\n                }\n            }\n\n            return false;\n        });\n        /* tslint:enable:no-for-in */\n    }\n\n    /**\n     * @param items object or resource from array\n     * @param searchText search term\n     */\n    public transform(items: Array<Record<string, unknown>>, searchText: string): Array<Record<string, unknown>> {\n        if (!searchText || !items) return items;\n\n        return FilterPipe.filter(items, searchText);\n    }\n}\n","/***\n * Copyright (C) 1997-2017 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormControl } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { debounceTime, map } from 'rxjs/operators';\nimport { Destroyer } from '../destroyer';\n\n@Component({\n    selector: 'jam-search-input',\n    standalone: true,\n    imports: [CommonModule, ReactiveFormsModule, MatButtonModule, MatIconModule, MatTooltipModule, TranslateModule],\n    styleUrls: ['./search-input.component.scss'],\n    templateUrl: './search-input.component.html'\n})\nexport class SearchInputComponent implements OnInit, OnDestroy {\n    @Input() public text: string;\n    @Input() public opened: boolean = false;\n    @Output() public textChange: EventEmitter<string> = new EventEmitter();\n\n    public searchCtrl: FormControl = new FormControl();\n\n    public showSearch: boolean = false;\n\n    private destroyer: Destroyer = new Destroyer();\n\n    public ngOnInit(): void {\n        this.showSearch = this.opened || this.showSearch;\n\n        this.searchCtrl.valueChanges\n            .pipe(\n                this.destroyer.pipe(),\n                map((x): string => x),\n                debounceTime(400)\n            )\n            .subscribe((newValue): void => this.textChange.emit(newValue));\n    }\n\n    public ngOnDestroy(): void {\n        this.destroyer.destroy();\n    }\n\n    public showInput(): void {\n        if (this.opened) {\n            this.showSearch = this.opened;\n        } else {\n            this.showSearch = !this.showSearch;\n            setTimeout((): void => {\n                if (!this.showSearch) {\n                    return;\n                }\n\n                const searchInput: HTMLElement | null = document.getElementById('search-input');\n                if (!searchInput) {\n                    return;\n                }\n\n                searchInput.focus();\n            }, 0);\n        }\n    }\n\n    public switch(): void {\n        if (this.opened) {\n            this.showSearch = this.opened;\n        } else {\n            this.showSearch = false;\n        }\n\n        if (this.searchCtrl.value !== '') {\n            this.searchCtrl.setValue('');\n            this.textChange.emit(this.searchCtrl.value);\n        }\n    }\n}\n","<div class=\"search-container\">\n    @if (!showSearch) {\n    <button mat-icon-button class=\"mat-button\" [matTooltip]=\"'search_input.search' | translate\" (click)=\"showInput()\">\n        <mat-icon class=\"mat-hint\">search</mat-icon>\n    </button>\n    }\n    @if (showSearch) {\n    <div class=\"reset-input-default search-input-container\" [ngClass]=\"showSearch ? 'opened' : ''\">\n        <mat-icon class=\"mat-hint\">search</mat-icon>\n        <input class=\"jam-input search-input-field\" id=\"search-input\" autocomplete=\"off\" [formControl]=\"searchCtrl\"\n            [placeholder]=\"'search_input.placeholder' | translate\">\n\n        <button mat-icon-button class=\"mat-button\" (click)=\"switch()\">\n            <mat-icon class=\"mat-hint\">clear</mat-icon>\n        </button>\n    </div>\n    }\n</div>","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { Resource, DocumentCollection } from 'ngx-jsonapi';\nimport { FilterPipe } from '../search-input/search-text.pipe';\nimport { SearchInputComponent } from '../search-input/search-input.component';\n\n@Component({\n    selector: 'jam-select',\n    standalone: true,\n    imports: [\n        CommonModule,\n        FormsModule,\n        MatFormFieldModule,\n        MatSelectModule,\n        MatOptionModule,\n        MatButtonModule,\n        MatIconModule,\n        MatDividerModule,\n        FilterPipe,\n        TranslateModule,\n        SearchInputComponent\n    ],\n    styleUrls: ['./select.component.scss'],\n    templateUrl: './select.component.html'\n})\nexport class SelectComponent implements OnInit {\n    @Input() public appareance: 'fill' | 'outline' | 'legacy' | 'standard' = 'outline';\n    @Input() public floatLabel: 'never' | 'always' = 'always';\n    @Input() public multiple: boolean;\n    @Input() public parentId: string;\n    @Input() public toRelate: Resource;\n    @Input() public placeholder: string | undefined;\n    @Input() public label: string;\n    @Input({ required: true }) public displayAttribute!: string;\n    @Input({ required: true }) public collection!: DocumentCollection;\n    @Input() public removeRelationships: boolean;\n    @Input() public disabled: boolean;\n    @Input() public limit: number;\n    @Input() public hasRefresh: boolean = false;\n\n    @Output() public toRelateChange: EventEmitter<Resource> = new EventEmitter<Resource>();\n    @Output() public refresh: EventEmitter<void> = new EventEmitter<void>();\n\n    public adaptiveArray: Array<Resource> = [];\n    public clear_relationships: Resource | null = null;\n\n    public searchText: string = '';\n\n    public ngOnInit(): void {\n        if (this.limit) {\n            this.adaptiveArray = this.collection.data.slice(0, Number(this.limit));\n        } else {\n            this.adaptiveArray = this.collection.data;\n        }\n\n        if (this.toRelate) {\n            const foundResource: Resource | null = this.collection.find(this.toRelate.id);\n            if (!foundResource) {\n                return;\n            }\n            this.toRelate = foundResource;\n        }\n    }\n\n    public updateFilter(search_text: string): void {\n        this.searchText = search_text;\n    }\n\n    public updateRelationships(resource: Resource): void {\n        this.toRelateChange.emit(resource);\n    }\n}\n","<mat-form-field\n    [floatLabel]=\"floatLabel\"\n    [appearance]=\"appareance\">\n    <mat-label>\n        {{ label || ('select.select_option' | translate) }}\n        @if (!toRelate) {\n            <i>{{ 'select.none_inline' | translate }}</i>\n        }\n    </mat-label>\n    <mat-select\n        [ngModel]=\"toRelate\"\n        (ngModelChange)=\"updateRelationships($event)\"\n        [disabled]=\"disabled || false\"\n        [placeholder]=\"placeholder || ('select.select_option' | translate)\"\n        [multiple]=\"multiple || false\">\n\n        @if (adaptiveArray.length >= 10) {\n            <div class=\"mat-option-header\">\n                <jam-search-input\n                    [text]=\"searchText\"\n                    [opened]=\"true\"\n                    (textChange)=\"updateFilter($event)\">\n                </jam-search-input>\n            </div>\n\n            <mat-divider></mat-divider>\n        }\n\n        @if (removeRelationships) {\n            <mat-option [value]=\"clear_relationships\">{{ 'select.none' | translate }}</mat-option>\n        }\n\n        @for (resource of adaptiveArray | filter: searchText; track resource) {\n            <ng-container>\n                @if (parentId && resource.id !== parentId) {\n                    <mat-option [value]=\"resource\">\n                        {{ resource.attributes[displayAttribute] }}\n                    </mat-option>\n                }\n                @if (!parentId) {\n                    <mat-option [value]=\"resource\">\n                        {{ resource.attributes[displayAttribute] }}\n                    </mat-option>\n                }\n            </ng-container>\n        }\n\n        <div class=\"mat-option-footer\">\n            <ng-content></ng-content>\n        </div>\n    </mat-select>\n\n    @if (hasRefresh) {\n        <button matSuffix mat-icon-button class=\"mat-button\"\n            (click)=\"refresh.emit()\">\n            <div class=\"refresh-button\">\n                <mat-icon class=\"mat-hint\">refresh</mat-icon>\n            </div>\n        </button>\n    }\n</mat-form-field>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Params, Router, ActivatedRoute } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n    selector: 'jam-option-footer',\n    standalone: true,\n    imports: [CommonModule, MatOptionModule, MatIconModule, MatButtonModule, TranslateModule],\n    styleUrls: ['./option-footer.component.scss'],\n    templateUrl: './option-footer.component.html'\n})\nexport class JamOptionFooterComponent {\n    @Input() public url: string;\n    @Input() public labelOption: string;\n    @Input() public routerLink: Array<string>;\n    @Input() public queryParams: Params;\n    @Input() public openNewTab: boolean = false;\n\n    public constructor(private activatedRoute: ActivatedRoute, private router: Router) {}\n\n    public goTo(target: '_self' | '_blank' = '_self'): void {\n        if (this.routerLink) {\n            this.router.navigate(this.routerLink, {\n                relativeTo: this.activatedRoute,\n                queryParams: this.queryParams\n            });\n        } else if (this.url) {\n            window.open(this.url, target);\n        }\n    }\n}\n","<mat-option class=\"mat-elevation-z1 mouseover\"\n    (click)=\"goTo()\">\n    <div class=\"option-footer-content\">\n        <div>\n            <mat-icon class=\"mat-hint\">add_circle</mat-icon>\n            <span>{{ labelOption || ('select.add' | translate) }}</span>\n        </div>\n        @if (openNewTab && !routerLink) {\n            <div>\n                <a mat-icon-button class=\"mat-button mouseover-child\" target=\"_blank\"\n                    (click)=\"$event.stopPropagation(); goTo('_blank')\">\n                    <mat-icon class=\"mat-hint\" [style.margin]=\"'0'\">open_in_new</mat-icon>\n                </a>\n            </div>\n        }\n    </div>\n</mat-option>","/***\n * Copyright (C) 1997-2017 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule, Location } from '@angular/common';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n    selector: 'jam-submit',\n    standalone: true,\n    imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule, TranslateModule],\n    styleUrls: ['./submit.component.scss'],\n    templateUrl: './submit.component.html'\n})\nexport class SubmitComponent {\n    @Input() public submitAppearance: 'mat-flat-button' | 'mat-stroked-button' | 'mat-raised-button' | 'mat-button' = 'mat-flat-button';\n    @Input() public submitColor: 'primary' | 'warn' = 'primary';\n    @Input() public disabled: boolean;\n    @Input() public noCancel: boolean;\n    @Input() public cancelParamsState: object;\n    @Input() public submitLabel: string;\n    @Input() public cancelState: string;\n    @Input() public goBack: boolean = false;\n    @Input() public loading: boolean = false;\n    @Output() public accept: EventEmitter<void> = new EventEmitter();\n    @Output() public cancelAction: EventEmitter<string | void> = new EventEmitter();\n\n    public constructor(private location: Location, public router: Router, public activatedRoute: ActivatedRoute) {}\n\n    public changeState(_event: Event): void {\n        if (!this.noCancel && this.goBack) {\n            this.location.back();\n            this.cancelAction.emit('goBack');\n        } else if (this.cancelAction) {\n            this.cancelAction.emit();\n        } else if (this.cancelState && this.cancelState.slice(0, 2) === '..') {\n            this.router.navigate([this.cancelState], { relativeTo: this.activatedRoute });\n        } else {\n            this.router.navigate([this.cancelState], { queryParams: this.cancelParamsState });\n        }\n    }\n\n    public submit(): void {\n        this.accept.emit();\n    }\n}\n","<div class=\"submit-container\">\n    @if (!noCancel) {\n        <button type=\"button\" mat-button color=\"primary\" (click)=\"changeState($event)\" class=\"accent pull-right\" rs-esc-key>{{ 'common.cancel' | translate }}</button>\n    }\n    <button mat-flat-button  type=\"submit\" [attr.aria-label]=\"'common.save' | translate\" class=\"pull-right\"\n        [color]=\"submitColor\"\n        [ngClass]=\"submitAppearance\"\n        [disabled]=\"loading || disabled\"\n        (click)=\"submit()\">\n        <div class=\"submit-button-content\">\n            @if (!loading) {\n                <span class=\"elements-up\">{{ (submitLabel ? submitLabel : ('common.save' | translate)) }}</span>\n            }\n            @if (loading) {\n                <mat-progress-spinner class=\"elements-up default\"\n                    mode=\"indeterminate\"\n                    value=\"value\"\n                    diameter=\"20\"\n                    [attr.aria-label]=\"'common.loading' | translate\">\n                </mat-progress-spinner>\n            }\n        </div>\n    </button>\n</div>\n","/***\n * Copyright (C) 1997-2018 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * Este component trabaja con 2 ng-content.\n * En el component que se use, debe definirse dos ng-container con las clases css:\n * header-filters, y filters, de esta forma el component sabe en que ng-content ubicar el contenido que se le pasa.\n */\n\n@Component({\n    selector: 'jam-floating-filters',\n    standalone: true,\n    imports: [CommonModule, MatExpansionModule, MatButtonModule, MatIconModule, MatTooltipModule, TranslateModule],\n    styleUrls: ['./floating-filters.component.scss'],\n    templateUrl: './floating-filters.component.html'\n})\nexport class FloatingFiltersComponent implements OnInit {\n    @Input() public hasAdvancedFilters: boolean = true;\n    @Input() public appearance: 'round' | 'square' = 'square';\n    @Output() public resetFilters: EventEmitter<void> = new EventEmitter();\n    public show_reset_button: boolean = false;\n    public open_expansion_panel: boolean = false;\n\n    public ngOnInit(): void {\n        this.show_reset_button = this.resetFilters.observers.length > 0;\n    }\n\n    public toggleStateExpansionPanel(state: boolean): void {\n        this.open_expansion_panel = !state;\n    }\n\n    public clearFilters(panel_state: boolean): void {\n        if (!panel_state) {\n            return;\n        }\n        this.resetFilters.emit();\n    }\n}\n","<mat-expansion-panel\n    [disabled]=\"!hasAdvancedFilters\"\n    [hideToggle]=\"true\"\n    (opened)=\"toggleStateExpansionPanel(false)\"\n    (closed)=\"toggleStateExpansionPanel(true)\"\n    [style.box-shadow]=\"'none'\"\n    class=\"width-100\" [expanded]=\"open_expansion_panel\" [style.background]=\"'transparent'\">\n    <mat-expansion-panel-header jamAvoidDisabledStyle [style.padding]=\"'0'\">\n        <mat-panel-description class=\"header-layout\">\n            <div class=\"filter-start-section\" (click)=\"$event.stopPropagation()\">\n                @if (hasAdvancedFilters) {\n                    <button mat-button [ngClass]=\"'filter-button-' + appearance\"\n                        (click)=\"toggleStateExpansionPanel(open_expansion_panel)\">\n                        <div class=\"filter-button-content\">\n                            <button mat-icon-button class=\"mat-button\" (click)=\"clearFilters(open_expansion_panel)\">\n                                <mat-icon\n                                    [innerHtml]=\"!open_expansion_panel ? 'filter_list' : 'close'\"\n                                    [matTooltip]=\"open_expansion_panel ? ('floating_filters.clear_filters' | translate) : ('floating_filters.view_filters' | translate)\">\n                                </mat-icon>\n                            </button>\n\n                            <span>{{ 'floating_filters.label' | translate }}</span>\n\n                            <mat-icon matSuffix\n                                [style.width.px]=\"'40'\"\n                                [innerHtml]=\"open_expansion_panel ? 'arrow_drop_up' : 'arrow_drop_down'\">\n                            </mat-icon>\n                        </div>\n                    </button>\n                }\n            </div>\n\n            <div class=\"filter-end-section\" (keydown)=\"$event.stopPropagation()\" (click)=\"$event.stopPropagation()\">\n                <ng-content select=\"ng-container.jam-filter-header\"></ng-content>\n            </div>\n        </mat-panel-description>\n    </mat-expansion-panel-header>\n\n    <div class=\"filter-content-layout\">\n        <ng-content select=\"ng-container.jam-filter-content\">\n        </ng-content>\n    </div>\n</mat-expansion-panel>","import { Directive, ElementRef, OnDestroy } from '@angular/core';\n\n/**\n * Esta directive se usa en conjunto con la directive/attribute [disabled].\n * Es especial para los matExpansionPanel, cuando se aplican botones de acciones al header de este\n * y no se quiere abrir el matExpansionPanel, entonces esta directiv lo que hará es no aplicar los estilos apagado\n * que proporciona material cuando un elemento/tag esta des habilitado.\n */\n\n@Directive({\n    selector: '[jamAvoidDisabledStyle]'\n})\nexport class AvoidDisabledStyleDirective implements OnDestroy {\n    private changes: MutationObserver;\n\n    public constructor(private elementRef: ElementRef) {\n        const NATIVE_ELEMENT: HTMLElement = this.elementRef.nativeElement;\n\n        this.changes = new MutationObserver((mutations: Array<MutationRecord>): void => {\n            for (let mutation of mutations) {\n                this.preservingOriginalStyles(mutation);\n            }\n        });\n\n        this.changes.observe(NATIVE_ELEMENT, {\n            attributes: true,\n            childList: false,\n            characterData: false\n        });\n    }\n\n    public ngOnDestroy(): void {\n        this.changes.disconnect();\n    }\n\n    private preservingOriginalStyles(mutation: MutationRecord): void {\n        if (mutation.attributeName !== 'aria-disabled') {\n            return;\n        }\n\n        let elements: HTMLCollectionOf<Element> = document.getElementsByTagName(mutation.target.nodeName);\n        for (let i: number = 0; i < elements.length; i++) {\n            (elements[i] as HTMLElement).style.color = 'inherit';\n        }\n    }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { ImageChange } from './image-change-interface';\nimport { UploadOutput } from 'ngx-uploader';\nimport { UploadComponent } from '../upload/upload.component';\n\n@Component({\n    selector: 'jam-picture-manager',\n    standalone: true,\n    imports: [\n        CommonModule,\n        MatButtonModule,\n        MatIconModule,\n        MatTooltipModule,\n        MatDividerModule,\n        MatProgressSpinnerModule,\n        UploadComponent,\n        TranslateModule\n    ],\n    templateUrl: './picture-manager.component.html',\n    styleUrls: ['./picture-manager.component.scss']\n})\nexport class PictureManagerComponent implements OnInit {\n    /**\n     * Inputs\n     *\n     * @param type: describes the shape of the image container, this parameter is optional..\n     * @param source: is a url to reference an image.\n     * @param deleteUrl: is a url for deleting an image, this parameter is optional.\n     * @param uploadUrl: is a url for uploading an image, this parameter is optional.\n     */\n    @Input() public type: 'square' | 'round';\n    @Input() public source: string;\n    @Input() public deleteUrl: string;\n    @Input() public uploadUrl: string;\n    @Input() public showDeleteOption: boolean = true;\n    @Input() public jamHeaders: { [key: string]: string | Array<string> };\n    @Input() public textDelete: string = '';\n    @Input() public disableMatDialog: boolean = false;\n    @Input() public showBtnOption: boolean = false;\n    @Input() public deletePreview: boolean = false;\n\n    /**\n     * Outputs\n     *\n     * @param uploadChange: updates the image and returns the url for it.\n     */\n    @Output() public uploadChange: EventEmitter<ImageChange> = new EventEmitter<ImageChange>();\n    @Output() public response: EventEmitter<UploadOutput> = new EventEmitter<UploadOutput>();\n\n    public drag_and_drop: boolean = false;\n\n    public constructor(protected httpClient: HttpClient) {}\n\n    public ngOnInit(): void {\n        this.settingDefaultValues();\n    }\n\n    public dragAndDropStyles(drag_and_drop: boolean): void {\n        this.drag_and_drop = drag_and_drop;\n    }\n\n    public showPreview(image: string): void {\n        let mimePdf: string = 'JVBERi0';\n        this.source = image;\n        if (this.source.indexOf(mimePdf) > 0) {\n            this.source =\n                'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsSAAALEgHS3X78AAAEq0lEQVR4nO3d4XEbRRzG4V2G76aDqASoIKaDUAGhA3cA6cAluIR0gN1B6MDqwK5gmRsdQ8L4XvukEzqtnmeGLxlGWR3+cbe681+1tVaAl33nuMA0gUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCASC7x2cb9Vafyil3JRSPpZS3q1pbSu1LaXclVJuW2tPvb252lpbwTLWodb6YynlvpRydenHYg/PpZTr1tqXs1t5IJCROBbzU0+RCOTfy6pHcSxiOJNserncsknfuRHHYq7G49kFZ5DdGeTRhnxR29bapoc3IpBdIA7CwlprtYf34WPe123H/Qnf2lzCWVcgr7trrf2x9kX+32qtwzH5vff3aZMOgUAgEAgEAoFAIBAIBIJuAhlu9oV/DvmY9nrBZXJmnEEgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQGCqyQJqrR/HMThvNYwR+pzGc+7xiP6X1trn9C/MXOcwzeXixx0JZBnDD977ma90W2tN09Bnj9SptT6UUj6E8OascxjkffGBuMQ6nWGG7f04OHspww9/PIswj0BO62r8v/qS3o9f5cACBHJ6H46wAr8mvBB7kOP5eeKV/9zzb/xr4msFhjPQr//5szmXbVPr7OqbovYlkCNprd2/9Mq17j30/Oml1xw2+oe8g6l1suMSCwKBQCAQCAQCgUCOZGrK47ms89DNfy8Ecno+Tl0xgZyeR0NWTCCn9Zv7EOvmRuHxPIRXHp62vV1JHFPrnHwU/5II5Ehaa2exyT2XdZ6KSywIBAKBQCAQCAQ26edjMzHIwSb7iARyPt7NGOTg7vxCXGL153mcSMICBNKfmzRvi3kE0o9tKeWX1trdpR+IJdmDLONm5qCEt5gapvCSpzCA7mvHWGfXBLKAN/5wznKM57SOsc7eucSCQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCv5P+uqmJhpfuIiY6CuR1cyYa0hmXWDvbNSyiI90cT4HsGLa2rG6Op0B2bseZthzueTyeXRDIbqDa07jpFMlhhuN33dNsYIGMxqmDItnfP3F0Nb1RIF8Z/+NuSimfbNzfbDser02Po01ra20FyzhcrTW9kU+tNfcymM0ZBAKBQCAQCAQCgUAgEAgEl/Ix74OvRp7PR+OXEwh7aK3VSz9uPV1iufPN4noKxCPrLK6nS6zh+78fSylXK1hOF1xidXQG8cg6x9DVx7weWWdp3d0H8cg6S+pmDwLH4E46BAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAIBAKBQCAQCAQCgUAgEAgEAoFAIBAITCml/A2UAQ06Ajh58gAAAABJRU5ErkJggg==';\n        }\n        this.uploadChange.emit({ status_change: 'update', source: this.source });\n    }\n\n    public delete(): void {\n        if (this.deletePreview) {\n            this.source = '';\n            this.uploadChange.emit({ status_change: 'delete', source: this.source });\n\n            return;\n        }\n        let delete_url: string = this.creatDeleteUrl(this.source);\n        this.httpClient\n            .delete(delete_url, {\n                headers: this.jamHeaders\n            })\n            .subscribe((_response): void => {\n                this.uploadChange.emit({ status_change: 'delete', source: this.source });\n            });\n    }\n\n    public settingDefaultValues(): void {\n        this.type = this.type || 'square';\n        this.deleteUrl = this.deleteUrl || this.source;\n        this.uploadUrl = this.uploadUrl || this.source;\n    }\n\n    private creatDeleteUrl(source: string): string {\n        let img_url_parties: Array<string> = source.split('/');\n        let img_name: string | undefined = img_url_parties.pop();\n\n        if (!img_name) {\n            return this.deleteUrl;\n        }\n\n        return this.deleteUrl + img_name;\n    }\n}\n","@defer (on interaction) {\n    <jam-upload [uploadUrl]=\"uploadUrl\" (dragAndDropChange)=\"dragAndDropStyles($event)\" (showPreview)=\"showPreview($event)\" mat-icon-button [jamHeaders]=\"jamHeaders\"\n        (response)=\"response.emit($event)\">\n        @if (drag_and_drop) {\n            <div [ngClass]=\"type + '-drag-and-drop-styles'\"></div>\n        } @else {\n            <div id=\"picture-manager\" class=\"mouseover\">\n                <div [ngClass]=\"type\" [style.background-image]=\"'url(' + source + ')'\">\n                    <div class=\"mouseover-child\" [ngClass]=\"{'add-hover-mouseover-child': source}\">\n                        <div class=\"blur\" [style.background-image]=\"'url(' + source + ')'\"></div>\n                        <div class=\"overlay\"></div>\n                        <div class=\"menu\">\n                            <div class=\"menu-content\">\n                                @if (!showBtnOption) {\n                                    <mat-icon [matTooltip]=\"'picture_manager.upload' | translate\">add_a_photo</mat-icon>\n                                }\n                                @if (showBtnOption) {\n                                    <a type=\"button\" mat-button [matTooltip]=\"'picture_manager.upload' | translate\">\n                                        <mat-icon styleIcon>file_upload</mat-icon> {{ 'picture_manager.upload' | translate }}\n                                    </a>\n                                }\n                                @if (showDeleteOption) {\n                                    <mat-divider></mat-divider>\n                                    <jam-delete-confirmation\n                                        [styled]=\"{ color: 'white' }\"\n                                        (delete)=\"delete()\"\n                                        [text]=\"textDelete\"\n                                        [disableMatDialog]=\"disableMatDialog\">\n                                    </jam-delete-confirmation>\n                                }\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        }\n    </jam-upload>\n} @placeholder {\n    <div class=\"picture-manager-placeholder\">\n        <mat-icon>photo_camera</mat-icon>\n        <span>{{ 'picture_manager.preparing' | translate }}</span>\n    </div>\n} @loading (minimum 150ms) {\n    <div class=\"picture-manager-loading\">\n        <mat-progress-spinner diameter=\"35\" mode=\"indeterminate\"></mat-progress-spinner>\n    </div>\n}\n","import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { Resource } from 'ngx-jsonapi';\n\n@Component({\n    selector: 'jam-gallery-manager',\n    standalone: true,\n    imports: [CommonModule, MatCardModule, MatIconModule, MatTooltipModule, MatProgressSpinnerModule, TranslateModule],\n    templateUrl: './gallery-manager.component.html',\n    styleUrls: ['./gallery-manager.component.scss']\n})\nexport class GalleryManagerComponent implements OnInit {\n    @Input() public pictures: Array<Resource | unknown>;\n    @Input() public uploadUrl: string;\n    @Input() public updatePicture: string = '/photos/';\n    @Input() public limit: number;\n    @Input() public showDeleteOption: boolean = true;\n    @Input() public jamHeaders: { [key: string]: string | Array<string> };\n    /**\n     * @param  {number} highlightedImage\n     * Position in the array of the highlighted image, by default is the position 0.\n     */\n    @Input() public highlightedImage: number = 0;\n\n    @Output() public addPicture: EventEmitter<string> = new EventEmitter<string>();\n    @Output() public responsePicture: EventEmitter<Resource> = new EventEmitter<Resource>();\n\n    public image_loading: boolean = false;\n\n    public ngOnInit(): void {\n        this.highlightedImage = this.highlightedImage || 0;\n    }\n\n    public showPreview(img: unknown): void {\n        this.addPicture.emit(img as string);\n    }\n\n    public response(event: { type: string; file?: { response: { data: Resource } } }): void {\n        if (event.type !== 'done') {\n            this.image_loading = true;\n\n            return;\n        }\n        this.image_loading = false;\n        this.responsePicture.emit(event.file?.response.data);\n    }\n}\n","<div *ngFor=\"let picture of pictures; let position = index\">\n    <mat-card class=\"mat-card-flat padding-0 container-gallery-manager\"\n        *ngIf=\"limit ? position <= limit : true\"\n        [matTooltip]=\"highlightedImage === position ? ('picture_manager.highlighted' | translate) : null\"\n        [ngClass]=\"highlightedImage === position ? 'mat-icon mat-accent highlighted-image-container' : null\"\n    >\n        <mat-icon color=\"accent\" *ngIf=\"highlightedImage === position\"\n            class=\"highlighted-image\"\n        >collections_bookmark</mat-icon>\n        <jam-picture-manager\n            [showDeleteOption]=\"showDeleteOption\"\n            [source]=\"picture.attributes.url\"\n            [uploadUrl]=\"uploadUrl + updatePicture + picture.id\"\n            [jamHeaders]=\"jamHeaders\"\n        ></jam-picture-manager>\n    </mat-card>\n</div>\n<jam-upload id=\"gallery-manager\" [uploadUrl]=\"uploadUrl\" (showPreview)=\"showPreview($event)\"\n    *ngIf=\"pictures && pictures.length < limit\" class=\"container-gallery-manager\"\n    [disabled]=\"image_loading\"\n    (response)=\"response($event)\"\n    mat-icon-button [matTooltip]=\"'picture_manager.upload' | translate\"\n    [jamHeaders]=\"jamHeaders\">\n    <mat-icon id=\"base-icon\" [ngClass]=\"image_loading ? 'disabled-update' : null\">add_a_photo</mat-icon>\n    <mat-progress-spinner class=\"elements-up default\"\n        class=\"loading-position\"\n        *ngIf=\"image_loading\"\n        mode=\"indeterminate\"\n        value=\"value\"\n        diameter=\"42\"\n        [attr.aria-label]=\"'spinner.loading' | translate\">\n    </mat-progress-spinner>\n</jam-upload>\n","import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormControl } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatOptionModule } from '@angular/material/core';\n\nimport { Resource, DocumentCollection, Service, IPage } from 'ngx-jsonapi';\nimport { Observable } from 'rxjs';\nimport { filterOrRequest } from '../batch';\nimport { trackById } from '../track-by-id';\n\n@Component({\n    selector: 'jam-chips-autocomplete',\n    standalone: true,\n    imports: [\n        CommonModule,\n        ReactiveFormsModule,\n        MatFormFieldModule,\n        MatChipsModule,\n        MatIconModule,\n        MatAutocompleteModule,\n        MatInputModule,\n        MatOptionModule\n    ],\n    templateUrl: './chips-autocomplete.component.html',\n    styleUrls: ['./chips-autocomplete.component.scss']\n})\nexport class ChipsAutocompleteComponent implements OnInit {\n    @ViewChild('resourceInput') public resourceInput: ElementRef;\n    @Input() public placeholder: string;\n    @Input({ required: true }) public resource!: Resource;\n    @Input() public remoteFilter: Record<string, unknown>;\n    @Input({ required: true }) public service!: Service;\n    @Input({ required: true }) public relationAlias!: string;\n    @Input({ required: true }) public attributesDisplay!: Array<string>;\n    @Input() public appearance: 'standard' | 'outline' | 'legacy' | 'fill';\n    @Input() public matLabel: string;\n    @Input() public page: IPage = {\n        number: 1,\n        size: 50\n    };\n\n    public trackById: (index: number, resource: Resource) => string = trackById;\n    public filteredCollection: Observable<Array<Resource>>;\n    public formControl: FormControl;\n    public collection: DocumentCollection;\n    public addOnBlur: boolean = true;\n    public selectable: boolean = true;\n    public removable: boolean = true;\n    public collection_relationships: DocumentCollection;\n\n    private collectionArray: Array<Resource> = [];\n    private collectionArrayLastFilterValue: string;\n\n    public constructor() {\n        this.formControl = new FormControl();\n    }\n\n    public ngOnInit(): void {\n        this.collection = this.service.newCollection();\n        this.collection_relationships = <DocumentCollection>this.resource.relationships[this.relationAlias];\n\n        this.filteredCollection = this.formControl.valueChanges.pipe(\n            filterOrRequest({\n                attribute_to_search: this.attributesDisplay[0],\n                resourcesArray: this.collectionArray,\n                getAllFc: this.getAll.bind(this),\n                last_filter_value: this.collectionArrayLastFilterValue,\n                collection: this.collection,\n                page_size: this.page.size ?? 10\n            })\n        );\n    }\n\n    public getAll(search_text: string): Observable<DocumentCollection> {\n        if (search_text) {\n            this.remoteFilter = { ...this.remoteFilter, ...{ [this.attributesDisplay[0]]: search_text } };\n\n            return this.service.all({\n                remotefilter: this.remoteFilter,\n                page: {\n                    number: 1,\n                    size: this.page.size\n                }\n            });\n        }\n\n        return this.service.all({\n            remotefilter: this.remoteFilter,\n            page: {\n                number: 1,\n                size: this.page.size\n            }\n        });\n    }\n\n    public filterCollection(search_text: string | Resource): Array<Resource> {\n        const filterValue: string = typeof search_text === 'string' ? search_text.toLowerCase() : '';\n\n        return this.collection.data.filter(\n            (resource: Resource): boolean => resource.attributes[this.attributesDisplay[0]].toLowerCase().indexOf(filterValue) >= 0\n        );\n    }\n\n    public addResource(resource: Resource): void {\n        this.resource.addRelationship(resource, this.relationAlias);\n        this.resourceInput.nativeElement.value = '';\n        this.formControl.setValue(null);\n    }\n\n    public displayName(_resource: Resource): '' {\n        return '';\n    }\n\n    public removeResource(resource: Resource): void {\n        this.resource.removeRelationship(this.relationAlias, resource.id);\n    }\n}\n","<mat-form-field [style.width.%]=\"'100'\" [appearance]=\"appearance\">\n    @if (matLabel) {\n        <mat-label>{{ matLabel }</mat-label>\n    }\n    <mat-chip-option #chipList>\n        @for (resource_resource of collection_relationships.data; track resource_resource.id) {\n            <mat-chip-option\n                [selectable]=\"selectable\"\n                [removable]=\"removable\"\n                (removed)=\"removeResource(resource_resource)\">\n                {{ resource_resource.attributes[attributesDisplay[0]] }}\n                @if (removable) {\n                    <mat-icon matChipRemove>cancel</mat-icon>\n                }\n            </mat-chip-option>\n        }\n        <input\n            [placeholder]=\"placeholder || ''\"\n            #resourceInput\n            [formControl]=\"formControl\"\n            [matAutocomplete]=\"auto\"\n            [matChipInputFor]=\"chipList\"\n            [matChipInputAddOnBlur]=\"addOnBlur\">\n    </mat-chip-option>\n\n    <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"addResource($event.option.value)\">\n        @for (resource of filteredCollection | async; track resource.id) {\n            <ng-container>\n                @if (!collection_relationships.find(resource.id)) {\n                    <mat-option [value]=\"resource\">\n                        <div class=\"option-content\">\n                            <mat-icon class=\"layout-margin\">person</mat-icon>\n                            <strong>{{ resource.attributes[attributesDisplay[0]] }}</strong>\n                            &nbsp;\n                            @for (attribute_name of attributesDisplay; track attribute_name; let attr_id = $index) {\n                                @if (attr_id >= 1) {\n                                    <small class=\"attribute-display\">\n                                        <span>| {{ resource.attributes[attribute_name] }}</span>\n                                    </small>\n                                }\n                            }\n                        </div>\n                    </mat-option>\n                }\n            </ng-container>\n        }\n    </mat-autocomplete>\n</mat-form-field>\n","/***\n * Copyright (C) 1997-2018 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { Component, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n\n@Component({\n    selector: 'jam-confirmation-dialog',\n    standalone: true,\n    imports: [CommonModule, MatDialogModule, MatButtonModule, MatProgressSpinnerModule, TranslateModule],\n    templateUrl: 'confirmation-dialog.component.html',\n    styleUrls: ['./confirmation-dialog.component.scss']\n})\nexport class ConfirmationDialogComponent {\n    public constructor(\n        public dialogRef: MatDialogRef<ConfirmationDialogComponent>,\n        private translateService: TranslateService,\n        @Inject(MAT_DIALOG_DATA) public data: { accept?: string; msg?: string; [key: string]: unknown }\n    ) {\n        if (!data.accept) {\n            data.accept = this.translateService.instant('delete_confirmation.accept');\n        }\n        if (!data.msg) {\n            data.msg = this.translateService.instant('delete_confirmation.continue');\n        }\n    }\n}\n","@if (data.title) {\n    <h2 mat-dialog-title [innerHtml]=\"data.title\"></h2>\n}\n\n@defer (on interaction) {\n    <mat-dialog-content>\n        <p [innerHtml]=\"data.msg\"></p>\n    </mat-dialog-content>\n    <mat-dialog-actions class=\"dialog-actions\">\n        <button mat-button mat-dialog-close>No</button>\n        <button mat-button [mat-dialog-close]=\"true\" [innerHtml]=\"data.accept\"></button>\n    </mat-dialog-actions>\n} @placeholder {\n    <div class=\"dialog-placeholder\">\n        <mat-progress-spinner diameter=\"30\" mode=\"indeterminate\"></mat-progress-spinner>\n    </div>\n} @loading (minimum 100ms) {\n    <div class=\"dialog-loading\">\n        <mat-progress-spinner diameter=\"25\" mode=\"indeterminate\"></mat-progress-spinner>\n    </div>\n}\n","/***\n * Copyright (C) 1997-2018 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n\nimport { ConfirmationDialogComponent } from './confirmation-dialog/confirmation-dialog.component';\n\n@Component({\n    selector: 'jam-delete-confirmation',\n    standalone: true,\n    imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule, TranslateModule],\n    templateUrl: './delete-confirmation.component.html',\n    styleUrls: ['./delete-confirmation.component.scss']\n})\nexport class DeleteConfirmationComponent {\n    @Input() public type: 'icon' | 'button' = 'icon'; /** @Deprecated */\n    @Input() public icon: string;\n    @Input() public tooltip: string;\n    @Input() public msg: string;\n    @Input() public text: string;\n    @Input() public title: string;\n    @Input() public classed: string; /** @Deprecated */\n    @Input() public styled: object;\n    @Input() public styleIcon: string;\n    @Input() public disableMatDialog: boolean = false;\n    @Input() public accept: string;\n    @Input() public appearance: 'mat-button' | 'mat-raised-button' | 'mat-flat-button' | 'mat-stroked-button' | 'mat-icon-button' =\n        'mat-icon-button';\n    @Output() public delete: EventEmitter<unknown> = new EventEmitter();\n\n    public smartColor: { [key: string]: string } = {\n        'mat-button': 'accent',\n        'mat-raised-button': 'primary',\n        'mat-flat-button': 'primary',\n        'mat-stroked-button': 'accent',\n        'mat-icon-button': 'default'\n    };\n\n    public constructor(public dialog: MatDialog, private translateService: TranslateService) {\n        this.msg = this.msg || this.translateService.instant('delete_confirmation.message');\n        this.accept = this.accept || this.translateService.instant('delete_confirmation.accept');\n    }\n\n    public showConfirm(): void {\n        if (this.disableMatDialog) {\n            return this.delete.emit();\n        }\n        let dialogRef: MatDialogRef<ConfirmationDialogComponent> = this.dialog.open(ConfirmationDialogComponent, {\n            width: 'auto',\n            data: { title: this.title, msg: this.msg, accept: this.accept }\n        });\n\n        dialogRef.afterClosed().subscribe((result): void => {\n            if (result) {\n                this.delete.emit();\n            }\n        });\n    }\n}\n","<div>\n    <button mat-button type=\"button\"\n        [ngClass]=\"appearance || 'mat-icon-button mat-button'\"\n        (click)=\"showConfirm()\"\n        [color]=\"smartColor[appearance]\"\n        [ngStyle]=\"styled\"\n        [matTooltip]=\"tooltip || text || ('delete_confirmation.tooltip' | translate)\"\n        >\n        <div class=\"delete-button-content\">\n            <mat-icon\n                [ngStyle]=\"styleIcon ? styleIcon : ''\"\n            >\n                {{ icon ? icon : 'delete' }}\n            </mat-icon>\n            @if (text && appearance !== 'mat-icon-button') {\n                <span [innerHtml]=\"text\"></span>\n            }\n        </div>\n    </button>\n</div>","/***\n * Copyright (C) 1997-2018 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { Component, Inject, HostListener } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Resource } from 'ngx-jsonapi';\nimport { SubmitComponent } from '../submit/submit.component';\n\nexport interface IEditTextAttributeData {\n    resource: Resource;\n    attribute: string;\n    title: string;\n    accept?: string;\n    message?: string;\n    textarea_label?: string;\n}\n\n@Component({\n    selector: 'jam-edit-text-attribute',\n    standalone: true,\n    imports: [CommonModule, FormsModule, MatDialogModule, MatFormFieldModule, MatInputModule, MatButtonModule, SubmitComponent],\n    templateUrl: 'edit-text-attribute-dialog.component.html',\n    styleUrls: ['./edit-text-attribute-dialog.component.scss']\n})\nexport class EditTextAttributeDialogComponent {\n    public text_value: string = '';\n\n    public constructor(\n        public dialogRef: MatDialogRef<EditTextAttributeDialogComponent>,\n        @Inject(MAT_DIALOG_DATA) public data: IEditTextAttributeData\n    ) {\n        if (!data.accept) {\n            data.accept = 'Aceptar';\n        }\n    }\n\n    @HostListener('window: keyup', ['$event']) public onKeyUp(event: KeyboardEvent): void {\n        if (event.key === 'Enter' && !event.shiftKey) {\n            this.updateAttributeAndClose(this.data.attribute, this.text_value);\n        }\n    }\n\n    public updateAttributeAndClose(attribute: string, value: string): void {\n        this.data.resource.attributes[attribute] = value;\n        this.dialogRef.close(true);\n    }\n}\n","<form name=\"myForm\" novalidate (ngSubmit)=\"updateAttributeAndClose(data.attribute, text_value)\">\n    @if (data.title) {\n        <h2 mat-dialog-title [innerHtml]=\"data.title\"></h2>\n    }\n    <mat-dialog-content>\n        @if (data.message) {\n            <p>{{ data.message }}</p>\n        }\n        <mat-form-field\n            appearance=\"outline\"\n            class=\"full-width\"\n        >\n            <mat-label>{{ data.textarea_label }}</mat-label>\n            <textarea maxlength=\"140\"\n                name=\"text_attribute\"\n                type=\"text\"\n                #textarea\n                [(ngModel)]=\"text_value\"\n                matInput\n            ></textarea>\n            <mat-hint align=\"end\">{{ textarea.value.length }} / 140</mat-hint>\n        </mat-form-field>\n    </mat-dialog-content>\n\n    <mat-dialog-actions class=\"dialog-actions\">\n        <jam-submit\n            (cancel)=\"dialogRef.close()\"\n            [submitLabel]=\"data.accept\"\n        ></jam-submit>\n    </mat-dialog-actions>\n</form>","import { Component, Input, HostListener } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TopWarningService } from './top-warning.service';\n\n@Component({\n    selector: 'jam-top-warning',\n    standalone: true,\n    imports: [CommonModule, MatExpansionModule, MatIconModule],\n    templateUrl: './top-warning.component.html',\n    styleUrls: ['./top-warning.component.scss']\n})\nexport class TopWarningComponent {\n    @Input() public opened: boolean = true;\n    public button_state: 'expanded' | 'contracted' | 'standby' = 'standby';\n    public button_icons: { [keys: string]: string } = {\n        expanded: 'keyboard_arrow_down',\n        contracted: 'keyboard_arrow_up',\n        standby: 'remove'\n    };\n\n    public constructor(public topWarningService: TopWarningService) {\n        this.defaultAccordionState();\n    }\n\n    @HostListener('mouseenter')\n    public onMouseEnter(): void {\n        this.opened ? (this.button_state = 'contracted') : (this.button_state = 'expanded');\n    }\n\n    @HostListener('mouseleave')\n    public onMouseLeave(): void {\n        this.button_state = 'standby';\n    }\n\n    public toggleOpenAccordion(opened: boolean): void {\n        this.opened = opened;\n        localStorage.setItem('opened', this.opened.toString());\n    }\n\n    public defaultAccordionState(): void {\n        this.opened = localStorage.getItem('opened') === 'false' ? false : true;\n    }\n}\n","@if (topWarningService.warnings.length > 0) {\n<mat-accordion>\n    <mat-expansion-panel id=\"rsTopWarning\" class=\"yellow-bg-400\" [expanded]=\"opened\"\n        [ngClass]=\"opened ? 'hidden-header' : ''\" [hideToggle]=\"true\" (expandedChange)=\"toggleOpenAccordion($event)\">\n        @if (!opened) {\n        <mat-expansion-panel-header>\n            <mat-panel-description class=\"panel-description\">\n                <mat-icon>{{ button_icons[button_state] }}</mat-icon>\n            </mat-panel-description>\n        </mat-expansion-panel-header>\n        <div class=\"warning-content\">\n            @for (warn of topWarningService.warnings; track warn) {\n            <div>\n                <jam-single-warning [message]=\"warn.attributes.message\" [link]=\"warn.attributes.link\"\n                    [linkQueryParams]=\"warn.attributes.linkQueryParams\" [externalLink]=\"warn.attributes.externalLink\"\n                    [linkText]=\"warn.attributes.linkText\">\n                </jam-single-warning>\n                <mat-divider></mat-divider>\n            </div>\n            <div [style.cursor]=\"'pointer'\" class=\"action-button\" (click)=\"opened = false\">\n                <button mat-icon-button>\n                    @if (opened) {\n                    <mat-icon>{{ button_icons[button_state] }}</mat-icon>\n                    }\n                </button>\n            </div>\n            }\n        </div>\n        }\n    </mat-expansion-panel>\n</mat-accordion>\n\n}","/***\n * Copyright (C) 1997-2018 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MatCardModule } from '@angular/material/card';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n    selector: 'jam-single-warning',\n    standalone: true,\n    imports: [CommonModule, RouterModule, MatCardModule, TranslateModule],\n    templateUrl: './single-warning.component.html',\n    styleUrls: ['./single-warning.component.scss']\n})\nexport class SingleWarningComponent implements OnInit {\n    @Input() public message: string | null = null;\n    @Input() public backgroundColor: string;\n    @Input() public textColor: string;\n    @Input() public link: string;\n    @Input() public linkQueryParams: { [key: string]: string };\n    @Input() public externalLink: string;\n    @Input() public linkText: string;\n    @Input() public actionButtonText: string;\n    @Input() public actionIconButton: string;\n    @Input() public actionIconButtonTooltip: string;\n    @Output() public actionButtonClick: EventEmitter<void> = new EventEmitter<void>();\n    @Output() public actionIconButtonClick: EventEmitter<void> = new EventEmitter<void>();\n\n    public custom_styles: {\n        color?: string;\n        'background-color'?: string;\n    } = {};\n\n    public ngOnInit(): void {\n        if (this.backgroundColor) {\n            this.custom_styles['background-color'] = this.backgroundColor;\n        }\n        if (this.textColor) {\n            this.custom_styles.color = this.textColor;\n        }\n    }\n}\n","@if (message) {\n    <mat-card class=\"mat-card-flat yellow-bg-400 width-100\"\n    [ngStyle]=\"custom_styles\"\n    >\n        <span>{{ message }}</span>\n        @if (link) {\n            <a\n            [routerLink]=\"link\"\n            [queryParams]=\"linkQueryParams || {}\"\n            >\n            {{ linkText || ('warning.more_info' | translate) }}\n            </a>\n        }\n        @if (externalLink) {\n            <a\n            [href]=\"externalLink\"\n            target=\"_blank\"\n            >\n            {{ linkText || ('warning.more_info' | translate) }}\n            </a>\n        }\n\n        @if (actionButtonText) {\n            <button\n            mat-button\n            type=\"button\"\n            name=\"button\"\n            (click)=\"actionButtonClick.emit()\"\n            >\n            {{ actionButtonText }}\n            </button>\n        }\n        @if (actionIconButton) {\n            <button\n            mat-icon-button\n            [matTooltip]=\"actionIconButtonTooltip\"\n            type=\"button\"\n            name=\"button\"\n            (click)=\"actionIconButtonClick.emit()\"\n            >\n            <mat-icon>\n                {{ actionIconButton }}\n            </mat-icon>\n            </button>\n        }\n    </mat-card>\n}","import { Component, Input, Output, EventEmitter, OnInit, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule, ActivatedRoute } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { FabSpeedDialMiniButton } from './fab-speed-dial-mini-button';\nimport { EcoFabSpeedDialActionsComponent, EcoFabSpeedDialComponent, EcoFabSpeedDialTriggerComponent } from '@ecodev/fab-speed-dial';\n\n@Component({\n    selector: 'jam-fab-speed-dial',\n    standalone: true,\n    imports: [\n        CommonModule,\n        RouterModule,\n        EcoFabSpeedDialComponent,\n        EcoFabSpeedDialActionsComponent,\n        EcoFabSpeedDialTriggerComponent,\n        MatButtonModule,\n        MatIconModule,\n        MatTooltipModule\n    ],\n    schemas: [CUSTOM_ELEMENTS_SCHEMA],\n    templateUrl: './fab-speed-dial.component.html',\n    styleUrls: ['./fab-speed-dial.component.scss']\n})\nexport class FabSpeedDialComponent implements OnInit {\n    @Input() public animationMode: string = 'scale';\n    @Input() public tooltip: string = '';\n    @Input() public spin: boolean = true;\n    @Input() public icon: string = 'add';\n    @Input() public routerLink: Array<string> = [];\n    @Input() public queryParams: Record<string, unknown>;\n    @Input() public fabSpeedDialMiniButtons: Array<FabSpeedDialMiniButton> = [];\n\n    @Output() public fabSpeedDialClick: EventEmitter<void> = new EventEmitter<void>();\n    @Output() public actionsClick: EventEmitter<string> = new EventEmitter<string>();\n\n    public fab_status: { [key: string]: string | boolean } = {\n        opened: false,\n        status: 'closed'\n    };\n\n    public constructor(private activatedRoute: ActivatedRoute) {}\n\n    public ngOnInit(): void {\n        if (!this.queryParams) {\n            this.queryParams = {};\n        }\n    }\n\n    public toggleFabStatus(status: string): void {\n        if (status === 'open') {\n            this.fab_status.status = 'opened';\n            this.fab_status.opened = true;\n        } else {\n            this.fab_status.status = 'closed';\n            setTimeout((): void => {\n                if (this.fab_status.status === 'closed') {\n                    this.fab_status.opened = false;\n                }\n            }, 300);\n        }\n    }\n}\n","<eco-fab-speed-dial\n    class=\"rs-speed-dial--position\"\n    [animationMode]=\"animationMode\"\n    (mouseover)=\"toggleFabStatus('open')\"\n    (mouseleave)=\"toggleFabStatus('close')\"\n    [(open)]=\"fab_status.opened\"\n    [fixed]=\"true\"\n    >\n    <eco-fab-speed-dial-trigger [spin]=\"spin\">\n        <button\n            matFab\n            matTooltipPosition=\"before\"\n            [matTooltip]=\"tooltip\"\n            (click)=\"fabSpeedDialClick.emit()\"\n            [routerLink]=\"routerLink || []\"\n            [queryParams]=\"queryParams\"\n            >\n            <mat-icon>{{ fab_status.opened ? icon : 'add' }</mat-icon>\n        </button>\n    </eco-fab-speed-dial-trigger>\n\n    <eco-fab-speed-dial-actions [hidden]=\"!fab_status.opened\">\n        @for (fabSpeedDialMiniButton of fabSpeedDialMiniButtons; track fabSpeedDialMiniButton) {\n            <button\n                matMiniFab\n                matTooltipPosition=\"before\"\n                [matTooltip]=\"fabSpeedDialMiniButton.tooltip\"\n                (click)=\"actionsClick.emit(fabSpeedDialMiniButton.key)\"\n                [routerLink]=\"fabSpeedDialMiniButton.router_link || []\"\n                [queryParams]=\"fabSpeedDialMiniButton.query_params || queryParams\"\n            >\n                @if (fabSpeedDialMiniButton.icon.type === 'svg-icon') {\n                    <mat-icon [svgIcon]=\"fabSpeedDialMiniButton.icon.name\"></mat-icon>\n                }\n                @if (fabSpeedDialMiniButton.icon.type === 'mat-icon') {\n                    <mat-icon>{{ fabSpeedDialMiniButton.icon.name }}</mat-icon>\n                }\n            </button>\n        }\n    </eco-fab-speed-dial-actions>\n</eco-fab-speed-dial>\n","export class FabSpeedDialMiniButton {\n    public key: string;\n    public navigate: boolean = false;\n    public tooltip: string;\n    public router_link: Array<string>;\n    public query_params: Record<string, unknown>;\n    public icon: { name: string; type: 'svg-icon' | 'mat-icon' } = { name: 'add', type: 'mat-icon' };\n\n    public constructor(key: string, tooltip: string, router_link?: Array<string>, query_params?: Record<string, unknown>) {\n        this.key = key;\n        this.tooltip = tooltip;\n        if (router_link) {\n            this.router_link = router_link;\n            this.query_params = query_params || {};\n        }\n    }\n\n    public setRouterLink(router_link: Array<string>): this {\n        this.router_link = router_link;\n        this.navigate = true;\n\n        return this;\n    }\n\n    public getRouterLink(): Array<string> {\n        return this.router_link;\n    }\n\n    public setQueryParams(query_params: Record<string, unknown>): this {\n        this.query_params = query_params;\n\n        return this;\n    }\n\n    public getQueryParams(): Record<string, unknown> {\n        return this.query_params;\n    }\n\n    public shouldNavigate(): boolean {\n        return this.navigate;\n    }\n}\n","export class MenuElement {\n    public attributes: { [key: string]: unknown } = {};\n\n    protected _id: string;\n    public get id(): string {\n        return this._id;\n    }\n\n    public constructor(id?: string) {\n        if (!id) {\n            this._id = '';\n\n            return;\n        }\n        this._id = id;\n    }\n\n    public setAttributes(attribute: string, value: unknown): this {\n        this.attributes[attribute] = value;\n\n        return this;\n    }\n\n    public addAttributes(attributes: { [key: string]: unknown }): this {\n        this.attributes = { ...this.attributes, ...attributes };\n\n        return this;\n    }\n\n    public hide(): this {\n        this.attributes.hidden = true;\n\n        return this;\n    }\n\n    public show(): this {\n        this.attributes.hidden = false;\n\n        return this;\n    }\n\n    public isShown(): boolean {\n        return !this.attributes.hidden;\n    }\n\n    public disable(): this {\n        this.attributes.disabled = true;\n\n        return this;\n    }\n\n    public enable(): this {\n        this.attributes.disabled = false;\n\n        return this;\n    }\n}\n\nexport class MenuElementsCollection<T extends MenuElement | MenuElementsCollection<MenuElement>> {\n    public data: Array<MenuElementsCollection<T> | T> = [];\n    public hidden: boolean;\n\n    protected _id: string;\n    public get id(): string {\n        return this._id;\n    }\n\n    public constructor(id?: string) {\n        if (!id) {\n            this._id = '';\n\n            return;\n        }\n        this._id = id;\n    }\n\n    public hide(): this {\n        this.hidden = true;\n\n        return this;\n    }\n\n    public show(): this {\n        this.hidden = false;\n\n        return this;\n    }\n\n    public isShown(): boolean {\n        return !this.hidden;\n    }\n\n    public find(id: string): MenuElementsCollection<T> | T | undefined {\n        return this.data.find((element): boolean => {\n            if (this.data.length === 0) {\n                console.log('--------------- no data! ---------------');\n\n                return false;\n            }\n\n            return element.id === id;\n        });\n    }\n\n    public add(data: Array<MenuElementsCollection<T> | T>): this {\n        this.data = this.data.concat(data);\n\n        return this;\n    }\n}\n","import { Section } from './section';\nimport { MenuElementsCollection } from './menu-elements';\n\nexport class Menu extends MenuElementsCollection<Section> {\n    public data: Array<Section> = <Array<Section>>[];\n    public main_image: { url: string; styles?: { [key: string]: string } };\n    public findSection: (arg: string) => Section = <(arg: string) => Section>this.find;\n    public addSections: (data: Array<Section | MenuElementsCollection<Section>>) => Menu = this.add;\n    public removeEmptySections(): boolean {\n        for (let section of this.data) {\n            if (section.hasShownElements()) {\n                return true;\n            }\n        }\n\n        return false;\n    }\n    public setMainImage(image_data: { url: string; styles?: { [key: string]: string } }): Menu {\n        this.main_image = image_data;\n\n        return this;\n    }\n}\n","import { Button } from './button';\nimport { MenuElementsCollection } from './menu-elements';\n\nexport class Section extends MenuElementsCollection<Button> {\n    public data: Array<Button> = <Array<Button>>[];\n    public title: Record<string, unknown> = {};\n\n    public addButtons(buttons: Array<Button>): this {\n        this.data = this.data.concat(buttons);\n\n        return this;\n    }\n\n    public hasShownElements(): boolean {\n        return this.data.length > 0;\n    }\n}\n","import { MenuElement } from './menu-elements';\n\nexport class Button extends MenuElement {\n    public attributes: MenuButtonAttributes = {\n        icon: '',\n        label: '',\n        class: '',\n        disabled: false,\n        hidden: false\n    };\n\n    public setAttributes(\n        attribute: 'label' | 'icon' | 'class' | 'hidden' | 'disabled' | 'svg_icon' | 'icon_font', // TODO: improve typing\n        value: string | boolean\n    ): this {\n        (<string | boolean>this.attributes[attribute]) = value;\n\n        return this;\n    }\n\n    public addAttributes(attributes: MenuButtonAttributes): this {\n        this.attributes = { ...this.attributes, ...attributes } as MenuButtonAttributes;\n\n        return this;\n    }\n}\n\nexport interface MenuButtonAttributes extends Record<string, unknown> {\n    label: string;\n    icon?: string;\n    class?: string;\n    hidden?: boolean;\n    disabled?: boolean;\n    svg_icon?: string;\n    icon_font?: string;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Section } from '../menu-elements/section';\n\n@Component({\n    selector: 'jam-dropdown-menu',\n    standalone: true,\n    imports: [CommonModule, MatButtonModule, MatIconModule, MatMenuModule, MatTooltipModule, MatDividerModule, TranslateModule],\n    styleUrls: ['../menu.component.scss', './dropdown-menu.component.scss'],\n    templateUrl: './dropdown-menu.component.html'\n})\nexport class DropdownMenuComponent {\n    @Input({ required: true }) public sections!: Array<Section>;\n    @Input() public main_image: { url: string; styles: { [key: string]: string } };\n    @Output() public selected: EventEmitter<string> = new EventEmitter<string>();\n}\n","<button\n    mat-icon-button\n    class=\"mat-icon-button mat-button dropdown-menu-button\"\n    [matTooltip]=\"'menu.more' | translate\"\n    [matMenuTriggerFor]=\"menuRef\"\n    >\n    @if (main_image) {\n        <img\n        [src]=\"main_image?.url\"\n        [ngStyle]=\"main_image?.styles\"\n        />\n    } @else {\n        <mat-icon>more_vert</mat-icon>\n    }\n</button>\n\n<mat-menu #menuRef=\"matMenu\">\n    @for (section of sections; track section; let position = $index) {\n        <ng-container>\n            @if (section.hasShownElements() && !section.hidden && position > 0) {\n                <mat-divider></mat-divider>\n            }\n\n            @if (section.hasShownElements() && !section.hidden && section.id) {\n                <h3 class=\"mat-hint\">\n                    <span [innerHtml]=\"section.id\"></span>\n                </h3>\n            }\n\n            @for (button of section.data; track button.key || button.id || button) {\n                <ng-container>\n                    @if (!button.attributes.hidden) {\n                        <button\n                            mat-menu-item\n                            [disabled]=\"button.attributes.disabled\"\n                            [ngClass]=\"button.attributes.class\"\n                            (click)=\"selected.emit(button.id)\"\n                            >\n                            @if (button.attributes.icon) {\n                                <mat-icon\n                                    [innerHtml]=\"button.attributes.icon\"\n                                    ></mat-icon>\n                            }\n                            @if (button.attributes.svg_icon) {\n                                <mat-icon\n                                    [svgIcon]=\"button.attributes.svg_icon\"\n                                    ></mat-icon>\n                            }\n                            <span [innerHtml]=\"button.attributes.label\"></span>\n                        </button>\n                    }\n                </ng-container>\n            }\n        </ng-container>\n    }\n</mat-menu>\n","import { Component, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatBottomSheetModule, MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef, MatBottomSheet } from '@angular/material/bottom-sheet';\nimport { SelectionBarService } from '../../selection-bar/selection-bar.service';\n\n@Component({\n    selector: 'jam-bottom-sheet',\n    standalone: true,\n    imports: [CommonModule, MatBottomSheetModule],\n    styleUrls: ['../menu.component.scss'],\n    templateUrl: './bottom-sheet.component.html'\n})\nexport class BottomSheetComponent {\n    public bottom_sheet_service: MatBottomSheet;\n    public selection_bar_service: SelectionBarService;\n\n    public constructor(\n        @Inject(MAT_BOTTOM_SHEET_DATA) public data: Record<string, unknown>,\n        private bottomSheetRef: MatBottomSheetRef<BottomSheetComponent>\n    ) {}\n\n    public close(): void {\n        this.bottomSheetRef.dismiss();\n    }\n\n    public selected(option: string): void {\n        this.bottomSheetRef.dismiss(option);\n    }\n}\n","<ng-template matMenuContent>\n    <mat-nav-list>\n        @for (section of data.sections; track section; let position = $index) {\n            <ng-container>\n                @if (!section.hidden || section.id) {\n                    <h3 class=\"mat-hint\">\n                        <span [innerHtml]=\"section.id\"></span>\n                    </h3>\n                }\n\n                @for (button of section.data; track button.key || button.id || button) {\n                    <ng-container>\n                        @if (!button.attributes.hidden) {\n                            <mat-list-item\n                                [ngClass]=\"button.attributes.class + (button.attributes.disabled ? 'disabled' : null)\"\n                                (click)=\"button.attributes.disabled ? $event.stopPropagation() : selected(button.id)\">\n                                @if (button.attributes.icon || button.attributes.svg_icon) {\n                                    <mat-icon\n                                        [innerHtml]=\"button.attributes.icon\"\n                                        [svgIcon]=\"button.attributes.svg_con\"\n                                        class=\"mat-hint\"\n                                        ></mat-icon>\n                                }\n                                <span mat-line [innerHtml]=\"button.attributes.label\"></span>\n                            </mat-list-item>\n                        }\n                    </ng-container>\n                }\n\n                @if ((position + 1) < data.sections.length) {\n                    <mat-divider></mat-divider>\n                }\n            </ng-container>\n        }\n    </mat-nav-list>\n</ng-template>\n","import { Component, Input, Output, EventEmitter, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatBottomSheet } from '@angular/material/bottom-sheet';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { filter } from 'rxjs/operators';\n\nimport { Menu } from './menu-elements/menu';\nimport { BottomSheetComponent } from './bottom-sheet/bottom-sheet.component';\nimport { DropdownMenuComponent } from './dropdown-menu/dropdown-menu.component';\nimport { Destroyer } from '../destroyer';\n\n@Component({\n    selector: 'jam-menu',\n    standalone: true,\n    imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule, DropdownMenuComponent, TranslateModule],\n    styleUrls: ['./menu.component.scss'],\n    templateUrl: './menu.component.html'\n})\nexport class MenuComponent implements OnInit, OnDestroy {\n    @Input({ required: true }) public menu!: Menu;\n    @Input() public source_data: Array<unknown>;\n    @Output() public selected: EventEmitter<{ key: string; data?: Array<unknown> }> = new EventEmitter<{\n        key: string;\n        data?: Array<unknown>;\n    }>();\n\n    public destroyer: Destroyer = new Destroyer();\n\n    public constructor(private matBottomSheet: MatBottomSheet) {}\n\n    public ngOnInit(): void {\n        if (this.menu.main_image && !this.menu.main_image.styles) {\n            this.menu.main_image.styles = { 'border-radius': '100px', width: '40px', height: '40px' };\n        }\n        this.menu.removeEmptySections();\n    }\n\n    public ngOnDestroy(): void {\n        this.destroyer.destroy();\n    }\n\n    public open(): void {\n        this.matBottomSheet\n            .open(BottomSheetComponent, {\n                data: { sections: this.menu.data }\n            })\n            .afterDismissed()\n            .pipe(\n                this.destroyer.pipe(),\n                filter((response): boolean => ![null, undefined, ''].includes(response))\n            )\n            .subscribe((response): void => this.selected.emit(this.formatEmission(response)));\n    }\n\n    public selectedOption(selected: string): void {\n        this.selected.emit(this.formatEmission(selected));\n    }\n\n    private formatEmission(response: string): { key: string; data?: Array<unknown> } {\n        return { key: response, data: this.source_data || undefined };\n    }\n}\n","<jam-dropdown-menu\n    [sections]=\"menu.data\"\n    [main_image]=\"menu.main_image\"\n    (selected)=\"selectedOption($event)\"\n></jam-dropdown-menu>\n\n<div class=\"jam-bottom-sheet\">\n    <button\n        mat-icon-button\n        class=\"mat-button mat-icon-button menu-button\"\n        [matTooltip]=\"'menu.more' | translate\"\n        (click)=\"open()\">\n        @if (menu.main_image?.url) {\n            <img [src]=\"menu.main_image?.url\" [ngStyle]=\"menu.main_image?.styles\"/>\n        }\n        @if (!menu.main_image?.url) {\n            <mat-icon>more_vert</mat-icon>\n        }\n    </button>\n</div>\n","/** This's component @deprecated */\n\nimport { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n    selector: 'jam-floating-button',\n    standalone: true,\n    imports: [CommonModule, RouterModule, MatButtonModule, MatIconModule, MatTooltipModule],\n    styleUrls: ['./floating-button.component.scss'],\n    templateUrl: './floating-button.component.html'\n})\nexport class FloatingButtonComponent {\n    public show: boolean;\n\n    @Input() public rsBackground: string;\n    @Input() public iconName: string;\n    @Input() public tooltip: string;\n    @Input() public target: string;\n    @Input() public rsRouterLink: string;\n    @Input() public rsQueryParams: object;\n    @Input() public classPrimary: string;\n}\n","@if (show || true) {\n    <a\n    mat-fab href\n    [matTooltip]=\"tooltip\"\n    matTooltipPosition=\"before\"\n    [target]=\"target || '_self'\"\n    [routerLink]=\"rsRouterLink\"\n    [queryParams]=\"rsQueryParams\"\n    [ngClass]=\"classPrimary\"    \n    >\n        <mat-icon style=\"color: white\">{{ iconName ? iconName : 'add' }}</mat-icon>\n    </a>\n}\n","// @mergeflag los cambios en este componente no deben llegar a 21\nimport { AbstractControl } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FormlyFieldConfig, FormlyTemplateOptions } from '@ngx-formly/core';\n\nexport class DynamicInput implements FormlyFieldConfig {\n    public readonly model: unknown;\n    public readonly parent: FormlyFieldConfig;\n\n    public key: string;\n    public id: string;\n    public name: string;\n    public templateOptions: FormlyTemplateOptions;\n    public optionsTypes: Array<string>;\n    public validation: {\n        messages?: {\n            [messageProperties: string]: string | ((error: unknown, field: FormlyFieldConfig) => string);\n        };\n        show?: boolean;\n        [additionalProperties: string]: unknown;\n    };\n    public validators: Record<string, (control: AbstractControl) => unknown>;\n    public asyncValidators: Record<string, (control: AbstractControl) => unknown>;\n    public template: string;\n    public wrappers: Array<string>;\n    public hide: boolean;\n    public hideExpression: boolean | string | ((model: unknown, formState: unknown) => boolean);\n    public expressionProperties: { [property: string]: string | ((model: unknown, formState: unknown) => boolean) };\n    public formControl: AbstractControl;\n    public className: string;\n    public fieldGroupClassName: string;\n    public fieldGroup: Array<FormlyFieldConfig>;\n    public fieldArray: FormlyFieldConfig;\n    public type: string;\n    public component: unknown;\n    public focus: boolean;\n    public modelOptions: {\n        debounce?: {\n            default: number;\n        };\n        updateOn?: 'change' | 'blur' | 'submit';\n    };\n\n    // public lifecycle?: FormlyLifeCycleOptions;\n    public defaultValue: unknown;\n    public parsers: Array<(value: unknown) => object>;\n\n    public constructor(key: string) {\n        this.key = this.id = this.name = key;\n    }\n\n    public setFocus(): this {\n        this.focus = true;\n\n        return this;\n    }\n\n    public required(): this {\n        this.templateOptions.required = true;\n\n        return this;\n    }\n\n    public fxFlex(value: number | string): this {\n        this.templateOptions.fxFlex = value;\n\n        return this;\n    }\n\n    public set(property: string, value: unknown): this {\n        this[property] = value;\n\n        return this;\n    }\n\n    public setTemplateOption(property: string, value: unknown): this {\n        this.templateOptions[property] = value;\n\n        return this;\n    }\n\n    public addTemplateOptions(template_options: FormlyTemplateOptions): this {\n        this.templateOptions = { ...this.templateOptions, ...template_options };\n\n        return this;\n    }\n\n    public setTranslatedTemplateOptions(_translateService: TranslateService): this {\n        return this;\n    }\n\n    public load(fieldConfig: FormlyFieldConfig): this {\n        Object.keys(fieldConfig).forEach((key): void => {\n            this[key] = fieldConfig[key];\n        });\n\n        return this;\n    }\n}\n\nexport class TextDynamicInput extends DynamicInput implements FormlyFieldConfig {\n    public constructor(public key: string) {\n        super(key);\n        this.type = 'input';\n        this.templateOptions = {\n            placeholder: key\n        };\n    }\n    public setTranslatedTemplateOptions(translateService: TranslateService): this {\n        this.templateOptions.placeholder = translateService.instant(this.key);\n\n        return this;\n    }\n}\n\nexport class NumberDynamicInput extends DynamicInput implements FormlyFieldConfig {\n    public constructor(public key: string) {\n        super(key);\n        this.type = 'input';\n        this.key = this.id = this.name = key;\n        this.templateOptions = {\n            type: 'number',\n            step: 0.01,\n            min: 0,\n            placeholder: key\n        };\n    }\n    public setTranslatedTemplateOptions(translateService: TranslateService): this {\n        this.templateOptions.placeholder = translateService.instant(this.key);\n\n        return this;\n    }\n}\n\nexport class CheckboxDynamicInput extends DynamicInput implements FormlyFieldConfig {\n    public constructor(public key: string) {\n        super(key);\n        this.type = 'checkbox';\n        this.templateOptions = {\n            indeterminate: false,\n            label: key\n        };\n    }\n    public setTranslatedTemplateOptions(translateService: TranslateService): this {\n        this.templateOptions.label = translateService.instant(this.key);\n\n        return this;\n    }\n}\n\nexport class TextareaDynamicInput extends DynamicInput implements FormlyFieldConfig {\n    public constructor(public key: string) {\n        super(key);\n        this.type = 'textarea';\n        this.templateOptions = {\n            matAutosizeMinRows: 2,\n            matAutosizeMaxRows: 150,\n            label: key\n        };\n    }\n    public setTranslatedTemplateOptions(translateService: TranslateService): this {\n        this.templateOptions.placeholder = translateService.instant(this.key);\n        this.templateOptions.label = translateService.instant(this.key);\n\n        return this;\n    }\n}\n\nexport class SelectDynamicInput extends DynamicInput implements FormlyFieldConfig {\n    public constructor(public key: string) {\n        super(key);\n        this.type = 'select';\n        this.templateOptions = {\n            label: key,\n            options: []\n        };\n    }\n    public setTranslatedTemplateOptions(translateService: TranslateService): this {\n        this.templateOptions.label = translateService.instant(this.key);\n\n        return this;\n    }\n\n    public setOptions(options: Array<{ value: unknown; label: string }>): SelectDynamicInput {\n        this.templateOptions.options = options;\n\n        return this;\n    }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule, FormlyForm } from '@ngx-formly/core';\n\n@Component({\n    selector: 'jam-formly-form-flex',\n    standalone: true,\n    imports: [CommonModule, FormlyModule],\n    template: `\n        <formly-field\n            *ngFor=\"let field of fields\"\n            [style.flex]=\"field.templateOptions.fxFlex || 'none'\"\n            [model]=\"model\"\n            [form]=\"form\"\n            [field]=\"field\"\n            [ngClass]=\"field.className\"\n            [options]=\"options\"\n        >\n        </formly-field>\n        <ng-content></ng-content>\n    `\n})\nexport class FormlyFormFlexComponent extends FormlyForm {}\n","import { Directive, AfterViewInit, Input } from '@angular/core';\nimport { Params, Router, ActivatedRoute } from '@angular/router';\nimport { MatTabGroup } from '@angular/material/tabs';\n\n@Directive({\n    selector: '[jamTabs]',\n    standalone: true\n})\nexport class JamTabsDirective implements AfterViewInit {\n    @Input() public tabNames: { [key: string]: number };\n    @Input() public tabGroup: MatTabGroup;\n    @Input() public defaultTabIndex: number = 0;\n    public selected_tab: number;\n    public query_params: Params;\n\n    public constructor(protected router: Router, protected activatedRoute: ActivatedRoute) {\n        activatedRoute.queryParams.subscribe((queryParams): Params => (this.query_params = queryParams));\n    }\n\n    public ngAfterViewInit(): void {\n        this.selected_tab = this.tabNames[this.query_params.tab_selected || Object.keys(this.tabNames)[this.defaultTabIndex]];\n        this.tabGroup.selectedIndex = this.selected_tab;\n        this.tabGroup.selectedIndexChange.subscribe((index: number): void => this.onTabChange(index));\n    }\n\n    public onTabChange(new_index: number): void {\n        let tab_selected: string = '';\n        Object.keys(this.tabNames).forEach((each): void => {\n            if (this.tabNames[each] !== new_index) return;\n            tab_selected = each;\n        });\n\n        if (!tab_selected) {\n            return;\n        }\n\n        this.router.navigate([], { queryParams: { ...this.query_params, ...{ tab_selected: tab_selected } } });\n    }\n}\n","import { Directive, AfterViewInit, ContentChild, ElementRef, HostListener } from '@angular/core';\nimport { MatExpansionPanel } from '@angular/material/expansion';\nimport { Router } from '@angular/router';\n\n@Directive({\n    selector: '[jamExpansionPanelStatus]',\n    standalone: true\n})\nexport class RemembermeStateDirective implements AfterViewInit {\n    @ContentChild(MatExpansionPanel) public mat_expansion_panel: MatExpansionPanel;\n\n    private mat_expansion_pane_id: string;\n\n    public constructor(private router: Router, private elementRef: ElementRef) {\n        this.mat_expansion_pane_id = elementRef.nativeElement.id;\n    }\n\n    public ngAfterViewInit(): void {\n        if (localStorage.getItem(this.mat_expansion_pane_id)) {\n            this.mat_expansion_panel.expanded = localStorage.getItem(this.mat_expansion_pane_id) === 'true' ? true : false;\n        }\n\n        this.changeExpandedExpansionPanel();\n    }\n\n    @HostListener('click', ['$event'])\n    public onClick(_event: Event): void {\n        this.updateLocalStorage();\n    }\n\n    private changeExpandedExpansionPanel(): void {\n        this.updateLocalStorage();\n    }\n\n    private updateLocalStorage(): void {\n        localStorage.setItem(this.mat_expansion_pane_id, !this.mat_expansion_panel.expanded ? 'false' : 'true');\n    }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, UrlTree } from '@angular/router';\nimport { Resource } from 'ngx-jsonapi';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n    selector: 'jam-floating-input',\n    standalone: true,\n    imports: [CommonModule, MatExpansionModule, MatFormFieldModule, MatInputModule, FormsModule, TranslateModule],\n    styleUrls: ['./floating-input.component.scss'],\n    templateUrl: './floating-input.component.html'\n})\nexport class FloatingInputComponent {\n    public searchParams: UrlTree;\n    public status: boolean;\n\n    @Input() public entryValue: number;\n    @Input({ required: true }) public resource!: Resource;\n    @Input() public horPosition: 'start' | 'end';\n    @Input() public lock: boolean;\n\n    @Output() public entryValueChange: EventEmitter<number> = new EventEmitter<number>();\n    @Output() public resourceChange: EventEmitter<Resource> = new EventEmitter<Resource>();\n\n    public constructor(public router: Router) {\n        this.searchParams = router.parseUrl(router.url);\n        this.lock = this.lock || false;\n    }\n\n    public statusToggle(status: boolean): void {\n        if (!this.lock) {\n            this.status = status;\n            setTimeout((): void => {\n                if (!status) {\n                    return;\n                }\n\n                this.focusInput();\n            }, 100);\n        }\n    }\n\n    public bindingEntryValue(value: number): void {\n        this.entryValueChange.emit(value);\n    }\n\n    public keyPress(keyCode: number): void {\n        switch (keyCode) {\n            case 13:\n                this.status = false;\n                break;\n        }\n    }\n\n    private focusInput(): void {\n        let input: HTMLElement | null = document.getElementById('floatingInput');\n        if (!input) {\n            return;\n        }\n        input.focus();\n    }\n}\n","<div class=\"floating-input\" [ngClass]=\"status ? 'mat-elevation-z1' : ''\">\n    <mat-expansion-panel\n        hideToggle=\"true\"\n        style=\"width: auto; box-shadow: none !important; background: inherit !important; border: 0 !important;\"\n        [disabled]=\"lock\"\n        [expanded]=\"status\"\n        (closed)=\"statusToggle(false)\"\n        (opened)=\"statusToggle(true)\">\n        @if (!status) {\n            <mat-expansion-panel-header>\n                <mat-panel-title class=\"floating-panel-title\" [ngClass]=\"horPosition || 'end'\">\n                    <ng-content></ng-content>\n                </mat-panel-title>\n            </mat-expansion-panel-header>\n        }\n\n        @if (status) {\n            <mat-form-field>\n                <input matInput id=\"floatingInput\" type=\"number\" step=\"0.001\" name=\"floatingNumber\" [attr.aria-label]=\"'common.modify' | translate\"\n                    [(ngModel)]=\"entryValue\"\n                    (blur)=\"statusToggle(false)\"\n                    (ngModelChange)=\"bindingEntryValue(entryValue)\"\n                    (keydown)=\"keyPress($event.keyCode)\"\n                    (focus)=\"status\">\n            </mat-form-field>\n        }\n    </mat-expansion-panel>\n</div>\n","/***\n * Copyright (C) 1997-2017 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { FilterOption } from './filter-option.interface';\nimport { RangeFilterInterface } from './filter-types/range-filter.interface';\nimport { StringFilterInterface } from './filter-types/string-filter.interface';\nimport { NumberFilterInterface } from './filter-types/number-filter.interface';\nimport { DateRangeFilterInterface } from './filter-types/date-range-filter.interface';\n\nexport type ResourceFilter =\n    | string\n    | number\n    | Array<string>\n    | object\n    | RangeFilterInterface\n    | StringFilterInterface\n    | NumberFilterInterface\n    | DateRangeFilterInterface;\n\nexport interface Filter {\n    type: 'options' | 'checks' | 'range_date';\n    attribute: string;\n    options: {\n        [jsonvalue: string]: FilterOption;\n    };\n    selected: ResourceFilter;\n    title?: string;\n    loaded?: boolean;\n}\n\nexport class FilterConfig {\n    public type: 'options' | 'checks' | 'range_date';\n    public attribute: string;\n    public options: {\n        [jsonvalue: string]: FilterOption;\n    };\n    public selected: ResourceFilter;\n    public title: string;\n}\n","import { Filter, FilterConfig } from './filter.interface';\nimport { DateRangeFilterInterface } from './filter-types/date-range-filter.interface';\nimport { FilterOption } from './filter-option.interface';\n\nexport interface FilterDateRange extends Filter {\n    type: 'range_date';\n    selected: DateRangeFilterInterface;\n}\n\nexport const FILTER_DATE_RANGE_TYPE: 'date-range' = 'date-range' as const;\n\nexport class JsonapiFilterRangedateConfig extends FilterConfig implements FilterDateRange {\n    public declare type: 'range_date';\n    public attribute: string = 'date';\n    public options: { [jsonvalue: string]: FilterOption } = {};\n    public selected: { [key: string]: string } = { since: '', until: '' };\n\n    public constructor() {\n        super();\n        this.type = 'range_date';\n    }\n\n    public setProperty(property_name: string, property_value: unknown): this {\n        (this as Record<string, unknown>)[property_name] = property_value;\n\n        return this;\n    }\n}\n","/***\n * Copyright (C) 1997-2017 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nexport interface FilterOption {\n    text: string | object;\n}\n","/***\n * Copyright (C) 1997-2017 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatOptionModule } from '@angular/material/core';\n\nimport { Filter } from '../interfaces/filter.interface';\nimport { FilterOption } from '../interfaces/filter-option.interface';\n\n@Component({\n    selector: 'jam-filter-options',\n    standalone: true,\n    imports: [CommonModule, FormsModule, MatFormFieldModule, MatSelectModule, MatOptionModule],\n    templateUrl: './filter-options.component.html'\n})\nexport class JamFilterOptionsComponent implements OnInit {\n    @Input({ required: true }) public filterConfig!: Filter;\n    @Input() public remoteFilter: object;\n    @Output() public remoteFilterChange: EventEmitter<object> = new EventEmitter<object>();\n\n    public filterConfigArray: Array<FilterOption>;\n\n    public ngOnInit(): void {\n        this.filterConfigArray = Object.keys(this.filterConfig.options).map((key): FilterOption => {\n            this.filterConfig.options[key].text = { key: key, name: this.filterConfig.options[key].text };\n\n            return this.filterConfig.options[key];\n        });\n    }\n\n    public optionSelected(jsonvalue: unknown, filter_list: unknown): void {\n        if (typeof filter_list !== 'string' && filter_list !== null && filter_list !== undefined) {\n            this.remoteFilter[this.filterConfig.attribute] = String(filter_list);\n        } else {\n            this.remoteFilter[this.filterConfig.attribute] = filter_list?.toString() || '';\n        }\n        this.remoteFilterChange.emit(this.remoteFilter);\n    }\n}\n","<mat-form-field color=\"primary\" floatLabel=\"never\">\n    <mat-select\n        [(ngModel)]=\"filterConfig.selected\"\n        [placeholder]=\"filterConfig.title\">\n        @for (config of filterConfigArray; track config) {\n            <mat-option\n            [value]=\"config.text.key\"\n            (click)=\"optionSelected(config, filterConfig.selected)\">{{ config.text.name }}</mat-option>\n        }\n    </mat-select>\n</mat-form-field>\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { FilterChecks } from '../interfaces/filter-checks.interface';\nimport { FilterOption } from '../interfaces/filter-option.interface';\nimport { FilterPipe } from '../../search-input/search-text.pipe';\n\nexport interface IOption {\n    key: string;\n    name: string;\n}\n\n@Component({\n    selector: 'jam-filter-checks',\n    standalone: true,\n    imports: [\n        CommonModule,\n        FormsModule,\n        MatFormFieldModule,\n        MatSelectModule,\n        MatOptionModule,\n        MatIconModule,\n        MatMenuModule,\n        MatCheckboxModule,\n        MatDividerModule,\n        TranslateModule,\n        FilterPipe\n    ],\n    templateUrl: './filter-checks.component.html',\n    styleUrls: ['./filter-checks.component.scss']\n})\nexport class JamFilterChecksComponent implements OnInit {\n    @Input() public filterConfig: FilterChecks;\n    @Input() public remoteFilter: object;\n\n    @Output() public filterConfigChange: EventEmitter<FilterChecks> = new EventEmitter<FilterChecks>();\n    @Output() public remoteFilterChange: EventEmitter<object> = new EventEmitter<object>();\n\n    public filter_config_options: Array<FilterOption>;\n\n    public searchText: string = '';\n    public show_input_search: boolean = false;\n\n    public ngOnInit(): void {\n        if (this.filterConfig.selected.length !== 0) {\n            this.remoteFilter[this.filterConfig.attribute] = this.filterConfig.selected;\n        }\n        this.filterConfigOptionsUpdate();\n\n        this.filter_config_options = this.filter_config_options.sort((a, b): number =>\n            (<IOption>a.text).name.localeCompare((<IOption>b.text).name)\n        );\n\n        this.showInputSearch();\n    }\n\n    public showInputSearch(): void {\n        if (Object.keys(this.filterConfig.options).length > 10) {\n            this.show_input_search = true;\n        }\n    }\n\n    public filterConfigOptionsUpdate(): void {\n        this.filter_config_options = Object.keys(this.filterConfig.options).map((key): FilterOption => {\n            if (typeof this.filterConfig.options[key].text === 'string') {\n                this.filterConfig.options[key].text = { key: key, name: this.filterConfig.options[key].text };\n            }\n\n            return this.filterConfig.options[key];\n        });\n    }\n\n    public clearSelected(): void {\n        this.filterConfig.selected = [];\n    }\n\n    public optionSelected(jsonvalue: unknown, filter_list: unknown): void {\n        if (typeof filter_list !== 'string' && filter_list !== null && filter_list !== undefined) {\n            this.remoteFilter[this.filterConfig.attribute] = String(filter_list);\n        } else {\n            this.remoteFilter[this.filterConfig.attribute] = filter_list?.toString() || '';\n        }\n        this.remoteFilterChange.emit(this.remoteFilter);\n    }\n}\n","<mat-form-field color=\"primary\" floatLabel=\"never\">\n    <mat-select\n        multiple\n        [(ngModel)]=\"filterConfig.selected\"\n        (focus)=\"filterConfigOptionsUpdate()\"\n        [placeholder]=\"filterConfig.title\">\n        @if (filter_config_options.length > 10) {\n            <div mat-menu-item class=\"focus-element-4dp reset-input-default search-container\"\n            (click)=\"$event.stopPropagation()\">\n            <mat-icon>search</mat-icon>\n            <input class=\"rs-input search-input\" tabindex=\"1\" autofocus [placeholder]=\"'filters.search' | translate\"\n                [(ngModel)]=\"searchText\">\n            <div class=\"clear-icon-container\">\n                @if (searchText) {\n                    <mat-icon (click)=\"searchText = ''\">clear</mat-icon>\n                }\n            </div>\n            </div>\n        }\n        <mat-divider></mat-divider>\n        @for (option of filter_config_options | filter: searchText; track option) {\n            <mat-option\n            [value]=\"option.text.key\"\n            (click)=\"optionSelected(option, filterConfig.selected)\">{{ option.text.name }}</mat-option>\n        }\n    </mat-select>\n</mat-form-field>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Directive } from '@angular/core';\nimport { CdkPortal } from '@angular/cdk/portal';\n\n/** Used to flag slide labels for use with the portal directive */\n@Directive({\n    selector: '[jam-slide-element], [jamSlideElement]',\n    standalone: true\n})\nexport class JamSlideElementDirective extends CdkPortal {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    Input,\n    OnChanges,\n    OnDestroy,\n    OnInit,\n    SimpleChanges,\n    TemplateRef,\n    ViewChild,\n    ViewContainerRef,\n    ViewEncapsulation\n} from '@angular/core';\n// import { CanDisable, mixinDisabled, _Constructor } from '@angular/material/core';\n// Angular 19: These mixins are deprecated. Implementing CanDisable interface manually.\ninterface CanDisable {\n    disabled: boolean;\n}\n\nimport { Subject } from 'rxjs';\n// import {JamSlideContent} from './slide-content';\nimport { JamSlideElementDirective } from './slide-element';\n\n// tslint:disable: interface-name use-input-property-decorator use-host-property-decorator component-selector no-input-rename\n\n// Boilerplate for applying mixins to JamSlide.\n/** @docs-private */\nexport class JamSlideBase {\n    public disabled: boolean = false;\n}\n\n@Component({\n    selector: 'jam-slide',\n    templateUrl: 'slide.html',\n    standalone: true,\n    imports: [CommonModule],\n    inputs: ['disabled'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    exportAs: 'jamSlide'\n})\nexport class JamSlideComponent extends JamSlideBase implements OnInit, CanDisable, OnChanges, OnDestroy {\n    /** Content for the slide element given by `<ng-template jam-slide-element>`. */\n    @ContentChild(JamSlideElementDirective) public templateLabel: JamSlideElementDirective;\n\n    /**\n     * Template provided in the slide content that will be used if present, used to enable lazy-loading\n     */\n    /** Plain text element for the slide, used when there is no template label. */\n\n    @Input('label') public textLabel: string = '';\n\n    /** Aria element for the slide. */\n    @Input('aria-label') public ariaLabel: string;\n\n    /**\n     * Reference to the element that the slide is labelled by.\n     * Will be cleared if `aria-label` is set at the same time.\n     */\n    @Input('aria-labelledby') public ariaLabelledby: string;\n\n    /** @docs-private */\n    public get content(): TemplatePortal | null {\n        return this._contentPortal;\n    }\n\n    /** Emits whenever the internal state of the slide changes. */\n    public readonly _stateChanges: Subject<void> = new Subject<void>();\n\n    /**\n     * The relatively indexed position where 0 represents the center, negative is left, and positive\n     * represents the right.\n     */\n    public position: number | null = null;\n\n    /**\n     * The initial relatively index origin of the slide if it was created and selected after there\n     * was already a selected slide. Provides context of what position the slide should originate from.\n     */\n    public origin: number | null = null;\n\n    /**\n     * Whether the slide is currently active.\n     */\n    public isActive: boolean = false;\n\n    /** Portal that will be the hosted content of the slide */\n    protected _contentPortal: TemplatePortal | null = null;\n\n    // @ContentChild(JamSlideContent, {read: TemplateRef, static: true})\n    protected _explicitContent: TemplateRef<unknown>;\n\n    /** Template inside the JamSlide view that contains an `<ng-content>`. */\n    @ViewChild(TemplateRef) protected _implicitContent: TemplateRef<unknown>;\n\n    public constructor(private _viewContainerRef: ViewContainerRef) {\n        super();\n    }\n    public declare disabled: boolean;\n\n    public ngOnChanges(changes: SimpleChanges): void {\n        if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {\n            this._stateChanges.next();\n        }\n    }\n\n    public ngOnDestroy(): void {\n        this._stateChanges.complete();\n    }\n\n    public ngOnInit(): void {\n        this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);\n    }\n}\n","<!-- Create a template for the content of the <jam-slide> so that we can grab a reference to this\n    TemplateRef and use it in a Portal to render the slide content in the appropriate place in the\n    slide-group. -->\n<ng-template><ng-content></ng-content></ng-template>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Directive, ElementRef } from '@angular/core';\n// import { CanDisable, mixinDisabled } from '@angular/material/core';\n// Angular 19: These mixins are deprecated. Implementing CanDisable interface manually.\ninterface CanDisable {\n    disabled: boolean;\n}\n\n// Boilerplate for applying mixins to JamSlideElementWrapper.\n/** @docs-private */\nexport class JamSlideElementWrapperBase {\n    public disabled: boolean = false;\n}\n\n/**\n * Used in the `jam-slide-group` view to display slide labels.\n *\n * @docs-private\n */\n@Directive({\n    selector: '[jamSlideElementWrapper]',\n    standalone: true,\n    inputs: ['disabled'],\n\n    host: {\n        '[class.jam-slide-disabled]': 'disabled',\n        '[attr.aria-disabled]': '!!disabled'\n    }\n})\nexport class JamSlideElementWrapperDirective extends JamSlideElementWrapperBase implements CanDisable {\n    public constructor(public elementRef: ElementRef) {\n        super();\n    }\n    public declare disabled: boolean;\n\n    /** Sets focus on the wrapper element */\n    public focus(): void {\n        this.elementRef.nativeElement.focus();\n    }\n\n    public getOffsetLeft(): number {\n        return this.elementRef.nativeElement.offsetLeft;\n    }\n\n    public getOffsetWidth(): number {\n        return this.elementRef.nativeElement.offsetWidth;\n    }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatRippleModule } from '@angular/material/core';\nimport {\n    AfterContentChecked,\n    AfterContentInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    Input,\n    NgZone,\n    OnDestroy,\n    Optional,\n    Output,\n    QueryList,\n    ViewChild,\n    ViewEncapsulation,\n    AfterViewInit\n} from '@angular/core';\n// import { CanDisableRipple, mixinDisableRipple, _Constructor } from '@angular/material/core';\n// Angular 19: These mixins are deprecated. Implementing interfaces manually.\ninterface CanDisableRipple {\n    disableRipple: boolean;\n}\nimport { merge, of as observableOf, Subject, timer, fromEvent, Observable } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n// import { MatInkBar } from './ink-bar';\nimport { JamSlideElementWrapperDirective } from './slide-element-wrapper';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Platform, normalizePassiveListenerOptions } from '@angular/cdk/platform';\n\n// tslint:disable: interface-name use-input-property-decorator use-host-property-decorator component-selector\n\ntype ModifierKey = 'altKey' | 'shiftKey' | 'ctrlKey' | 'metaKey';\n\n/**\n * Checks whether a modifier key is pressed.\n *\n * @param event Event to be checked.\n */\nexport function hasModifierKey(event: KeyboardEvent, ...modifiers: Array<ModifierKey>): boolean {\n    if (modifiers.length) {\n        return modifiers.some((modifier): boolean => event[modifier]);\n    }\n\n    return event.altKey || event.shiftKey || event.ctrlKey || event.metaKey;\n}\n\n/** Config used to bind passive event listeners */\nconst passiveEventListenerOptions: EventListenerOptions = normalizePassiveListenerOptions({ passive: true }) as EventListenerOptions;\n\n/**\n * The directions that scrolling can go in when the header's slides exceed the header width. 'After'\n * will scroll the header towards the end of the slides list and 'before' will scroll towards the\n * beginning of the list.\n */\nexport type ScrollDirection = 'after' | 'before';\n\n/**\n * The distance in pixels that will be overshot when scrolling a slide element into view. This helps\n * provide a small affordance to the element next to it.\n */\nconst EXAGGERATED_OVERSCROLL: number = 60;\n\n/**\n * Amount of milliseconds to wait before starting to scroll the header automatically.\n * Set a little conservatively in order to handle fake events dispatched on touch devices.\n */\nconst HEADER_SCROLL_DELAY: number = 650;\n\n/**\n * Interval in milliseconds at which to scroll the header\n * while the user is holding their pointer.\n */\nconst HEADER_SCROLL_INTERVAL: number = 100;\n\n// Boilerplate for applying mixins to JamSlideHeader.\n/** @docs-private */\nexport class JamSlideHeaderBase {\n    public disableRipple: boolean = false;\n}\n\n/**\n * The header of the slide group which displays a list of all the slides in the slide group. Includes\n * an ink bar that follows the currently selected slide. When the slides list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n *\n * @docs-private\n */\n@Component({\n    selector: 'jam-slide-header',\n    templateUrl: 'slide-header.html',\n    styleUrls: ['slide-header.scss'],\n    standalone: true,\n    imports: [CommonModule, MatButtonModule, MatIconModule, MatRippleModule],\n    inputs: ['disableRipple'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'jam-slide-header',\n        '[class.jam-slide-header-pagination-controls-enabled]': '_showPaginationControls',\n        '[class.jam-slide-header-rtl]': `_getLayoutDirection() == 'rtl'`\n    }\n})\nexport class JamSlideHeaderComponent\n    extends JamSlideHeaderBase\n    implements AfterContentChecked, AfterContentInit, AfterViewInit, OnDestroy, CanDisableRipple\n{\n    @ContentChildren(JamSlideElementWrapperDirective) public _elementWrappers: QueryList<JamSlideElementWrapperDirective>;\n    // @ViewChild(MatInkBar, { static: false }) _inkBar: MatInkBar;\n    @ViewChild('slideListContainer') public _slideListContainer: ElementRef;\n    @ViewChild('slideList') public _slideList: ElementRef;\n    @ViewChild('nextPaginator') public _nextPaginator: ElementRef<HTMLElement>;\n    @ViewChild('previousPaginator') public _previousPaginator: ElementRef<HTMLElement>;\n\n    /** Event emitted when the option is selected. */\n    @Output() public readonly selectFocusedIndex: EventEmitter<number> = new EventEmitter<number>();\n\n    /** Event emitted when a element is focused. */\n    @Output() public readonly indexFocused: EventEmitter<number> = new EventEmitter<number>();\n\n    /** Whether the controls for pagination should be displayed */\n    public _showPaginationControls: boolean = false;\n\n    /** Whether the slide list can be scrolled more towards the end of the slide element list. */\n    public _disableScrollAfter: boolean = true;\n\n    /** Whether the slide list can be scrolled more towards the beginning of the slide element list. */\n    public _disableScrollBefore: boolean = true;\n\n    /** The distance in pixels that the slide labels should be translated to the left. */\n    private _scrollDistance: number = 0;\n\n    /** Whether the header should scroll to the selected index after the view has been checked. */\n    private _selectedIndexChanged: boolean = false;\n\n    /** Emits when the component is destroyed. */\n    private readonly _destroyed: Subject<void> = new Subject<void>();\n\n    /**\n     * The number of slide labels that are displayed on the header. When this changes, the header\n     * should re-evaluate the scroll position.\n     */\n    private _slideElementCount: number;\n\n    /** Whether the scroll distance has changed and should be applied after the view is checked. */\n    private _scrollDistanceChanged: boolean;\n\n    /** Used to manage focus between the slides. */\n    private _keyManager: FocusKeyManager<JamSlideElementWrapperDirective>;\n\n    /** Cached text content of the header. */\n    private _currentTextContent: string;\n\n    /** Stream that will stop the automated scrolling. */\n    private _stopScrolling: Subject<void> = new Subject<void>();\n\n    /** The index of the active slide. */\n    @Input()\n    public get selectedIndex(): number {\n        return this._selectedIndex;\n    }\n    public set selectedIndex(value: number) {\n        value = coerceNumberProperty(value);\n        this._selectedIndexChanged = this._selectedIndex !== value;\n        this._selectedIndex = value;\n\n        if (this._keyManager) {\n            this._keyManager.updateActiveItem(value);\n        }\n    }\n    private _selectedIndex: number = 0;\n\n    public constructor(\n        private _elementRef: ElementRef,\n        private _changeDetectorRef: ChangeDetectorRef,\n        private _viewportRuler: ViewportRuler,\n        @Optional() private _dir: Directionality,\n        // @breaking-change 8.0.0 `_ngZone` and `_platforms` parameters to be made required.\n        private _ngZone?: NgZone,\n        private _platform?: Platform\n    ) {\n        super();\n\n        const element: HTMLElement = _elementRef.nativeElement;\n        const bindEvent: () => void = (): void => {\n            fromEvent(element, 'mouseleave')\n                .pipe(takeUntil(this._destroyed))\n                .subscribe((): void => {\n                    this._stopInterval();\n                });\n        };\n\n        // @breaking-change 8.0.0 remove null check once _ngZone is made into a required parameter.\n        if (_ngZone) {\n            // Bind the `mouseleave` event on the outside since it doesn't change anything in the view.\n            _ngZone.runOutsideAngular(bindEvent);\n        } else {\n            bindEvent();\n        }\n    }\n    public declare disableRipple: boolean;\n\n    public ngAfterContentChecked(): void {\n        // If the number of slide labels have changed, check if scrolling should be enabled\n        if (this._slideElementCount !== this._elementWrappers.length) {\n            this.updatePagination();\n            this._slideElementCount = this._elementWrappers.length;\n            this._changeDetectorRef.markForCheck();\n        }\n\n        // If the selected index has changed, scroll to the element and check if the scrolling controls\n        // should be disabled.\n        if (this._selectedIndexChanged) {\n            this._scrollToLabel(this._selectedIndex);\n            this._checkScrollingControls();\n            // this._alignInkBarToSelectedTab();\n            this._selectedIndexChanged = false;\n            this._changeDetectorRef.markForCheck();\n        }\n\n        // If the scroll distance has been changed (slide selected, focused, scroll controls activated),\n        // then translate the header to reflect this.\n        if (this._scrollDistanceChanged) {\n            this._updateTabScrollPosition();\n            this._scrollDistanceChanged = false;\n            this._changeDetectorRef.markForCheck();\n        }\n    }\n\n    /** Handles keyboard events on the header. */\n    public _handleKeydown(event: KeyboardEvent): void {\n        console.log('inside handleKeyDown', event);\n        console.log('inside handleKeyDown', event, hasModifierKey(event));\n        // We don't handle any key bindings with a modifier key.\n        if (hasModifierKey(event)) {\n            return;\n        }\n\n        switch (event.key) {\n            case 'Home':\n                this._keyManager.setFirstItemActive();\n                event.preventDefault();\n                break;\n            case 'End':\n                this._keyManager.setLastItemActive();\n                event.preventDefault();\n                break;\n            case 'Enter':\n            case ' ':\n                this.selectFocusedIndex.emit(this.focusIndex);\n                event.preventDefault();\n                break;\n            default:\n                this._keyManager.onKeydown(event);\n                break;\n        }\n    }\n\n    /**\n     * Aligns the ink bar to the selected slide on load.\n     */\n    public ngAfterContentInit(): void {\n        const dirChange: EventEmitter<Direction> | Observable<Direction | null> = this._dir ? this._dir.change : observableOf(null);\n        const resize: Observable<Event> = this._viewportRuler.change(150);\n        const realign: () => void = (): void => {\n            this.updatePagination();\n            // this._alignInkBarToSelectedTab();\n        };\n\n        this._keyManager = new FocusKeyManager(this._elementWrappers).withHorizontalOrientation(this._getLayoutDirection()).withWrap();\n\n        this._keyManager.updateActiveItem(0);\n\n        // Defer the first call in order to allow for slower browsers to lay out the elements.\n        // This helps in cases where the user lands directly on a page with paginated slides.\n        if (typeof requestAnimationFrame !== 'undefined') {\n            requestAnimationFrame(realign);\n        } else {\n            realign();\n        }\n\n        // On dir change or window resize, realign the ink bar and update the orientation of\n        // the key manager if the direction has changed.\n        merge(dirChange, resize)\n            .pipe(takeUntil(this._destroyed))\n            .subscribe((): void => {\n                realign();\n                this._keyManager.withHorizontalOrientation(this._getLayoutDirection());\n            });\n\n        // If there is a change in the focus key manager we need to emit the `indexFocused`\n        // event in order to provide a public event that notifies about focus changes. Also we realign\n        // the slides container by scrolling the new focused slide into the visible section.\n        this._keyManager.change.pipe(takeUntil(this._destroyed)).subscribe((newFocusIndex): void => {\n            this.indexFocused.emit(newFocusIndex);\n            this._setTabFocus(newFocusIndex);\n        });\n    }\n\n    public ngAfterViewInit(): void {\n        // We need to handle these events manually, because we want to bind passive event listeners.\n        fromEvent(this._previousPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)\n            .pipe(takeUntil(this._destroyed))\n            .subscribe((): void => {\n                this._handlePaginatorPress('before');\n            });\n\n        fromEvent(this._nextPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)\n            .pipe(takeUntil(this._destroyed))\n            .subscribe((): void => {\n                this._handlePaginatorPress('after');\n            });\n    }\n\n    public ngOnDestroy(): void {\n        this._destroyed.next();\n        this._destroyed.complete();\n        this._stopScrolling.complete();\n    }\n\n    /**\n     * Callback for when the MutationObserver detects that the content has changed.\n     */\n    public _onContentChanges(): void {\n        const textContent: string = this._elementRef.nativeElement.textContent;\n\n        // We need to diff the text content of the header, because the MutationObserver callback\n        // will fire even if the text content didn't change which is inefficient and is prone\n        // to infinite loops if a poorly constructed expression is passed in (see #14249).\n        if (textContent !== this._currentTextContent) {\n            this._currentTextContent = textContent;\n\n            const zoneCallback: () => void = (): void => {\n                this.updatePagination();\n                // this._alignInkBarToSelectedTab();\n                this._changeDetectorRef.markForCheck();\n            };\n\n            // The content observer runs outside the `NgZone` by default, which\n            // means that we need to bring the callback back in ourselves.\n            // @breaking-change 8.0.0 Remove null check for `_ngZone` once it's a required parameter.\n            if (this._ngZone) {\n                this._ngZone.run(zoneCallback);\n            } else {\n                zoneCallback();\n            }\n        }\n    }\n\n    /**\n     * Updates the view whether pagination should be enabled or not.\n     *\n     * WARNING: Calling this method can be very costly in terms of performance.  It should be called\n     * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n     * page.\n     */\n    public updatePagination(): void {\n        this._checkPaginationEnabled();\n        this._checkScrollingControls();\n        this._updateTabScrollPosition();\n    }\n\n    /** Tracks which element has focus; used for keyboard navigation */\n    public get focusIndex(): number {\n        if (!this._keyManager) {\n            return 0;\n        }\n\n        return this._keyManager.activeItemIndex ?? 0;\n    }\n\n    /** When the focus index is set, we must manually send focus to the correct element */\n    public set focusIndex(value: number) {\n        if (!this._isValidIndex(value) || this.focusIndex === value || !this._keyManager) {\n            return;\n        }\n\n        this._keyManager.setActiveItem(value);\n    }\n\n    /**\n     * Determines if an index is valid.  If the slides are not ready yet, we assume that the user is\n     * providing a valid index and return true.\n     */\n    public _isValidIndex(index: number): boolean {\n        if (!this._elementWrappers) {\n            return true;\n        }\n\n        const slide: JamSlideElementWrapperDirective | null = this._elementWrappers ? this._elementWrappers.toArray()[index] : null;\n\n        return !!slide && !slide.disabled;\n    }\n\n    /**\n     * Sets focus on the HTML element for the element wrapper and scrolls it into the view if\n     * scrolling is enabled.\n     */\n    public _setTabFocus(slideIndex: number): void {\n        if (this._showPaginationControls) {\n            this._scrollToLabel(slideIndex);\n        }\n\n        if (this._elementWrappers && this._elementWrappers.length) {\n            this._elementWrappers.toArray()[slideIndex].focus();\n\n            // Do not let the browser manage scrolling to focus the element, this will be handled\n            // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width\n            // should be the full width minus the offset width.\n            const containerEl: HTMLElement = this._slideListContainer.nativeElement;\n            const dir: Direction = this._getLayoutDirection();\n\n            if (dir === 'ltr') {\n                containerEl.scrollLeft = 0;\n            } else {\n                containerEl.scrollLeft = containerEl.scrollWidth - containerEl.offsetWidth;\n            }\n        }\n    }\n\n    /** The layout direction of the containing app. */\n    public _getLayoutDirection(): Direction {\n        return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n    }\n\n    /** Performs the CSS transformation on the slide list that will cause the list to scroll. */\n    public _updateTabScrollPosition(): void {\n        const scrollDistance: number = this.scrollDistance;\n        const platform: Platform | undefined = this._platform;\n        if (!platform) {\n            return;\n        }\n\n        const translateX: number = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;\n\n        // Don't use `translate3d` here because we don't want to create a new layer. A new layer\n        // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar\n        // and ripples will exceed the boundaries of the visible slide bar.\n        // See: https://github.com/angular/material2/issues/10276\n        // We round the `transform` here, because transforms with sub-pixel precision cause some\n        // browsers to blur the content of the element.\n        this._slideList.nativeElement.style.transform = `translateX(${Math.round(translateX)}px)`;\n\n        // Setting the `transform` on IE will change the scroll offset of the parent, causing the\n        // position to be thrown off in some cases. We have to reset it ourselves to ensure that\n        // it doesn't get thrown off. Note that we scope it only to IE and Edge, because messing\n        // with the scroll position throws off Chrome 71+ in RTL mode (see #14689).\n        // @breaking-change 8.0.0 Remove null check for `platform`.\n        if (platform && (platform.TRIDENT || platform.EDGE)) {\n            this._slideListContainer.nativeElement.scrollLeft = 0;\n        }\n    }\n\n    /** Sets the distance in pixels that the slide header should be transformed in the X-axis. */\n    public get scrollDistance(): number {\n        return this._scrollDistance;\n    }\n    public set scrollDistance(value: number) {\n        this._scrollTo(value);\n    }\n\n    /**\n     * Moves the slide list in the 'before' or 'after' direction (towards the beginning of the list or\n     * the end of the list, respectively). The distance to scroll is computed to be a third of the\n     * length of the slide list view window.\n     *\n     * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n     * should be called sparingly.\n     */\n    public _scrollHeader(direction: ScrollDirection): { [keys: string]: number } {\n        const viewLength: number = this._slideListContainer.nativeElement.offsetWidth;\n\n        // Move the scroll distance one-third the length of the slide list's viewport.\n        const scrollAmount: number = ((direction === 'before' ? -1 : 1) * viewLength) / 3;\n\n        return this._scrollTo(this._scrollDistance + scrollAmount);\n    }\n\n    /** Handles click events on the pagination arrows. */\n    public _handlePaginatorClick(direction: ScrollDirection): void {\n        this._stopInterval();\n        this._scrollHeader(direction);\n    }\n\n    /**\n     * Moves the slide list such that the desired slide element (marked by index) is moved into view.\n     *\n     * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n     * should be called sparingly.\n     */\n    public _scrollToLabel(labelIndex: number): void {\n        console.log('inside _scrollToLabel');\n        const selectedLabel: JamSlideElementWrapperDirective | null = this._elementWrappers\n            ? this._elementWrappers.toArray()[labelIndex]\n            : null;\n\n        if (!selectedLabel) {\n            return;\n        }\n\n        // The view length is the visible width of the slide labels.\n        const viewLength: number = this._slideListContainer.nativeElement.offsetWidth;\n\n        let labelBeforePos: number;\n        let labelAfterPos: number;\n        if (this._getLayoutDirection() === 'ltr') {\n            labelBeforePos = selectedLabel.getOffsetLeft();\n            labelAfterPos = labelBeforePos + selectedLabel.getOffsetWidth();\n        } else {\n            labelAfterPos = this._slideList.nativeElement.offsetWidth - selectedLabel.getOffsetLeft();\n            labelBeforePos = labelAfterPos - selectedLabel.getOffsetWidth();\n        }\n\n        const beforeVisiblePos: number = this.scrollDistance;\n        const afterVisiblePos: number = this.scrollDistance + viewLength;\n\n        if (labelBeforePos < beforeVisiblePos) {\n            // Scroll header to move element to the before direction\n            this.scrollDistance -= beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\n        } else if (labelAfterPos > afterVisiblePos) {\n            // Scroll header to move element to the after direction\n            this.scrollDistance += labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\n        }\n    }\n\n    /**\n     * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n     * slide list is wider than the size of the header container, then the pagination controls should\n     * be shown.\n     *\n     * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n     * should be called sparingly.\n     */\n    public _checkPaginationEnabled(): void {\n        const isEnabled: boolean = this._slideList.nativeElement.scrollWidth > this._elementRef.nativeElement.offsetWidth;\n\n        if (!isEnabled) {\n            this.scrollDistance = 0;\n        }\n\n        if (isEnabled !== this._showPaginationControls) {\n            this._changeDetectorRef.markForCheck();\n        }\n\n        this._showPaginationControls = isEnabled;\n    }\n\n    /**\n     * Evaluate whether the before and after controls should be enabled or disabled.\n     * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n     * before button. If the header is at the end of the list (scroll distance is equal to the\n     * maximum distance we can scroll), then disable the after button.\n     *\n     * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n     * should be called sparingly.\n     */\n    public _checkScrollingControls(): void {\n        // Check if the pagination arrows should be activated.\n        this._disableScrollBefore = this.scrollDistance === 0;\n        this._disableScrollAfter = this.scrollDistance === this._getMaxScrollDistance();\n        this._changeDetectorRef.markForCheck();\n    }\n\n    /**\n     * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n     * is equal to the difference in width between the slide list container and slide header container.\n     *\n     * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n     * should be called sparingly.\n     */\n    public _getMaxScrollDistance(): number {\n        const lengthOfTabList: number = this._slideList.nativeElement.scrollWidth;\n        const viewLength: number = this._slideListContainer.nativeElement.offsetWidth;\n\n        return lengthOfTabList - viewLength || 0;\n    }\n\n    /** Tells the ink-bar to align itself to the current element wrapper */\n    // _alignInkBarToSelectedTab(): void {\n    //   const selectedLabelWrapper = this._elementWrappers && this._elementWrappers.length ?\n    //       this._elementWrappers.toArray()[this.selectedIndex].elementRef.nativeElement :\n    //       null;\n    //\n    //   this._inkBar.alignToElement(selectedLabelWrapper!);\n    // }\n\n    /** Stops the currently-running paginator interval.  */\n    public _stopInterval(): void {\n        this._stopScrolling.next();\n    }\n\n    /**\n     * Handles the user pressing down on one of the paginators.\n     * Starts scrolling the header after a certain amount of time.\n     *\n     * @param direction In which direction the paginator should be scrolled.\n     */\n    public _handlePaginatorPress(direction: ScrollDirection): void {\n        // Avoid overlapping timers.\n        this._stopInterval();\n\n        // Start a timer after the delay and keep firing based on the interval.\n        timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL)\n            // Keep the timer going until something tells it to stop or the component is destroyed.\n            .pipe(takeUntil(merge(this._stopScrolling, this._destroyed)))\n            .subscribe((): void => {\n                const result: { [keys: string]: number } = this._scrollHeader(direction);\n                const { maxScrollDistance, distance } = result;\n\n                // Stop the timer if we've reached the start or the end.\n                if (distance === 0 || distance >= maxScrollDistance) {\n                    this._stopInterval();\n                }\n            });\n    }\n\n    /**\n     * Scrolls the header to a given position.\n     *\n     * @param position Position to which to scroll.\n     * @returns Information on the current scroll distance and the maximum.\n     */\n    private _scrollTo(position: number): { [keys: string]: number } {\n        const maxScrollDistance: number = this._getMaxScrollDistance();\n        this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));\n\n        // Mark that the scroll distance has changed so that after the view is checked, the CSS\n        // transformation can move the header.\n        this._scrollDistanceChanged = true;\n        this._checkScrollingControls();\n\n        return { maxScrollDistance, distance: this._scrollDistance };\n    }\n}\n","<div class=\"jam-slide-header-pagination jam-slide-header-pagination-before mat-elevation-z4\"\n     #previousPaginator\n     aria-hidden=\"true\"\n     mat-ripple [matRippleDisabled]=\"_disableScrollBefore || disableRipple\"\n     [class.jam-slide-header-pagination-disabled]=\"_disableScrollBefore\"\n     (click)=\"_handlePaginatorClick('before')\"\n     (mousedown)=\"_handlePaginatorPress('before')\"\n     (touchend)=\"_stopInterval()\">\n  <div class=\"jam-slide-header-pagination-chevron\"></div>\n\n<div class=\"jam-slide-element-container\" #slideListContainer\n     (keydown)=\"_handleKeydown($event)\">\n  <div class=\"jam-slide-list\" #slideList role=\"slidelist\" (cdkObserveContent)=\"_onContentChanges()\">\n    <div class=\"jam-slide-elements\">\n      <ng-content></ng-content>\n    </div>\n    <!-- <mat-ink-bar></mat-ink-bar> -->\n\n<div class=\"jam-slide-header-pagination jam-slide-header-pagination-after mat-elevation-z4\"\n     #nextPaginator\n     aria-hidden=\"true\"\n     mat-ripple [matRippleDisabled]=\"_disableScrollAfter || disableRipple\"\n     [class.jam-slide-header-pagination-disabled]=\"_disableScrollAfter\"\n     (mousedown)=\"_handlePaginatorPress('after')\"\n     (click)=\"_handlePaginatorClick('after')\"\n     (touchend)=\"_stopInterval()\">\n  <div class=\"jam-slide-header-pagination-chevron\"></div>\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { CdkMonitorFocus } from '@angular/cdk/a11y';\nimport { MatRippleModule } from '@angular/material/core';\nimport {\n    AfterContentChecked,\n    AfterContentInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    Output,\n    QueryList,\n    ViewChild,\n    ViewEncapsulation,\n    InjectionToken,\n    Inject,\n    Optional\n} from '@angular/core';\n// import { CanColor, CanDisableRipple, mixinColor, mixinDisableRipple, ThemePalette, _Constructor } from '@angular/material/core';\n// Angular 19: These mixins are deprecated. Implementing interfaces manually.\nimport { ThemePalette } from '@angular/material/core';\n\ninterface CanColor {\n    color: ThemePalette;\n}\n\ninterface CanDisableRipple {\n    disableRipple: boolean;\n}\nimport { merge, Subject, Subscription } from 'rxjs';\nimport { JamSlideComponent } from './slide';\nimport { JamSlideHeaderComponent } from './slide-header';\nimport { JamSlideElementWrapperDirective } from './slide-element-wrapper';\n\n/** Used to generate unique ID's for each slide component */\nlet nextId: number = 0;\n\n/** A simple change event emitted on focus or selection changes. */\nexport class JamSlideChangeEvent {\n    /** Index of the currently-selected slide. */\n    public index: number;\n    /** Reference to the currently-selected slide. */\n    public slide: JamSlideComponent;\n}\n\n/** Possible positions for the slide header. */\nexport type JamSlideHeaderPosition = 'above' | 'below';\n\n/** Object that can be used to configure the default options for the slides module. */\nexport interface JamSlidesConfig {\n    /** Duration for the slide animation. Must be a valid CSS value (e.g. 600ms). */\n    animationDuration?: string;\n}\n\n/** Injection token that can be used to provide the default options the slides module. */\nexport const MAT_TABS_CONFIG: InjectionToken<JamSlidesConfig> = new InjectionToken('MAT_TABS_CONFIG');\n\n// Boilerplate for applying mixins to JamSlideGroup.\n/** @docs-private */\nexport class JamSlideGroupBase {\n    public color: ThemePalette = 'primary';\n    public disableRipple: boolean = false;\n    public constructor(public _elementRef: ElementRef) {}\n}\n\n/**\n * Material design slide-group component.  Supports basic slide pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/slides.html\n */\n@Component({\n    selector: 'jam-slide-group',\n    exportAs: 'jamSlideGroup',\n    templateUrl: 'slide-group.html',\n    styleUrls: ['slide-group.scss'],\n    standalone: true,\n    imports: [CommonModule, MatRippleModule, CdkMonitorFocus, JamSlideHeaderComponent, JamSlideElementWrapperDirective],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'jam-slide-group',\n        '[class.jam-slide-group-dynamic-height]': 'dynamicHeight',\n        '[class.jam-slide-group-inverted-header]': 'headerPosition === \"below\"'\n    }\n})\nexport class JamSlideGroupComponent\n    extends JamSlideGroupBase\n    implements AfterContentInit, AfterContentChecked, OnDestroy, CanColor, CanDisableRipple\n{\n    @ContentChildren(JamSlideComponent) public _slides: QueryList<JamSlideComponent>;\n\n    @ViewChild('slideBodyWrapper') public _slideBodyWrapper: ElementRef;\n\n    @ViewChild('slideHeader') public _slideHeader: JamSlideHeaderComponent;\n\n    /** Output to enable support for two-way binding on `[(selectedIndex)]` */\n    @Output() public readonly selectedIndexChange: EventEmitter<number> = new EventEmitter<number>();\n\n    /** Event emitted when focus has changed within a slide group. */\n    @Output() public readonly focusChange: EventEmitter<JamSlideChangeEvent> = new EventEmitter<JamSlideChangeEvent>();\n\n    /** Event emitted when the body animation has completed */\n    @Output() public readonly animationDone: EventEmitter<void> = new EventEmitter<void>();\n\n    /** Event emitted when the slide selection has changed. */\n    @Output() public readonly selectedTabChange: EventEmitter<JamSlideChangeEvent> = new EventEmitter<JamSlideChangeEvent>(true);\n\n    /** Position of the slide header. */\n    @Input() public headerPosition: JamSlideHeaderPosition = 'above';\n\n    /** The slide index that should be selected after the content has been checked. */\n    private _indexToSelect: number | null = 0;\n\n    /** Snapshot of the height of the slide body wrapper before another slide is activated. */\n    private _slideBodyWrapperHeight: number = 0;\n\n    /** Subscription to slides being added/removed. */\n    private _slidesSubscription: Subscription = Subscription.EMPTY;\n\n    /** Subscription to changes in the slide labels. */\n    private _slideElementSubscription: Subscription = Subscription.EMPTY;\n\n    /** Whether the slide group should grow to the size of the active slide. */\n    @Input()\n    public get dynamicHeight(): boolean {\n        return this._dynamicHeight;\n    }\n    public set dynamicHeight(value: boolean) {\n        this._dynamicHeight = coerceBooleanProperty(value);\n    }\n    private _dynamicHeight: boolean = false;\n\n    /** The index of the active slide. */\n    @Input()\n    public get selectedIndex(): number | null {\n        return this._selectedIndex;\n    }\n    public set selectedIndex(value: number | null) {\n        this._indexToSelect = coerceNumberProperty(value, null);\n    }\n    private _selectedIndex: number | null = null;\n\n    /** Duration for the slide animation. Will be normalized to milliseconds if no units are set. */\n    @Input()\n    public get animationDuration(): string {\n        return this._animationDuration;\n    }\n    public set animationDuration(value: string) {\n        this._animationDuration = /^\\d+$/.test(value) ? value + 'ms' : value;\n    }\n    private _animationDuration: string;\n\n    /** Background color of the slide group. */\n    @Input()\n    public get backgroundColor(): ThemePalette {\n        return this._backgroundColor;\n    }\n    public set backgroundColor(value: ThemePalette) {\n        const nativeElement: HTMLElement = this._elementRef.nativeElement;\n\n        nativeElement.classList.remove(`mat-background-${this.backgroundColor}`);\n\n        if (value) {\n            nativeElement.classList.add(`mat-background-${value}`);\n        }\n\n        this._backgroundColor = value;\n    }\n    private _backgroundColor: ThemePalette;\n\n    private _groupId: number;\n\n    public constructor(\n        elementRef: ElementRef,\n        private _changeDetectorRef: ChangeDetectorRef,\n        @Inject(MAT_TABS_CONFIG) @Optional() public defaultConfig?: JamSlidesConfig\n    ) {\n        super(elementRef);\n        this._groupId = nextId += 1;\n        this.animationDuration = defaultConfig && defaultConfig.animationDuration ? defaultConfig.animationDuration : '500ms';\n    }\n    public declare disableRipple: boolean;\n    public declare color: ThemePalette;\n    public defaultColor: ThemePalette;\n\n    /**\n     * After the content is checked, this component knows what slides have been defined\n     * and what the selected index should be. This is where we can know exactly what position\n     * each slide should be in according to the new selected index, and additionally we know how\n     * a new selected slide should transition in (from the left or right).\n     */\n    public ngAfterContentChecked(): void {\n        // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n        // the amount of slides changes before the actual change detection runs.\n        const indexToSelect: number = (this._indexToSelect = this._clampTabIndex(this._indexToSelect));\n\n        // If there is a change in selected index, emit a change event. Should not trigger if\n        // the selected index has not yet been initialized.\n        if (this._selectedIndex !== indexToSelect) {\n            const isFirstRun: boolean = !this._selectedIndex;\n\n            if (!isFirstRun) {\n                this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n            }\n\n            // Changing these values after change detection has run\n            // since the checked content may contain references to them.\n            Promise.resolve().then((): void => {\n                this._slides.forEach((slide, index): boolean => (slide.isActive = index === indexToSelect));\n\n                if (!isFirstRun) {\n                    this.selectedIndexChange.emit(indexToSelect);\n                }\n            });\n        }\n\n        // Setup the position for each slide and optionally setup an origin on the next selected slide.\n        this._slides.forEach((slide: JamSlideComponent, index: number): void => {\n            slide.position = index - indexToSelect;\n\n            // If there is already a selected slide, then set up an origin for the next selected slide\n            // if it doesn't have one already.\n            if (this._selectedIndex === null || this._selectedIndex === undefined) {\n                return;\n            }\n\n            if (!this._selectedIndex && slide.position === 0 && !slide.origin) {\n                slide.origin = indexToSelect - this._selectedIndex;\n            }\n        });\n\n        if (this._selectedIndex !== indexToSelect) {\n            this._selectedIndex = indexToSelect;\n            this._changeDetectorRef.markForCheck();\n        }\n    }\n\n    public ngAfterContentInit(): void {\n        this._subscribeToTabLabels();\n\n        // Subscribe to changes in the amount of slides, in order to be\n        // able to re-render the content as new slides are added or removed.\n        this._slidesSubscription = this._slides.changes.subscribe((): void => {\n            const indexToSelect: number = this._clampTabIndex(this._indexToSelect);\n\n            // Maintain the previously-selected slide if a new slide is added or removed and there is no\n            // explicit change that selects a different slide.\n            if (indexToSelect === this._selectedIndex) {\n                const slides: Array<JamSlideComponent> = this._slides.toArray();\n\n                for (let i: number = 0; i < slides.length; i += 1) {\n                    if (slides[i].isActive) {\n                        // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed\n                        // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n                        // adding a slide within the `selectedIndexChange` event.\n                        this._indexToSelect = this._selectedIndex = i;\n                        break;\n                    }\n                }\n            }\n\n            this._subscribeToTabLabels();\n            this._changeDetectorRef.markForCheck();\n        });\n    }\n\n    public ngOnDestroy(): void {\n        this._slidesSubscription.unsubscribe();\n        this._slideElementSubscription.unsubscribe();\n    }\n\n    /** Re-aligns the ink bar to the selected slide element. */\n    // realignInkBar() {\n    //   if (this._slideHeader) {\n    //     this._slideHeader._alignInkBarToSelectedTab();\n    //   }\n    // }\n\n    public _focusChanged(index: number): void {\n        this.focusChange.emit(this._createChangeEvent(index));\n    }\n\n    /** Returns a unique id for each slide element element */\n    public _getTabLabelId(i: number): string {\n        return `jam-slide-element-${this._groupId}-${i}`;\n    }\n\n    /** Returns a unique id for each slide content element */\n    public _getTabContentId(i: number): string {\n        return `jam-slide-content-${this._groupId}-${i}`;\n    }\n\n    /**\n     * Sets the height of the body wrapper to the height of the activating slide if dynamic\n     * height property is true.\n     */\n    public _setTabBodyWrapperHeight(slideHeight: number): void {\n        if (!this._dynamicHeight || !this._slideBodyWrapperHeight) {\n            return;\n        }\n\n        const wrapper: HTMLElement = this._slideBodyWrapper.nativeElement;\n\n        wrapper.style.height = this._slideBodyWrapperHeight + 'px';\n\n        // This conditional forces the browser to paint the height so that\n        // the animation to the new height can have an origin.\n        if (this._slideBodyWrapper.nativeElement.offsetHeight) {\n            wrapper.style.height = slideHeight + 'px';\n        }\n    }\n\n    /** Removes the height of the slide body wrapper. */\n    public _removeTabBodyWrapperHeight(): void {\n        const wrapper: HTMLElement = this._slideBodyWrapper.nativeElement;\n        this._slideBodyWrapperHeight = wrapper.clientHeight;\n        wrapper.style.height = '';\n        this.animationDone.emit();\n    }\n\n    /** Handle click events, setting new selected index if appropriate. */\n    public _handleClick(slide: JamSlideComponent, slideHeader: JamSlideHeaderComponent, index: number): void {\n        if (!slide.disabled) {\n            this.selectedIndex = slideHeader.focusIndex = index;\n        }\n    }\n\n    /** Retrieves the slideindex for the slide. */\n    public _getTabIndex(slide: JamSlideComponent, idx: number): number | null {\n        if (slide.disabled) {\n            return null;\n        }\n\n        return this.selectedIndex === idx ? 0 : -1;\n    }\n\n    private _createChangeEvent(index: number): JamSlideChangeEvent {\n        const event: JamSlideChangeEvent = new JamSlideChangeEvent();\n        event.index = index;\n        if (this._slides && this._slides.length) {\n            event.slide = this._slides.toArray()[index];\n        }\n\n        return event;\n    }\n\n    /**\n     * Subscribes to changes in the slide labels. This is needed, because the @Input for the element is\n     * on the JamSlide component, whereas the data binding is inside the JamSlideGroup. In order for the\n     * binding to be updated, we need to subscribe to changes in it and trigger change detection\n     * manually.\n     */\n    private _subscribeToTabLabels(): void {\n        if (this._slideElementSubscription) {\n            this._slideElementSubscription.unsubscribe();\n        }\n\n        this._slideElementSubscription = merge(...this._slides.map((slide): Subject<unknown> => slide._stateChanges)).subscribe((): void =>\n            this._changeDetectorRef.markForCheck()\n        );\n    }\n\n    /** Clamps the given index to the bounds of 0 and the slides length. */\n    private _clampTabIndex(index: number | null): number {\n        // Note the `|| 0`, which ensures that values like NaN can't get through\n        // and which would otherwise throw the component into an infinite loop\n        // (since Math.max(NaN, 0) === NaN).\n        return Math.min(this._slides.length - 1, Math.max(index || 0, 0));\n    }\n}\n","<jam-slide-header #slideHeader\n               [selectedIndex]=\"selectedIndex\"\n               [disableRipple]=\"disableRipple\"\n               (indexFocused)=\"_focusChanged($event)\"\n               (selectFocusedIndex)=\"selectedIndex = $event\">\n  @for (slide of _slides; track slide; let i = $index) {\n      <div class=\"jam-slide-element\" role=\"slide\" jamSlideElementWrapper mat-ripple cdkMonitorElementFocus\n       [id]=\"_getTabLabelId(i)\"\n       [attr.tabIndex]=\"_getTabIndex(slide, i)\"\n       [attr.aria-posinset]=\"i + 1\"\n       [attr.aria-setsize]=\"_slides.length\"\n       [attr.aria-controls]=\"_getTabContentId(i)\"\n       [attr.aria-selected]=\"selectedIndex === i\"\n       [attr.aria-label]=\"slide.ariaLabel || null\"\n       [attr.aria-labelledby]=\"(!slide.ariaLabel && slide.ariaLabelledby) ? slide.ariaLabelledby : null\"\n       [class.jam-slide-element-active]=\"selectedIndex === i\"\n       [disabled]=\"slide.disabled\"\n       [matRippleDisabled]=\"slide.disabled || disableRipple\"\n       (click)=\"_handleClick(slide, slideHeader, i)\">\n\n    <div class=\"jam-slide-element-content\">\n      <!-- If there is a element template, use it. -->\n      @if (slide.templateLabel) {\n        <ng-template [cdkPortalOutlet]=\"slide.templateLabel\"></ng-template>\n      }\n\n      <!-- If there is not a element template, fall back to the text label. -->\n      @if (!slide.templateLabel) {\n        <ng-template>{{ slide.textLabel }}</ng-template>\n      }\n    </div>\n    </div>\n  }\n</jam-slide-header>\n\n<!-- <div class=\"jam-slide-body-wrapper\" #slideBodyWrapper>\n  @for (slide of _slides; track slide; let i = $index) {\n      <jam-slide-body role=\"slidepanel\"\n               [id]=\"_getTabContentId(i)\"\n               [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n               [class.jam-slide-body-active]=\"selectedIndex == i\"\n               [content]=\"slide.content\"\n               [position]=\"slide.position\"\n               [origin]=\"slide.origin\"\n               [animationDuration]=\"animationDuration\"\n               (_onCentered)=\"_removeTabBodyWrapperHeight()\"\n               (_onCentering)=\"_setTabBodyWrapperHeight($event)\">\n</div> -->\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { animate, state, style, transition, trigger, AnimationTriggerMetadata } from '@angular/animations';\n\n/**\n * Animations used by the Material slides.\n *\n * @docs-private\n */\nexport const jamSlidesAnimations: {\n    readonly translateTab: AnimationTriggerMetadata;\n} = {\n    /** Animation translates a slide along the X axis. */\n    translateTab: trigger('translateTab', [\n        // Note: transitions to `none` instead of 0, because some browsers might blur the content.\n        state('center, void, left-origin-center, right-origin-center', style({ transform: 'none' })),\n\n        // If the slide is either on the left or right, we additionally add a `min-height` of 1px\n        // in order to ensure that the element has a height before its state changes. This is\n        // necessary because Chrome does seem to skip the transition in RTL mode if the element does\n        // not have a static height and is not rendered. See related issue: #9465\n        state('left', style({ transform: 'translate3d(-100%, 0, 0)', minHeight: '1px' })),\n        state('right', style({ transform: 'translate3d(100%, 0, 0)', minHeight: '1px' })),\n\n        transition(\n            '* => left, * => right, left => center, right => center',\n            animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')\n        ),\n        transition('void => left-origin-center', [\n            style({ transform: 'translate3d(-100%, 0, 0)' }),\n            animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')\n        ]),\n        transition('void => right-origin-center', [\n            style({ transform: 'translate3d(100%, 0, 0)' }),\n            animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')\n        ])\n    ])\n};\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nexport interface IPinButton {\n    index: number;\n    label: string;\n    key?: string;\n    id?: string;\n}\n\n@Component({\n    selector: 'jam-pin-option-button',\n    standalone: true,\n    imports: [CommonModule, MatButtonModule, MatIconModule, MatMenuModule],\n    templateUrl: './pin-option-button.component.html',\n    styleUrls: ['./pin-option-button.component.scss']\n})\nexport class PinOptionButtonComponent implements OnInit {\n    @Input() public options: Array<string>;\n    @Input() public specialKey: string;\n    @Input() public jamColor: 'primary' | 'accent' | 'warn' | 'default' = 'default';\n\n    @Output() public selected: EventEmitter<IPinButton> = new EventEmitter<IPinButton>();\n\n    public index: number;\n    public buttons: Array<IPinButton> = [];\n    public selected_option: IPinButton;\n\n    public constructor(private matIconRegistry: MatIconRegistry, private domSanitizer: DomSanitizer) {}\n\n    public ngOnInit(): void {\n        this.populateMenu();\n        this.selected_option = this.defaultSelectedOption();\n\n        this.matIconRegistry.addSvgIconSet(this.domSanitizer.bypassSecurityTrustResourceUrl('assets/all_custom_icons.svg'));\n    }\n\n    public pinnedOption(event: Event, button: IPinButton): void {\n        event.stopPropagation();\n\n        this.selected_option = {\n            index: button.index,\n            label: button.label\n        };\n\n        localStorage.setItem(this.specialKey + '_pinned_creation_option', JSON.stringify(button));\n    }\n\n    public selectOption(button: IPinButton): void {\n        this.selected_option = { index: button.index, label: button.label };\n        this.selected.emit(this.selected_option);\n    }\n\n    public trackByButton(_index: number, item: IPinButton): number | string {\n        return item?.key ?? item?.id ?? item?.index ?? '';\n    }\n\n    public pinButton(): void {\n        this.selected.emit(this.selected_option);\n    }\n\n    private populateMenu(): void {\n        let count: number = 0;\n\n        for (let option of this.options) {\n            this.buttons.push({ index: count, label: option });\n            count += 1;\n        }\n    }\n\n    private defaultSelectedOption(): IPinButton {\n        let local_storage_item: string | null = localStorage.getItem(this.specialKey + '_pinned_creation_option');\n\n        return local_storage_item ? JSON.parse(local_storage_item) : this.buttons[0];\n    }\n}\n","<button mat-flat-button class=\"pin-button-round\"\n    [ngClass]=\"jamColor === 'default' ? 'mat-hint' : null\"\n    [color]=\"jamColor\"\n    (click)=\"selected.emit(selected_option)\">\n    <div class=\"pin-button-content\">\n        <button mat-icon-button class=\"mat-button\">\n            <mat-icon>add_circle</mat-icon>\n        </button>\n\n        <span>{{ selected_option?.label }}</span>\n\n        <button mat-icon-button matSuffix class=\"mat-button\"\n            [matMenuTriggerFor]=\"jamPinOptionButton\"\n            (click)=\"$event.stopPropagation()\">\n            <mat-icon>arrow_drop_down</mat-icon>\n        </button>\n    </div>\n</button>\n\n<mat-menu #jamPinOptionButton=\"matMenu\">\n    @for (button of buttons; track button.index; let item = $index) {\n        <button mat-menu-item class=\"mouseover\"\n            (click)=\"selectOption(button)\">\n            <div class=\"menu-item-content\">\n                <span>{{ button.label }}</span>\n                <div class=\"pin-container\">\n                    <button mat-icon-button\n                        [ngClass]=\"selected_option?.index !== button.index ? 'mouseover-child mat-button' : 'mat-button'\"\n                        (click)=\"pinnedOption($event, button)\">\n                        <mat-icon svgIcon=\"pin_rs\" color=\"accent\"\n                            [ngStyle]=\"{ color: selected_option?.index !== button.index ? '#000000B3' : null }\"\n                        ></mat-icon>\n                    </button>\n                </div>\n            </div>\n        </button>\n    }\n</mat-menu>\n","import {\n    Component,\n    OnInit,\n    OnDestroy,\n    Input,\n    ElementRef,\n    ViewChild,\n    EventEmitter,\n    Output,\n    ChangeDetectorRef,\n    TrackByFunction\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormControl, FormGroup } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatAutocompleteModule, MatAutocompleteTrigger } from '@angular/material/autocomplete';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { Resource, DocumentCollection, Service, IParamsCollection } from 'ngx-jsonapi';\nimport { timeout, filter, tap } from 'rxjs/operators';\nimport { filterOrRequest } from '../../lib/batch';\nimport { Destroyer } from '../../lib/destroyer';\n\n@Component({\n    selector: 'jam-autocomplete',\n    standalone: true,\n    imports: [\n        CommonModule,\n        ReactiveFormsModule,\n        MatFormFieldModule,\n        MatInputModule,\n        MatAutocompleteModule,\n        MatOptionModule,\n        MatIconModule,\n        TranslateModule\n    ],\n    styleUrls: ['./autocomplete.component.scss'],\n    templateUrl: 'autocomplete.component.html'\n})\nexport class JamAutocompleteComponent implements OnInit, OnDestroy {\n    /**\n     * @param  {boolean} previewSelected\n     * @usageNotes By default it is `false`.\n     * In case it is `true`, the autocomplete,\n     * shows in the placeholder or matLabel a preview of the selected item.\n     */\n    @Input() public previewSelected: boolean = false;\n    /**\n     * @param {string} displayText\n     * @usageNotes Text of the selected item.\n     */\n    @Input() public toggleResource: Resource | null;\n    @Input() public placeholder: string = 'Escribe algo que buscar';\n    @Input({ required: true }) public services!: Service;\n    @Input({ required: true }) public displayAttributes!: Array<string>;\n    @Input() public remoteFilter: Record<string, unknown> = {};\n    @Input() public include: Array<string> = [];\n    @Input() public sort: Array<string> = [];\n    @Input() public icon: string;\n    @Input() public showList: boolean = true;\n    @Output() public toggleResourceChange: EventEmitter<Resource> = new EventEmitter<Resource>();\n    @ViewChild(MatAutocompleteTrigger) public autocompleteResource: MatAutocompleteTrigger;\n    @ViewChild('autocompleteResource') public autocompleteResourceInput: ElementRef;\n\n    public collection: DocumentCollection;\n    public filtered_resource: Observable<Array<Resource>>;\n    public dataArrived: Subject<string> = new Subject();\n    public myForm: FormGroup;\n    public autocompleteCtrl: FormControl = new FormControl();\n    public resourceArray: Array<Resource> = [];\n    public use_is_loading: boolean = true;\n    public trackByFn: TrackByFunction<Resource>;\n    public resourceArrayLastFilterValue: string;\n\n    private destroyer: Destroyer = new Destroyer();\n    private readonly collectionPerPage: number = 100; // 500\n    private readonly resource_max_on_list: number = 50;\n\n    public constructor(private changeDetectorRef: ChangeDetectorRef) {}\n\n    public ngOnDestroy(): void {\n        this.destroyer.destroy();\n    }\n\n    public ngOnInit(): void {\n        this.collection = this.services.newCollection();\n        this.filtered_resource = this.autocompleteCtrl.valueChanges.pipe(\n            this.destroyer.pipe(),\n            filterOrRequest({\n                attribute_to_search: this.displayAttributes[0],\n                resourcesArray: this.resourceArray,\n                getAllFc: this.getAll.bind(this),\n                last_filter_value: this.resourceArrayLastFilterValue,\n                collection: this.collection,\n                page_size: this.collectionPerPage\n            })\n        );\n    }\n\n    public closeAutocomplete(): void {\n        this.autocompleteResource.optionSelections.pipe(timeout(150)).subscribe(\n            (): void => {\n                this.autocompleteResource.closePanel();\n            },\n            (): void => {\n                this.autocompleteResource.closePanel();\n            }\n        );\n    }\n\n    public selectedResource(resource: Resource): void {\n        if (!resource) {\n            return;\n        }\n\n        if (this.previewSelected) {\n            this.toggleResource = resource;\n        }\n\n        this.toggleResourceChange.emit(resource);\n    }\n\n    public displayFn(_resource?: Resource): string {\n        return ''; // clear input after item selection\n    }\n\n    public refresh(): void {\n        this.services.clearCacheMemory();\n        this.use_is_loading = false;\n    }\n\n    public getAll(search_text: string): Observable<DocumentCollection> {\n        let params: IParamsCollection = {\n            page: {\n                number: 1,\n                size: this.collectionPerPage\n            },\n            remotefilter: this.remoteFilter,\n            include: this.include\n        };\n        if (search_text) {\n            params.remotefilter = { [this.displayAttributes[0]]: search_text };\n        }\n\n        return this.services.all(params).pipe(\n            filter((collection): boolean => collection.builded),\n            tap((collection): void => {\n                this.collection = collection;\n            })\n        );\n    }\n\n    public clearDisplay(): void {\n        this.toggleResource = null;\n        this.autocompleteCtrl.setValue('');\n    }\n\n    private filterResourceByName(value: string | Resource): Array<Resource> {\n        const filterValue: string = typeof value === 'string' ? value.toLowerCase() : '';\n        let count: number = 0;\n\n        this.showList = !value && filterValue.length > 0;\n\n        return this.resourceArray.filter((resource: Resource): boolean => {\n            if (\n                count < this.resource_max_on_list &&\n                (resource.attributes[this.displayAttributes[0]].toLowerCase().indexOf(filterValue) === 0 ||\n                    resource.attributes[this.displayAttributes[0]].toLowerCase().indexOf(' ' + filterValue) > 0)\n            ) {\n                count += 1;\n\n                return true;\n            }\n\n            return false;\n        });\n    }\n}\n","@if (collection) {\n    <mat-form-field style=\"width: 100%\"\n        appearance=\"outline\" floatLabel=\"never\" color=\"accent\">\n        <input matInput [attr.aria-label]=\"'autocomplete.placeholder' | translate\" name=\"autocomplete-resource\"\n            [placeholder]=\"toggleResource?.attributes[displayAttributes[0]] || placeholder || ('autocomplete.placeholder' | translate)\"\n            type=\"text\"\n            [ngClass]=\"toggleResource?.attributes[displayAttributes[0]] ? 'custom-placeholder' : null\"\n            [matAutocomplete]=\"auto\"\n            [formControl]=\"autocompleteCtrl\"\n            (blur)=\"closeAutocomplete()\"\n            id=\"autocompleteResource\"\n            #autocompleteResource>\n\n        <mat-autocomplete #auto=\"matAutocomplete\"\n            [displayWith]=\"displayFn\"\n            (optionSelected)=\"selectedResource($event.option.value)\">\n            @if (showList) {\n                <div>\n                    <mat-option [value]=\"null\" (click)=\"clearDisplay()\">{{ 'autocomplete.none' | translate }}</mat-option>\n                    @for (resource of filtered_resource | async; track trackByFn(resource)) {\n                        <mat-option [ngClass]=\"toggleResource?.id === resource.id ? 'mat-selected mat-active' : null\"\n                            [value]=\"resource\">\n                            <div class=\"autocomplete-option-content\">\n                                @if (icon) {\n                                    <mat-icon>{{ icon }}</mat-icon>\n                                }\n                                <strong [innerHTML]=\"resource.attributes[displayAttributes[0]]\"></strong>\n                                @for (attribute of displayAttributes; track attribute; let item = $index) {\n                                    <ng-container>\n                                        @if (item >= 1) {\n                                            <small> | {{ resource.attributes[attribute] }}</small>\n                                        }\n                                    </ng-container>\n                                }\n                            </div>\n                        </mat-option>\n                    }\n                </div>\n            }\n        </mat-autocomplete>\n\n        <div class=\"autocomplete-suffix\" matSuffix>\n            @if (toggleResource?.attributes[displayAttributes[0]] || autocompleteCtrl.value) {\n                <button mat-icon-button type=\"button\" class=\"mat-button\" matSuffix [matTooltip]=\"'autocomplete.clear' | translate\"\n                    [disabled]=\"!collection?.loaded\"\n                    (click)=\"clearDisplay()\">\n                    <mat-icon class=\"mat-hint\">close</mat-icon>\n                </button>\n            }\n\n            <button mat-icon-button type=\"button\" class=\"mat-button\" matSuffix [matTooltip]=\"'autocomplete.refresh' | translate\"\n                [disabled]=\"!collection?.loaded\" (click)=\"$event.stopPropagation(); refresh()\">\n                <mat-icon class=\"mat-hint\">refresh</mat-icon>\n            </button>\n\n            <div class=\"mat-select-arrow-wrapper\">\n                <div class=\"mat-select-arrow\"></div>\n            </div>\n        </div>\n    </mat-form-field>\n}\n\n@if (!collection?.loaded) {\n    <mat-progress-bar class=\"progress-bar-autocomplete\"\n        color=\"accent\"\n        mode=\"indeterminate\">\n    </mat-progress-bar>\n}\n","export class ResponsiveColumns {\n    public xs?: Array<string>;\n    public sm?: Array<string>;\n    public md?: Array<string>;\n    public lg?: Array<string>;\n    public xl?: Array<string>;\n\n    public setXs(columns: Array<string>): this {\n        this.xs = columns;\n\n        return this;\n    }\n\n    public setSm(columns: Array<string>): this {\n        this.sm = columns;\n\n        return this;\n    }\n\n    public setMd(columns: Array<string>): this {\n        this.md = columns;\n\n        return this;\n    }\n\n    public setLg(columns: Array<string>): this {\n        this.lg = columns;\n\n        return this;\n    }\n\n    public setXl(columns: Array<string>): this {\n        this.xl = columns;\n\n        return this;\n    }\n}\n","import { TemplateRef, PipeTransform } from '@angular/core';\nimport { Resource, DocumentResource, DocumentCollection } from 'ngx-jsonapi';\n\nexport class Action {\n    public constructor(\n        public key: string,\n        public name: string,\n        public tooltip: string,\n        public icon: { svg?: string; material?: string },\n        public classes?: string\n    ) {\n        /**/\n    }\n}\n\nexport class Column {\n    public cell_value_from_relationship_attribute: {\n        relationship: string;\n        attribute: string;\n        related_resource_id?: string;\n        has_one?: boolean;\n    };\n    public template_only: boolean = false;\n    public show_mobile_title: boolean = true;\n    public hide_mobile_cell: boolean = false;\n    public sort_key: string;\n    public form_field: {\n        input?: { type: string };\n        select?: { options: Array<unknown> };\n        checkbox?: { text: string };\n    };\n\n    public constructor(\n        public key: string,\n        public title?: string,\n        public tooltip?: string,\n        public classes: { header?: string; cell?: string; cell_data?: string } = {},\n        public styles: { header?: Record<string, string>; cell?: Record<string, string>; cell_data?: Record<string, string> } = {},\n        public pipe?: IColumnPipe,\n        public template?: TemplateRef<unknown>,\n        public default_value?: unknown,\n        public icon?: {\n            tooltip?: string;\n            name?: string;\n            style?: Record<string, unknown>;\n            classes?: Array<string>;\n            type?: 'material' | 'svg';\n            getIconTooltipFromResource?(resource: Resource): string;\n            getIconNameFromResource?(resource: Resource): string;\n        },\n        public mobile_title?: string\n    ) {}\n\n    public setKey(key: string): Column {\n        this.key = key;\n\n        return this;\n    }\n\n    public setTitle(title: string): Column {\n        this.title = title;\n\n        return this;\n    }\n\n    public setTooltip(tooltip: string): Column {\n        this.tooltip = tooltip;\n\n        return this;\n    }\n\n    public setHeaderClasses(header_classes: string): Column {\n        this.classes.header = header_classes;\n\n        return this;\n    }\n\n    public setHeaderStyles(header_styles: { [key: string]: string }): Column {\n        this.styles.header = header_styles;\n\n        return this;\n    }\n\n    public setCellClasses(classes: string): Column {\n        this.classes.cell = classes;\n\n        return this;\n    }\n\n    public setCellStyles(classes: { [key: string]: string }): Column {\n        this.styles.cell = classes;\n\n        return this;\n    }\n\n    public setCellDataClasses(classes: string): Column {\n        this.classes.cell_data = classes;\n\n        return this;\n    }\n\n    public setCellDataStyles(classes: { [key: string]: string }): Column {\n        this.styles.cell_data = classes;\n\n        return this;\n    }\n\n    public setPipe(pipe: IColumnPipe): Column {\n        this.pipe = pipe;\n\n        return this;\n    }\n\n    public setTemplate(template: TemplateRef<unknown>): Column {\n        this.template = template;\n\n        return this;\n    }\n\n    public setFormField(type: 'text' | 'number'): Column {\n        // TODO: COL-2387 estos datos deberían generarse diánimcamente, crear factory para diferentes tipos de campos\n        this.form_field = { input: { type: type } };\n\n        return this;\n    }\n\n    public setDefault(default_value: unknown): Column {\n        this.default_value = default_value;\n\n        return this;\n    }\n\n    public setIcon(icon: Column['icon']): Column {\n        if (!icon) {\n            return this;\n        }\n        \n        if (!icon.name && !icon.getIconNameFromResource) {\n            console.error(`You should set the icon's name inside the Column.icon.getIconNameFromResource function`);\n        }\n\n        this.icon = {\n            tooltip: icon.tooltip,\n            style: icon.style,\n            classes: icon.classes,\n            name: icon.name,\n            type: icon.type,\n            getIconTooltipFromResource: icon.getIconTooltipFromResource,\n            getIconNameFromResource: icon.getIconNameFromResource\n        };\n\n        return this;\n    }\n\n    public setCellValueFromRelationshipAttribute(relationship_attribute: Column['cell_value_from_relationship_attribute']): Column {\n        this.cell_value_from_relationship_attribute = relationship_attribute;\n\n        return this;\n    }\n\n    public getValueFromRelationshipAttribute(resource: Resource): unknown {\n        if (\n            !this.cell_value_from_relationship_attribute ||\n            !resource.relationships[this.cell_value_from_relationship_attribute.relationship] ||\n            !resource.relationships[this.cell_value_from_relationship_attribute.relationship].data\n        ) {\n            return undefined;\n        }\n        if (this.cell_value_from_relationship_attribute.has_one) {\n            const relationshipData: Resource | null | undefined = (<DocumentResource>resource.relationships[this.cell_value_from_relationship_attribute.relationship]).data;\n            if (!relationshipData) {\n                return undefined;\n            }\n\n            return relationshipData.attributes[this.cell_value_from_relationship_attribute.attribute];\n        }\n\n        if (this.cell_value_from_relationship_attribute.related_resource_id === undefined) {\n            return undefined;\n        }\n        \n        const collection: DocumentCollection = (<DocumentCollection>resource.relationships[this.cell_value_from_relationship_attribute.relationship]);\n        const foundResource: Resource | null = collection.find(this.cell_value_from_relationship_attribute.related_resource_id);\n        if (!foundResource) {\n            return undefined;\n        }\n        \n        return foundResource.attributes[this.cell_value_from_relationship_attribute.attribute];\n    }\n\n    public templateOnly(value: boolean): Column {\n        this.template_only = value;\n\n        return this;\n    }\n\n    public showMobileTitle(): this {\n        this.show_mobile_title = true;\n\n        return this;\n    }\n\n    public hidemobileTitle(): this {\n        this.show_mobile_title = false;\n\n        return this;\n    }\n\n    public hideOnMobile(): this {\n        this.hide_mobile_cell = true;\n\n        return this;\n    }\n\n    public setSortKey(key?: string): this {\n        this.sort_key = key || this.key;\n\n        return this;\n    }\n}\n\nexport interface IColumnPipe {\n    pipe: PipeTransform; // had to remove Pipe type because different pipes have different pipes... and dont inherit\n    arg?: unknown;\n    attribute_key_arg?: string;\n}\n","/***\n * Copyright (C) 1997-2018 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nexport function isFunction(arg: unknown): boolean {\n    return typeof arg === 'function';\n}\n\nexport function isUndefined(arg: unknown): boolean {\n    return !arg;\n}\n\nexport function getToday(): Date {\n    return new Date();\n}\n\nexport function subtractDays(number_of_days_to_subtract: number, from: Date = new Date()): Date {\n    return new Date(new Date(from).setDate(from.getDate() - number_of_days_to_subtract));\n}\n\nexport function randomId(): string {\n    return 'new_' + Math.floor(Math.random() * 1000);\n}\n","/***\n * Copyright (C) 1997-2017 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\nimport { UpdateFiltersService } from './base/update-filters/update-filters.component';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { PageEvent } from '@angular/material/paginator';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { Resource, Service, DocumentCollection, IAttributes } from 'ngx-jsonapi';\nimport { OnInit, OnDestroy, ChangeDetectorRef, ComponentRef, Component, ChangeDetectionStrategy, EventEmitter } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { tap, filter, takeUntil } from 'rxjs/operators';\nimport { isFunction } from './base/util';\nimport { cloneDeep, isEqual } from 'lodash-es';\nimport { SelectionBarService } from '../selection-bar/selection-bar.service';\nimport { Destroyer } from '../destroyer';\n\nexport interface IPage {\n    length?: number;\n    pageIndex?: number;\n    pageSize?: number;\n}\n\nexport interface IRequestCollectionOptions {\n    service: Service;\n    filter: object;\n    clear_data?: boolean;\n    include: Array<string>;\n    beforepath: string | undefined;\n    page?: PageEvent | IPage;\n    sort?: Array<string>;\n    disable_query_params_update?: boolean;\n    ttl?: number;\n}\n\n@Component({\n    template: '',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true\n})\nexport class ListBaseComponent implements OnInit, OnDestroy {\n    public collection: DocumentCollection;\n    public collectionInfiniteScroll: Array<Resource> = [];\n    // Pagination attributes...\n    public page: IPage = {\n        pageSize: 25,\n        pageIndex: 0,\n        length: undefined\n    };\n    public service: Service;\n    public limit: number;\n    public pageSize: number = 50;\n    public pagIndex: number = 0;\n    public pageSizeOptions: Array<number> = [10, 25, 50, 100, 250, 500];\n    public remoteFilter: Record<string, unknown> = {};\n    public queryParams: Record<string, unknown>; // NOTE: no inicializar como objeto vacío!\n    public disableQueryParamsUpdate: boolean = false;\n\n    // Select Rows\n    public initialSelection: Array<Resource> = [];\n    public allowMultiSelect: boolean = true;\n    public selection: SelectionModel<Resource> = new SelectionModel<Resource>(this.allowMultiSelect, this.initialSelection);\n    public selection_bar_component: unknown;\n    public selection_bar_inputs: Record<string, unknown> = { selected: this.selection };\n\n    public dataTableSource: MatTableDataSource<Resource> = new MatTableDataSource<Resource>();\n\n    protected essential_filters: Record<string, unknown> = {};\n    protected destroyer: Destroyer = new Destroyer();\n    protected block_query_params: boolean = false;\n    protected deprecate_collection_subscription: Subject<void> = new Subject();\n    protected last_remote_filter: Record<string, unknown>;\n    protected last_page: IPage;\n\n    public constructor(\n        protected router: Router,\n        protected selectionBarService: SelectionBarService,\n        public updateFiltersService: UpdateFiltersService,\n        public activatedRoute: ActivatedRoute,\n        protected changeDetectorRef?: ChangeDetectorRef\n    ) {}\n\n    // WARNING: Used ngOnInit instead of constructor because it can be overriden by children if needed, don't override without intention\n    public ngOnInit(): void {\n        this.router.events\n            .pipe(this.destroyer.pipe())\n            .pipe(filter((event): boolean => event instanceof NavigationEnd))\n            .subscribe((): void => this.clearSelected());\n\n        this.activatedRoute.queryParams\n            // @important need to unsubscribe when activatedRoute is used in a mat-dialog\n            .pipe(this.destroyer.pipe())\n            .subscribe((queryParams): void => {\n                // TODO: COL-2385 should_reload is a hot fix for using tables with mat-tabs...\n                // improve if updates on query params are thrown to the filters\n                // NOTE: if queryParams is falsy, list should be reloaded because it's the first time that passes through this code\n                let should_reload: boolean = !this.queryParams || this.disableQueryParamsUpdate;\n                let remoteFilterDefault: IAttributes = new this.service.resource().attributes;\n                if (this.remoteFilter && !this.disableQueryParamsUpdate) {\n                    this.remoteFilter = this.updateFiltersService.getRemoteFilter(queryParams, remoteFilterDefault);\n                    should_reload = should_reload || !isEqual(this.last_remote_filter, remoteFilterDefault);\n                    this.last_remote_filter = cloneDeep(this.remoteFilter);\n                }\n                if (this.page && !this.disableQueryParamsUpdate) {\n                    this.page = this.updateFiltersService.getPaginationData(queryParams, this.page as Record<string, unknown>) as IPage;\n                    should_reload = should_reload || !isEqual(this.last_page, this.page);\n                    this.last_page = cloneDeep(this.page);\n                }\n                this.queryParams = queryParams;\n                if (should_reload || !this.queryParams) {\n                    this.realReload(this.page);\n                }\n            });\n    }\n\n    public updateFilter(current_filter: Record<string, unknown>): void {\n        /*\n         * This method removes remoteFilter queryParams from route to keep other query params\n         * and then merges in the new remoteFilter params\n         */\n\n        // Have to copy queryParams property because it can't be edited (it's a reference to the original angular's queryParams)\n        let queryParamsCopy: Record<string, unknown> = { ...this.queryParams };\n        if (queryParamsCopy.pageIndex) {\n            queryParamsCopy.pageIndex = '0';\n        }\n        let filter_keys: Array<string> = [];\n\n        Object.keys(this.remoteFilter).forEach((key): void => {\n            if (typeof this.remoteFilter[key] !== 'object') {\n                filter_keys.push(key);\n\n                return;\n            }\n\n            const filterValue: Record<string, unknown> = this.remoteFilter[key] as Record<string, unknown>;\n            Object.keys(filterValue).forEach((subKey): void => {\n                let filter_key: string = key + '[' + subKey + ']';\n                filter_keys.push(filter_key);\n            });\n        });\n\n        for (let key of filter_keys) {\n            delete queryParamsCopy[key];\n        }\n        this.remoteFilter = current_filter;\n\n        if (this.disableQueryParamsUpdate) {\n            this.realReload({ ...this.page, ...{ pageIndex: 0 } });\n        } else {\n            this.updateFiltersService.applyFilters({ ...queryParamsCopy, ...current_filter });\n        }\n    }\n\n    /*\n     * @description\n     * This method removes pagination queryParams from route to keep other query params\n     * and then merges in the new pagination params\n     */\n    public updatePagination(page: IPage): void {\n        if (!page) {\n            return;\n        }\n        // Have to copy queryParams property because it can't be edited (it's a reference to the original angular's queryParams)\n        let queryParamsCopy: Record<string, unknown> = { ...this.queryParams };\n\n        Object.keys(page).forEach((key): void => {\n            delete queryParamsCopy[key];\n        });\n\n        let queryParams: Record<string, unknown> = {};\n\n        if (!this.disableQueryParamsUpdate) {\n            queryParams = { pageSize: page.pageSize, pageIndex: page.pageIndex };\n        }\n\n        if (this.disableQueryParamsUpdate) {\n            return;\n        }\n\n        this.updateFiltersService.applyFilters({ ...queryParamsCopy, ...queryParams });\n    }\n\n    public resetFilters(): void {\n        this.updateFiltersService.applyFilters(this.essential_filters);\n    }\n\n    public realReload(page?: IPage): void {\n        console.log(page);\n    }\n\n    public fillPageData(page: IPage | PageEvent): void {\n        this.page = {\n            length: page.length,\n            pageIndex: page.pageIndex,\n            pageSize: page.pageSize\n        };\n    }\n\n    public requestCollectionAndUpdatePagination(request_options: IRequestCollectionOptions): Observable<DocumentCollection> {\n        this.deprecate_collection_subscription.next();\n        let pageIndex: number = 0;\n\n        if (this.page && this.page.pageIndex) {\n            pageIndex = this.page.pageIndex;\n        }\n\n        return request_options.service\n            .all({\n                include: request_options.include,\n                remotefilter: request_options.filter,\n                beforepath: request_options.beforepath,\n                page: {\n                    number:\n                        request_options.page && request_options.page.pageIndex !== undefined\n                            ? request_options.page.pageIndex * 1 + 1\n                            : pageIndex,\n                    size: request_options.page ? request_options.page.pageSize : this.pageSize\n                },\n                ttl: request_options.ttl,\n                sort: request_options.sort\n            })\n            .pipe(\n                filter((collection): boolean => collection.builded || this.dataTableSource.data.length === 0),\n                tap((collection): void => {\n                    this.collection = collection;\n                    if (this.page && this.page.pageSize !== undefined && this.page.pageIndex !== undefined) {\n                        this.dataTableSource.data = (this.collectionInfiniteScroll || [])\n                            .slice(0, this.page.pageIndex * this.page.pageSize)\n                            .concat(collection.data);\n                    } else {\n                        this.dataTableSource.data = collection.data;\n                    }\n                    if (request_options.page) {\n                        request_options.page.length = collection.page.total_resources;\n                        this.fillPageData(request_options.page);\n                    }\n                    if (!this.disableQueryParamsUpdate) {\n                        this.updatePagination(this.page);\n                    }\n                }),\n                takeUntil(this.deprecate_collection_subscription)\n            );\n    }\n\n    public ngOnDestroy(): void {\n        this.destroyer.destroy();\n        this.deprecate_collection_subscription.complete();\n        this.selectionBarService.clearMethod();\n    }\n\n    /** Checks if the number of selected rows matches the total number of rows */\n    public isAllSelected(): boolean {\n        const numSelected: number = this.selection.selected.length;\n        const numRows: number = this.dataTableSource.data.length;\n\n        return numSelected === numRows;\n    }\n\n    /** Selects all rows if they are not all selected; otherwise clear selection. */\n    public masterToggle(): void {\n        if (this.isAllSelected()) {\n            this.selection.clear();\n        } else {\n            this.dataTableSource.data.forEach((row): void => {\n                this.selection.select(row);\n            });\n        }\n    }\n\n    public callCheckboxEvents(event: { checked: boolean }, row?: Resource): void {\n        if (event.checked) this.openSelection();\n        if (event && row) {\n            this.selection.toggle(row);\n        } else if (event) {\n            this.masterToggle();\n        }\n        this.selectionBarService.selected(this.selection);\n    }\n\n    public openSelection(): void {\n        let inputs: Record<string, unknown> = this.selection_bar_inputs;\n        this.selectionBarService.init(this.selection_bar_component, inputs, {});\n    }\n\n    public selectedMenuOption(option: { key: string; data?: Array<unknown> }): void {\n        if (!isFunction(this[option.key])) {\n            console.warn('No se encontro el método', option.key, ', verifica su nombre');\n\n            return;\n        }\n\n        if (option.data) {\n            this[option.key](option.data);\n        } else {\n            this[option.key]();\n        }\n    }\n\n    protected compare(a: string | number, b: string | number, isAsc: boolean): number {\n        /* tslint:disable:strict-comparisons */\n        return (a < b ? -1 : 1) * (isAsc ? 1 : -1);\n        /* tslint:enable:strict-comparisons */\n    }\n\n    protected clearSelected(): void {\n        this.selection.clear();\n        if (this.changeDetectorRef) this.changeDetectorRef.detectChanges();\n    }\n\n    // protected runSelectionBarEvents(): void {\n    //     this.selectionBarService.selected$\n    //         .pipe(this.destroyer.pipe())\n    //         .subscribe(response => {\n    //             if (response.length <= 0) this.selection.clear();\n    //             if (this.changeDetectorRef) this.changeDetectorRef.detectChanges();\n    //         });\n\n    //     this.selectionBarService.callMethod$\n    //         .pipe(\n    //             this.destroyer.pipe(),\n    //             filter(methodRef => !['', null, undefined].includes(methodRef.method) && (typeof this[methodRef.method] === 'function'))\n    //         )\n    //         .subscribe(methodRef => this[methodRef.method](methodRef.params));\n    // }\n\n    // @TODO: COL-2447 ---> crear clase padre para que todas las selection bars extiendan y usarla en lugar del \"any\"\n    protected subscribeToSelectionBarEvents(\n        selection_bar_component: ComponentRef<{ reload: EventEmitter<void>; clearSelection: EventEmitter<void> }>\n    ): void {\n        selection_bar_component.instance.reload.subscribe((): void => {\n            this.realReload();\n        }); // Angular automatically unsubscribes Outputs\n        selection_bar_component.instance.clearSelection.subscribe((): void => {\n            this.clearSelected();\n        }); // Angular automatically unsubscribes Outputs\n    }\n}\n","import { Resource } from 'ngx-jsonapi';\n/* tslint:disable:variable-name */\nexport function trackById(_index: number, resource: Resource): string {\n    return resource.id;\n}\n/* tslint:enable:variable-name */\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n    selector: 'jam-nothing-here',\n    standalone: true,\n    imports: [CommonModule, MatIconModule],\n    styleUrls: ['./nothing-here.component.scss'],\n    templateUrl: './nothing-here.component.html'\n})\nexport class NothingHereComponent {\n    @Input() public classed: string;\n    @Input() public text: string;\n    @Input() public icon: string;\n    @Input() public imageOrIcon: 'image' | 'icon';\n    @Input() public imageUrl: string;\n}\n","<div class=\"{{ classed ? classed : '' }}\">\n    <div class=\"nothing-here-container\">\n        @switch (imageOrIcon) {\n            @case ('image') {\n                <div class=\"nothing-image-container\">\n                    <img [src]=\"imageUrl\" alt=\"Imagen {{text}}\">\n                </div>\n            }\n            @case ('icon') {\n                <span [style.opacity]=\"'0.4'\"><mat-icon style=\"font-size: 10em; width: 100%;\">{{ icon }}</mat-icon></span>\n            }\n        }\n        <div [innerHTML]=\"text\"></div>\n        <ng-content></ng-content>\n    </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n    selector: 'jam-table-spinner',\n    standalone: true,\n    imports: [CommonModule, MatProgressSpinnerModule, TranslateModule],\n    templateUrl: './table-spinner.component.html',\n    styleUrls: ['./table-spinner.component.scss']\n})\nexport class TableSpinnerComponent {\n    @Input() public color: 'primary' | 'accent' = 'accent';\n    @Input() public mode: 'determinate' | 'indeterminate' = 'indeterminate';\n    @Input() public value: number = 0;\n    @Input() public diameter: number = 70;\n    @Input() public spinnerClasses: string = 'width-100';\n}\n","<div class=\"{{ spinnerClasses }} table-spinner-container\">\n    <mat-spinner\n        [color]=\"color\"\n        [mode]=\"mode\"\n        [value]=\"value\"\n        [diameter]=\"diameter\"\n        [attr.aria-label]=\"'spinner.loading' | translate\"\n    ></mat-spinner>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DocumentCollection, Resource } from 'ngx-jsonapi';\nimport { NothingHereComponent } from '../nothing-here/nothing-here.component';\nimport { TableSpinnerComponent } from '../rs-table-spinner/table-spinner.component';\n\n@Component({\n    selector: 'jam-table-loader',\n    standalone: true,\n    imports: [CommonModule, NothingHereComponent, TableSpinnerComponent],\n    templateUrl: './table-loader.component.html',\n    styleUrls: ['./table-loader.component.scss']\n})\nexport class TableLoaderComponent {\n    @Input() public showNothingHere: boolean;\n    @Input() public nothingHereClasses: string;\n    @Input() public nothingHereText: string;\n    @Input() public imageOrIcon: 'image' | 'icon';\n    @Input() public nothingHereIcon: string;\n    @Input() public nothingHereImageUrl: string;\n\n    @Input() public showSpinner: boolean;\n    @Input() public spinnerColor: 'primary' | 'accent' = 'primary';\n    @Input() public spinnerMode: 'determinate' | 'indeterminate' = 'indeterminate';\n    @Input() public spinnerValue: number = 0;\n    @Input() public spinnerDiameter: number = 70;\n    @Input() public spinnerClasses: string;\n\n    @Input() public collection: DocumentCollection;\n    @Input() public dataSource: Array<Resource>;\n}\n","@if (!showSpinner && (showNothingHere || dataSource && dataSource.length === 0 && collection && collection.builded && !collection.is_loading)) {\n    <jam-nothing-here\n        [classed]=\"nothingHereClasses\"\n        [imageOrIcon]=\"imageOrIcon\"\n        [text]=\"nothingHereText\"\n        [imageUrl]=\"nothingHereImageUrl\"\n        [icon]=\"nothingHereIcon\"\n    >\n        <ng-content></ng-content>\n    </jam-nothing-here>\n}\n@if (showSpinner || dataSource && dataSource.length === 0 && (!collection || !collection.builded || collection.is_loading)) {\n    <jam-table-spinner\n        [color]=\"spinnerColor\"\n        [mode]=\"spinnerMode\"\n        [value]=\"spinnerValue\"\n        [diameter]=\"spinnerDiameter\"\n        [spinnerClasses]=\"spinnerClasses\"\n    ></jam-table-spinner>\n}\n\n","/***\n * Copyright (C) 1997-2017 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { ResponsiveColumns } from './table-components/responsive-columns';\nimport {\n    Component,\n    OnDestroy,\n    Input,\n    Output,\n    OnInit,\n    EventEmitter,\n    ComponentRef,\n    ChangeDetectionStrategy,\n    TemplateRef,\n    ChangeDetectorRef,\n    SimpleChanges,\n    OnChanges\n} from '@angular/core';\nimport { CommonModule, TitleCasePipe } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatTableModule, MatTableDataSource } from '@angular/material/table';\nimport { MatSortModule, Sort } from '@angular/material/sort';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { Column, Action } from './table-components/table-columns';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { DocumentCollection, Service, Resource, IParamsCollection } from 'ngx-jsonapi';\nimport { PageEvent } from '@angular/material/paginator';\nimport { ListBaseComponent, IPage } from '../list-base';\nimport { trackById } from '../base/track-by-id';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { SelectionBarService } from '../../selection-bar/selection-bar.service';\nimport { UpdateFiltersService } from '../base/update-filters/update-filters.component';\nimport { Menu } from '../../menu/menu-elements/menu';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { TableLoaderComponent } from '../base/table-loader/table-loader.component';\nimport { MenuComponent } from '../../menu/menu.component';\nimport { DynamicPipe } from '../dynamic-pipe/dynamic.pipe';\nimport { AppCapitalizePipe } from '../capitalize-pipe/capitalize.pipe';\n\n@Component({\n    selector: 'jam-list-base-common',\n    standalone: true,\n    imports: [\n        CommonModule,\n        FormsModule,\n        TranslateModule,\n        MatCardModule,\n        MatTableModule,\n        MatSortModule,\n        MatCheckboxModule,\n        MatIconModule,\n        MatButtonModule,\n        MatDividerModule,\n        TableLoaderComponent,\n        MenuComponent,\n        DynamicPipe,\n        AppCapitalizePipe,\n        TitleCasePipe\n    ],\n    templateUrl: './list-base-common.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    styleUrls: ['./list-base-common.component.scss'],\n    animations: [\n        trigger('detailExpand', [\n            state('collapsed', style({ height: '0px', minHeight: '0' })),\n            state('expanded', style({ height: '*' })),\n            transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'))\n        ])\n    ]\n})\nexport class ListBaseCommonComponent extends ListBaseComponent implements OnInit, OnChanges, OnDestroy {\n    @Input() public tableColumns: Array<Column>;\n    @Input() public displayedColumns: Array<string>;\n    @Input() public expandableRow: TemplateRef<unknown>;\n    @Input() public expandedElement: Resource | null;\n    @Input() public editElement: Resource | null;\n    @Input() public overrideEditableCellsSave: boolean = false;\n    @Input() public ngContentColumns: Array<string> = [];\n    @Input() public columnPipes: Record<string, unknown>;\n    @Input() public declare service: Service;\n    @Input() public include: Array<string> = [];\n    @Input() public beforePath: string;\n    @Input() public remoteFilter: Record<string, unknown> = {};\n    @Input() public actions: Array<Action>;\n    @Input() public showTableLoader: boolean = true;\n    @Input() public showActionsMenu: boolean = true;\n    @Input() public actions_menu: Menu;\n    @Input() public selectionBarComponent: Component;\n    @Input() public selectionBarComponentInputs: Record<string, unknown> = {};\n    @Input() public checkbox: boolean;\n    @Input() public responsiveColumns: ResponsiveColumns = new ResponsiveColumns();\n    @Input() public resizeContent: boolean = true;\n    @Input() public declare page: IPage;\n    @Input() public sort: Array<string>;\n    @Input() public disableQueryParamsUpdate: boolean = false;\n    @Input() public nothingHereClasses: string;\n    @Input() public nothingHereText: string;\n    @Input() public imageOrIcon: 'image' | 'icon' = 'icon';\n    @Input() public nothingHereIcon: string = 'sentiment_neutral';\n    @Input() public nothingHereImageUrl: string;\n    @Input() public reloadPageData: IPage = {};\n    @Input() public declare collectionInfiniteScroll: Array<Resource>;\n    @Input() public dataTableSource: MatTableDataSource<Resource> = new MatTableDataSource<Resource>();\n    @Output() public saveEditableCell: EventEmitter<Resource> = new EventEmitter<Resource>();\n    @Output() public pageLengthChange: EventEmitter<number> = new EventEmitter<number>();\n    @Output() public pageSizeOptionsEmit: EventEmitter<Array<number>> = new EventEmitter<Array<number>>();\n    @Output() public collectionChange: EventEmitter<DocumentCollection> = new EventEmitter();\n    @Output() public actionsClick: EventEmitter<unknown> = new EventEmitter();\n    @Output() public rowClick: EventEmitter<unknown> = new EventEmitter();\n    @Output() public rowDoubleClick: EventEmitter<unknown> = new EventEmitter();\n    @Output() public selectionBarComponentCreated: EventEmitter<ComponentRef<unknown>> = new EventEmitter<ComponentRef<unknown>>();\n    @Output() public openedActionsMenu: EventEmitter<Resource> = new EventEmitter<Resource>(); // @todo: use generic typing or remove type\n    public trackById: (_index: number, resource: Resource) => string = trackById;\n    public masterCheckbox: SelectionModel<Resource>;\n\n    // Expose Breakpoints for template usage\n    public Breakpoints: typeof Breakpoints = Breakpoints;\n\n    public constructor(\n        public router: Router,\n        public activatedRoute: ActivatedRoute,\n        public updateFiltersService: UpdateFiltersService,\n        public selectionBarService: SelectionBarService,\n        private breakpointObserver: BreakpointObserver,\n        private translateService: TranslateService,\n        protected changeDetectorRef: ChangeDetectorRef\n    ) {\n        super(router, selectionBarService, updateFiltersService, activatedRoute);\n        if (!this.nothingHereText) {\n            this.nothingHereText = this.translateService.instant('list.nothing_here');\n        }\n    }\n\n    // Recives a cell element and return the corresponding column sytles\n    @Input() public columnHeaderClasses: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public columnHeaderStyles: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellClasses: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellStyles: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellDataClasses: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellDataStyles: (column: string, element: Resource) => Record<string, string> | null = (): Record<\n        string,\n        string\n    > | null => {\n        return null;\n    };\n\n    public ngOnInit(): void {\n        super.ngOnInit();\n        // TODO: remove resizeTableContent used outside observable when flex-layout works fine\n        if (!this.tableColumns.find((column): boolean => column.key === 'mobile')) {\n            this.tableColumns.splice(1, 0, new Column('mobile', ' ', ' '));\n        }\n        this.pageSizeOptionsEmit.emit(this.pageSizeOptions);\n    }\n\n    public ngOnChanges(changes: SimpleChanges): void {\n        this.changeReloadPageData(changes);\n        this.changeCollectionInfiniteScroll(changes);\n    }\n\n    private changeReloadPageData(changes: SimpleChanges): void {\n        if (\n            changes['reloadPageData'] &&\n            changes['reloadPageData'].currentValue &&\n            Object.keys(changes['reloadPageData'].currentValue).length > 0\n        ) {\n            this.realReload(changes['reloadPageData'].currentValue, { ttl: 0 }, false);\n        }\n    }\n\n    private changeCollectionInfiniteScroll(changes: SimpleChanges): void {\n        if (changes.collectionInfiniteScroll && changes.collectionInfiniteScroll.currentValue.length !== 0) {\n            this.dataTableSource.data = changes.collectionInfiniteScroll.currentValue;\n        }\n    }\n\n    public realReload(page?: PageEvent | IPage, options: IParamsCollection = {}, clear_data: boolean = true): void {\n        // @TODO: implement IParamsCollection in ListBase class and use it to manage requests data\n        this.requestCollectionAndUpdatePagination({\n            service: this.service,\n            filter: this.remoteFilter,\n            clear_data: clear_data,\n            include: this.include,\n            beforepath: this.beforePath,\n            page: page,\n            sort: this.sort,\n            ttl: options.ttl\n        }).subscribe((): void => {\n            this.pageLengthChange.emit(this.page && this.page.length ? this.page.length : 0);\n            this.collectionChange.emit(this.collection);\n            this.changeDetectorRef.detectChanges();\n        });\n    }\n\n    public mainRowClick(row: Resource): void {\n        /* tslint:disable:strict-comparisons */\n        this.expandedElement = this.expandedElement === row ? null : row;\n        this.rowClick.emit(row);\n        /* tslint:enable:strict-comparisons */\n    }\n\n    public editTableElement(element: Resource): void {\n        if (this.editElement) {\n            return;\n        }\n        this.editElement = element;\n    }\n\n    public clearEditElement(): void {\n        this.editElement = null;\n    }\n\n    public saveTableElement(element: Resource, column: Column, value: unknown): void {\n        let last_value: unknown = element.attributes[column.key];\n        element.attributes[column.key] = value;\n        if (this.overrideEditableCellsSave) {\n            this.saveEditableCell.emit(element);\n\n            return;\n        }\n        element.save().subscribe(\n            (): void => {\n                this.changeDetectorRef.detectChanges();\n            },\n            (error): void => {\n                element.attributes[column.key] = last_value;\n                this.changeDetectorRef.detectChanges();\n                throw new Error(error);\n            }\n        );\n        this.editElement = null;\n    }\n\n    public actionClick(element: Resource, key: string): void {\n        this.actionsClick.emit({ element, key });\n    }\n\n    public openSelection(): void {\n        let inputs: { selection: SelectionModel<Resource> } = {\n            selection: this.selection,\n            ...this.selectionBarComponentInputs\n        };\n\n        let selection_bar_component: ComponentRef<unknown> | undefined = this.selectionBarService.init(\n            this.selectionBarComponent,\n            inputs,\n            {}\n        );\n        if (!selection_bar_component) {\n            return;\n        }\n        if (this.selectionBarComponentCreated.observers.length > 0) {\n            this.selectionBarComponentCreated.emit(selection_bar_component);\n        } else {\n            this.subscribeToSelectionBarEvents(\n                selection_bar_component as ComponentRef<{ reload: EventEmitter<void>; clearSelection: EventEmitter<void> }>\n            );\n        }\n    }\n\n    public getDisplayedColumns(table_columns: Array<Column>, displayed_columns_array?: Array<string>): Array<string> {\n        let columns: Array<string> =\n            displayed_columns_array || table_columns.map((column): string => column.key).filter((key): boolean => key !== 'mobile');\n\n        if (!this.resizeContent) {\n            return columns;\n        }\n\n        if (this.breakpointObserver.isMatched(Breakpoints.XSmall)) {\n            return this.responsiveColumns.xs || columns; // mobile\n        }\n        if (this.breakpointObserver.isMatched(Breakpoints.Small)) {\n            return this.responsiveColumns.sm || columns; // mobile\n        }\n        if (this.breakpointObserver.isMatched(Breakpoints.Medium)) {\n            return this.responsiveColumns.md || columns; // mobile\n        }\n        if (this.breakpointObserver.isMatched(Breakpoints.Large)) {\n            return this.responsiveColumns.lg || columns; // mobile\n        }\n\n        return columns;\n    }\n\n    public sortByColumn(sort: Sort): void {\n        this.page = {\n            pageSize: this.page.pageSize,\n            pageIndex: 0,\n            length: undefined\n        };\n        this.sort = [];\n        if (sort.direction === 'asc') {\n            this.sort.push(sort.active);\n        } else if (sort.direction === 'desc') {\n            this.sort.push('-' + sort.active);\n        }\n        this.realReload(this.page);\n    }\n}\n","<div class=\"loader-container\">\n    <jam-table-loader\n        nothingHereClasses=\"layout-padding\"\n        [nothingHereClasses]=\"nothingHereClasses\"\n        [imageOrIcon]=\"imageOrIcon\"\n        [nothingHereText]=\"nothingHereText\"\n        [nothingHereImageUrl]=\"nothingHereImageUrl\"\n        [nothingHereIcon]=\"nothingHereIcon\"\n        [showSpinner]=\"dataTableSource.data.length === 0 && (collection && !collection.builded)\"\n        [showNothingHere]=\"dataTableSource.data.length === 0 && (collection && collection.builded)\"\n    ></jam-table-loader>\n</div>\n\n@if (dataTableSource.data.length !== 0) {\n    <mat-card\n        class=\"padding-0\"\n    >\n        <table mat-table\n            #table\n            multiTemplateDataRows\n            [dataSource]=\"dataTableSource\"\n            [trackBy]=\"trackById\"\n            matSort\n            (matSortChange)=\"sortByColumn($event)\"\n            [ngClass]=\"checkbox ? (selection.selected.length > 0 ? 'selected-enabled' : 'selected-disabled') : 'none-checkbox'\"\n        >\n            <!-- Columns -->\n            @for (column of tableColumns; track column) {\n                <ng-container [matColumnDef]=\"column.key\">\n                    <mat-header-cell\n                        *matHeaderCellDef=\"let element\"\n                        [mat-sort-header]=\"column.sort_key\"\n                        [disabled]=\"!column.sort_key\"\n                        [ngClass]=\"columnHeaderClasses(column.key, element) || column.classes.header\"\n                        [ngStyle]=\"columnHeaderStyles(column.key, element) || column.styles.header\"\n                    >\n                        @switch (column.key) {\n                            @case ('select') {\n                                <mat-checkbox\n                                    name=\"master\"\n                                    (change)=\"callCheckboxEvents($event)\"\n                                    [checked]=\"selection.hasValue() && isAllSelected()\"\n                                    [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n                                    [(ngModel)]=\"masterCheckbox\">\n                                </mat-checkbox>\n                            }\n                            @default {\n                                <ng-container>\n                                    {{ column.title || (column.key | translate) | capitalize }}\n                                </ng-container>\n                            }\n                        }\n                    </mat-header-cell>\n\n                    <mat-cell\n                        *matCellDef=\"let element\"\n                        [ngClass]=\"cellClasses(column.key, element) || column.classes.cell\"\n                        [ngStyle]=\"cellStyles(column.key, element) || column.styles.cell\"\n                    >\n                        @switch (true) {\n                            @case (['actions', 'select', 'mobile'].indexOf(column.key) === -1) {\n                                <div\n                                    [ngClass]=\"cellDataClasses(column.key, element) || column.classes.cell_data\"\n                                    [ngStyle]=\"cellDataStyles(column.key, element) || column.styles.cell_data\"\n                                >\n                                    <ng-container\n                                        [ngTemplateOutlet]=\"contentTemplate\"\n                                        [ngTemplateOutletContext]=\"{element: element, column: column}\"\n                                    ></ng-container>\n                                </div>\n                            }\n                            @case (column.key === 'select') {\n                                <mat-checkbox\n                                    (dblclick)=\"$event.stopPropagation()\"\n                                    (change)=\"callCheckboxEvents($event, element)\"\n                                    [checked]=\"selection.isSelected(element)\"\n                                >\n                                </mat-checkbox>\n                                @if (ngContentColumns.indexof(column) !== -1) {\n                                    <!-- <ng-content select=\"[column-content-receipt_number]\"></ng-content> -->\n                                }\n                            }\n                            @case (breakpointObserver.isMatched(Breakpoints.XSmall) && column.key === 'mobile') {\n                                <div\n                                    class=\"spanlabels width-100 mobile-column-layout\"\n                                    style=\"padding: 8px\"\n                                >\n                                    @for (mobile_column of tableColumns; track mobile_column) {\n                                        <div class=\"mobile-column-row\">\n                                            @if (['actions', 'select', 'mobile'].indexOf(mobile_column.key) === -1) {\n                                                <ng-container\n                                                    [ngTemplateOutlet]=\"contentTemplate\"\n                                                    [ngTemplateOutletContext]=\"{element: element, column: mobile_column}\"\n                                                ></ng-container>\n                                            }\n                                        </div>\n                                    }\n                                    <mat-divider horizontal></mat-divider>\n                                </div>\n                            }\n                            @case (column.key === 'actions' && showActionsMenu && actions_menu === null) {\n                                <div\n                                    class=\"mouseover-child\"\n                                    [ngClass]=\"cellDataClasses(column.key, element) || column.classes.cell_data\"\n                                    [ngStyle]=\"cellDataStyles(column.key, element) || column.styles.cell_data\"\n                                >\n                                    @for (action of actions; track action) {\n                                        <button\n                                            mat-icon-button\n                                            class=\"mat-button\"\n                                            (click)=\"$event.stopPropagation(); actionClick(element, action.key)\"\n                                        >\n                                            @if (action.icon?.svg) {\n                                                <mat-icon [svgIcon]=\"action.icon?.svg\"></mat-icon>\n                                            }\n                                            @if (action.icon?.material) {\n                                                <mat-icon>{{ action.icon?.material }}</mat-icon>\n                                            }\n                                        </button>\n                                    }\n                                </div>\n                            }\n                            @case (column.key === 'actions' && showActionsMenu && actions_menu !== null) {\n                                <ng-container>\n                                    <jam-menu\n                                        [menu]=\"actions_menu\"\n                                        (click)=\"$event.stopPropagation(); openedActionsMenu.emit(element)\"\n                                        (selected)=\"actionClick(element, $event.key)\"\n                                        [ngClass]=\"cellDataClasses(column.key, element) || column.classes.cell_data\"\n                                        [ngStyle]=\"cellDataStyles(column.key, element) || column.styles.cell_data\"\n                                    ></jam-menu>\n                                </ng-container>\n                            }\n                        }\n                    </mat-cell>\n                </ng-container>\n            }\n\n            <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n            @if (expandableRow) {\n                <ng-container matColumnDef=\"expandedDetail\">\n                    <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"getDisplayedColumns(tableColumns, displayedColumns).length\">\n                        <div\n                            class=\"element-detail\"\n                            [@detailExpand]=\"element === expandedElement ? 'expanded' : 'collapsed'\"\n                        >\n                            <div class=\"element-description\">\n                                <ng-container\n                                    [ngTemplateOutlet]=\"expandableRow\"\n                                    [ngTemplateOutletContext]=\"{ element: element }\"\n                                ></ng-container>\n                            </div>\n                        </div>\n                    </td>\n                </ng-container>\n            }\n\n            <!-- Rows -->\n            <mat-header-row *matHeaderRowDef=\"getDisplayedColumns(tableColumns, displayedColumns)\"></mat-header-row>\n            <mat-row\n                rsMoveBetweenRows\n                *matRowDef=\"let row; columns: getDisplayedColumns(tableColumns, displayedColumns); let rIndex = index\"\n                class=\"mouseover element-row\"\n                [ngClass]=\"row.attributes?.__selected ? 'custom-selected-row' : null\"\n                (dblclick)=\"rowDoubleClick.emit(row)\"\n                [class.expanded-row]=\"expandedElement === row\"\n                [class.expandable-row]=\"expandableRow\"\n                (click)=\"mainRowClick(row)\"\n            ></mat-row>\n            @if (expandableRow) {\n                <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\"></tr>\n            }\n        </table>\n    </mat-card>\n}\n\n<ng-content></ng-content>\n\n<ng-template #contentTemplate let-element=\"element\" let-column=\"column\">\n    <div  *ngIf=\"!breakpointObserver.isMatched('(max-width: 599px)') || column.hide_mobile_cell\" [ngClass]=\"breakpointObserver.isMatched('(max-width: 599px)') && column.hide_mobile_cell ? 'flex-row-start-center' : ''\">\n        <span class=\"row-name\" *ngIf=\"breakpointObserver.isMatched('(max-width: 599px)') && column.show_mobile_title\" style=\"padding-right: 8px\">{{ column.mobile_title || column.title || (column.key | translate) | titlecase }}:</span>\n\n            <!-- NOTE: custom template -->\n            @if (column?.template && !(column?.form_field && editElement === element)) {\n                <!-- <ng-container\n                    [ngTemplateOutlet]=\"column.template\"\n                    [ngTemplateOutletContext]=\"{element: element}\"\n                ></ng-container> -->\n            }\n\n            <!-- NOTE: editale tables -->\n            @if (column?.form_field && editElement === element) {\n                <!-- <div class=\"editable-cell editable-cell-layout\">\n                    <jam-editable-cell-content\n                        [element]=\"element\"\n                        [column]=\"column\"\n                        (save)=\"saveTableElement(element, column, $event)\"\n                        (cancel)=\"clearEditElement()\"\n                    ></jam-editable-cell-content>\n                </div> -->\n            }\n\n            @if (column?.template) {\n                <ng-container\n                    [ngTemplateOutlet]=\"column.template\"\n                    [ngTemplateOutletContext]=\"{element: element}\"\n                ></ng-container>\n            }\n            @if (!column?.template_only) {\n                <ng-container>\n                    @if (column.pipe && column.pipe.pipe) {\n                        <ng-container>\n                            {{ (column.getValueFromRelationshipAttribute(element) || element.attributes[column.key] || column.default_value) | dynamic: column.pipe.pipe : (column.pipe.arg || element.attributes[column.pipe.attribute_key_arg]) }}\n                        </ng-container>\n                    }\n                    @if (column && !column.pipe) {\n                        <ng-container>\n                            {{ column.getValueFromRelationshipAttribute(element) || element.attributes[column.key] || column.default_value }}\n                        </ng-container>\n                    }\n                    <!-- tengo que poner los dos íconos porque material falla aleatoriamente al agregar íconos con SVG y nombre juntos (aunque solo le llegue uno) -->\n                    @if (column.icon?.type === 'material') {\n                        <mat-icon\n                            [matTooltip]=\"column.icon.getIconTooltipFromResource(element)\"\n                            [ngClass]=\"column.icon.classes\"\n                            [ngStyle]=\"column.icon.style\"\n                        >\n                            {{ column.icon.name || column.icon.getIconNameFromResource(element) }}\n                        </mat-icon>\n                    }\n                    @if (column.icon?.type === 'svg') {\n                        <mat-icon\n                            [matTooltip]=\"column.icon.getIconTooltipFromResource(element)\"\n                            [ngStyle]=\"column.icon.style\"\n                            [ngClass]=\"column.icon.classes\"\n                            [svgIcon]=\"column.icon.name || column.icon.getIconNameFromResource(element)\"\n                        ></mat-icon>\n                    }\n                </ng-container>\n            }\n        </div>\n</ng-template>\n","/***\n * Copyright (C) 1997-2017 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { ResponsiveColumns } from '../table-components/responsive-columns';\nimport {\n    Component,\n    Input,\n    Output,\n    EventEmitter,\n    ComponentRef,\n    ChangeDetectionStrategy,\n    TemplateRef,\n    ChangeDetectorRef,\n    ViewChild,\n    AfterViewInit,\n    OnChanges,\n    SimpleChanges\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\nimport { Column, Action } from '../table-components/table-columns';\nimport { DocumentCollection, Service, Resource, IParamsCollection } from 'ngx-jsonapi';\nimport { IPage } from '../../list-base';\nimport { Menu } from '../../../menu/menu-elements/menu';\nimport { JamRefreshService } from '../../../refresh/refresh.component';\nimport { Destroyer } from '../../../destroyer';\nimport { ListBaseCommonComponent } from '../list-base-common.component';\nimport { MatTableDataSource } from '@angular/material/table';\n\n@Component({\n    selector: 'jam-list-base-common-paginator',\n    standalone: true,\n    imports: [CommonModule, MatPaginatorModule, ListBaseCommonComponent],\n    templateUrl: './list-base-common-paginator.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    styleUrls: ['./list-base-common-paginator.component.scss']\n})\nexport class ListBaseCommonPaginatorComponent implements AfterViewInit, OnChanges {\n    public reloadPageData: IPage | undefined = undefined;\n    public pageSizeOptions: Array<number> = [];\n    public dataTableSource: MatTableDataSource<Resource> = new MatTableDataSource<Resource>();\n    @ViewChild('table', { static: false }) public table!: ListBaseCommonComponent;\n    @Input() public tableColumns: Array<Column>;\n    @Input() public displayedColumns: Array<string>;\n    @Input() public expandableRow: TemplateRef<unknown>;\n    @Input() public expandedElement: Resource;\n    @Input() public editElement: Resource;\n    @Input() public overrideEditableCellsSave: boolean = false;\n    @Input() public ngContentColumns: Array<string> = [];\n    @Input() public columnPipes: Record<string, unknown>;\n    @Input({ required: true }) public service!: Service;\n    @Input() public include: Array<string> = [];\n    @Input() public beforePath: string;\n    @Input() public remoteFilter: Record<string, unknown> = {};\n    @Input() public actions: Array<Action>;\n    @Input() public showTableLoader: boolean = true;\n    @Input() public showActionsMenu: boolean = true;\n    @Input() public actions_menu: Menu;\n    @Input() public selectionBarComponent: Component;\n    @Input() public selectionBarComponentInputs: Record<string, unknown> = {};\n    @Input() public checkbox: boolean;\n    @Input() public responsiveColumns: ResponsiveColumns = new ResponsiveColumns();\n    @Input() public resizeContent: boolean = true;\n    @Input() public page: IPage = {\n        pageIndex: 0,\n        pageSize: 25\n    };\n    @Input() public sort: Array<string>;\n    @Input() public disableQueryParamsUpdate: boolean = false;\n    @Input() public nothingHereClasses: string;\n    @Input() public nothingHereText: string = 'Todavía no tienes nada por aquí';\n    @Input() public imageOrIcon: 'image' | 'icon' = 'icon';\n    @Input() public nothingHereIcon: string = 'sentiment_neutral';\n    @Input() public nothingHereImageUrl: string;\n    @Output() public saveEditableCell: EventEmitter<Resource> = new EventEmitter<Resource>();\n    @Output() public collectionChange: EventEmitter<DocumentCollection> = new EventEmitter();\n    @Output() public actionsClick: EventEmitter<unknown> = new EventEmitter();\n    @Output() public rowClick: EventEmitter<unknown> = new EventEmitter();\n    @Output() public rowDoubleClick: EventEmitter<unknown> = new EventEmitter();\n    @Output() public selectionBarComponentCreated: EventEmitter<ComponentRef<unknown>> = new EventEmitter<ComponentRef<unknown>>();\n    @Output() public openedActionsMenu: EventEmitter<Resource> = new EventEmitter<Resource>(); // @todo: use generic typing or remove type\n    // Recives a cell element and return the corresponding column sytles\n    @Input() public columnHeaderClasses: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public columnHeaderStyles: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellClasses: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellStyles: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellDataClasses: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellDataStyles: (column: string, element: Resource) => Record<string, string> | null = (): Record<\n        string,\n        string\n    > | null => {\n        return null;\n    };\n\n    private destroyer: Destroyer = new Destroyer();\n\n    public constructor(private changeDetectorRef: ChangeDetectorRef, private rsRefreshService: JamRefreshService) {\n        this.rsRefreshService.refreshSubject.pipe(this.destroyer.pipe()).subscribe((): void => {\n            this.reloadPageData = { ...this.page };\n            this.changeDetectorRef.detectChanges();\n        });\n    }\n\n    public ngAfterViewInit(): void {\n        setTimeout(() => {\n            if (this.page && !this.reloadPageData) {\n                this.reloadPageData = { ...this.page };\n                this.changeDetectorRef.detectChanges();\n            }\n        });\n    }\n\n    public ngOnChanges(changes: SimpleChanges): void {\n        if (changes['service'] && changes['service'].currentValue && !changes['service'].firstChange) {\n            setTimeout(() => {\n                if (this.page) {\n                    this.reloadPageData = { ...this.page };\n                    this.changeDetectorRef.detectChanges();\n                }\n            });\n        }\n    }\n    public ngOnInit(): void {\n        if (this.page && !this.reloadPageData) {\n            this.reloadPageData = { ...this.page };\n        }\n    }\n\n    public realReload(page?: PageEvent | IPage, options: IParamsCollection = {}, clear_data: boolean = true): void {\n        this.table.realReload(page, options, clear_data);\n    }\n\n    public updateFilter(current_filter: Record<string, unknown>): void {\n        this.table.updateFilter(current_filter);\n    }\n\n    public pageLengthChange(length: number): void {\n        this.page.length = length;\n        this.changeDetectorRef.detectChanges();\n    }\n\n    public pageSizeOptionsEmit(pageSizeOptions: Array<number>): void {\n        this.pageSizeOptions = pageSizeOptions;\n        this.changeDetectorRef.detectChanges();\n    }\n\n    public reloadPage(page: IPage): void {\n        this.reloadPageData = page;\n        this.changeDetectorRef.detectChanges();\n    }\n\n    public ngOnDestroy(): void {\n        this.destroyer.destroy();\n    }\n}\n","@if (service) {\n    <jam-list-base-common\n    #table\n    [tableColumns]=\"tableColumns\"\n    [dataTableSource]=\"dataTableSource\"\n    [service]=\"service\"\n    [actions]=\"actions\"\n    [remoteFilter]=\"remoteFilter\"\n    [displayedColumns]=\"displayedColumns\"\n    [expandableRow]=\"expandableRow\"\n    [expandedElement]=\"expandedElement\"\n    [editElement]=\"editElement\"\n    [overrideEditableCellsSave]=\"overrideEditableCellsSave\"\n    [ngContentColumns]=\"ngContentColumns\"\n    [columnPipes]=\"columnPipes\"\n    [include]=\"include\"\n    [beforePath]=\"beforePath\"\n    [showTableLoader]=\"showTableLoader\"\n    [showActionsMenu]=\"showActionsMenu\"\n    [actions_menu]=\"actions_menu\"\n    [selectionBarComponent]=\"selectionBarComponent\"\n    [selectionBarComponentInputs]=\"selectionBarComponentInputs\"\n    [checkbox]=\"checkbox\"\n    [responsiveColumns]=\"responsiveColumns\"\n    [resizeContent]=\"resizeContent\"\n    [page]=\"page\"\n    [sort]=\"sort\"\n    [columnHeaderClasses]=\"columnHeaderClasses\"\n    [columnHeaderStyles]=\"columnHeaderStyles\"\n    [cellClasses]=\"cellClasses\"\n    [cellStyles]=\"cellStyles\"\n    [cellDataClasses]=\"cellDataClasses\"\n    [cellDataStyles]=\"cellDataStyles\"\n    [disableQueryParamsUpdate]=\"disableQueryParamsUpdate\"\n    [nothingHereClasses]=\"nothingHereClasses\"\n    [nothingHereText]=\"nothingHereText\"\n    [imageOrIcon]=\"imageOrIcon\"\n    [nothingHereIcon]=\"nothingHereIcon\"\n    [nothingHereImageUrl]=\"nothingHereImageUrl\"\n    [reloadPageData]=\"reloadPageData\"\n    (saveEditableCell)=\"saveEditableCell.emit($event)\"\n    (collectionChange)=\"collectionChange.emit($event)\"\n    (actionsClick)=\"actionsClick.emit($event)\"\n    (rowClick)=\"rowClick.emit($event)\"\n    (rowDoubleClick)=\"rowDoubleClick.emit($event)\"\n    (selectionBarComponentCreated)=\"selectionBarComponentCreated.emit($event)\"\n    (pageLengthChange)=\"pageLengthChange($event)\"\n    (pageSizeOptionsEmit)=\"pageSizeOptionsEmit($event)\"\n    (openedActionsMenu)=\"openedActionsMenu.emit($event)\"\n    >\n    </jam-list-base-common>\n    @if (page.length && page.length > 0) {\n        <mat-paginator\n            #paginator\n            [pageIndex]=\"page.pageIndex\"\n            [pageSize]=\"page.pageSize\"\n            [pageSizeOptions]=\"pageSizeOptions\"\n            [length]=\"page.length\"\n            (page)=\"reloadPage($event)\">\n        </mat-paginator>\n    }\n}","/***\n * Copyright (C) 1997-2017 Reyesoft <info@reyesoft.com>\n *\n * This file is part of Multinexo. Multinexo can not be copied and/or\n * distributed without the express permission of Reyesoft\n */\n\nimport { ResponsiveColumns } from '../table-components/responsive-columns';\nimport {\n    Component,\n    Input,\n    Output,\n    EventEmitter,\n    ComponentRef,\n    ChangeDetectionStrategy,\n    TemplateRef,\n    ChangeDetectorRef,\n    ViewChild,\n    AfterViewInit\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Column, Action } from '../table-components/table-columns';\nimport { DocumentCollection, Service, Resource, IParamsCollection } from 'ngx-jsonapi';\nimport { IPage } from '../../list-base';\nimport { Menu } from '../../../menu/menu-elements/menu';\nimport { JamRefreshService } from '../../../refresh/refresh.component';\nimport { Destroyer } from '../../../destroyer';\nimport { PageEvent } from '@angular/material/paginator';\nimport { ListBaseCommonComponent } from '../list-base-common.component';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n\n@Component({\n    selector: 'jam-list-base-common-infinite-scroll',\n    standalone: true,\n    imports: [CommonModule, ListBaseCommonComponent, MatButtonModule, TranslateModule],\n    templateUrl: './list-base-common-infinite-scroll.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    styleUrls: ['./list-base-common-infinite-scroll.component.scss']\n})\nexport class ListBaseCommonInfiniteScrollComponent implements AfterViewInit {\n    public reloadPageData: IPage;\n    public collection: Array<Resource> = [];\n    public disableQueryParamsUpdate: boolean = true;\n    public disabledButton: boolean = false;\n    public pageIndex: number = 0;\n    public dataTableSource: MatTableDataSource<Resource> = new MatTableDataSource<Resource>();\n    private destroyer: Destroyer = new Destroyer();\n    @ViewChild('table') public table: ListBaseCommonComponent;\n    @Input() public tableColumns: Array<Column>;\n    @Input() public displayedColumns: Array<string>;\n    @Input() public expandableRow: TemplateRef<unknown>;\n    @Input() public expandedElement: Resource;\n    @Input() public editElement: Resource;\n    @Input() public overrideEditableCellsSave: boolean = false;\n    @Input() public ngContentColumns: Array<string> = [];\n    @Input() public columnPipes: Record<string, unknown>;\n    @Input({ required: true }) public service!: Service;\n    @Input() public include: Array<string> = [];\n    @Input() public beforePath: string;\n    @Input() public remoteFilter: Record<string, unknown> = {};\n    @Input() public actions: Array<Action>;\n    @Input() public showTableLoader: boolean = true;\n    @Input() public showActionsMenu: boolean = true;\n    @Input() public actions_menu: Menu;\n    @Input() public selectionBarComponent: Component;\n    @Input() public selectionBarComponentInputs: Record<string, unknown> = {};\n    @Input() public checkbox: boolean;\n    @Input() public responsiveColumns: ResponsiveColumns = new ResponsiveColumns();\n    @Input() public resizeContent: boolean = true;\n    @Input() public page: IPage = {\n        pageIndex: 0,\n        pageSize: 25\n    };\n    @Input() public sort: Array<string>;\n    @Input() public nothingHereClasses: string;\n    @Input() public nothingHereText: string;\n    @Input() public imageOrIcon: 'image' | 'icon' = 'icon';\n    @Input() public nothingHereIcon: string = 'sentiment_neutral';\n    @Input() public nothingHereImageUrl: string;\n    @Output() public saveEditableCell: EventEmitter<Resource> = new EventEmitter<Resource>();\n    @Output() public collectionChange: EventEmitter<DocumentCollection> = new EventEmitter();\n    @Output() public actionsClick: EventEmitter<unknown> = new EventEmitter();\n    @Output() public rowClick: EventEmitter<unknown> = new EventEmitter();\n    @Output() public rowDoubleClick: EventEmitter<unknown> = new EventEmitter();\n    @Output() public selectionBarComponentCreated: EventEmitter<ComponentRef<unknown>> = new EventEmitter<ComponentRef<unknown>>();\n    @Output() public openedActionsMenu: EventEmitter<Resource> = new EventEmitter<Resource>(); // @todo: use generic typing or remove type\n    // Recives a cell element and return the corresponding column sytles\n    @Input() public columnHeaderClasses: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public columnHeaderStyles: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellClasses: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellStyles: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellDataClasses: (column: string, element: Resource) => Record<string, string> = (): Record<string, string> => {\n        return {};\n    };\n    @Input() public cellDataStyles: (column: string, element: Resource) => Record<string, string> | null = (): Record<\n        string,\n        string\n    > | null => {\n        return null;\n    };\n\n    public constructor(\n        private changeDetectorRef: ChangeDetectorRef,\n        private rsRefreshService: JamRefreshService,\n        private translateService: TranslateService\n    ) {\n        this.nothingHereText = this.translateService.instant('list.nothing_here');\n        this.observerAutoRefresh();\n        this.observerRefresh();\n    }\n\n    public ngAfterViewInit(): void {\n        setTimeout(() => {\n            if (this.page && !this.reloadPageData && this.table) {\n                this.reloadPageData = { ...this.page };\n                this.changeDetectorRef.detectChanges();\n            }\n        });\n    }\n\n    public realReload(page?: PageEvent | IPage, options: IParamsCollection = {}, clear_data: boolean = true): void {\n        this.table.realReload(page, options, clear_data);\n    }\n\n    public updateFilter(current_filter: Record<string, unknown>): void {\n        this.table.updateFilter(current_filter);\n    }\n\n    private observerAutoRefresh(): void {\n        this.rsRefreshService.autoRefreshSubject.pipe(this.destroyer.pipe()).subscribe((): void => {\n            this.pageIndex = this.page && this.page.pageIndex ? this.page.pageIndex : 0;\n            this.reloadPageData = { ...this.page };\n            this.changeDetectorRef.detectChanges();\n        });\n    }\n\n    private observerRefresh(): void {\n        this.rsRefreshService.refreshSubject.pipe(this.destroyer.pipe()).subscribe((): void => {\n            this.page.pageIndex = 0;\n            this.pageIndex = 0;\n            this.reloadPageData = { ...this.page };\n            this.changeDetectorRef.detectChanges();\n        });\n    }\n\n    public pageLengthChange(length: number): void {\n        if (!this.page || !this.page.length) {\n            return;\n        }\n        this.page.length = length;\n    }\n\n    public reloadPage(): void {\n        if (!this.page) {\n            return;\n        }\n\n        if (this.page.pageIndex === undefined || this.page.pageIndex === null) {\n            this.page.pageIndex = 0;\n        }\n\n        this.page.pageIndex = this.page.pageIndex + 1;\n        this.pageIndex = this.page.pageIndex;\n        this.reloadPageData = { ...this.page };\n        this.changeDetectorRef.detectChanges();\n    }\n\n    public setCollection(collection: DocumentCollection): void {\n        this.collectionChange.emit(collection);\n        this.collection = this.cutAndReload(this.pageIndex, collection.data);\n        this.disabledButton = this.disableButton(collection);\n        this.changeDetectorRef.detectChanges();\n    }\n\n    private disableButton(collection: DocumentCollection): boolean {\n        if (collection.page.total_resources === 0) {\n            return false;\n        }\n\n        if (!collection.page.resources_per_page) {\n            return false;\n        }\n\n        if (collection.page.total_resources <= collection.page.resources_per_page) {\n            return true;\n        }\n        if (collection.page.total_resources === this.collection.length) {\n            return true;\n        }\n\n        return false;\n    }\n\n    private cutAndReload(pageIndex: number, collection: Array<Resource>): Array<Resource> {\n        if (!this.page?.pageSize) {\n            return this.collection.concat(collection);\n        }\n\n        if (this.collection[pageIndex * this.page.pageSize] === undefined) {\n            return this.collection.concat(collection);\n        }\n\n        return this.collection.slice(0, pageIndex * this.page.pageSize).concat(collection);\n    }\n}\n","<jam-list-base-common\n    *ngIf=\"service\"\n    #table\n    [tableColumns]=\"tableColumns\"\n    [dataTableSource]=\"dataTableSource\"\n    [service]=\"service\"\n    [actions]=\"actions\"\n    [remoteFilter]=\"remoteFilter\"\n    [displayedColumns]=\"displayedColumns\"\n    [expandableRow]=\"expandableRow\"\n    [expandedElement]=\"expandedElement\"\n    [editElement]=\"editElement\"\n    [overrideEditableCellsSave]=\"overrideEditableCellsSave\"\n    [ngContentColumns]=\"ngContentColumns\"\n    [columnPipes]=\"columnPipes\"\n    [include]=\"include\"\n    [beforePath]=\"beforePath\"\n    [showTableLoader]=\"showTableLoader\"\n    [showActionsMenu]=\"showActionsMenu\"\n    [actions_menu]=\"actions_menu\"\n    [selectionBarComponent]=\"selectionBarComponent\"\n    [selectionBarComponentInputs]=\"selectionBarComponentInputs\"\n    [checkbox]=\"checkbox\"\n    [responsiveColumns]=\"responsiveColumns\"\n    [resizeContent]=\"resizeContent\"\n    [page]=\"page\"\n    [sort]=\"sort\"\n    [columnHeaderClasses]=\"columnHeaderClasses\"\n    [columnHeaderStyles]=\"columnHeaderStyles\"\n    [cellClasses]=\"cellClasses\"\n    [cellStyles]=\"cellStyles\"\n    [cellDataClasses]=\"cellDataClasses\"\n    [cellDataStyles]=\"cellDataStyles\"\n    [disableQueryParamsUpdate]=\"disableQueryParamsUpdate\"\n    [nothingHereClasses]=\"nothingHereClasses\"\n    [nothingHereText]=\"nothingHereText\"\n    [imageOrIcon]=\"imageOrIcon\"\n    [nothingHereIcon]=\"nothingHereIcon\"\n    [nothingHereImageUrl]=\"nothingHereImageUrl\"\n    [reloadPageData]=\"reloadPageData\"\n    [collectionInfiniteScroll]=\"collection\"\n    (saveEditableCell)=\"saveEditableCell.emit($event)\"\n    (collectionChange)=\"setCollection($event)\"\n    (actionsClick)=\"actionsClick.emit($event)\"\n    (rowClick)=\"rowClick.emit($event)\"\n    (rowDoubleClick)=\"rowDoubleClick.emit($event)\"\n    (selectionBarComponentCreated)=\"selectionBarComponentCreated.emit($event)\"\n    (pageLengthChange)=\"pageLengthChange($event)\"\n    (openedActionsMenu)=\"openedActionsMenu.emit($event)\"\n    >\n</jam-list-base-common>\n<div *ngIf=\"service && !disabledButton\" class=\"button-more-container\">\n    <button mat-stroked-button type=\"button\" (click)=\"reloadPage()\">{{ 'list.load_more' | translate }}</button>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n\n@Component({\n    selector: 'jam-info-button',\n    standalone: true,\n    imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule, TranslateModule],\n    templateUrl: './info-button.component.html'\n})\nexport class InfoButtonComponent implements OnInit {\n    /** @param externalUrl required property */\n    @Input() public externalUrl: string;\n\n    /**\n     * @param icon optional property -\n     * @description By default acquires as icon \"info\"\n     */\n    @Input() public icon: 'info' | 'help' = 'info';\n\n    /** @param jamTooltip optional property */\n    @Input() public jamTooltip: string;\n\n    public constructor(private translateService: TranslateService) {\n        this.jamTooltip = this.translateService.instant('info_button.tooltip');\n    }\n\n    public ngOnInit(): void {\n        this.icon = this.checkIcon();\n    }\n\n    /** @method checkIcon Checks arriving icon, if not supported, then returns info. */\n    private checkIcon(): 'info' | 'help' {\n        console.warn(`\"${this.icon}\" icon is not supported 🤷‍♂️, Try \"info\" or \"help.\"`);\n\n        return !['info', 'help'].includes(this.icon) ? 'info' : this.icon;\n    }\n}\n","<a class=\"mat-button\" type=\"button\" target=\"_blank\"\n    mat-icon-button\n    [matTooltip]=\"jamTooltip\"\n    [href]=\"externalUrl\"\n    (click)=\"$event.stopPropagation()\"\n>\n    <mat-icon\n        [innerHtml]=\"icon\"\n    ></mat-icon>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, NavigationStart } from '@angular/router';\nimport { SelectionBarService } from '../selection-bar.service';\n\n@Component({\n    selector: 'jam-selection-bar-container',\n    standalone: true,\n    imports: [CommonModule],\n    templateUrl: './selection-bar-container.component.html',\n    styleUrls: ['./selection-bar-container.component.scss']\n})\nexport class SelectionBarContainerComponent {\n    public constructor(protected selectionBarService: SelectionBarService, protected router: Router) {\n        this.router.events.subscribe((event): void => {\n            if (event instanceof NavigationStart) {\n                this.selectionBarService.destroy();\n            }\n        });\n    }\n}\n","<div id=\"selection-bar-container\" class=\"hidden\"></div>\n","import { Component, OnDestroy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { Destroyer } from '../../destroyer';\nimport { SelectionBarService } from '../selection-bar.service';\n\n@Component({\n    selector: 'jam-selection-bar-info',\n    standalone: true,\n    imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule, TranslateModule],\n    templateUrl: './selection-bar-info.component.html',\n    styleUrls: ['./selection-bar-info.component.scss']\n})\nexport class SelectionBarInfoComponent implements OnDestroy {\n    public selection: SelectionModel<unknown>;\n    public label: string;\n    private destroyer: Destroyer = new Destroyer();\n\n    public constructor(protected selectionBarService: SelectionBarService, private translateService: TranslateService) {\n        this.selectionBarService.selected$.pipe(this.destroyer.pipe()).subscribe((selection): void => {\n            this.selection = selection;\n            const key = selection.selected.length === 1 ? 'selection_bar.selected_singular' : 'selection_bar.selected_plural';\n            this.label = selection.selected.length + ' ' + this.translateService.instant(key);\n            if (selection.selected.length <= 0) this.selectionBarService.destroy();\n        });\n    }\n\n    public ngOnDestroy(): void {\n        this.destroyer.destroy();\n    }\n\n    public close(): void {\n        this.selection.clear();\n        this.selectionBarService.destroy();\n    }\n}\n","<div class=\"selection-bar-info\">\n    <button mat-icon-button [matTooltip]=\"'selection_bar.clear' | translate\" (click)=\"close()\">\n        <mat-icon class=\"material-icons\">arrow_back</mat-icon>\n    </button>\n    <span>{{ label }}</span>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n    selector: 'jam-ngx-jsonapi-material',\n    template: ` <p>ngx-jsonapi-material works!</p> `,\n    styles: [],\n    standalone: true\n})\nexport class NgxJsonapiMaterialComponent {}\n","/*\n * Public API Surface of ngx-jsonapi-material\n */\n\nexport { provideNgxJsonapiMaterial } from './lib/ngx-jsonapi-material.providers';\nexport * from './lib/i18n';\n\nexport * from './lib/custom-validators';\nexport * from './lib/track-by-id';\nexport * from './lib/batch';\nexport * from './lib/destroyer';\n\nexport * from './lib/select/select.component';\nexport * from './lib/select/option-footer.component';\n\nexport * from './lib/submit/submit.component';\n\nexport * from './lib/floating-filters/floating-filters.component';\nexport * from './lib/floating-filters/avoid-disabled-style.directive';\n\nexport * from './lib/picture-manager/picture/picture-manager.component';\nexport * from './lib/picture-manager/gallery/gallery-manager.component';\nexport * from './lib/picture-manager/picture/image-change-interface';\n\nexport * from './lib/search-input/search-input.component';\nexport * from './lib/search-input/search-text.pipe';\n\nexport * from './lib/chips-autocomplete/chips-autocomplete.component';\n\nexport * from './lib/delete-confirmation/confirmation-dialog/confirmation-dialog.component';\nexport * from './lib/delete-confirmation/delete-confirmation.component';\n\nexport * from './lib/edit-text-attribute-dialog/edit-text-attribute-dialog.component';\n\nexport * from './lib/top-warning/top-warning.component';\nexport * from './lib/top-warning/top-warning.service';\nexport * from './lib/top-warning/single-warning/single-warning.component';\n\nexport * from './lib/fab-speed-dial/fab-speed-dial.component';\nexport * from './lib/fab-speed-dial/fab-speed-dial-mini-button';\n\nexport * from './lib/refresh/refresh.component';\n\nexport * from './lib/menu/menu-elements/menu';\nexport * from './lib/menu/menu-elements/section';\nexport * from './lib/menu/menu-elements/button';\nexport * from './lib/menu/dropdown-menu/dropdown-menu.component';\nexport * from './lib/menu/menu.component';\n\nexport * from './lib/floating-button/floating-button.component';\n\nexport * from './lib/dynamic-forms/dynamic-inputs';\nexport * from './lib/dynamic-forms/formly-form-flex.component';\n\nexport * from './lib/tabs/tabs.directive';\n\nexport * from './lib/expansion-panel/remember-state.directive';\n\nexport * from './lib/floating-input/floating-input.component';\n\nexport * from './lib/filters/interfaces/filter-date-range.interface';\nexport * from './lib/filters/interfaces/filter-checks.interface';\nexport * from './lib/filters/interfaces/filter-option.interface';\nexport * from './lib/filters/interfaces/filter.interface';\nexport * from './lib/filters/basics/filter-options.component';\nexport * from './lib/filters/basics/filter-checks.component';\n\nexport * from './lib/slide';\nexport * from './lib/slide/slide-group';\nexport { JamSlideHeaderComponent as JamSlideHeader, ScrollDirection } from './lib/slide/slide-header';\nexport { JamSlideElementWrapperDirective as JamSlideElementWrapper } from './lib/slide/slide-element-wrapper';\nexport { JamSlideComponent as JamSlide } from './lib/slide/slide';\nexport { JamSlideElementDirective as JamSlideElement } from './lib/slide/slide-element';\nexport * from './lib/slide/slide-animations';\n\nexport * from './lib/pin-option-button/pin-option-button.component';\n\nexport * from './lib/autocomplete/autocomplete.component';\n\nexport { ResponsiveColumns } from './lib/list-base/list-base-common/table-components/responsive-columns';\nexport * from './lib/list-base/list-base-common/table-components/table-columns';\nexport { AppDatePipe } from './lib/list-base/date-pipe/app-date.pipe';\nexport { AppDateTimePipe } from './lib/list-base/date-pipe/app-date.pipe';\nexport { AppCapitalizePipe } from './lib/list-base/capitalize-pipe/capitalize.pipe';\nexport { AppCurrencyPipe } from './lib/list-base/currency-pipe/app-currency.pipe';\nexport { DynamicPipe } from './lib/list-base/dynamic-pipe/dynamic.pipe';\nexport { ListBaseCommonComponent } from './lib/list-base/list-base-common/list-base-common.component';\nexport * from './lib/list-base/list-base';\nexport { ListBaseCommonPaginatorComponent } from './lib/list-base/list-base-common/list-base-common-paginator/list-base-common-paginator.component';\nexport { ListBaseCommonInfiniteScrollComponent } from './lib/list-base/list-base-common/list-base-common-infinite-scroll/list-base-common-infinite-scroll.component';\nexport { UpdateFiltersService } from './lib/list-base/base/update-filters/update-filters.component';\n\nexport { InfoButtonComponent } from './lib/info-button/info-button.component';\n\nexport { SelectionBarContainerComponent } from './lib/selection-bar/selection-bar-container/selection-bar-container.component';\nexport { SelectionBarInfoComponent } from './lib/selection-bar/selection-bar-info/selection-bar-info.component';\nexport { DomService } from './lib/selection-bar/dom.service';\nexport { IMethodRef, SelectionBarService } from './lib/selection-bar/selection-bar.service';\n\nexport { NgxJsonapiMaterialComponent } from './lib/ngx-jsonapi-material.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DomService","i1","i2","i3","i5","trackById","i4","i6","i7","i8","i1.TopWarningService","observableOf","i2.SelectionBarService","i3.UpdateFiltersService","i2.UpdateFiltersService","i3.SelectionBarService","i12","i13","i14","i1.JamRefreshService","i1.SelectionBarService"],"mappings":"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"}