@arsedizioni/ars-utils 22.1.5 → 22.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +97 -10
- package/clipper.ui/clipper.scss +564 -0
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +1 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +7 -3
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-core.date.mjs +609 -0
- package/fesm2022/arsedizioni-ars-utils-core.date.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-core.markdown.mjs +591 -0
- package/fesm2022/arsedizioni-ars-utils-core.markdown.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-core.mjs +270 -1449
- package/fesm2022/arsedizioni-ars-utils-core.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs +1 -1
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs +1 -1
- package/fesm2022/arsedizioni-ars-utils-support.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +14 -4108
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.controls.mjs +962 -0
- package/fesm2022/arsedizioni-ars-utils-ui.controls.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.auth.mjs +506 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.auth.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.mjs +763 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.prompt.mjs +184 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.prompt.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.select.mjs +825 -0
- package/fesm2022/arsedizioni-ars-utils-ui.dialogs.select.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.files.mjs +708 -0
- package/fesm2022/arsedizioni-ars-utils-ui.files.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.filters.mjs +426 -0
- package/fesm2022/arsedizioni-ars-utils-ui.filters.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.help.mjs +531 -0
- package/fesm2022/arsedizioni-ars-utils-ui.help.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.mjs +61 -1194
- package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.navigation.mjs +1049 -0
- package/fesm2022/arsedizioni-ars-utils-ui.navigation.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.notifications.mjs +263 -0
- package/fesm2022/arsedizioni-ars-utils-ui.notifications.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +4 -3
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.tinymce.mjs +246 -0
- package/fesm2022/arsedizioni-ars-utils-ui.tinymce.mjs.map +1 -0
- package/fesm2022/arsedizioni-ars-utils.mjs +13 -12
- package/fesm2022/arsedizioni-ars-utils.mjs.map +1 -1
- package/help/package.json +4 -0
- package/package.json +72 -14
- package/support.ui/package.json +4 -0
- package/tinymce/package.json +4 -0
- package/types/arsedizioni-ars-utils-clipper.common.d.ts +1 -2
- package/types/arsedizioni-ars-utils-clipper.ui.d.ts +4 -2
- package/types/arsedizioni-ars-utils-core.d.ts +684 -1004
- package/types/arsedizioni-ars-utils-core.date.d.ts +304 -0
- package/types/arsedizioni-ars-utils-core.markdown.d.ts +159 -0
- package/types/arsedizioni-ars-utils-ui.application.d.ts +10 -2022
- package/types/arsedizioni-ars-utils-ui.controls.d.ts +413 -0
- package/types/arsedizioni-ars-utils-ui.d.ts +198 -561
- package/types/arsedizioni-ars-utils-ui.dialogs.auth.d.ts +224 -0
- package/types/arsedizioni-ars-utils-ui.dialogs.d.ts +376 -0
- package/types/arsedizioni-ars-utils-ui.dialogs.prompt.d.ts +47 -0
- package/types/arsedizioni-ars-utils-ui.dialogs.select.d.ts +309 -0
- package/types/arsedizioni-ars-utils-ui.files.d.ts +271 -0
- package/types/arsedizioni-ars-utils-ui.filters.d.ts +163 -0
- package/types/arsedizioni-ars-utils-ui.help.d.ts +220 -0
- package/types/arsedizioni-ars-utils-ui.navigation.d.ts +650 -0
- package/types/arsedizioni-ars-utils-ui.notifications.d.ts +73 -0
- package/types/arsedizioni-ars-utils-ui.tinymce.d.ts +63 -0
- package/types/arsedizioni-ars-utils.d.ts +4 -10
- package/ui.tinymce/README.md +12 -0
- package/ui.tinymce/langs/it.js +466 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arsedizioni-ars-utils-ui.filters.mjs","sources":["../../../projects/ars-utils/ui.filters/filters.ts","../../../projects/ars-utils/ui.filters/filter-bar/filter-bar.component.ts","../../../projects/ars-utils/ui.filters/filter-bar/filter-bar.component.html","../../../projects/ars-utils/ui.filters/public_api.ts","../../../projects/ars-utils/ui.filters/arsedizioni-ars-utils-ui.filters.ts"],"sourcesContent":["/** Constants identifying each filter group slot and text filter channels. */\nexport const Filters = {\n FLT_1: 1,\n FLT_2: 2,\n FLT_3: 3,\n FLT_4: 4,\n FLT_5: 5,\n FLT_TEXT: 96,\n FLT_TEXT_1: 97,\n FLT_TEXT_2: 98,\n FLT_TEXT_3: 99\n};\n\n/** Describes a top-level filter group with optional items or a custom action. */\nexport interface FilterGroup {\n group?: number;\n title?: string;\n tooltip?: string;\n items?: FilterItem[];\n action?: any;\n}\n/** A single selectable entry within a FilterGroup. */\nexport interface FilterItem {\n group?: number;\n title?: string;\n titleSelected?: string;\n description?: string;\n divider?: boolean;\n value?: any;\n}\n\n/** Event payload emitted when an active filter changes. */\nexport class CurrentFilterChanged {\n /** The updated filter state. */\n filter!: CurrentFilter;\n /** The group slot that changed (see Filters constants). */\n group!: number;\n}\n\n/** Holds the current state of all active filters for a filter-bar component. */\nexport class CurrentFilter {\n flt1?: any;\n flt1Name?: string;\n flt2?: any;\n flt2Name?: string;\n flt3?: any;\n flt3Name?: string;\n flt4?: any;\n flt4Name?: string;\n flt5?: any;\n flt5Name?: string;\n text?: string;\n text2?: string;\n text3?: string;\n\n /**\n * Returns true if any filter slot or text field is currently active.\n * @returns Whether at least one filter is applied.\n */\n filtered(): boolean {\n return (\n this.flt1 != null ||\n this.flt2 != null ||\n this.flt3 != null ||\n this.flt4 != null ||\n this.flt5 != null ||\n !!this.text?.length ||\n !!this.text2?.length ||\n !!this.text3?.length\n );\n }\n}\n\n/** Holds the selected value and display state for a single typed filter slot. */\nexport class CurrentFilterItem<T> {\n items?: any[];\n value?: T;\n enabled?: boolean = true;\n title?: string;\n selectedTitle?: string;\n\n /**\n * Reset the filter to its empty state.\n */\n public clear(): void {\n this.value = undefined;\n this.selectedTitle = undefined;\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, effect, inject, input, output, signal } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { SafeHtmlPipe } from '@arsedizioni/ars-utils/core';\nimport { CurrentFilter, CurrentFilterChanged, FilterGroup, FilterItem, Filters } from '../filters';\nimport { FlexLayoutModule } from '@arsedizioni/ars-utils/ui';\n\n\n\n@Component({\n selector: \"filter-bar\",\n templateUrl: \"./filter-bar.component.html\",\n styleUrl: './filter-bar.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FlexLayoutModule, MatFormFieldModule, MatInputModule, FormsModule,\n MatTooltipModule, MatButtonModule, MatIconModule, MatMenuModule, MatDividerModule, SafeHtmlPipe]\n})\nexport class FilterBarComponent {\n /** Emitted whenever any filter value changes. */\n readonly changed = output<CurrentFilterChanged>();\n\n /** The list of filter groups to display. */\n readonly filters = input<FilterGroup[]>();\n\n readonly canFilterByText = input<boolean>(false);\n readonly canFilterByText2 = input<boolean>(false);\n readonly canFilterByText3 = input<boolean>(false);\n\n /** Initial text values for the search inputs — synced into the model signals on change. */\n readonly initialText = input<string | undefined>(undefined);\n readonly initialText2 = input<string | undefined>(undefined);\n readonly initialText3 = input<string | undefined>(undefined);\n\n readonly textName = input<string>(\"testo\");\n readonly text2Name = input<string>(\"...\");\n readonly text3Name = input<string>(\"...\");\n readonly textLength = input<string>();\n readonly text2Length = input<string>();\n readonly text3Length = input<string>();\n readonly showTextSearchButton = input<boolean>(false);\n readonly appearance = input<'fill' | 'outline' | undefined>('outline');\n\n /** Two-way bindable text filter values. */\n protected readonly text = signal<string | undefined>(undefined);\n protected readonly text2 = signal<string | undefined>(undefined);\n protected readonly text3 = signal<string | undefined>(undefined);\n\n /** Filter group for slot 1, derived reactively from the `filters` input. */\n protected readonly flt1 = computed<FilterGroup | undefined>(() =>\n this.filters()?.find(n => n.group === Filters.FLT_1)\n );\n /** Filter group for slot 2, derived reactively from the `filters` input. */\n protected readonly flt2 = computed<FilterGroup | undefined>(() =>\n this.filters()?.find(n => n.group === Filters.FLT_2)\n );\n /** Filter group for slot 3, derived reactively from the `filters` input. */\n protected readonly flt3 = computed<FilterGroup | undefined>(() =>\n this.filters()?.find(n => n.group === Filters.FLT_3)\n );\n /** Filter group for slot 4, derived reactively from the `filters` input. */\n protected readonly flt4 = computed<FilterGroup | undefined>(() =>\n this.filters()?.find(n => n.group === Filters.FLT_4)\n );\n /** Filter group for slot 5, derived reactively from the `filters` input. */\n protected readonly flt5 = computed<FilterGroup | undefined>(() =>\n this.filters()?.find(n => n.group === Filters.FLT_5)\n );\n\n /** True when filter slot 1 has an action or item list. */\n protected readonly canFilterByFlt1 = computed(() => {\n const g = this.flt1(); return !!(g?.action || (g?.items && g.items.length > 0));\n });\n /** True when filter slot 2 has an action or item list. */\n protected readonly canFilterByFlt2 = computed(() => {\n const g = this.flt2(); return !!(g?.action || (g?.items && g.items.length > 0));\n });\n /** True when filter slot 3 has an action or item list. */\n protected readonly canFilterByFlt3 = computed(() => {\n const g = this.flt3(); return !!(g?.action || (g?.items && g.items.length > 0));\n });\n /** True when filter slot 4 has an action or item list. */\n protected readonly canFilterByFlt4 = computed(() => {\n const g = this.flt4(); return !!(g?.action || (g?.items && g.items.length > 0));\n });\n /** True when filter slot 5 has an action or item list. */\n protected readonly canFilterByFlt5 = computed(() => {\n const g = this.flt5(); return !!(g?.action || (g?.items && g.items.length > 0));\n });\n\n public readonly currentFilter: CurrentFilter = new CurrentFilter();\n\n private readonly cdr = inject(ChangeDetectorRef);\n\n constructor() {\n // Sync the initialText inputs into the model signals whenever they change\n effect(() => {\n this.text.set(this.initialText());\n this.text2.set(this.initialText2());\n this.text3.set(this.initialText3());\n });\n }\n\n /**\n * No-op kept for API compatibility.\n * Filter groups are now computed reactively from the `filters()` input.\n */\n public initializeFilters(): void { }\n\n /**\n * Applies the selected filter item to the current filter state and emits the change.\n * @param filter - The filter item to apply.\n */\n applyFilter(filter: FilterItem): void {\n let changed = false;\n switch (filter.group) {\n case Filters.FLT_1:\n changed = this.currentFilter.flt1 !== filter.value;\n if (changed) {\n this.currentFilter.flt1 = filter.value;\n this.currentFilter.flt1Name = filter.titleSelected;\n }\n break;\n case Filters.FLT_2:\n changed = this.currentFilter.flt2 !== filter.value;\n if (changed) {\n this.currentFilter.flt2 = filter.value;\n this.currentFilter.flt2Name = filter.titleSelected;\n }\n break;\n case Filters.FLT_3:\n changed = this.currentFilter.flt3 !== filter.value;\n if (changed) {\n this.currentFilter.flt3 = filter.value;\n this.currentFilter.flt3Name = filter.titleSelected;\n }\n break;\n case Filters.FLT_4:\n changed = this.currentFilter.flt4 !== filter.value;\n if (changed) {\n this.currentFilter.flt4 = filter.value;\n this.currentFilter.flt4Name = filter.titleSelected;\n }\n break;\n case Filters.FLT_5:\n changed = this.currentFilter.flt5 !== filter.value;\n if (changed) {\n this.currentFilter.flt5 = filter.value;\n this.currentFilter.flt5Name = filter.titleSelected;\n }\n break;\n }\n\n if (changed) {\n this.cdr.markForCheck();\n this.changed.emit({ filter: this.currentFilter, group: filter.group });\n }\n }\n\n /**\n * Executes the action associated with a filter group, or clears the filter.\n * @param group - The filter group number.\n * @param clear - When `true`, clears the filter instead of triggering its action.\n */\n applyFilterAction(group: number, clear: boolean = false): void {\n if (!clear) {\n const g = this.getFilterGroup(group);\n if (g?.action) {\n g.action(this, g);\n }\n } else {\n this.clearFilter(group);\n }\n }\n\n /** Commits the current text inputs to the filter state and emits the change. */\n applyTextFilter(): void {\n this.currentFilter.text = this.text();\n this.currentFilter.text2 = this.text2();\n this.currentFilter.text3 = this.text3();\n this.changed.emit({\n filter: this.currentFilter,\n group: Filters.FLT_TEXT\n });\n }\n\n /**\n * Clears the active filter for the specified group and emits the change if it was set.\n * @param group - The filter group number to clear.\n */\n clearFilter(group: number): void {\n let changed = false;\n switch (group) {\n case Filters.FLT_1:\n changed = this.currentFilter.flt1 != undefined;\n if (changed) {\n this.currentFilter.flt1 = undefined;\n this.currentFilter.flt1Name = undefined;\n }\n break;\n case Filters.FLT_2:\n changed = this.currentFilter.flt2 != undefined;\n if (changed) {\n this.currentFilter.flt2 = undefined;\n this.currentFilter.flt2Name = undefined;\n }\n break;\n case Filters.FLT_3:\n changed = this.currentFilter.flt3 != undefined;\n if (changed) {\n this.currentFilter.flt3 = undefined;\n this.currentFilter.flt3Name = undefined;\n }\n break;\n case Filters.FLT_4:\n changed = this.currentFilter.flt4 != undefined;\n if (changed) {\n this.currentFilter.flt4 = undefined;\n this.currentFilter.flt4Name = undefined;\n }\n break;\n case Filters.FLT_5:\n changed = this.currentFilter.flt5 != undefined;\n if (changed) {\n this.currentFilter.flt5 = undefined;\n this.currentFilter.flt5Name = undefined;\n }\n break;\n }\n if (changed) {\n this.cdr.markForCheck();\n this.changed.emit({ filter: this.currentFilter, group: group });\n }\n }\n\n /** Resets all active filters and text inputs, then emits the change. */\n clearAllFilters(): void {\n this.currentFilter.flt1 = undefined;\n this.currentFilter.flt1Name = undefined;\n this.currentFilter.flt2 = undefined;\n this.currentFilter.flt2Name = undefined;\n this.currentFilter.flt3 = undefined;\n this.currentFilter.flt3Name = undefined;\n this.currentFilter.flt4 = undefined;\n this.currentFilter.flt4Name = undefined;\n this.currentFilter.flt5 = undefined;\n this.currentFilter.flt5Name = undefined;\n this.currentFilter.text = undefined;\n this.currentFilter.text2 = undefined;\n this.currentFilter.text3 = undefined;\n this.text.set(undefined);\n this.text2.set(undefined);\n this.text3.set(undefined);\n this.cdr.markForCheck();\n this.changed.emit({ filter: this.currentFilter, group: -1 });\n }\n\n /**\n * Returns `true` when more than one filter type is active, showing the \"clear all\" button.\n * @returns True when the clear-all button should be visible.\n */\n canClearAllFilters(): boolean {\n let count = 0;\n if (this.canFilterByText()) count++;\n if (this.canFilterByText2()) count++;\n if (this.canFilterByText3()) count++;\n if (this.canFilterByFlt1()) count++;\n if (this.canFilterByFlt2()) count++;\n if (this.canFilterByFlt3()) count++;\n if (this.canFilterByFlt4()) count++;\n if (this.canFilterByFlt5()) count++;\n return count > 1;\n }\n\n /**\n * Returns the filter group matching the given id, or `undefined` if not found.\n * @param id - The group id to look up.\n * @returns The matching `FilterGroup`, or `undefined`.\n */\n private getFilterGroup(id: number): FilterGroup | undefined {\n return this.filters()?.find(n => n.group === id);\n }\n\n /** Synchronises the filter bar display with the values currently stored in `currentFilter`. */\n syncFilter(): void {\n let g = this.getFilterGroup(Filters.FLT_1);\n if (g?.items) {\n this.currentFilter.flt1Name = undefined;\n if (this.currentFilter.flt1) {\n const gi = g.items.find(n => n.value === this.currentFilter.flt1);\n if (gi) this.currentFilter.flt1Name = gi.titleSelected;\n else this.currentFilter.flt1 = undefined;\n }\n }\n\n g = this.getFilterGroup(Filters.FLT_2);\n if (g?.items) {\n this.currentFilter.flt2Name = undefined;\n if (this.currentFilter.flt2) {\n const gi = g.items.find(n => n.value === this.currentFilter.flt2);\n if (gi) this.currentFilter.flt2Name = gi.titleSelected;\n else this.currentFilter.flt2 = undefined;\n }\n }\n\n g = this.getFilterGroup(Filters.FLT_3);\n if (g?.items) {\n this.currentFilter.flt3Name = undefined;\n if (this.currentFilter.flt3) {\n const gi = g.items.find(n => n.value === this.currentFilter.flt3);\n if (gi) this.currentFilter.flt3Name = gi.titleSelected;\n else this.currentFilter.flt3 = undefined;\n }\n }\n\n g = this.getFilterGroup(Filters.FLT_4);\n if (g?.items) {\n this.currentFilter.flt4Name = undefined;\n if (this.currentFilter.flt4) {\n const gi = g.items.find(n => n.value === this.currentFilter.flt4);\n if (gi) this.currentFilter.flt4Name = gi.titleSelected;\n else this.currentFilter.flt4 = undefined;\n }\n }\n\n g = this.getFilterGroup(Filters.FLT_5);\n if (g?.items) {\n this.currentFilter.flt5Name = undefined;\n if (this.currentFilter.flt5) {\n const gi = g.items.find(n => n.value === this.currentFilter.flt5);\n if (gi) this.currentFilter.flt5Name = gi.titleSelected;\n else this.currentFilter.flt5 = undefined;\n }\n }\n\n this.text.set(this.currentFilter.text);\n this.text2.set(this.currentFilter.text2);\n this.text3.set(this.currentFilter.text3);\n this.cdr.markForCheck();\n }\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"filterbox\"\r\n [class.filterbox-filtered]=\"currentFilter.filtered()\">\r\n <div fxFlex=\"*\" fxLayout=\"row wrap\" fxLayoutAlign=\"space-between\">\r\n @if (canFilterByText() || canFilterByText2() || canFilterByText3()) {\r\n <div fxFlex.lt-sm=\"100\" fxFlexAlign=\"center\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill style=\"padding:4px;\">\r\n @if (canFilterByText()) {\r\n <mat-form-field [style.width]=\"textLength() ?? '100%'\" [appearance]=\"appearance()\" subscriptSizing=\"dynamic\">\r\n <mat-label>Cerca per {{textName()}}...</mat-label>\r\n <input matInput name=\"_text\" [ngModel]=\"text()\" (ngModelChange)=\"text.set($event)\" maxlength=\"100\" #_text=\"ngModel\"\r\n (keyup.Enter)=\"applyTextFilter()\" matTooltip=\"Premi INVIO per avviare la ricerca\">\r\n @if (text()) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"text.set(undefined); applyTextFilter();\" matTooltip=\"Azzera\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n @if (showTextSearchButton()) {\r\n <button type=\"button\" matSuffix mat-icon-button aria-label=\"Trova\" (click)=\"applyTextFilter();\"\r\n matTooltip=\"Trova\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (canFilterByText2()) {\r\n <mat-form-field \r\n [style.width]=\"text2Length() ?? '100%'\" [appearance]=\"appearance()\"\r\n subscriptSizing=\"dynamic\">\r\n <mat-label>Cerca per {{text2Name()}}...</mat-label>\r\n <input matInput name=\"_text2\" [ngModel]=\"text2()\" (ngModelChange)=\"text2.set($event)\" maxlength=\"100\" #_text2=\"ngModel\"\r\n (keyup.Enter)=\"applyTextFilter()\" matTooltip=\"Premi INVIO per avviare la ricerca\">\r\n @if (text2()) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"text2.set(undefined); applyTextFilter();\" matTooltip=\"Azzera\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n }\r\n @if (canFilterByText3()) {\r\n <mat-form-field [style.width]=\"text3Length() ?? '100%'\" [appearance]=\"appearance()\"\r\n subscriptSizing=\"dynamic\">\r\n <mat-label>Cerca per {{text3Name()}}...</mat-label>\r\n <input matInput name=\"_text3\" [ngModel]=\"text3()\" (ngModelChange)=\"text3.set($event)\" maxlength=\"100\" #_text3=\"ngModel\"\r\n (keyup.Enter)=\"applyTextFilter()\" matTooltip=\"Premi INVIO per avviare la ricerca\">\r\n @if (text3()) {\r\n <button type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Pulisci\"\r\n (click)=\"text3.set(undefined); applyTextFilter();\" matTooltip=\"Azzera\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n }\r\n </div>\r\n </div>\r\n }\r\n <div fxFlex.lt-sm=\"100\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\" fxFill>\r\n @if (canFilterByFlt1() && flt1()?.action) {\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <button type=\"button\" class=\"filterbox-button\" mat-button [matTooltip]=\"flt1()!.tooltip || 'Filtra per ' + flt1()!.title\"\r\n [attr.aria-label]=\"flt1()!.tooltip || 'Filtra per ' + flt1()!.title\" \r\n (click)=\"applyFilterAction(1, false)\">\r\n \r\n @if (!currentFilter.flt1) {\r\n <span>{{flt1()!.title}}</span>\r\n } @else {\r\n <span class=\"filterbox-selected\" [innerHtml]=\"currentFilter.flt1Name | safeHtml\"></span>\r\n }\r\n </button>\r\n @if (currentFilter.flt1) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button matTooltip=\"Azzera\" aria-label=\"Azzera\"\r\n (click)=\"applyFilterAction(1, true);\" class=\"small-icon-button\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n } @else if (canFilterByFlt1() && flt1()?.items) {\r\n <button type=\"button\" class=\"filterbox-button\" mat-button [matTooltip]=\"flt1()!.tooltip || 'Filtra per ' + flt1()!.title\"\r\n [attr.aria-label]=\"flt1()!.tooltip || 'Filtra per ' + flt1()!.title\" [matMenuTriggerFor]=\"menuApplyFilterFlt1\"\r\n >\r\n \r\n @if (!currentFilter.flt1) {\r\n <span>{{flt1()!.title}}</span>\r\n } @else {\r\n <span class=\"filterbox-selected\" [innerHtml]=\"currentFilter.flt1Name | safeHtml\"></span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">expand_more</mat-icon>\r\n <mat-menu #menuApplyFilterFlt1=\"matMenu\">\r\n @for (f of flt1()!.items; track $index) {\r\n @if (f.divider) {\r\n <mat-divider></mat-divider>\r\n }\r\n <button mat-menu-item (click)=\"applyFilter(f)\" [attr.aria-label]=\"f.description\" style=\"min-width: 200px\">\r\n <span [innerHTML]=\"f.title | safeHtml\"></span>\r\n </button>\r\n }\r\n <mat-divider></mat-divider>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" style=\"width: 100%; min-width: 200px; padding: 4px 4px 0 4px;\">\r\n <button type=\"button\" mat-button (click)=\"clearFilter(flt1()!.items![0].group)\"\r\n aria-label=\"Azzera\">\r\n <mat-icon style=\"font-size:18px; height: 18px; width:18px;\">clear</mat-icon> Azzera\r\n </button>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </button>\r\n }\r\n\r\n @if (canFilterByFlt2() && flt2()?.action) {\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <button type=\"button\" class=\"filterbox-button\" mat-button [matTooltip]=\"flt2()!.tooltip || 'Filtra per ' + flt2()!.title\"\r\n [attr.aria-label]=\"flt2()!.tooltip || 'Filtra per ' + flt2()!.title\" \r\n (click)=\"applyFilterAction(2, false)\">\r\n \r\n @if (!currentFilter.flt2) {\r\n <span>{{flt2()!.title}}</span>\r\n } @else {\r\n <span class=\"filterbox-selected\" [innerHtml]=\"currentFilter.flt2Name | safeHtml\"></span>\r\n }\r\n </button>\r\n @if (currentFilter.flt2) {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Azzera\" aria-label=\"Azzera\"\r\n (click)=\"applyFilterAction(2, true);\" class=\"small-icon-button\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n } @else if (canFilterByFlt2() && flt2()?.items) {\r\n <button type=\"button\" class=\"filterbox-button\" mat-button [matTooltip]=\"flt2()!.tooltip || 'Filtra per ' + flt2()!.title\"\r\n [attr.aria-label]=\"flt2()!.tooltip || 'Filtra per ' + flt2()!.title\" [matMenuTriggerFor]=\"menuApplyFilterFlt2\"\r\n >\r\n \r\n @if (!currentFilter.flt2) {\r\n <span>{{flt2()!.title}}</span>\r\n } @else {\r\n <span class=\"filterbox-selected\" [innerHtml]=\"currentFilter.flt2Name | safeHtml\"></span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">expand_more</mat-icon>\r\n <mat-menu #menuApplyFilterFlt2=\"matMenu\">\r\n @for (f of flt2()!.items; track $index) {\r\n @if (f.divider) {\r\n <mat-divider></mat-divider>\r\n }\r\n <button mat-menu-item (click)=\"applyFilter(f)\" [attr.aria-label]=\"f.description\" style=\"min-width: 200px\">\r\n <span [innerHTML]=\"f.title | safeHtml\"></span>\r\n </button>\r\n }\r\n <mat-divider></mat-divider>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" style=\"width: 100%; min-width: 200px; padding: 4px 4px 0 4px;\">\r\n <button type=\"button\" mat-button (click)=\"clearFilter(flt2()!.items![0].group)\"\r\n aria-label=\"Azzera\">\r\n <mat-icon style=\"font-size:18px; height: 18px; width:18px;\">clear</mat-icon> Azzera\r\n </button>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </button>\r\n }\r\n\r\n @if (canFilterByFlt3() && flt3()?.action) {\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <button type=\"button\" class=\"filterbox-button\" mat-button [matTooltip]=\"flt3()!.tooltip || 'Filtra per ' + flt3()!.title\"\r\n [attr.aria-label]=\"flt3()!.tooltip || 'Filtra per ' + flt3()!.title\" \r\n (click)=\"applyFilterAction(3, false)\">\r\n \r\n @if (!currentFilter.flt3) {\r\n <span>{{flt3()!.title}}</span>\r\n } @else {\r\n <span class=\"filterbox-selected\" [innerHtml]=\"currentFilter.flt3Name | safeHtml\"></span>\r\n }\r\n </button>\r\n @if (currentFilter.flt3) {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Azzera\" aria-label=\"Azzera\"\r\n (click)=\"applyFilterAction(3, true);\" class=\"small-icon-button\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n } @else if (canFilterByFlt3() && flt3()?.items) {\r\n <button type=\"button\" class=\"filterbox-button\" mat-button [matTooltip]=\"flt3()!.tooltip || 'Filtra per ' + flt3()!.title\"\r\n [attr.aria-label]=\"flt3()!.tooltip || 'Filtra per ' + flt3()!.title\" [matMenuTriggerFor]=\"menuApplyFilterFlt3\"\r\n >\r\n \r\n @if (!currentFilter.flt3) {\r\n <span>{{flt3()!.title}}</span>\r\n } @else {\r\n <span class=\"filterbox-selected\" [innerHtml]=\"currentFilter.flt3Name | safeHtml\"></span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">expand_more</mat-icon>\r\n <mat-menu #menuApplyFilterFlt3=\"matMenu\">\r\n @for (f of flt3()!.items; track $index) {\r\n @if (f.divider) {\r\n <mat-divider></mat-divider>\r\n }\r\n <button mat-menu-item (click)=\"applyFilter(f)\" [attr.aria-label]=\"f.description\" style=\"min-width: 200px\">\r\n <span [innerHTML]=\"f.title | safeHtml\"></span>\r\n </button>\r\n }\r\n <mat-divider></mat-divider>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" style=\"width: 100%; min-width: 200px; padding: 4px 4px 0 4px;\">\r\n <button type=\"button\" mat-button (click)=\"clearFilter(flt3()!.items![0].group)\"\r\n aria-label=\"Azzera\">\r\n <mat-icon style=\"font-size:18px; height: 18px; width:18px;\">clear</mat-icon> Azzera\r\n </button>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </button>\r\n }\r\n\r\n @if (canFilterByFlt4() && flt4()?.action) {\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <button type=\"button\" class=\"filterbox-button\" mat-button [matTooltip]=\"flt4()!.tooltip || 'Filtra per ' + flt4()!.title\"\r\n [attr.aria-label]=\"flt4()!.tooltip || 'Filtra per ' + flt4()!.title\" \r\n (click)=\"applyFilterAction(4, false)\">\r\n \r\n @if (!currentFilter.flt4) {\r\n <span>{{flt4()!.title}}</span>\r\n } @else {\r\n <span class=\"filterbox-selected\" [innerHtml]=\"currentFilter.flt4Name | safeHtml\"></span>\r\n }\r\n </button>\r\n @if (currentFilter.flt4) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button matTooltip=\"Azzera\" aria-label=\"Azzera\"\r\n (click)=\"applyFilterAction(4, true);\" class=\"small-icon-button\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n } @else if (canFilterByFlt4() && flt4()?.items) {\r\n <button fxFlexAlign=\"center\" class=\"filterbox-button\" type=\"button\" mat-button [matTooltip]=\"flt4()!.tooltip || 'Filtra per ' + flt4()!.title\"\r\n [attr.aria-label]=\"flt4()!.tooltip || 'Filtra per ' + flt4()!.title\" [matMenuTriggerFor]=\"menuApplyFilterFlt4\"\r\n >\r\n \r\n @if (!currentFilter.flt4) {\r\n <span>{{flt4()!.title}}</span>\r\n } @else {\r\n <span class=\"filterbox-selected\" [innerHtml]=\"currentFilter.flt4Name | safeHtml\"></span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">expand_more</mat-icon>\r\n <mat-menu #menuApplyFilterFlt4=\"matMenu\">\r\n @for (f of flt4()!.items; track $index) {\r\n @if (f.divider) {\r\n <mat-divider></mat-divider>\r\n }\r\n <button mat-menu-item (click)=\"applyFilter(f)\" [attr.aria-label]=\"f.description\" style=\"min-width: 200px\">\r\n <span [innerHTML]=\"f.title | safeHtml\"></span>\r\n </button>\r\n }\r\n <mat-divider></mat-divider>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" style=\"width: 100%; min-width: 200px; padding: 4px 4px 0 4px;\">\r\n <button type=\"button\" mat-button (click)=\"clearFilter(flt4()!.items![0].group)\"\r\n aria-label=\"Azzera\">\r\n <mat-icon style=\"font-size:18px; height: 18px; width:18px;\">clear</mat-icon> Azzera\r\n </button>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </button>\r\n }\r\n\r\n @if (canFilterByFlt5() && flt5()?.action) {\r\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\">\r\n <button type=\"button\" class=\"filterbox-button\" mat-button [matTooltip]=\"flt5()!.tooltip || 'Filtra per ' + flt5()!.title\"\r\n [attr.aria-label]=\"flt5()!.tooltip || 'Filtra per ' + flt5()!.title\" \r\n (click)=\"applyFilterAction(5, false)\">\r\n \r\n @if (!currentFilter.flt5) {\r\n <span>{{flt5()!.title}}</span>\r\n } @else {\r\n <span class=\"filterbox-selected\" [innerHtml]=\"currentFilter.flt5Name | safeHtml\"></span>\r\n }\r\n </button>\r\n @if (currentFilter.flt5) {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Azzera\" aria-label=\"Azzera\"\r\n (click)=\"applyFilterAction(5, true);\" class=\"small-icon-button\">\r\n <mat-icon>clear</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n } @else if (canFilterByFlt5() && flt5()?.items) {\r\n <button fxFlexAlign=\"center\" class=\"filterbox-button\" type=\"button\" mat-button [matTooltip]=\"flt5()!.tooltip || 'Filtra per ' + flt5()!.title\"\r\n [attr.aria-label]=\"flt5()!.tooltip || 'Filtra per ' + flt5()!.title\" [matMenuTriggerFor]=\"menuApplyFilterFlt5\"\r\n >\r\n \r\n @if (!currentFilter.flt5) {\r\n <span>{{flt5()!.title}}</span>\r\n } @else {\r\n <span class=\"filterbox-selected\" [innerHtml]=\"currentFilter.flt5Name | safeHtml\"></span>\r\n }\r\n <mat-icon class=\"icon-menu-drop-down\">expand_more</mat-icon>\r\n <mat-menu #menuApplyFilterFlt5=\"matMenu\">\r\n @for (f of flt5()!.items; track $index) {\r\n @if (f.divider) {\r\n <mat-divider></mat-divider>\r\n }\r\n <button mat-menu-item (click)=\"applyFilter(f)\" [attr.aria-label]=\"f.description\" style=\"min-width: 200px\">\r\n <span [innerHTML]=\"f.title | safeHtml\"></span>\r\n </button>\r\n }\r\n <mat-divider></mat-divider>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxLayoutAlign=\"end\" style=\"width: 100%; min-width: 200px; padding: 4px 4px 0 4px;\">\r\n <button type=\"button\" mat-button (click)=\"clearFilter(flt5()!.items![0].group)\"\r\n aria-label=\"Azzera\">\r\n <mat-icon style=\"font-size:18px; height: 18px; width:18px;\">clear</mat-icon> Azzera\r\n </button>\r\n </div>\r\n </div>\r\n </mat-menu>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n @if (currentFilter.filtered() && canClearAllFilters()) {\r\n <button type=\"button\" mat-icon-button matTooltip=\"Azzera tutti i filtri\" aria-label=\"Azzera tutti i filtri\"\r\n (click)=\"clearAllFilters()\">\r\n <mat-icon>filter_alt_off</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n</div>\r\n","/*\n * Public API Surface of @arsedizioni/ars-utils/ui.filters\n */\nexport * from './filters';\nexport * from './filter-bar/filter-bar.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|