@wlcm/angular 17.7.15 → 17.7.17
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/filters/esm2022/index.mjs +6 -8
- package/filters/esm2022/lib/components/filters-group/filters-group.component.mjs +13 -0
- package/filters/esm2022/lib/constants/filter.constants.mjs +3 -0
- package/filters/esm2022/lib/constants/index.mjs +2 -0
- package/filters/esm2022/lib/directives/filter.directive.mjs +11 -0
- package/filters/esm2022/lib/directives/index.mjs +2 -0
- package/filters/esm2022/lib/filters.module.mjs +20 -0
- package/filters/esm2022/lib/models/array-filter.models.mjs +73 -0
- package/filters/esm2022/lib/models/filter.models.mjs +41 -0
- package/filters/esm2022/lib/models/filters-group.models.mjs +60 -0
- package/filters/esm2022/lib/models/index.mjs +4 -0
- package/filters/fesm2022/wlcm-angular-filters.mjs +159 -420
- package/filters/fesm2022/wlcm-angular-filters.mjs.map +1 -1
- package/filters/index.d.ts +5 -7
- package/filters/lib/components/filters-group/filters-group.component.d.ts +6 -0
- package/filters/lib/constants/filter.constants.d.ts +3 -0
- package/filters/lib/constants/index.d.ts +1 -0
- package/filters/lib/directives/filter.directive.d.ts +5 -0
- package/filters/lib/directives/index.d.ts +1 -0
- package/filters/lib/filters.module.d.ts +9 -0
- package/filters/lib/models/array-filter.models.d.ts +19 -0
- package/filters/lib/models/filter.models.d.ts +19 -0
- package/filters/lib/models/filters-group.models.d.ts +22 -0
- package/filters/lib/models/index.d.ts +3 -0
- package/package.json +1 -1
- package/styles/core/_all-theme.scss +0 -2
- package/filters/esm2022/lib/filters/components/filters/filters.component.mjs +0 -21
- package/filters/esm2022/lib/filters/components/filters-button/filters-button.component.mjs +0 -25
- package/filters/esm2022/lib/filters/components/filters-panel/filters-panel.component.mjs +0 -86
- package/filters/esm2022/lib/filters/components/filters-unit/filters-unit.component.mjs +0 -55
- package/filters/esm2022/lib/filters/directives/filters-content.directive.mjs +0 -11
- package/filters/esm2022/lib/filters/directives/filters-trigger.directive.mjs +0 -69
- package/filters/esm2022/lib/filters/filters.module.mjs +0 -53
- package/filters/esm2022/lib/filters/models/filters-default-selection-model.mjs +0 -56
- package/filters/esm2022/lib/filters/models/filters-trigger.base.mjs +0 -56
- package/filters/esm2022/lib/filters/models/filters.models.mjs +0 -44
- package/filters/esm2022/lib/filters/pipes/is-filters-param-checked.pipe.mjs +0 -21
- package/filters/esm2022/lib/filters/pipes/total-filters-applied.pipe.mjs +0 -18
- package/filters/esm2022/lib/filters/utils/filters.utils.mjs +0 -13
- package/filters/lib/filters/components/filters/filters.component.d.ts +0 -10
- package/filters/lib/filters/components/filters-button/filters-button.component.d.ts +0 -11
- package/filters/lib/filters/components/filters-panel/filters-panel.component.d.ts +0 -25
- package/filters/lib/filters/components/filters-unit/filters-unit.component.d.ts +0 -21
- package/filters/lib/filters/directives/filters-content.directive.d.ts +0 -5
- package/filters/lib/filters/directives/filters-trigger.directive.d.ts +0 -22
- package/filters/lib/filters/filters.module.d.ts +0 -20
- package/filters/lib/filters/models/filters-default-selection-model.d.ts +0 -18
- package/filters/lib/filters/models/filters-trigger.base.d.ts +0 -15
- package/filters/lib/filters/models/filters.models.d.ts +0 -42
- package/filters/lib/filters/pipes/is-filters-param-checked.pipe.d.ts +0 -10
- package/filters/lib/filters/pipes/total-filters-applied.pipe.d.ts +0 -8
- package/filters/lib/filters/utils/filters.utils.d.ts +0 -5
- package/styles/components/filters/_filters-panel.scss +0 -44
- package/styles/components/filters/_filters-unit.scss +0 -92
- package/styles/components/filters/index.scss +0 -7
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"wlcm-angular-filters.mjs","sources":["../../../../modules/filters/src/lib/filters/directives/filters-content.directive.ts","../../../../modules/filters/src/lib/filters/models/filters.models.ts","../../../../modules/filters/src/lib/filters/utils/filters.utils.ts","../../../../modules/filters/src/lib/filters/components/filters-panel/filters-panel.component.ts","../../../../modules/filters/src/lib/filters/components/filters-panel/filters-panel.component.html","../../../../modules/filters/src/lib/filters/components/filters/filters.component.ts","../../../../modules/filters/src/lib/filters/components/filters/filters.component.html","../../../../modules/filters/src/lib/filters/models/filters-default-selection-model.ts","../../../../modules/filters/src/lib/filters/models/filters-trigger.base.ts","../../../../modules/filters/src/lib/filters/directives/filters-trigger.directive.ts","../../../../modules/filters/src/lib/filters/pipes/is-filters-param-checked.pipe.ts","../../../../modules/filters/src/lib/filters/components/filters-unit/filters-unit.component.ts","../../../../modules/filters/src/lib/filters/components/filters-unit/filters-unit.component.html","../../../../modules/filters/src/lib/filters/pipes/total-filters-applied.pipe.ts","../../../../modules/filters/src/lib/filters/components/filters-button/filters-button.component.ts","../../../../modules/filters/src/lib/filters/components/filters-button/filters-button.component.html","../../../../modules/filters/src/lib/filters/filters.module.ts","../../../../modules/filters/src/wlcm-angular-filters.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({ selector: '[wlcmFiltersContent]' })\nexport class WlcmFiltersContentDirective {}\n","import { QueryFilters } from '@wlcm/angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nexport class WlcmFiltersUnit {\n param: string = '';\n\n data: string[] = [];\n\n parent: WlcmFiltersSelectionModel;\n\n private readonly _dataChanges$: BehaviorSubject<string[]> = new BehaviorSubject([...this.data]);\n\n readonly dataChanges$: Observable<string[]> = this._dataChanges$.asObservable();\n\n constructor(param: string, parent: WlcmFiltersSelectionModel) {\n this.param = param;\n this.parent = parent;\n }\n\n add(value: string): void {\n this.data = [...this.data, value];\n\n this.notifyChanges();\n }\n\n setAll(value: string[], onlySelf: boolean = false): void {\n this.data = [...value];\n\n this.notifyChanges(onlySelf);\n }\n\n remove(value: string): void {\n this.data = this.data.filter((_value: string) => _value !== value);\n\n this.notifyChanges();\n }\n\n reset(onlySelf: boolean = false): void {\n this.data = [];\n\n this.notifyChanges(onlySelf);\n }\n\n clone(parent: WlcmFiltersSelectionModel): WlcmFiltersUnit {\n const unit: WlcmFiltersUnit = new WlcmFiltersUnit(this.param, parent);\n\n unit.data = [...this.data];\n\n unit.notifyChanges(true);\n\n return unit;\n }\n\n private notifyChanges(onlySelf: boolean = false): void {\n this._dataChanges$.next([...this.data]);\n\n if (!onlySelf) {\n this.parent.syncUnitChanges();\n }\n }\n}\n\nexport interface WlcmFiltersModel {\n [key: string]: WlcmFiltersUnit;\n}\n\nexport abstract class WlcmFiltersSelectionModel {\n abstract model: WlcmFiltersModel;\n\n abstract readonly modelChanges$: Observable<WlcmFiltersModel>;\n\n abstract add(param: string, unit: WlcmFiltersUnit, wlcmtChanges?: boolean): void;\n\n abstract has(param: string): boolean;\n\n abstract get(param: string): WlcmFiltersUnit;\n\n abstract createUnit(param: string): WlcmFiltersUnit;\n\n abstract updateSelection(model: WlcmFiltersModel): void;\n\n abstract syncUnitChanges(): void;\n\n abstract clone(): WlcmFiltersSelectionModel;\n\n abstract reset(): void;\n\n abstract get isEmpty(): boolean;\n}\n\nexport abstract class WlcmFiltersTriggerControl {\n abstract close(): void;\n}\n\nexport type CountResultsFn = (filters: QueryFilters) => Observable<number>;\n\nexport interface WlcmFiltersPanelControl {\n readonly loading$: Observable<boolean>;\n\n readonly totalResults$: Observable<number | null>;\n\n apply(): void;\n\n reset(): void;\n}\n","import { QueryFilter, QueryFilters } from '@wlcm/angular/core';\nimport { WlcmFiltersModel } from '../models/filters.models';\n\nexport class WlcmFiltersUtils {\n static modelToQueryFilters(model: WlcmFiltersModel): QueryFilters {\n const filters: QueryFilters = {};\n\n Object.keys(model).forEach((key: string) => {\n const data: string[] = model[key].data;\n\n if (data.length > 0) {\n filters[key] = { oneOf: data } as QueryFilter;\n }\n });\n\n return filters;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Injector,\n Input,\n OnInit,\n SkipSelf,\n TemplateRef,\n inject,\n} from '@angular/core';\nimport {\n CountResultsFn,\n WlcmFiltersModel,\n WlcmFiltersTriggerControl,\n WlcmFiltersSelectionModel,\n} from '../../models/filters.models';\nimport { BehaviorSubject, Subject, auditTime, filter, switchMap } from 'rxjs';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { WlcmFiltersUtils } from '../../utils/filters.utils';\nimport { QueryFilters, WlcmStreamUtils } from '@wlcm/angular/core';\n\n@UntilDestroy()\n@Component({\n selector: 'wlcm-filters-panel',\n templateUrl: './filters-panel.component.html',\n styleUrls: ['./filters-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: WlcmFiltersSelectionModel,\n useFactory: () => inject(WlcmFiltersSelectionModel, { skipSelf: true }).clone(),\n },\n ],\n})\nexport class WlcmFiltersPanelComponent implements OnInit {\n @Input() countResults?: CountResultsFn;\n\n @Input() filtersContent!: TemplateRef<void>;\n\n readonly loading$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n readonly totalResults$: BehaviorSubject<number | null> = new BehaviorSubject<number | null>(null);\n\n private _selectionModel: WlcmFiltersSelectionModel = inject(WlcmFiltersSelectionModel);\n\n private _countResults$: Subject<WlcmFiltersModel> = new Subject();\n\n constructor(\n protected injector: Injector,\n private panelControl: WlcmFiltersTriggerControl,\n @SkipSelf() private globalSelectionModel: WlcmFiltersSelectionModel\n ) {\n this.handleCountResultsEvent();\n this.handleSelectionChanges();\n }\n\n ngOnInit(): void {\n this._countResults$.next(this._selectionModel.model);\n }\n\n apply(): void {\n this.updateGlobalModel();\n\n this.panelControl.close();\n }\n\n reset(): void {\n this._selectionModel.reset();\n }\n\n close(): void {\n this.panelControl.close();\n }\n\n private updateGlobalModel(): void {\n this.globalSelectionModel.updateSelection(this._selectionModel.model);\n }\n\n private handleSelectionChanges(): void {\n this._selectionModel.modelChanges$\n .pipe(untilDestroyed(this))\n .subscribe((model: WlcmFiltersModel) => this._countResults$.next(model));\n }\n\n private handleCountResultsEvent(): void {\n this._countResults$\n .pipe(filter(() => this.countResults instanceof Function))\n .pipe(\n switchMap((model: WlcmFiltersModel) => {\n const filters: QueryFilters = WlcmFiltersUtils.modelToQueryFilters(model);\n\n return (this.countResults as CountResultsFn)(filters).pipe(\n auditTime(300),\n WlcmStreamUtils.loadingDetector(this.loading$)\n );\n })\n )\n .subscribe((totalResults: number) => this.totalResults$.next(totalResults));\n }\n}\n","<div class=\"wlcm-filters-panel\">\n <div class=\"wlcm-filters-panel-header\">\n <h4 class=\"filters-panel__title\">Filters</h4>\n\n <wlcm-close-icon\n (click)=\"close()\"\n class=\"wlcm-cursor-pointer\"\n ></wlcm-close-icon>\n </div>\n\n <div class=\"wlcm-filters-panel-units\">\n <ng-container\n *ngTemplateOutlet=\"filtersContent; injector: injector\"\n ></ng-container>\n </div>\n\n <div class=\"wlcm-filters-panel-actions\">\n <wlcm-button type=\"borderless\" (clicked)=\"reset()\">Reset All</wlcm-button>\n\n <wlcm-button\n (clicked)=\"apply()\"\n *rxLet=\"loading$ | async as isLoading\"\n [isLoading]=\"isLoading\"\n >\n Show\n\n <ng-container *rxLet=\"totalResults$ | async as totalResults\">\n <ng-container *ngIf=\"totalResults !== null && !isLoading\">\n ({{ totalResults }})\n </ng-container>\n </ng-container>\n </wlcm-button>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, Type, ViewChild } from '@angular/core';\nimport { WlcmFiltersContentDirective } from '../../directives/filters-content.directive';\nimport { CountResultsFn } from '../../models/filters.models';\n\n@Component({\n selector: 'wlcm-filters',\n templateUrl: './filters.component.html',\n styleUrls: ['./filters.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'wlcmFilters',\n})\nexport class WlcmFiltersComponent {\n @Input() countResults?: CountResultsFn;\n\n @ViewChild('filtersPanelTemplate') public templateRef!: TemplateRef<void>;\n\n @ContentChild(WlcmFiltersContentDirective, { read: TemplateRef }) protected filtersContent!: TemplateRef<void>;\n}\n","<ng-template #filtersPanelTemplate>\n <wlcm-filters-panel\n [countResults]=\"countResults\"\n [filtersContent]=\"filtersContent\"\n >\n </wlcm-filters-panel>\n</ng-template>\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { WlcmFiltersModel, WlcmFiltersSelectionModel, WlcmFiltersUnit } from './filters.models';\n\nexport class FiltersDefaultSelectionModel extends WlcmFiltersSelectionModel {\n model: WlcmFiltersModel = {};\n\n private readonly _modelChanges$: BehaviorSubject<WlcmFiltersModel> = new BehaviorSubject({ ...this.model });\n\n readonly modelChanges$: Observable<WlcmFiltersModel> = this._modelChanges$.asObservable();\n\n add(param: string, unit: WlcmFiltersUnit, wlcmtChanges: boolean = true): void {\n this.model[param] = unit;\n\n if (wlcmtChanges) {\n this.notifyChanges();\n }\n }\n\n has(param: string): boolean {\n return this.model[param] instanceof WlcmFiltersUnit;\n }\n\n get(param: string): WlcmFiltersUnit {\n return this.model[param];\n }\n\n createUnit(param: string): WlcmFiltersUnit {\n return new WlcmFiltersUnit(param, this);\n }\n\n updateSelection(model: WlcmFiltersModel): void {\n this.model = this.cloneModel(model, this);\n\n this.notifyChanges();\n }\n\n syncUnitChanges(): void {\n this.notifyChanges();\n }\n\n clone(): WlcmFiltersSelectionModel {\n const clone: WlcmFiltersSelectionModel = new FiltersDefaultSelectionModel();\n\n clone.updateSelection({ ...this.model });\n\n return clone;\n }\n\n reset(): void {\n Object.values(this.model).forEach((unit: WlcmFiltersUnit) => unit.reset(true));\n\n this.notifyChanges();\n }\n\n get isEmpty(): boolean {\n return (\n Object.keys(this.model).length == 0 ||\n Object.values(this.model).every((unit: WlcmFiltersUnit) => unit.data.length === 0)\n );\n }\n\n private cloneModel(model: WlcmFiltersModel, parent: WlcmFiltersSelectionModel): WlcmFiltersModel {\n const _model: WlcmFiltersModel = {};\n\n Object.keys(model).forEach((param: string) => {\n _model[param] = model[param].clone(parent);\n });\n\n return _model;\n }\n\n private notifyChanges(): void {\n this._modelChanges$.next({ ...this.model });\n }\n}\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { WlcmFiltersModel, WlcmFiltersSelectionModel, WlcmFiltersUnit } from './filters.models';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { WlcmFiltersUtils } from '../utils/filters.utils';\nimport { QueryFilters } from '@wlcm/angular/core';\nimport { skip } from 'rxjs';\n\n@UntilDestroy()\n@Directive()\nexport class FiltersTriggerBase {\n @Input('wlcmFiltersTriggerData') set filters(value: QueryFilters | undefined) {\n this._filters = value;\n\n this.updateSelectionModel();\n }\n\n @Output('wlcmFiltersTriggerDataChanges') filtersChanges: EventEmitter<QueryFilters> = new EventEmitter();\n\n private _filters: QueryFilters | undefined;\n\n constructor(protected selectionModel: WlcmFiltersSelectionModel) {}\n\n protected updateSelectionModel(): void {\n if (!this._filters || Object.values(this._filters).length === 0) {\n if (!this.selectionModel.isEmpty) {\n this.selectionModel.reset();\n }\n } else {\n const filters: QueryFilters = this._filters;\n\n Object.keys(filters).forEach((param: string) => {\n const unit: WlcmFiltersUnit = this.selectionModel.createUnit(param);\n\n unit.setAll(filters[param].oneOf as string[], true);\n\n this.selectionModel.add(param, unit, false);\n });\n }\n }\n\n protected handleModelChanges(): void {\n this.selectionModel.modelChanges$.pipe(untilDestroyed(this), skip(1)).subscribe((model: WlcmFiltersModel) => {\n const filters: QueryFilters = WlcmFiltersUtils.modelToQueryFilters(model);\n\n this.filtersChanges.next(filters);\n });\n }\n}\n","import { Directive, ElementRef, HostListener, Injector, Input, ViewContainerRef } from '@angular/core';\nimport { FlexibleConnectedPositionStrategy, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { FiltersDefaultSelectionModel } from '../models/filters-default-selection-model';\nimport { WlcmFiltersSelectionModel, WlcmFiltersTriggerControl } from '../models/filters.models';\nimport { WlcmFiltersComponent } from '../components/filters/filters.component';\nimport { FiltersTriggerBase } from '../models/filters-trigger.base';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Directive({\n selector: '[wlcmFiltersTrigger]',\n providers: [{ provide: WlcmFiltersSelectionModel, useClass: FiltersDefaultSelectionModel }],\n})\nexport class WlcmFiltersTriggerDirective extends FiltersTriggerBase {\n @Input('wlcmFiltersTrigger') panel!: WlcmFiltersComponent;\n\n @HostListener('click') openPanel(): void {\n if (this.overlayRef instanceof OverlayRef) return;\n\n const config: OverlayConfig = this.createOverlayConfig();\n\n const injector: Injector = this.createInjector();\n\n this.overlayRef = this.overlay.create(config);\n\n this.overlayRef.attach(new TemplatePortal(this.panel.templateRef, this.viewContainerRef, null, injector));\n }\n\n private overlayRef: OverlayRef | null = null;\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n private elementRef: ElementRef,\n private viewContainerRef: ViewContainerRef,\n protected override selectionModel: WlcmFiltersSelectionModel\n ) {\n super(selectionModel);\n\n this.handleModelChanges();\n }\n\n close(): void {\n this.overlayRef?.dispose();\n\n this.overlayRef = null;\n }\n\n private createInjector(): Injector {\n return Injector.create({\n providers: [\n { provide: WlcmFiltersSelectionModel, useValue: this.selectionModel },\n { provide: WlcmFiltersTriggerControl, useValue: { close: this.close.bind(this) } },\n ],\n parent: this.injector,\n });\n }\n\n private createOverlayConfig(): OverlayConfig {\n const strategy: FlexibleConnectedPositionStrategy = this.overlay.position().flexibleConnectedTo(this.elementRef);\n\n strategy.withPositions([{ originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' }]);\n\n strategy.withDefaultOffsetY(5);\n\n return new OverlayConfig({\n width: '300px',\n positionStrategy: strategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n }\n}\n","import { Host, Pipe, PipeTransform } from '@angular/core';\nimport { MatCheckbox } from '@angular/material/checkbox';\n\n@Pipe({ name: 'isFiltersParamChecked' })\nexport class IsFiltersParamCheckedPipe implements PipeTransform {\n transform(data: Set<string>): boolean {\n return data.has(this.checkbox.value);\n }\n\n constructor(@Host() private checkbox: MatCheckbox) {}\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { WlcmFiltersSelectionModel, WlcmFiltersUnit } from '../../models/filters.models';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { WlcmOption } from '@wlcm/angular/core';\nimport { Observable, map } from 'rxjs';\n\n@Component({\n selector: 'wlcm-filters-unit',\n templateUrl: './filters-unit.component.html',\n styleUrls: ['./filters-unit.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WlcmFiltersUnitComponent implements OnInit {\n @Input() label: string = '';\n\n @Input() param: string = '';\n\n @Input() options: WlcmOption[] = [];\n\n protected filtersUnit!: WlcmFiltersUnit;\n\n protected dataChanges$!: Observable<Set<string>>;\n\n constructor(private selectionModel: WlcmFiltersSelectionModel) {}\n\n ngOnInit(): void {\n this.initializeFiltersUnit();\n }\n\n reset(): void {\n this.filtersUnit.reset();\n }\n\n change(event: MatCheckboxChange): void {\n if (event.checked) {\n this.filtersUnit.add(event.source.value);\n } else {\n this.filtersUnit.remove(event.source.value);\n }\n }\n\n private initializeFiltersUnit(): void {\n if (this.selectionModel.has(this.param)) {\n this.filtersUnit = this.selectionModel.get(this.param);\n } else {\n this.filtersUnit = this.selectionModel.createUnit(this.param);\n\n this.selectionModel.add(this.param, this.filtersUnit, false);\n }\n\n this.dataChanges$ = this.filtersUnit.dataChanges$.pipe(map((data: string[]) => new Set(data)));\n }\n}\n","<mat-expansion-panel class=\"wlcm-filters-unit\" hideToggle>\n <mat-expansion-panel-header collapsedHeight=\"30px\" expandedHeight=\"30px\">\n <div class=\"wlcm-filters-unit-header\">\n <section>\n <span class=\"wlcm-filters-unit-header__label\">{{ label }}</span>\n\n <div\n class=\"wlcm-entities-count\"\n *ngIf=\"(dataChanges$ | async)!.size as size\"\n >\n {{ size }}\n </div>\n </section>\n\n <section>\n <button\n class=\"reset-btn cursor-pointer\"\n (click)=\"reset(); $event.stopPropagation()\"\n *ngIf=\"(dataChanges$ | async)!.size > 0\"\n >\n Reset\n </button>\n\n <wlcm-chevron-down-icon\n class=\"wlcm-filters-unit__chevron\"\n ></wlcm-chevron-down-icon>\n </section>\n </div>\n </mat-expansion-panel-header>\n\n <div class=\"wlcm-filters-unit-checkboxes\">\n <ng-container *ngFor=\"let option of options\">\n <mat-checkbox\n [value]=\"$any(option.value)\"\n [checked]=\"(dataChanges$ | async)! | isFiltersParamChecked\"\n (change)=\"change($event)\"\n >\n {{ option.viewValue }}\n </mat-checkbox>\n </ng-container>\n </div>\n</mat-expansion-panel>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { QueryFilter, QueryFilters } from '@wlcm/angular/core';\n\n@Pipe({ name: 'totalFiltersApplied', standalone: true })\nexport class WlcmTotalFiltersAppliedPipe implements PipeTransform {\n transform(filters: QueryFilters | undefined): number {\n if (!filters) return 0;\n\n return Object.values(filters).reduce((total: number, filter: QueryFilter) => {\n return total + (filter.oneOf?.length || 0);\n }, 0);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { WlcmFiltersComponent } from '../filters/filters.component';\nimport { QueryFilters } from '@wlcm/angular/core';\n\n@Component({\n selector: 'wlcm-filters-button',\n templateUrl: './filters-button.component.html',\n styleUrls: ['./filters-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class WlcmFiltersButtonComponent {\n @Input() panel!: WlcmFiltersComponent;\n\n @Input() filters!: QueryFilters;\n\n @Output() filtersChange: EventEmitter<QueryFilters> = new EventEmitter();\n}\n","<ng-container *rxLet=\"filters | totalFiltersApplied as filtersCount\">\n <wlcm-button\n [wlcmFiltersTrigger]=\"panel\"\n [wlcmFiltersTriggerData]=\"filters\"\n (wlcmFiltersTriggerDataChanges)=\"filtersChange.emit($event)\"\n [type]=\"filtersCount > 0 ? 'primary' : 'secondary'\"\n >\n Filters\n @if (filtersCount > 0) {\n <div class=\"wlcm-entities-count\">{{ filtersCount }}</div>\n }\n </wlcm-button>\n</ng-container>\n","import { NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WlcmFiltersComponent } from './components/filters/filters.component';\nimport { WlcmFiltersTriggerDirective } from './directives/filters-trigger.directive';\nimport { WlcmFiltersUnitComponent } from './components/filters-unit/filters-unit.component';\nimport { WlcmFiltersPanelComponent } from './components/filters-panel/filters-panel.component';\nimport { WlcmFiltersContentDirective } from './directives/filters-content.directive';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\nimport { IsFiltersParamCheckedPipe } from './pipes/is-filters-param-checked.pipe';\nimport { WlcmTotalFiltersAppliedPipe } from './pipes/total-filters-applied.pipe';\nimport { ChevronDownIconComponent, CloseIconComponent } from '@wlcm/angular/core';\nimport { WlcmButtonComponent } from '@wlcm/angular/button';\nimport { WlcmFiltersButtonComponent } from './components/filters-button/filters-button.component';\nimport { RxLet } from '@rx-angular/template/let';\n\nconst publicComponents: Type<unknown>[] = [WlcmFiltersComponent, WlcmFiltersUnitComponent, WlcmFiltersButtonComponent];\n\nconst publicDirectives: Type<unknown>[] = [WlcmFiltersTriggerDirective, WlcmFiltersContentDirective];\n\n@NgModule({\n imports: [\n RxLet,\n CommonModule,\n MatExpansionModule,\n MatCheckboxModule,\n WlcmTotalFiltersAppliedPipe,\n ChevronDownIconComponent,\n WlcmButtonComponent,\n CloseIconComponent,\n ],\n declarations: [...publicComponents, ...publicDirectives, WlcmFiltersPanelComponent, IsFiltersParamCheckedPipe],\n exports: [...publicComponents, ...publicDirectives],\n})\nexport class WlcmFiltersModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.WlcmFiltersTriggerControl","i1.WlcmFiltersSelectionModel","i1.WlcmFiltersPanelComponent","i2.WlcmFiltersSelectionModel","i1","i2","i3","i4","i6.IsFiltersParamCheckedPipe","i3.WlcmFiltersTriggerDirective","i4.WlcmTotalFiltersAppliedPipe"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"wlcm-angular-filters.mjs","sources":["../../../../modules/filters/src/lib/models/filter.models.ts","../../../../modules/filters/src/lib/models/array-filter.models.ts","../../../../modules/filters/src/lib/constants/filter.constants.ts","../../../../modules/filters/src/lib/models/filters-group.models.ts","../../../../modules/filters/src/lib/directives/filter.directive.ts","../../../../modules/filters/src/lib/components/filters-group/filters-group.component.ts","../../../../modules/filters/src/lib/components/filters-group/filters-group.component.html","../../../../modules/filters/src/lib/filters.module.ts","../../../../modules/filters/src/wlcm-angular-filters.ts"],"sourcesContent":["import { BehaviorSubject, Observable } from 'rxjs';\n\nexport abstract class WlcmFilter<T = unknown, O = T> {\n private _cachedValue: T | null = null;\n\n private readonly _size$: BehaviorSubject<number> = new BehaviorSubject(0);\n\n readonly size$: Observable<number> = this._size$.asObservable();\n\n private readonly _value$: BehaviorSubject<T | null> = new BehaviorSubject<T | null>(this.initialValue);\n\n readonly value$: Observable<T | null> = this._value$.asObservable();\n\n abstract get key(): string;\n\n abstract computeSize(value: T): number;\n\n reset(): void {\n this.value = this.initialValue;\n }\n\n cacheValue(): void {\n this._cachedValue = this.prepareValueForCache(this.value);\n }\n\n restoreCachedValue(): void {\n this.value = this._cachedValue;\n }\n\n prepareValueForCache(value: T | null): T | null {\n return value;\n }\n\n getAppliedFilters(): O {\n return this.value as O;\n }\n\n get initialValue(): T | null {\n return null;\n }\n\n get size(): number {\n return this._size$.value;\n }\n\n get value(): T | null {\n return this._value$.value;\n }\n\n set value(data: T | null) {\n this._value$.next(data);\n\n if (data !== null) {\n this._size$.next(this.computeSize(data));\n }\n }\n}\n","import { WlcmFilter } from './filter.models';\n\ntype ArrayFilterValue<T> = Map<unknown, T>;\n\nexport abstract class WlcmArrayFilter<T, O = T[]> extends WlcmFilter<ArrayFilterValue<T>, O> {\n constructor() {\n super();\n\n this.prepareValue();\n }\n\n override get initialValue(): ArrayFilterValue<T> {\n return new Map();\n }\n\n override getAppliedFilters(): O {\n if (!this.value) return [] as O;\n\n return Array.from(this.value.values()) as O;\n }\n\n override prepareValueForCache(value: ArrayFilterValue<T> | null): ArrayFilterValue<T> | null {\n if (!value) return null;\n\n return new Map(value);\n }\n\n override computeSize(value: ArrayFilterValue<T>): number {\n return value.size;\n }\n\n selectId(value: T): unknown {\n return value;\n }\n\n contains(value: T): boolean {\n if (!this.value) return false;\n\n return this.value.has(this.selectId(value));\n }\n\n addOne(value: T): void {\n this.prepareValue();\n\n this.value = (this.value as ArrayFilterValue<T>).set(this.selectId(value), value);\n }\n\n addMany(values: T[]): void {\n this.prepareValue();\n\n const currentValue: ArrayFilterValue<T> = this.value as ArrayFilterValue<T>;\n\n values.forEach((value: T) => currentValue.set(this.selectId(value), value));\n\n this.value = currentValue;\n }\n\n setAll(values: T[]): void {\n const newValue: ArrayFilterValue<T> = new Map();\n\n values.forEach((value: T) => newValue.set(this.selectId(value), value));\n\n this.value = newValue;\n }\n\n removeOne(value: T): void {\n this.prepareValue();\n\n const currentValue: ArrayFilterValue<T> = this.value as ArrayFilterValue<T>;\n\n currentValue.delete(this.selectId(value));\n\n this.value = currentValue;\n }\n\n removeAll(): void {\n this.value = new Map();\n }\n\n toggle(value: T): void {\n this.prepareValue();\n\n const currentValue: ArrayFilterValue<T> = this.value as ArrayFilterValue<T>;\n\n const id: unknown = this.selectId(value);\n\n if (currentValue.has(id)) {\n currentValue.delete(id);\n } else {\n currentValue.set(id, value);\n }\n\n this.value = currentValue;\n }\n\n private prepareValue(): void {\n if (this.value instanceof Map) return;\n\n this.value = new Map();\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { WlcmFilter } from '../models/filter.models';\n\nexport const WLCM_FILTER: InjectionToken<WlcmFilter> = new InjectionToken('WLCM_FILTER');\n","import { AfterContentInit, ContentChildren, Directive, QueryList } from '@angular/core';\nimport { BehaviorSubject, combineLatest, map, Observable, startWith, switchMap } from 'rxjs';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { WLCM_FILTER } from '../constants/filter.constants';\nimport { WlcmFilter } from './filter.models';\n\nexport type WlcmAppliedFilters = { [key: string]: unknown };\n\n@UntilDestroy()\n@Directive()\nexport abstract class WlcmFiltersGroup implements AfterContentInit {\n private readonly _size$: BehaviorSubject<number> = new BehaviorSubject(0);\n\n readonly size$: Observable<number> = this._size$.asObservable();\n\n @ContentChildren(WLCM_FILTER) protected filters!: QueryList<WlcmFilter>;\n\n ngAfterContentInit(): void {\n this.handleFiltersListChange();\n }\n\n resetAll(): void {\n this.filters.forEach((filter: WlcmFilter) => filter.reset());\n }\n\n getAppliedFilters(): WlcmAppliedFilters {\n const appliedFilters: WlcmAppliedFilters = {};\n\n this.filters.forEach((filter: WlcmFilter) => {\n appliedFilters[filter.key] = filter.getAppliedFilters();\n });\n\n return appliedFilters;\n }\n\n cacheValues(): void {\n this.filters.forEach((filter: WlcmFilter) => filter.cacheValue());\n }\n\n restoreCachedValues(): void {\n this.filters.forEach((filter: WlcmFilter) => filter.restoreCachedValue());\n }\n\n get size(): number {\n return this._size$.value;\n }\n\n private handleFiltersListChange(): void {\n this.filters.changes\n .pipe(untilDestroyed(this))\n .pipe(startWith(this.filters))\n .pipe(switchMap((filters: QueryList<WlcmFilter>) => this.handleSizeChange(filters.toArray())))\n .subscribe();\n }\n\n private handleSizeChange(list: WlcmFilter[]): Observable<WlcmFilter[]> {\n return combineLatest(list.map((filter: WlcmFilter) => filter.size$)).pipe(\n map((sizes: number[]) => {\n this._size$.next(sizes.reduce((a, b) => a + b, 0));\n\n return list;\n }),\n );\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({ selector: '[wlcmFilter]', standalone: true })\nexport class FilterDirective {}\n","import { Component, forwardRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WlcmFiltersGroup } from '../../models/filters-group.models';\n\n@Component({\n selector: 'wlcm-filters-group',\n standalone: true,\n imports: [CommonModule],\n host: { class: 'wlcm-filters-group' },\n templateUrl: './filters-group.component.html',\n styleUrl: './filters-group.component.scss',\n providers: [{ provide: WlcmFiltersGroup, useExisting: forwardRef(() => FiltersGroupComponent) }],\n})\nexport class FiltersGroupComponent extends WlcmFiltersGroup {}\n","<ng-content select=\"[wlcmFilter]\"></ng-content>\n","import { NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FiltersGroupComponent } from './components/filters-group/filters-group.component';\nimport { FilterDirective } from './directives/filter.directive';\n\nconst publicComponents: Type<unknown>[] = [FiltersGroupComponent];\n\nconst publicDirectives: Type<unknown>[] = [FilterDirective];\n\n@NgModule({\n imports: [CommonModule, ...publicComponents, ...publicDirectives],\n exports: [...publicComponents, ...publicDirectives],\n})\nexport class WlcmFiltersModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/filters/index.d.ts
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
export * from './lib/
|
2
|
-
export * from './lib/
|
3
|
-
export * from './lib/
|
4
|
-
export * from './lib/filters
|
5
|
-
export
|
6
|
-
export * from './lib/filters/components/filters-unit/filters-unit.component';
|
7
|
-
export * from './lib/filters/components/filters-button/filters-button.component';
|
1
|
+
export * from './lib/models';
|
2
|
+
export * from './lib/constants';
|
3
|
+
export * from './lib/directives';
|
4
|
+
export * from './lib/filters.module';
|
5
|
+
export { FiltersGroupComponent } from './lib/components/filters-group/filters-group.component';
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { WlcmFiltersGroup } from '../../models/filters-group.models';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export declare class FiltersGroupComponent extends WlcmFiltersGroup {
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FiltersGroupComponent, never>;
|
5
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FiltersGroupComponent, "wlcm-filters-group", never, {}, {}, never, ["[wlcmFilter]"], true, never>;
|
6
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './filter.constants';
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './filter.directive';
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
import * as i1 from "@angular/common";
|
3
|
+
import * as i2 from "./components/filters-group/filters-group.component";
|
4
|
+
import * as i3 from "./directives/filter.directive";
|
5
|
+
export declare class WlcmFiltersModule {
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmFiltersModule, never>;
|
7
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<WlcmFiltersModule, never, [typeof i1.CommonModule, typeof i2.FiltersGroupComponent, typeof i3.FilterDirective], [typeof i2.FiltersGroupComponent, typeof i3.FilterDirective]>;
|
8
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<WlcmFiltersModule>;
|
9
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { WlcmFilter } from './filter.models';
|
2
|
+
type ArrayFilterValue<T> = Map<unknown, T>;
|
3
|
+
export declare abstract class WlcmArrayFilter<T, O = T[]> extends WlcmFilter<ArrayFilterValue<T>, O> {
|
4
|
+
constructor();
|
5
|
+
get initialValue(): ArrayFilterValue<T>;
|
6
|
+
getAppliedFilters(): O;
|
7
|
+
prepareValueForCache(value: ArrayFilterValue<T> | null): ArrayFilterValue<T> | null;
|
8
|
+
computeSize(value: ArrayFilterValue<T>): number;
|
9
|
+
selectId(value: T): unknown;
|
10
|
+
contains(value: T): boolean;
|
11
|
+
addOne(value: T): void;
|
12
|
+
addMany(values: T[]): void;
|
13
|
+
setAll(values: T[]): void;
|
14
|
+
removeOne(value: T): void;
|
15
|
+
removeAll(): void;
|
16
|
+
toggle(value: T): void;
|
17
|
+
private prepareValue;
|
18
|
+
}
|
19
|
+
export {};
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { Observable } from 'rxjs';
|
2
|
+
export declare abstract class WlcmFilter<T = unknown, O = T> {
|
3
|
+
private _cachedValue;
|
4
|
+
private readonly _size$;
|
5
|
+
readonly size$: Observable<number>;
|
6
|
+
private readonly _value$;
|
7
|
+
readonly value$: Observable<T | null>;
|
8
|
+
abstract get key(): string;
|
9
|
+
abstract computeSize(value: T): number;
|
10
|
+
reset(): void;
|
11
|
+
cacheValue(): void;
|
12
|
+
restoreCachedValue(): void;
|
13
|
+
prepareValueForCache(value: T | null): T | null;
|
14
|
+
getAppliedFilters(): O;
|
15
|
+
get initialValue(): T | null;
|
16
|
+
get size(): number;
|
17
|
+
get value(): T | null;
|
18
|
+
set value(data: T | null);
|
19
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { AfterContentInit, QueryList } from '@angular/core';
|
2
|
+
import { Observable } from 'rxjs';
|
3
|
+
import { WlcmFilter } from './filter.models';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export type WlcmAppliedFilters = {
|
6
|
+
[key: string]: unknown;
|
7
|
+
};
|
8
|
+
export declare abstract class WlcmFiltersGroup implements AfterContentInit {
|
9
|
+
private readonly _size$;
|
10
|
+
readonly size$: Observable<number>;
|
11
|
+
protected filters: QueryList<WlcmFilter>;
|
12
|
+
ngAfterContentInit(): void;
|
13
|
+
resetAll(): void;
|
14
|
+
getAppliedFilters(): WlcmAppliedFilters;
|
15
|
+
cacheValues(): void;
|
16
|
+
restoreCachedValues(): void;
|
17
|
+
get size(): number;
|
18
|
+
private handleFiltersListChange;
|
19
|
+
private handleSizeChange;
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WlcmFiltersGroup, never>;
|
21
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<WlcmFiltersGroup, never, never, {}, {}, ["filters"], never, false, never>;
|
22
|
+
}
|
package/package.json
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
@use 'utils' as utils;
|
3
3
|
@use '../components/common/index' as common;
|
4
4
|
@use '../components/forms/index' as forms;
|
5
|
-
@use '../components/filters/index' as filters;
|
6
5
|
@use '../components/button/index' as button;
|
7
6
|
@use '../components/search-field/index' as searchField;
|
8
7
|
@use '../components/phone-input/index' as phoneInput;
|
@@ -15,7 +14,6 @@
|
|
15
14
|
@mixin all-component-themes($theme-config) {
|
16
15
|
@include common.theme($theme-config);
|
17
16
|
@include forms.theme($theme-config);
|
18
|
-
@include filters.theme($theme-config);
|
19
17
|
@include button.theme($theme-config);
|
20
18
|
@include searchField.theme($theme-config);
|
21
19
|
@include datepicker.theme($theme-config);
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, Input, TemplateRef, ViewChild } from '@angular/core';
|
2
|
-
import { WlcmFiltersContentDirective } from '../../directives/filters-content.directive';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "../filters-panel/filters-panel.component";
|
5
|
-
export class WlcmFiltersComponent {
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: WlcmFiltersComponent, selector: "wlcm-filters", inputs: { countResults: "countResults" }, queries: [{ propertyName: "filtersContent", first: true, predicate: WlcmFiltersContentDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["filtersPanelTemplate"], descendants: true }], exportAs: ["wlcmFilters"], ngImport: i0, template: "<ng-template #filtersPanelTemplate>\n <wlcm-filters-panel\n [countResults]=\"countResults\"\n [filtersContent]=\"filtersContent\"\n >\n </wlcm-filters-panel>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i1.WlcmFiltersPanelComponent, selector: "wlcm-filters-panel", inputs: ["countResults", "filtersContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
8
|
-
}
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersComponent, decorators: [{
|
10
|
-
type: Component,
|
11
|
-
args: [{ selector: 'wlcm-filters', changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'wlcmFilters', template: "<ng-template #filtersPanelTemplate>\n <wlcm-filters-panel\n [countResults]=\"countResults\"\n [filtersContent]=\"filtersContent\"\n >\n </wlcm-filters-panel>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
|
12
|
-
}], propDecorators: { countResults: [{
|
13
|
-
type: Input
|
14
|
-
}], templateRef: [{
|
15
|
-
type: ViewChild,
|
16
|
-
args: ['filtersPanelTemplate']
|
17
|
-
}], filtersContent: [{
|
18
|
-
type: ContentChild,
|
19
|
-
args: [WlcmFiltersContentDirective, { read: TemplateRef }]
|
20
|
-
}] } });
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2ZpbHRlcnMvc3JjL2xpYi9maWx0ZXJzL2NvbXBvbmVudHMvZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBUSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7OztBQVV6RixNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7a0dBQXBCLG9CQUFvQiwwSUFLakIsMkJBQTJCLDJCQUFVLFdBQVcsNktDaEJoRSwwTEFPQTs7MkZESWEsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxhQUFhOzhCQUdkLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRW9DLFdBQVc7c0JBQXBELFNBQVM7dUJBQUMsc0JBQXNCO2dCQUUyQyxjQUFjO3NCQUF6RixZQUFZO3VCQUFDLDJCQUEyQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBUeXBlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdsY21GaWx0ZXJzQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZmlsdGVycy1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb3VudFJlc3VsdHNGbiB9IGZyb20gJy4uLy4uL21vZGVscy9maWx0ZXJzLm1vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tZmlsdGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVycy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZXhwb3J0QXM6ICd3bGNtRmlsdGVycycsXG59KVxuZXhwb3J0IGNsYXNzIFdsY21GaWx0ZXJzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY291bnRSZXN1bHRzPzogQ291bnRSZXN1bHRzRm47XG5cbiAgQFZpZXdDaGlsZCgnZmlsdGVyc1BhbmVsVGVtcGxhdGUnKSBwdWJsaWMgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICBAQ29udGVudENoaWxkKFdsY21GaWx0ZXJzQ29udGVudERpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBwcm90ZWN0ZWQgZmlsdGVyc0NvbnRlbnQhOiBUZW1wbGF0ZVJlZjx2b2lkPjtcbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZmlsdGVyc1BhbmVsVGVtcGxhdGU+XG4gIDx3bGNtLWZpbHRlcnMtcGFuZWxcbiAgICBbY291bnRSZXN1bHRzXT1cImNvdW50UmVzdWx0c1wiXG4gICAgW2ZpbHRlcnNDb250ZW50XT1cImZpbHRlcnNDb250ZW50XCJcbiAgPlxuICA8L3dsY20tZmlsdGVycy1wYW5lbD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
@@ -1,25 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
2
|
-
import { WlcmFiltersComponent } from '../filters/filters.component';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
import * as i1 from "@rx-angular/template/let";
|
5
|
-
import * as i2 from "@wlcm/angular/button";
|
6
|
-
import * as i3 from "../../directives/filters-trigger.directive";
|
7
|
-
import * as i4 from "../../pipes/total-filters-applied.pipe";
|
8
|
-
export class WlcmFiltersButtonComponent {
|
9
|
-
constructor() {
|
10
|
-
this.filtersChange = new EventEmitter();
|
11
|
-
}
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: WlcmFiltersButtonComponent, selector: "wlcm-filters-button", inputs: { panel: "panel", filters: "filters" }, outputs: { filtersChange: "filtersChange" }, ngImport: i0, template: "<ng-container *rxLet=\"filters | totalFiltersApplied as filtersCount\">\n <wlcm-button\n [wlcmFiltersTrigger]=\"panel\"\n [wlcmFiltersTriggerData]=\"filters\"\n (wlcmFiltersTriggerDataChanges)=\"filtersChange.emit($event)\"\n [type]=\"filtersCount > 0 ? 'primary' : 'secondary'\"\n >\n Filters\n @if (filtersCount > 0) {\n <div class=\"wlcm-entities-count\">{{ filtersCount }}</div>\n }\n </wlcm-button>\n</ng-container>\n", styles: [":host{display:block}:host .wlcm-entities-count{margin-left:8px}\n"], dependencies: [{ kind: "directive", type: i1.RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }, { kind: "component", type: i2.WlcmButtonComponent, selector: "wlcm-button", inputs: ["type", "size", "isDisabled", "isLoading"], outputs: ["clicked"] }, { kind: "directive", type: i3.WlcmFiltersTriggerDirective, selector: "[wlcmFiltersTrigger]", inputs: ["wlcmFiltersTrigger"] }, { kind: "pipe", type: i4.WlcmTotalFiltersAppliedPipe, name: "totalFiltersApplied" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
14
|
-
}
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersButtonComponent, decorators: [{
|
16
|
-
type: Component,
|
17
|
-
args: [{ selector: 'wlcm-filters-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *rxLet=\"filters | totalFiltersApplied as filtersCount\">\n <wlcm-button\n [wlcmFiltersTrigger]=\"panel\"\n [wlcmFiltersTriggerData]=\"filters\"\n (wlcmFiltersTriggerDataChanges)=\"filtersChange.emit($event)\"\n [type]=\"filtersCount > 0 ? 'primary' : 'secondary'\"\n >\n Filters\n @if (filtersCount > 0) {\n <div class=\"wlcm-entities-count\">{{ filtersCount }}</div>\n }\n </wlcm-button>\n</ng-container>\n", styles: [":host{display:block}:host .wlcm-entities-count{margin-left:8px}\n"] }]
|
18
|
-
}], propDecorators: { panel: [{
|
19
|
-
type: Input
|
20
|
-
}], filters: [{
|
21
|
-
type: Input
|
22
|
-
}], filtersChange: [{
|
23
|
-
type: Output
|
24
|
-
}] } });
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9maWx0ZXJzL3NyYy9saWIvZmlsdGVycy9jb21wb25lbnRzL2ZpbHRlcnMtYnV0dG9uL2ZpbHRlcnMtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzLWJ1dHRvbi9maWx0ZXJzLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7QUFTcEUsTUFBTSxPQUFPLDBCQUEwQjtJQU52QztRQVdZLGtCQUFhLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7S0FDMUU7OEdBTlksMEJBQTBCO2tHQUExQiwwQkFBMEIsd0pDVnZDLHFjQWFBOzsyRkRIYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2xjbUZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXJ5RmlsdGVycyB9IGZyb20gJ0B3bGNtL2FuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tZmlsdGVycy1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXJzLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbUZpbHRlcnNCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKSBwYW5lbCE6IFdsY21GaWx0ZXJzQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIGZpbHRlcnMhOiBRdWVyeUZpbHRlcnM7XG5cbiAgQE91dHB1dCgpIGZpbHRlcnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxRdWVyeUZpbHRlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xufVxuIiwiPG5nLWNvbnRhaW5lciAqcnhMZXQ9XCJmaWx0ZXJzIHwgdG90YWxGaWx0ZXJzQXBwbGllZCBhcyBmaWx0ZXJzQ291bnRcIj5cbiAgPHdsY20tYnV0dG9uXG4gICAgW3dsY21GaWx0ZXJzVHJpZ2dlcl09XCJwYW5lbFwiXG4gICAgW3dsY21GaWx0ZXJzVHJpZ2dlckRhdGFdPVwiZmlsdGVyc1wiXG4gICAgKHdsY21GaWx0ZXJzVHJpZ2dlckRhdGFDaGFuZ2VzKT1cImZpbHRlcnNDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICBbdHlwZV09XCJmaWx0ZXJzQ291bnQgPiAwID8gJ3ByaW1hcnknIDogJ3NlY29uZGFyeSdcIlxuICA+XG4gICAgRmlsdGVyc1xuICAgIEBpZiAoZmlsdGVyc0NvdW50ID4gMCkge1xuICAgICAgPGRpdiBjbGFzcz1cIndsY20tZW50aXRpZXMtY291bnRcIj57eyBmaWx0ZXJzQ291bnQgfX08L2Rpdj5cbiAgICB9XG4gIDwvd2xjbS1idXR0b24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
@@ -1,86 +0,0 @@
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
2
|
-
import { ChangeDetectionStrategy, Component, Injector, Input, SkipSelf, TemplateRef, inject, } from '@angular/core';
|
3
|
-
import { WlcmFiltersTriggerControl, WlcmFiltersSelectionModel, } from '../../models/filters.models';
|
4
|
-
import { BehaviorSubject, Subject, auditTime, filter, switchMap } from 'rxjs';
|
5
|
-
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
6
|
-
import { WlcmFiltersUtils } from '../../utils/filters.utils';
|
7
|
-
import { WlcmStreamUtils } from '@wlcm/angular/core';
|
8
|
-
import * as i0 from "@angular/core";
|
9
|
-
import * as i1 from "../../models/filters.models";
|
10
|
-
import * as i2 from "@rx-angular/template/let";
|
11
|
-
import * as i3 from "@angular/common";
|
12
|
-
import * as i4 from "@wlcm/angular/button";
|
13
|
-
import * as i5 from "@wlcm/angular/core";
|
14
|
-
let WlcmFiltersPanelComponent = class WlcmFiltersPanelComponent {
|
15
|
-
constructor(injector, panelControl, globalSelectionModel) {
|
16
|
-
this.injector = injector;
|
17
|
-
this.panelControl = panelControl;
|
18
|
-
this.globalSelectionModel = globalSelectionModel;
|
19
|
-
this.loading$ = new BehaviorSubject(false);
|
20
|
-
this.totalResults$ = new BehaviorSubject(null);
|
21
|
-
this._selectionModel = inject(WlcmFiltersSelectionModel);
|
22
|
-
this._countResults$ = new Subject();
|
23
|
-
this.handleCountResultsEvent();
|
24
|
-
this.handleSelectionChanges();
|
25
|
-
}
|
26
|
-
ngOnInit() {
|
27
|
-
this._countResults$.next(this._selectionModel.model);
|
28
|
-
}
|
29
|
-
apply() {
|
30
|
-
this.updateGlobalModel();
|
31
|
-
this.panelControl.close();
|
32
|
-
}
|
33
|
-
reset() {
|
34
|
-
this._selectionModel.reset();
|
35
|
-
}
|
36
|
-
close() {
|
37
|
-
this.panelControl.close();
|
38
|
-
}
|
39
|
-
updateGlobalModel() {
|
40
|
-
this.globalSelectionModel.updateSelection(this._selectionModel.model);
|
41
|
-
}
|
42
|
-
handleSelectionChanges() {
|
43
|
-
this._selectionModel.modelChanges$
|
44
|
-
.pipe(untilDestroyed(this))
|
45
|
-
.subscribe((model) => this._countResults$.next(model));
|
46
|
-
}
|
47
|
-
handleCountResultsEvent() {
|
48
|
-
this._countResults$
|
49
|
-
.pipe(filter(() => this.countResults instanceof Function))
|
50
|
-
.pipe(switchMap((model) => {
|
51
|
-
const filters = WlcmFiltersUtils.modelToQueryFilters(model);
|
52
|
-
return this.countResults(filters).pipe(auditTime(300), WlcmStreamUtils.loadingDetector(this.loading$));
|
53
|
-
}))
|
54
|
-
.subscribe((totalResults) => this.totalResults$.next(totalResults));
|
55
|
-
}
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersPanelComponent, deps: [{ token: i0.Injector }, { token: i1.WlcmFiltersTriggerControl }, { token: i1.WlcmFiltersSelectionModel, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: WlcmFiltersPanelComponent, selector: "wlcm-filters-panel", inputs: { countResults: "countResults", filtersContent: "filtersContent" }, providers: [
|
58
|
-
{
|
59
|
-
provide: WlcmFiltersSelectionModel,
|
60
|
-
useFactory: () => inject(WlcmFiltersSelectionModel, { skipSelf: true }).clone(),
|
61
|
-
},
|
62
|
-
], ngImport: i0, template: "<div class=\"wlcm-filters-panel\">\n <div class=\"wlcm-filters-panel-header\">\n <h4 class=\"filters-panel__title\">Filters</h4>\n\n <wlcm-close-icon\n (click)=\"close()\"\n class=\"wlcm-cursor-pointer\"\n ></wlcm-close-icon>\n </div>\n\n <div class=\"wlcm-filters-panel-units\">\n <ng-container\n *ngTemplateOutlet=\"filtersContent; injector: injector\"\n ></ng-container>\n </div>\n\n <div class=\"wlcm-filters-panel-actions\">\n <wlcm-button type=\"borderless\" (clicked)=\"reset()\">Reset All</wlcm-button>\n\n <wlcm-button\n (clicked)=\"apply()\"\n *rxLet=\"loading$ | async as isLoading\"\n [isLoading]=\"isLoading\"\n >\n Show\n\n <ng-container *rxLet=\"totalResults$ | async as totalResults\">\n <ng-container *ngIf=\"totalResults !== null && !isLoading\">\n ({{ totalResults }})\n </ng-container>\n </ng-container>\n </wlcm-button>\n </div>\n</div>\n", styles: [":host{width:100%;display:block}\n"], dependencies: [{ kind: "directive", type: i2.RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.WlcmButtonComponent, selector: "wlcm-button", inputs: ["type", "size", "isDisabled", "isLoading"], outputs: ["clicked"] }, { kind: "component", type: i5.CloseIconComponent, selector: "wlcm-close-icon" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
63
|
-
};
|
64
|
-
WlcmFiltersPanelComponent = __decorate([
|
65
|
-
UntilDestroy(),
|
66
|
-
__metadata("design:paramtypes", [Injector,
|
67
|
-
WlcmFiltersTriggerControl,
|
68
|
-
WlcmFiltersSelectionModel])
|
69
|
-
], WlcmFiltersPanelComponent);
|
70
|
-
export { WlcmFiltersPanelComponent };
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersPanelComponent, decorators: [{
|
72
|
-
type: Component,
|
73
|
-
args: [{ selector: 'wlcm-filters-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
74
|
-
{
|
75
|
-
provide: WlcmFiltersSelectionModel,
|
76
|
-
useFactory: () => inject(WlcmFiltersSelectionModel, { skipSelf: true }).clone(),
|
77
|
-
},
|
78
|
-
], template: "<div class=\"wlcm-filters-panel\">\n <div class=\"wlcm-filters-panel-header\">\n <h4 class=\"filters-panel__title\">Filters</h4>\n\n <wlcm-close-icon\n (click)=\"close()\"\n class=\"wlcm-cursor-pointer\"\n ></wlcm-close-icon>\n </div>\n\n <div class=\"wlcm-filters-panel-units\">\n <ng-container\n *ngTemplateOutlet=\"filtersContent; injector: injector\"\n ></ng-container>\n </div>\n\n <div class=\"wlcm-filters-panel-actions\">\n <wlcm-button type=\"borderless\" (clicked)=\"reset()\">Reset All</wlcm-button>\n\n <wlcm-button\n (clicked)=\"apply()\"\n *rxLet=\"loading$ | async as isLoading\"\n [isLoading]=\"isLoading\"\n >\n Show\n\n <ng-container *rxLet=\"totalResults$ | async as totalResults\">\n <ng-container *ngIf=\"totalResults !== null && !isLoading\">\n ({{ totalResults }})\n </ng-container>\n </ng-container>\n </wlcm-button>\n </div>\n</div>\n", styles: [":host{width:100%;display:block}\n"] }]
|
79
|
-
}], ctorParameters: () => [{ type: i0.Injector }, { type: i1.WlcmFiltersTriggerControl }, { type: i1.WlcmFiltersSelectionModel, decorators: [{
|
80
|
-
type: SkipSelf
|
81
|
-
}] }], propDecorators: { countResults: [{
|
82
|
-
type: Input
|
83
|
-
}], filtersContent: [{
|
84
|
-
type: Input
|
85
|
-
}] } });
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2ZpbHRlcnMvc3JjL2xpYi9maWx0ZXJzL2NvbXBvbmVudHMvZmlsdGVycy1wYW5lbC9maWx0ZXJzLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzLXBhbmVsL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBRUwsUUFBUSxFQUNSLFdBQVcsRUFDWCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHlCQUF5QixFQUN6Qix5QkFBeUIsR0FDMUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFlNUQsSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBeUI7SUFhcEMsWUFDWSxRQUFrQixFQUNwQixZQUF1QyxFQUMzQixvQkFBK0M7UUFGekQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEyQjtRQVg1RCxhQUFRLEdBQTZCLElBQUks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WUFBWTtzQkFBcEIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvdW50UmVzdWx0c0ZuLFxuICBXbGNtRmlsdGVyc01vZGVsLFxuICBXbGNtRmlsdGVyc1RyaWdnZXJDb250cm9sLFxuICBXbGNtRmlsdGVyc1NlbGVjdGlvbk1vZGVsLFxufSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsdGVycy5tb2RlbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBhdWRpdFRpbWUsIGZpbHRlciwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7IFdsY21GaWx0ZXJzVXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9maWx0ZXJzLnV0aWxzJztcbmltcG9ydCB7IFF1ZXJ5RmlsdGVycywgV2xjbVN0cmVhbVV0aWxzIH0gZnJvbSAnQHdsY20vYW5ndWxhci9jb3JlJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLWZpbHRlcnMtcGFuZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy1wYW5lbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlcnMtcGFuZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFdsY21GaWx0ZXJzU2VsZWN0aW9uTW9kZWwsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiBpbmplY3QoV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbCwgeyBza2lwU2VsZjogdHJ1ZSB9KS5jbG9uZSgpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdsY21GaWx0ZXJzUGFuZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjb3VudFJlc3VsdHM/OiBDb3VudFJlc3VsdHNGbjtcblxuICBASW5wdXQoKSBmaWx0ZXJzQ29udGVudCE6IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIHJlYWRvbmx5IGxvYWRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICByZWFkb25seSB0b3RhbFJlc3VsdHMkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgX3NlbGVjdGlvbk1vZGVsOiBXbGNtRmlsdGVyc1NlbGVjdGlvbk1vZGVsID0gaW5qZWN0KFdsY21GaWx0ZXJzU2VsZWN0aW9uTW9kZWwpO1xuXG4gIHByaXZhdGUgX2NvdW50UmVzdWx0cyQ6IFN1YmplY3Q8V2xjbUZpbHRlcnNNb2RlbD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBwYW5lbENvbnRyb2w6IFdsY21GaWx0ZXJzVHJpZ2dlckNvbnRyb2wsXG4gICAgQFNraXBTZWxmKCkgcHJpdmF0ZSBnbG9iYWxTZWxlY3Rpb25Nb2RlbDogV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbFxuICApIHtcbiAgICB0aGlzLmhhbmRsZUNvdW50UmVzdWx0c0V2ZW50KCk7XG4gICAgdGhpcy5oYW5kbGVTZWxlY3Rpb25DaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb3VudFJlc3VsdHMkLm5leHQodGhpcy5fc2VsZWN0aW9uTW9kZWwubW9kZWwpO1xuICB9XG5cbiAgYXBwbHkoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVHbG9iYWxNb2RlbCgpO1xuXG4gICAgdGhpcy5wYW5lbENvbnRyb2wuY2xvc2UoKTtcbiAgfVxuXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnJlc2V0KCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhbmVsQ29udHJvbC5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVHbG9iYWxNb2RlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmdsb2JhbFNlbGVjdGlvbk1vZGVsLnVwZGF0ZVNlbGVjdGlvbih0aGlzLl9zZWxlY3Rpb25Nb2RlbC5tb2RlbCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNlbGVjdGlvbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwubW9kZWxDaGFuZ2VzJFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChtb2RlbDogV2xjbUZpbHRlcnNNb2RlbCkgPT4gdGhpcy5fY291bnRSZXN1bHRzJC5uZXh0KG1vZGVsKSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNvdW50UmVzdWx0c0V2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvdW50UmVzdWx0cyRcbiAgICAgIC5waXBlKGZpbHRlcigoKSA9PiB0aGlzLmNvdW50UmVzdWx0cyBpbnN0YW5jZW9mIEZ1bmN0aW9uKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKG1vZGVsOiBXbGNtRmlsdGVyc01vZGVsKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyczogUXVlcnlGaWx0ZXJzID0gV2xjbUZpbHRlcnNVdGlscy5tb2RlbFRvUXVlcnlGaWx0ZXJzKG1vZGVsKTtcblxuICAgICAgICAgIHJldHVybiAodGhpcy5jb3VudFJlc3VsdHMgYXMgQ291bnRSZXN1bHRzRm4pKGZpbHRlcnMpLnBpcGUoXG4gICAgICAgICAgICBhdWRpdFRpbWUoMzAwKSxcbiAgICAgICAgICAgIFdsY21TdHJlYW1VdGlscy5sb2FkaW5nRGV0ZWN0b3IodGhpcy5sb2FkaW5nJClcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodG90YWxSZXN1bHRzOiBudW1iZXIpID0+IHRoaXMudG90YWxSZXN1bHRzJC5uZXh0KHRvdGFsUmVzdWx0cykpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid2xjbS1maWx0ZXJzLXBhbmVsXCI+XG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWZpbHRlcnMtcGFuZWwtaGVhZGVyXCI+XG4gICAgPGg0IGNsYXNzPVwiZmlsdGVycy1wYW5lbF9fdGl0bGVcIj5GaWx0ZXJzPC9oND5cblxuICAgIDx3bGNtLWNsb3NlLWljb25cbiAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgIGNsYXNzPVwid2xjbS1jdXJzb3ItcG9pbnRlclwiXG4gICAgPjwvd2xjbS1jbG9zZS1pY29uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwid2xjbS1maWx0ZXJzLXBhbmVsLXVuaXRzXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmaWx0ZXJzQ29udGVudDsgaW5qZWN0b3I6IGluamVjdG9yXCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ3bGNtLWZpbHRlcnMtcGFuZWwtYWN0aW9uc1wiPlxuICAgIDx3bGNtLWJ1dHRvbiB0eXBlPVwiYm9yZGVybGVzc1wiIChjbGlja2VkKT1cInJlc2V0KClcIj5SZXNldCBBbGw8L3dsY20tYnV0dG9uPlxuXG4gICAgPHdsY20tYnV0dG9uXG4gICAgICAoY2xpY2tlZCk9XCJhcHBseSgpXCJcbiAgICAgICpyeExldD1cImxvYWRpbmckIHwgYXN5bmMgYXMgaXNMb2FkaW5nXCJcbiAgICAgIFtpc0xvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICA+XG4gICAgICBTaG93XG5cbiAgICAgIDxuZy1jb250YWluZXIgKnJ4TGV0PVwidG90YWxSZXN1bHRzJCB8IGFzeW5jIGFzIHRvdGFsUmVzdWx0c1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG90YWxSZXN1bHRzICE9PSBudWxsICYmICFpc0xvYWRpbmdcIj5cbiAgICAgICAgICAoe3sgdG90YWxSZXN1bHRzIH19KVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvd2xjbS1idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
@@ -1,55 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
2
|
-
import { WlcmFiltersSelectionModel } from '../../models/filters.models';
|
3
|
-
import { map } from 'rxjs';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "../../models/filters.models";
|
6
|
-
import * as i2 from "@angular/common";
|
7
|
-
import * as i3 from "@angular/material/expansion";
|
8
|
-
import * as i4 from "@angular/material/checkbox";
|
9
|
-
import * as i5 from "@wlcm/angular/core";
|
10
|
-
import * as i6 from "../../pipes/is-filters-param-checked.pipe";
|
11
|
-
export class WlcmFiltersUnitComponent {
|
12
|
-
constructor(selectionModel) {
|
13
|
-
this.selectionModel = selectionModel;
|
14
|
-
this.label = '';
|
15
|
-
this.param = '';
|
16
|
-
this.options = [];
|
17
|
-
}
|
18
|
-
ngOnInit() {
|
19
|
-
this.initializeFiltersUnit();
|
20
|
-
}
|
21
|
-
reset() {
|
22
|
-
this.filtersUnit.reset();
|
23
|
-
}
|
24
|
-
change(event) {
|
25
|
-
if (event.checked) {
|
26
|
-
this.filtersUnit.add(event.source.value);
|
27
|
-
}
|
28
|
-
else {
|
29
|
-
this.filtersUnit.remove(event.source.value);
|
30
|
-
}
|
31
|
-
}
|
32
|
-
initializeFiltersUnit() {
|
33
|
-
if (this.selectionModel.has(this.param)) {
|
34
|
-
this.filtersUnit = this.selectionModel.get(this.param);
|
35
|
-
}
|
36
|
-
else {
|
37
|
-
this.filtersUnit = this.selectionModel.createUnit(this.param);
|
38
|
-
this.selectionModel.add(this.param, this.filtersUnit, false);
|
39
|
-
}
|
40
|
-
this.dataChanges$ = this.filtersUnit.dataChanges$.pipe(map((data) => new Set(data)));
|
41
|
-
}
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersUnitComponent, deps: [{ token: i1.WlcmFiltersSelectionModel }], target: i0.ɵɵFactoryTarget.Component }); }
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.6", type: WlcmFiltersUnitComponent, selector: "wlcm-filters-unit", inputs: { label: "label", param: "param", options: "options" }, ngImport: i0, template: "<mat-expansion-panel class=\"wlcm-filters-unit\" hideToggle>\n <mat-expansion-panel-header collapsedHeight=\"30px\" expandedHeight=\"30px\">\n <div class=\"wlcm-filters-unit-header\">\n <section>\n <span class=\"wlcm-filters-unit-header__label\">{{ label }}</span>\n\n <div\n class=\"wlcm-entities-count\"\n *ngIf=\"(dataChanges$ | async)!.size as size\"\n >\n {{ size }}\n </div>\n </section>\n\n <section>\n <button\n class=\"reset-btn cursor-pointer\"\n (click)=\"reset(); $event.stopPropagation()\"\n *ngIf=\"(dataChanges$ | async)!.size > 0\"\n >\n Reset\n </button>\n\n <wlcm-chevron-down-icon\n class=\"wlcm-filters-unit__chevron\"\n ></wlcm-chevron-down-icon>\n </section>\n </div>\n </mat-expansion-panel-header>\n\n <div class=\"wlcm-filters-unit-checkboxes\">\n <ng-container *ngFor=\"let option of options\">\n <mat-checkbox\n [value]=\"$any(option.value)\"\n [checked]=\"(dataChanges$ | async)! | isFiltersParamChecked\"\n (change)=\"change($event)\"\n >\n {{ option.viewValue }}\n </mat-checkbox>\n </ng-container>\n </div>\n</mat-expansion-panel>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i5.ChevronDownIconComponent, selector: "wlcm-chevron-down-icon" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.IsFiltersParamCheckedPipe, name: "isFiltersParamChecked" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
44
|
-
}
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersUnitComponent, decorators: [{
|
46
|
-
type: Component,
|
47
|
-
args: [{ selector: 'wlcm-filters-unit', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-expansion-panel class=\"wlcm-filters-unit\" hideToggle>\n <mat-expansion-panel-header collapsedHeight=\"30px\" expandedHeight=\"30px\">\n <div class=\"wlcm-filters-unit-header\">\n <section>\n <span class=\"wlcm-filters-unit-header__label\">{{ label }}</span>\n\n <div\n class=\"wlcm-entities-count\"\n *ngIf=\"(dataChanges$ | async)!.size as size\"\n >\n {{ size }}\n </div>\n </section>\n\n <section>\n <button\n class=\"reset-btn cursor-pointer\"\n (click)=\"reset(); $event.stopPropagation()\"\n *ngIf=\"(dataChanges$ | async)!.size > 0\"\n >\n Reset\n </button>\n\n <wlcm-chevron-down-icon\n class=\"wlcm-filters-unit__chevron\"\n ></wlcm-chevron-down-icon>\n </section>\n </div>\n </mat-expansion-panel-header>\n\n <div class=\"wlcm-filters-unit-checkboxes\">\n <ng-container *ngFor=\"let option of options\">\n <mat-checkbox\n [value]=\"$any(option.value)\"\n [checked]=\"(dataChanges$ | async)! | isFiltersParamChecked\"\n (change)=\"change($event)\"\n >\n {{ option.viewValue }}\n </mat-checkbox>\n </ng-container>\n </div>\n</mat-expansion-panel>\n", styles: [":host{display:block}\n"] }]
|
48
|
-
}], ctorParameters: () => [{ type: i1.WlcmFiltersSelectionModel }], propDecorators: { label: [{
|
49
|
-
type: Input
|
50
|
-
}], param: [{
|
51
|
-
type: Input
|
52
|
-
}], options: [{
|
53
|
-
type: Input
|
54
|
-
}] } });
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy11bml0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzLXVuaXQvZmlsdGVycy11bml0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvY29tcG9uZW50cy9maWx0ZXJzLXVuaXQvZmlsdGVycy11bml0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSx5QkFBeUIsRUFBbUIsTUFBTSw2QkFBNkIsQ0FBQztBQUd6RixPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVF2QyxNQUFNLE9BQU8sd0JBQXdCO0lBV25DLFlBQW9CLGNBQXlDO1FBQXpDLG1CQUFjLEdBQWQsY0FBYyxDQUEyQjtRQVZwRCxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFbkIsWUFBTyxHQUFpQixFQUFFLENBQUM7SUFNNEIsQ0FBQztJQUVqRSxRQUFRO1FBQ04sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBd0I7UUFDN0IsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTlELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQzs4R0F2Q1Usd0JBQXdCO2tHQUF4Qix3QkFBd0IseUhDWnJDLCt2Q0EwQ0E7OzJGRDlCYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU07OEZBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbCwgV2xjbUZpbHRlcnNVbml0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbHRlcnMubW9kZWxzJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgV2xjbU9wdGlvbiB9IGZyb20gJ0B3bGNtL2FuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS1maWx0ZXJzLXVuaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy11bml0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVycy11bml0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtRmlsdGVyc1VuaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgcGFyYW06IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFdsY21PcHRpb25bXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBmaWx0ZXJzVW5pdCE6IFdsY21GaWx0ZXJzVW5pdDtcblxuICBwcm90ZWN0ZWQgZGF0YUNoYW5nZXMkITogT2JzZXJ2YWJsZTxTZXQ8c3RyaW5nPj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZWxlY3Rpb25Nb2RlbDogV2xjbUZpbHRlcnNTZWxlY3Rpb25Nb2RlbCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVGaWx0ZXJzVW5pdCgpO1xuICB9XG5cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzVW5pdC5yZXNldCgpO1xuICB9XG5cbiAgY2hhbmdlKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSk6IHZvaWQge1xuICAgIGlmIChldmVudC5jaGVja2VkKSB7XG4gICAgICB0aGlzLmZpbHRlcnNVbml0LmFkZChldmVudC5zb3VyY2UudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcnNVbml0LnJlbW92ZShldmVudC5zb3VyY2UudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUZpbHRlcnNVbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLmhhcyh0aGlzLnBhcmFtKSkge1xuICAgICAgdGhpcy5maWx0ZXJzVW5pdCA9IHRoaXMuc2VsZWN0aW9uTW9kZWwuZ2V0KHRoaXMucGFyYW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcnNVbml0ID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5jcmVhdGVVbml0KHRoaXMucGFyYW0pO1xuXG4gICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmFkZCh0aGlzLnBhcmFtLCB0aGlzLmZpbHRlcnNVbml0LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdGhpcy5kYXRhQ2hhbmdlcyQgPSB0aGlzLmZpbHRlcnNVbml0LmRhdGFDaGFuZ2VzJC5waXBlKG1hcCgoZGF0YTogc3RyaW5nW10pID0+IG5ldyBTZXQoZGF0YSkpKTtcbiAgfVxufVxuIiwiPG1hdC1leHBhbnNpb24tcGFuZWwgY2xhc3M9XCJ3bGNtLWZpbHRlcnMtdW5pdFwiIGhpZGVUb2dnbGU+XG4gIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlciBjb2xsYXBzZWRIZWlnaHQ9XCIzMHB4XCIgZXhwYW5kZWRIZWlnaHQ9XCIzMHB4XCI+XG4gICAgPGRpdiBjbGFzcz1cIndsY20tZmlsdGVycy11bml0LWhlYWRlclwiPlxuICAgICAgPHNlY3Rpb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2xjbS1maWx0ZXJzLXVuaXQtaGVhZGVyX19sYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIndsY20tZW50aXRpZXMtY291bnRcIlxuICAgICAgICAgICpuZ0lmPVwiKGRhdGFDaGFuZ2VzJCB8IGFzeW5jKSEuc2l6ZSBhcyBzaXplXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHNpemUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxzZWN0aW9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJyZXNldC1idG4gY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgIChjbGljayk9XCJyZXNldCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICpuZ0lmPVwiKGRhdGFDaGFuZ2VzJCB8IGFzeW5jKSEuc2l6ZSA+IDBcIlxuICAgICAgICA+XG4gICAgICAgICAgUmVzZXRcbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPHdsY20tY2hldnJvbi1kb3duLWljb25cbiAgICAgICAgICBjbGFzcz1cIndsY20tZmlsdGVycy11bml0X19jaGV2cm9uXCJcbiAgICAgICAgPjwvd2xjbS1jaGV2cm9uLWRvd24taWNvbj5cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cblxuICA8ZGl2IGNsYXNzPVwid2xjbS1maWx0ZXJzLXVuaXQtY2hlY2tib3hlc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCI+XG4gICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgIFt2YWx1ZV09XCIkYW55KG9wdGlvbi52YWx1ZSlcIlxuICAgICAgICBbY2hlY2tlZF09XCIoZGF0YUNoYW5nZXMkIHwgYXN5bmMpISB8IGlzRmlsdGVyc1BhcmFtQ2hlY2tlZFwiXG4gICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICB7eyBvcHRpb24udmlld1ZhbHVlIH19XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L21hdC1leHBhbnNpb24tcGFuZWw+XG4iXX0=
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import { Directive } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
export class WlcmFiltersContentDirective {
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
5
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: WlcmFiltersContentDirective, selector: "[wlcmFiltersContent]", ngImport: i0 }); }
|
6
|
-
}
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WlcmFiltersContentDirective, decorators: [{
|
8
|
-
type: Directive,
|
9
|
-
args: [{ selector: '[wlcmFiltersContent]' }]
|
10
|
-
}] });
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZmlsdGVycy9zcmMvbGliL2ZpbHRlcnMvZGlyZWN0aXZlcy9maWx0ZXJzLWNvbnRlbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzFDLE1BQU0sT0FBTywyQkFBMkI7OEdBQTNCLDJCQUEyQjtrR0FBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1t3bGNtRmlsdGVyc0NvbnRlbnRdJyB9KVxuZXhwb3J0IGNsYXNzIFdsY21GaWx0ZXJzQ29udGVudERpcmVjdGl2ZSB7fVxuIl19
|