@senior-gestao-empresarial/angular-components 7.22.0 → 7.23.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.
Files changed (37) hide show
  1. package/bundles/senior-gestao-empresarial-angular-components.umd.js +439 -3
  2. package/bundles/senior-gestao-empresarial-angular-components.umd.js.map +1 -1
  3. package/bundles/senior-gestao-empresarial-angular-components.umd.min.js +2 -2
  4. package/bundles/senior-gestao-empresarial-angular-components.umd.min.js.map +1 -1
  5. package/components/global-filter/global-filter-modal/global-filter-modal.component.d.ts +41 -0
  6. package/components/global-filter/global-filter.component.d.ts +61 -0
  7. package/components/global-filter/global-filter.module.d.ts +2 -0
  8. package/components/global-filter/global-filter.service.d.ts +54 -0
  9. package/components/global-filter/index.d.ts +3 -0
  10. package/components/storage/filters-storage.service.d.ts +2 -1
  11. package/esm2015/components/global-filter/global-filter-modal/global-filter-modal.component.js +124 -0
  12. package/esm2015/components/global-filter/global-filter.component.js +120 -0
  13. package/esm2015/components/global-filter/global-filter.module.js +29 -0
  14. package/esm2015/components/global-filter/global-filter.service.js +74 -0
  15. package/esm2015/components/global-filter/index.js +4 -0
  16. package/esm2015/components/storage/filters-storage.service.js +7 -2
  17. package/esm2015/locale/fallback.js +79 -0
  18. package/esm2015/public-api.js +3 -1
  19. package/esm2015/senior-gestao-empresarial-angular-components.js +4 -1
  20. package/esm5/components/global-filter/global-filter-modal/global-filter-modal.component.js +124 -0
  21. package/esm5/components/global-filter/global-filter.component.js +135 -0
  22. package/esm5/components/global-filter/global-filter.module.js +32 -0
  23. package/esm5/components/global-filter/global-filter.service.js +87 -0
  24. package/esm5/components/global-filter/index.js +4 -0
  25. package/esm5/components/storage/filters-storage.service.js +12 -5
  26. package/esm5/locale/fallback.js +79 -0
  27. package/esm5/public-api.js +3 -1
  28. package/esm5/senior-gestao-empresarial-angular-components.js +4 -1
  29. package/fesm2015/senior-gestao-empresarial-angular-components.js +400 -5
  30. package/fesm2015/senior-gestao-empresarial-angular-components.js.map +1 -1
  31. package/fesm5/senior-gestao-empresarial-angular-components.js +435 -7
  32. package/fesm5/senior-gestao-empresarial-angular-components.js.map +1 -1
  33. package/locale/fallback.d.ts +78 -0
  34. package/package.json +1 -1
  35. package/public-api.d.ts +2 -0
  36. package/senior-gestao-empresarial-angular-components.d.ts +3 -0
  37. package/senior-gestao-empresarial-angular-components.metadata.json +1 -1
@@ -0,0 +1,41 @@
1
+ import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { FormBuilder, FormGroup } from '@angular/forms';
3
+ import { TranslateService } from '@ngx-translate/core';
4
+ import { FormField } from '@seniorsistemas/angular-components';
5
+ import { E070EmpLookup } from '../../lookups/entities/e-070-emp-lookup';
6
+ import { E070FilLookup } from '../../lookups/entities/e-070-fil-lookup';
7
+ import { FiltersStorageService } from '../../storage';
8
+ import { GlobalFilterFields } from '../global-filter.service';
9
+ export declare class GlobalFilterModalComponent implements OnInit, OnDestroy {
10
+ private readonly formBuilder;
11
+ private readonly translate;
12
+ private readonly e070empLookup;
13
+ private readonly e070filLookup;
14
+ private readonly storageService;
15
+ e070emp: any;
16
+ e070fil: any;
17
+ hideModal: EventEmitter<GlobalFilterFields>;
18
+ isVisible: boolean;
19
+ formGroup: FormGroup;
20
+ formFields: FormField[];
21
+ private readonly ngUnsubscribe;
22
+ constructor(formBuilder: FormBuilder, translate: TranslateService, e070empLookup: E070EmpLookup, e070filLookup: E070FilLookup, storageService: FiltersStorageService);
23
+ ngOnInit(): void;
24
+ ngOnDestroy(): void;
25
+ /**
26
+ * Handles the modal closing event.
27
+ * Hides the modal and emits the optionally provided filter values to the parent component.
28
+ *
29
+ * @param value - Optional filter field values to emit when closing the modal
30
+ */
31
+ onHide(value?: GlobalFilterFields): void;
32
+ /**
33
+ * Saves the current form values and closes the modal.
34
+ * Stores the filter values in local storage and then triggers the hide event
35
+ * with the saved values.
36
+ */
37
+ onSave(): void;
38
+ private createFormGroup;
39
+ private createFormField;
40
+ private handleFormChanges;
41
+ }
@@ -0,0 +1,61 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { FiltersStorageService } from '../storage';
4
+ import { GlobalFilterFields, GlobalFilterService } from './global-filter.service';
5
+ import { TranslateService } from '@ngx-translate/core';
6
+ export declare class GlobalFilterComponent implements OnInit, OnDestroy {
7
+ private readonly storageService;
8
+ private readonly globalFilterService;
9
+ private readonly router;
10
+ private readonly translate;
11
+ /**
12
+ * Routes that are excluded from the global filter by default.
13
+ * These routes will not have the global filter applied to them.
14
+ */
15
+ private readonly defaultExcludedRoutes;
16
+ private _showComponent;
17
+ showModal: boolean;
18
+ e070emp: any;
19
+ e070fil: any;
20
+ private readonly ngUnsubscribe;
21
+ /**
22
+ * Gets a formatted tooltip string for mobile devices.
23
+ * Concatenates all active field labels and values separated by newlines.
24
+ */
25
+ get mobileTooltip(): string | null;
26
+ /**
27
+ * Gets the current filter field configuration array.
28
+ */
29
+ get fields(): {
30
+ label: any;
31
+ value: any;
32
+ displayText: string;
33
+ }[];
34
+ /**
35
+ * Gets the visibility state of the global filter component.
36
+ * Considers both the service-level visibility setting and the current route.
37
+ */
38
+ get showComponent(): boolean;
39
+ constructor(storageService: FiltersStorageService, globalFilterService: GlobalFilterService, router: Router, translate: TranslateService);
40
+ ngOnInit(): void;
41
+ ngOnDestroy(): void;
42
+ /**
43
+ * Handles the closing of the filter modal and updates field values.
44
+ * When fields are provided, updates the component state and notifies the GlobalFilterService.
45
+ *
46
+ * @param event - Optional filter field values from the modal
47
+ */
48
+ onHide(event?: GlobalFilterFields): void;
49
+ /**
50
+ * Loads the previously saved filter values from local storage.
51
+ * Retrieves the filter data using the ERPX_GLOBAL_FILTER_KEY and applies it
52
+ * to the component's e070emp and e070fil properties if available.
53
+ */
54
+ private loadFiltersFromStorage;
55
+ /**
56
+ * Initializes the route change listener to manage component visibility.
57
+ * Subscribes to router navigation events and sets the component visibility
58
+ * based on the current route against excluded routes (default and service-configured).
59
+ */
60
+ private initializeRouteListener;
61
+ }
@@ -0,0 +1,2 @@
1
+ export declare class GlobalFilterModule {
2
+ }
@@ -0,0 +1,54 @@
1
+ export declare class GlobalFilterService {
2
+ private _showComponent;
3
+ private _excludedRoutes;
4
+ private readonly filterChangeSubject;
5
+ /**
6
+ * Emits a filter change event to all subscribers.
7
+ * This method should be called whenever the global filter values change
8
+ * to notify all components listening for filter updates.
9
+ *
10
+ * @param event - The filter fields object containing e070emp and e070fil information
11
+ * @param event.e070emp - e070emp (company) filter value
12
+ * @param event.e070fil - e070fil (branch) filter value
13
+ */
14
+ onFilterChange(event: GlobalFilterFields): void;
15
+ /**
16
+ * Observable stream of filter changes.
17
+ * Subscribe to this to receive notifications when the filter changes.
18
+ *
19
+ * @returns Observable that emits objects containing e070emp and e070fil filter values
20
+ */
21
+ get filterChange(): import("rxjs").Observable<GlobalFilterFields>;
22
+ /**
23
+ * Gets the visibility state of the global filter component.
24
+ * Use this to determine whether the global filter should be displayed.
25
+ *
26
+ * @returns true if the component should be shown, false otherwise
27
+ */
28
+ get showComponent(): boolean;
29
+ /**
30
+ * Sets the visibility state of the global filter component.
31
+ * Use this to programmatically show or hide the global filter.
32
+ *
33
+ * @param value - true to show the component, false to hide it
34
+ */
35
+ set showComponent(value: boolean);
36
+ /**
37
+ * Gets the list of routes where the global filter component should not be displayed.
38
+ * These routes will automatically hide the global filter component.
39
+ *
40
+ * @returns Array of route paths to exclude from displaying the global filter
41
+ */
42
+ get excludedRoutes(): string[];
43
+ /**
44
+ * Sets the routes where the global filter component should not be displayed.
45
+ * Use this to configure which pages should not show the global filter.
46
+ *
47
+ * @param value - Array of route paths to exclude from displaying the global filter
48
+ */
49
+ set excludedRoutes(value: string[]);
50
+ }
51
+ export interface GlobalFilterFields {
52
+ e070emp: any;
53
+ e070fil: any;
54
+ }
@@ -0,0 +1,3 @@
1
+ export { GlobalFilterComponent } from "./global-filter.component";
2
+ export { GlobalFilterModule } from "./global-filter.module";
3
+ export { GlobalFilterService } from "./global-filter.service";
@@ -1,8 +1,9 @@
1
1
  import { StorageService } from "./storage.service";
2
+ export declare const ERPX_GLOBAL_FILTER_KEY = "ERPX_GLOBAL_FILTER";
2
3
  export declare class FiltersStorageService extends StorageService {
3
4
  private FILTERS_KEY;
4
5
  storeFilters(key: string, filters: any): Promise<void>;
5
- getFilters(key: string): Promise<any>;
6
+ getFilters(key: string, includeGlobalFilter?: boolean): Promise<any>;
6
7
  removeFilter(key: string): Promise<void>;
7
8
  clearFilterValue(key: string, filters: any): Promise<void>;
8
9
  private removeEmptyValues;
@@ -0,0 +1,124 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { FormBuilder, FormGroup } from '@angular/forms';
4
+ import { TranslateService } from '@ngx-translate/core';
5
+ import { FieldType, FormField } from '@seniorsistemas/angular-components';
6
+ import { Subject } from 'rxjs';
7
+ import { takeUntil } from 'rxjs/operators';
8
+ import { E070EmpLookup } from '../../lookups/entities/e-070-emp-lookup';
9
+ import { E070FilLookup } from '../../lookups/entities/e-070-fil-lookup';
10
+ import { ERPX_GLOBAL_FILTER_KEY, FiltersStorageService } from '../../storage';
11
+ let GlobalFilterModalComponent = class GlobalFilterModalComponent {
12
+ constructor(formBuilder, translate, e070empLookup, e070filLookup, storageService) {
13
+ this.formBuilder = formBuilder;
14
+ this.translate = translate;
15
+ this.e070empLookup = e070empLookup;
16
+ this.e070filLookup = e070filLookup;
17
+ this.storageService = storageService;
18
+ this.hideModal = new EventEmitter();
19
+ this.isVisible = true;
20
+ this.ngUnsubscribe = new Subject();
21
+ }
22
+ ngOnInit() {
23
+ this.createFormGroup();
24
+ this.createFormField();
25
+ this.handleFormChanges();
26
+ }
27
+ ngOnDestroy() {
28
+ this.ngUnsubscribe.next();
29
+ this.ngUnsubscribe.complete();
30
+ }
31
+ /**
32
+ * Handles the modal closing event.
33
+ * Hides the modal and emits the optionally provided filter values to the parent component.
34
+ *
35
+ * @param value - Optional filter field values to emit when closing the modal
36
+ */
37
+ onHide(value) {
38
+ this.isVisible = false;
39
+ this.hideModal.emit(value);
40
+ }
41
+ /**
42
+ * Saves the current form values and closes the modal.
43
+ * Stores the filter values in local storage and then triggers the hide event
44
+ * with the saved values.
45
+ */
46
+ onSave() {
47
+ const value = this.formGroup.getRawValue();
48
+ this.storageService.store(ERPX_GLOBAL_FILTER_KEY, value).then(() => this.onHide(value));
49
+ }
50
+ createFormGroup() {
51
+ this.formGroup = this.formBuilder.group({
52
+ e070emp: [{ value: this.e070emp, disabled: false }],
53
+ e070fil: [{ value: this.e070fil, disabled: !this.e070emp }],
54
+ });
55
+ }
56
+ createFormField() {
57
+ this.formFields = [
58
+ new FormField(Object.assign(Object.assign({}, this.e070empLookup.mountOptions({
59
+ multiple: false,
60
+ queryFields: ['e031moe.sigMoe']
61
+ })), { appendTo: "body", emptyMessage: this.translate.instant('erpx_fnd.empresa.nothing_found') })),
62
+ new FormField(Object.assign(Object.assign({}, this.e070filLookup.mountOptions({
63
+ multiple: false,
64
+ lookupFields: [
65
+ { name: "codFil", type: FieldType.Integer },
66
+ { name: "nomFil", type: FieldType.String },
67
+ ],
68
+ searchFields: [
69
+ { name: "codFil", type: FieldType.Integer },
70
+ { name: "nomFil", type: FieldType.String },
71
+ ],
72
+ searchGridFields: [
73
+ { name: "codFil", type: FieldType.Integer },
74
+ { name: "nomFil", type: FieldType.String },
75
+ ],
76
+ entityDependency: [
77
+ {
78
+ name: "e070emp",
79
+ field: "id",
80
+ value: () => this.formGroup.get("e070emp").value
81
+ },
82
+ ],
83
+ })), { emptyMessage: this.translate.instant('erpx_fnd.empresa.nothing_found'), appendTo: "body" })),
84
+ ];
85
+ }
86
+ handleFormChanges() {
87
+ this.formGroup.controls.e070emp.valueChanges
88
+ .pipe(takeUntil(this.ngUnsubscribe))
89
+ .subscribe((value) => {
90
+ const control = this.formGroup.get('e070fil');
91
+ value ? control.enable() : control.disable();
92
+ control.reset();
93
+ });
94
+ }
95
+ };
96
+ GlobalFilterModalComponent.ctorParameters = () => [
97
+ { type: FormBuilder },
98
+ { type: TranslateService },
99
+ { type: E070EmpLookup },
100
+ { type: E070FilLookup },
101
+ { type: FiltersStorageService }
102
+ ];
103
+ __decorate([
104
+ Input()
105
+ ], GlobalFilterModalComponent.prototype, "e070emp", void 0);
106
+ __decorate([
107
+ Input()
108
+ ], GlobalFilterModalComponent.prototype, "e070fil", void 0);
109
+ __decorate([
110
+ Output()
111
+ ], GlobalFilterModalComponent.prototype, "hideModal", void 0);
112
+ GlobalFilterModalComponent = __decorate([
113
+ Component({
114
+ selector: 'global-filter-modal',
115
+ template: "<p-dialog\n [(visible)]=\"isVisible\"\n [modal]=\"true\"\n (onHide)=\"onHide()\"\n [draggable]=\"false\"\n [resizable]=\"false\"\n [focusOnShow]=\"false\"\n>\n <p-header>\n {{ 'erpx_fnd.empresa.global_filter_header' | translate }}\n </p-header>\n <p class=\"description\">\n {{ 'erpx_fnd.empresa.global_filter_description' | translate }}\n </p>\n <br>\n <s-dynamic-form\n [fields]=\"formFields\" [form]=\"formGroup\"\n ></s-dynamic-form>\n <p-footer>\n <s-button\n [label]=\"'erpx_fnd.empresa.save' | translate\"\n priority=\"primary\"\n (onClick)=\"onSave()\"\n ></s-button>\n <s-button\n [label]=\"'erpx_fnd.empresa.cancel' | translate\"\n priority=\"link\"\n (onClick)=\"onHide()\"\n ></s-button>\n </p-footer>\n</p-dialog>\n",
116
+ styles: [`
117
+ .description {
118
+ padding: 0px 7px;
119
+ }
120
+ `]
121
+ })
122
+ ], GlobalFilterModalComponent);
123
+ export { GlobalFilterModalComponent };
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWZpbHRlci1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2dsb2JhbC1maWx0ZXIvZ2xvYmFsLWZpbHRlci1tb2RhbC9nbG9iYWwtZmlsdGVyLW1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBWTlFLElBQWEsMEJBQTBCLEdBQXZDLE1BQWEsMEJBQTBCO0lBVW5DLFlBQ3FCLFdBQXdCLEVBQ3hCLFNBQTJCLEVBQzNCLGFBQTRCLEVBQzVCLGFBQTRCLEVBQzVCLGNBQXFDO1FBSnJDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVC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LEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUs7cUJBQ25EO2lCQUNKO2FBQ0osQ0FBQyxLQUNGLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUN0RSxRQUFRLEVBQUUsTUFBTSxJQUNsQjtTQUNMLENBQUM7SUFDTixDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25DLFNBQVMsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0MsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNKLENBQUE7O1lBOUZxQyxXQUFXO1lBQ2IsZ0JBQWdCO1lBQ1osYUFBYTtZQUNiLGFBQWE7WUFDWixxQkFBcUI7O0FBZGpEO0lBQVIsS0FBSyxFQUFFOzJEQUFjO0FBQ2I7SUFBUixLQUFLLEVBQUU7MkRBQWM7QUFDWjtJQUFULE1BQU0sRUFBRTs2REFBa0U7QUFIbEUsMEJBQTBCO0lBVHRDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsbzRCQUFtRDtpQkFDMUM7Ozs7S0FJUjtLQUNKLENBQUM7R0FDVywwQkFBMEIsQ0F5R3RDO1NBekdZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRm9ybUZpZWxkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFMDcwRW1wTG9va3VwIH0gZnJvbSAnLi4vLi4vbG9va3Vwcy9lbnRpdGllcy9lLTA3MC1lbXAtbG9va3VwJztcbmltcG9ydCB7IEUwNzBGaWxMb29rdXAgfSBmcm9tICcuLi8uLi9sb29rdXBzL2VudGl0aWVzL2UtMDcwLWZpbC1sb29rdXAnO1xuaW1wb3J0IHsgRVJQWF9HTE9CQUxfRklMVEVSX0tFWSwgRmlsdGVyc1N0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3RvcmFnZSc7XG5pbXBvcnQgeyBHbG9iYWxGaWx0ZXJGaWVsZHMgfSBmcm9tICcuLi9nbG9iYWwtZmlsdGVyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dsb2JhbC1maWx0ZXItbW9kYWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nbG9iYWwtZmlsdGVyLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtgXG4gICAgICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcHggN3B4O1xuICAgICAgICB9XG4gICAgYF1cbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsRmlsdGVyTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgZTA3MGVtcDogYW55O1xuICAgIEBJbnB1dCgpIGUwNzBmaWw6IGFueTtcbiAgICBAT3V0cHV0KCkgaGlkZU1vZGFsOiBFdmVudEVtaXR0ZXI8R2xvYmFsRmlsdGVyRmllbGRzPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBpc1Zpc2libGUgPSB0cnVlO1xuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgZm9ybUZpZWxkczogRm9ybUZpZWxkW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZTA3MGVtcExvb2t1cDogRTA3MEVtcExvb2t1cCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBlMDcwZmlsTG9va3VwOiBFMDcwRmlsTG9va3VwLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBGaWx0ZXJzU3RvcmFnZVNlcnZpY2UsXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm1GaWVsZCgpO1xuICAgICAgICB0aGlzLmhhbmRsZUZvcm1DaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgdGhlIG1vZGFsIGNsb3NpbmcgZXZlbnQuXG4gICAgICogSGlkZXMgdGhlIG1vZGFsIGFuZCBlbWl0cyB0aGUgb3B0aW9uYWxseSBwcm92aWRlZCBmaWx0ZXIgdmFsdWVzIHRvIHRoZSBwYXJlbnQgY29tcG9uZW50LlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIC0gT3B0aW9uYWwgZmlsdGVyIGZpZWxkIHZhbHVlcyB0byBlbWl0IHdoZW4gY2xvc2luZyB0aGUgbW9kYWxcbiAgICAgKi9cbiAgICBvbkhpZGUodmFsdWU/OiBHbG9iYWxGaWx0ZXJGaWVsZHMpIHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oaWRlTW9kYWwuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgdGhlIGN1cnJlbnQgZm9ybSB2YWx1ZXMgYW5kIGNsb3NlcyB0aGUgbW9kYWwuXG4gICAgICogU3RvcmVzIHRoZSBmaWx0ZXIgdmFsdWVzIGluIGxvY2FsIHN0b3JhZ2UgYW5kIHRoZW4gdHJpZ2dlcnMgdGhlIGhpZGUgZXZlbnRcbiAgICAgKiB3aXRoIHRoZSBzYXZlZCB2YWx1ZXMuXG4gICAgICovXG4gICAgb25TYXZlKCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc3RvcmUoRVJQWF9HTE9CQUxfRklMVEVSX0tFWSwgdmFsdWUpLnRoZW4oKCkgPT4gdGhpcy5vbkhpZGUodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGUwNzBlbXA6IFt7IHZhbHVlOiB0aGlzLmUwNzBlbXAsIGRpc2FibGVkOiBmYWxzZSB9XSxcbiAgICAgICAgICAgIGUwNzBmaWw6IFt7IHZhbHVlOiB0aGlzLmUwNzBmaWwsIGRpc2FibGVkOiAhdGhpcy5lMDcwZW1wIH1dLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm1GaWVsZCgpIHtcbiAgICAgICAgdGhpcy5mb3JtRmllbGRzID0gW1xuICAgICAgICAgICAgbmV3IEZvcm1GaWVsZCh7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5lMDcwZW1wTG9va3VwLm1vdW50T3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlGaWVsZHM6IFsnZTAzMW1vZS5zaWdNb2UnXVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGFwcGVuZFRvOiBcImJvZHlcIixcbiAgICAgICAgICAgICAgICBlbXB0eU1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VycHhfZm5kLmVtcHJlc2Eubm90aGluZ19mb3VuZCcpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgRm9ybUZpZWxkKHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmUwNzBmaWxMb29rdXAubW91bnRPcHRpb25zKHtcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBsb29rdXBGaWVsZHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJjb2RGaWxcIiwgdHlwZTogRmllbGRUeXBlLkludGVnZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJub21GaWxcIiwgdHlwZTogRmllbGRUeXBlLlN0cmluZyB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBzZWFyY2hGaWVsZHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJjb2RGaWxcIiwgdHlwZTogRmllbGRUeXBlLkludGVnZXIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgbmFtZTogXCJub21GaWxcIiwgdHlwZTogRmllbGRUeXBlLlN0cmluZyB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBzZWFyY2hHcmlkRmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IFwiY29kRmlsXCIsIHR5cGU6IEZpZWxkVHlwZS5JbnRlZ2VyIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IFwibm9tRmlsXCIsIHR5cGU6IEZpZWxkVHlwZS5TdHJpbmcgfSxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5RGVwZW5kZW5jeTogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiZTA3MGVtcFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiBcImlkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICgpID0+IHRoaXMuZm9ybUdyb3VwLmdldChcImUwNzBlbXBcIikudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZW1wdHlNZXNzYWdlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlcnB4X2ZuZC5lbXByZXNhLm5vdGhpbmdfZm91bmQnKSxcbiAgICAgICAgICAgICAgICBhcHBlbmRUbzogXCJib2R5XCIsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUZvcm1DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5lMDcwZW1wLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogT2JqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnZTA3MGZpbCcpO1xuICAgICAgICAgICAgICAgIHZhbHVlID8gY29udHJvbC5lbmFibGUoKSA6IGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICAgICAgICAgIGNvbnRyb2wucmVzZXQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,120 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component } from '@angular/core';
3
+ import { NavigationEnd, Router } from '@angular/router';
4
+ import { filter, takeUntil } from 'rxjs/operators';
5
+ import { ERPX_GLOBAL_FILTER_KEY, FiltersStorageService } from '../storage';
6
+ import { GlobalFilterFields, GlobalFilterService } from './global-filter.service';
7
+ import { TranslateService } from '@ngx-translate/core';
8
+ import { Subject } from 'rxjs';
9
+ let GlobalFilterComponent = class GlobalFilterComponent {
10
+ constructor(storageService, globalFilterService, router, translate) {
11
+ this.storageService = storageService;
12
+ this.globalFilterService = globalFilterService;
13
+ this.router = router;
14
+ this.translate = translate;
15
+ /**
16
+ * Routes that are excluded from the global filter by default.
17
+ * These routes will not have the global filter applied to them.
18
+ */
19
+ this.defaultExcludedRoutes = ['forbidden', 'main', 'not-found'];
20
+ this._showComponent = true;
21
+ this.showModal = false;
22
+ this.ngUnsubscribe = new Subject();
23
+ }
24
+ /**
25
+ * Gets a formatted tooltip string for mobile devices.
26
+ * Concatenates all active field labels and values separated by newlines.
27
+ */
28
+ get mobileTooltip() {
29
+ const lines = this.fields
30
+ .filter(filterItem => filterItem.value)
31
+ .map(filterItem => `${filterItem.label}: ${filterItem.displayText}`);
32
+ return lines.length > 0 ? lines.join('\n') : null;
33
+ }
34
+ /**
35
+ * Gets the current filter field configuration array.
36
+ */
37
+ get fields() {
38
+ return [
39
+ {
40
+ label: this.translate.instant('erpx_fnd.empresa.e_070_emp'),
41
+ value: this.e070emp,
42
+ displayText: this.e070emp ? `${this.e070emp.label}` : null
43
+ },
44
+ {
45
+ label: this.translate.instant('erpx_fnd.empresa.e_070_fil'),
46
+ value: this.e070fil,
47
+ displayText: this.e070fil ? `${this.e070fil.label}` : null
48
+ }
49
+ ];
50
+ }
51
+ /**
52
+ * Gets the visibility state of the global filter component.
53
+ * Considers both the service-level visibility setting and the current route.
54
+ */
55
+ get showComponent() {
56
+ return this.globalFilterService.showComponent && this._showComponent;
57
+ }
58
+ ngOnInit() {
59
+ this.loadFiltersFromStorage();
60
+ this.initializeRouteListener();
61
+ }
62
+ ngOnDestroy() {
63
+ this.ngUnsubscribe.next();
64
+ this.ngUnsubscribe.complete();
65
+ }
66
+ /**
67
+ * Handles the closing of the filter modal and updates field values.
68
+ * When fields are provided, updates the component state and notifies the GlobalFilterService.
69
+ *
70
+ * @param event - Optional filter field values from the modal
71
+ */
72
+ onHide(event) {
73
+ this.showModal = false;
74
+ if (event) {
75
+ this.e070emp = event.e070emp;
76
+ this.e070fil = event.e070fil;
77
+ this.globalFilterService.onFilterChange(event);
78
+ }
79
+ }
80
+ /**
81
+ * Loads the previously saved filter values from local storage.
82
+ * Retrieves the filter data using the ERPX_GLOBAL_FILTER_KEY and applies it
83
+ * to the component's e070emp and e070fil properties if available.
84
+ */
85
+ loadFiltersFromStorage() {
86
+ this.storageService.get(ERPX_GLOBAL_FILTER_KEY).then((filterData) => {
87
+ if (filterData && Object.keys(filterData).length > 0) {
88
+ this.e070emp = filterData.e070emp;
89
+ this.e070fil = filterData.e070fil;
90
+ }
91
+ });
92
+ }
93
+ /**
94
+ * Initializes the route change listener to manage component visibility.
95
+ * Subscribes to router navigation events and sets the component visibility
96
+ * based on the current route against excluded routes (default and service-configured).
97
+ */
98
+ initializeRouteListener() {
99
+ this.router.events.pipe(takeUntil(this.ngUnsubscribe), filter(event => event instanceof NavigationEnd)).subscribe((event) => {
100
+ const excludedRoutes = new RegExp(`^/(${[...this.defaultExcludedRoutes, ...this.globalFilterService.excludedRoutes].join('|')})(/|$)`);
101
+ const currentRoute = event.urlAfterRedirects;
102
+ this._showComponent = !excludedRoutes.test(currentRoute);
103
+ });
104
+ }
105
+ };
106
+ GlobalFilterComponent.ctorParameters = () => [
107
+ { type: FiltersStorageService },
108
+ { type: GlobalFilterService },
109
+ { type: Router },
110
+ { type: TranslateService }
111
+ ];
112
+ GlobalFilterComponent = __decorate([
113
+ Component({
114
+ selector: 'erpx-global-filter',
115
+ template: "<ng-container *ngIf=\"showComponent\">\n <div class=\"global-filter-mobile\">\n <small class=\"label-title\">\n {{ 'erpx_fnd.empresa.filters' | translate }}\n </small>\n <div>\n <a (click)=\"showModal = true\" class=\"mobile-trigger\" [attr.title]=\"mobileTooltip\">\n <em class=\"fa fa-pencil-square-o\"></em>\n {{ 'erpx_fnd.empresa.company_and_branch' | translate }}\n </a>\n </div>\n </div>\n <div class=\"global-filter-desktop\">\n <div class=\"ui-g\">\n <div class=\"ui-g-6\" *ngFor=\"let field of fields\">\n <small class=\"label-title\">\n {{ field.label }}\n </small>\n <div>\n <a (click)=\"showModal = true\">\n <ng-container *ngIf=\"field.value; else emptyField\">\n <em class=\"fa fa-pencil-square-o\"></em>\n {{ field.displayText }}\n </ng-container>\n </a>\n </div>\n </div>\n </div>\n </div>\n <ng-template #emptyField>\n <em class=\"fa fa-search\"></em>\n {{ 'erpx_fnd.empresa.click_to_select' | translate }}\n </ng-template>\n\n <global-filter-modal *ngIf=\"showModal\"\n [e070emp]=\"e070emp\"\n [e070fil]=\"e070fil\"\n (hideModal)=\"onHide($event)\"\n ></global-filter-modal>\n</ng-container>",
116
+ styles: [".label-title{color:#999}.global-filter-desktop,.global-filter-mobile{display:block;padding:8px 0}.global-filter-desktop a:hover,.global-filter-mobile a:hover{text-decoration:underline}.global-filter-desktop a .fa,.global-filter-mobile a .fa{margin-right:4px}.global-filter-desktop{display:none}@media (min-width:768px){.global-filter-mobile{display:none}.global-filter-desktop{display:block;width:480px}.global-filter-desktop a{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}"]
117
+ })
118
+ ], GlobalFilterComponent);
119
+ export { GlobalFilterComponent };
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2dsb2JhbC1maWx0ZXIvZ2xvYmFsLWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU8vQixJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQXFEOUIsWUFDcUIsY0FBcUMsRUFDckMsbUJBQXdDLEVBQ3hDLE1BQWMsRUFDZCxTQUEyQjtRQUgzQixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUF2RGhEOzs7V0FHRztRQUNjLDBCQUFxQixHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRSxtQkFBYyxHQUFHLElBQUksQ0FBQztRQUV2QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBSVIsa0JBQWEsR0FBRyxJQUFJLE9B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LENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUNsRCxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUNqQyxNQUFNLGNBQWMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2SSxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsaUJBQWlCLENBQUM7WUFDN0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0osQ0FBQTs7WUE1RHdDLHFCQUFxQjtZQUNoQixtQkFBbUI7WUFDaEMsTUFBTTtZQUNILGdCQUFnQjs7QUF6RHZDLHFCQUFxQjtJQUxqQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsb0JBQW9CO1FBQzlCLG8vQ0FBNkM7O0tBRWhELENBQUM7R0FDVyxxQkFBcUIsQ0FrSGpDO1NBbEhZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVSUFhfR0xPQkFMX0ZJTFRFUl9LRVksIEZpbHRlcnNTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2UnO1xuaW1wb3J0IHsgR2xvYmFsRmlsdGVyRmllbGRzLCBHbG9iYWxGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9nbG9iYWwtZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VycHgtZ2xvYmFsLWZpbHRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dsb2JhbC1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2dsb2JhbC1maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogUm91dGVzIHRoYXQgYXJlIGV4Y2x1ZGVkIGZyb20gdGhlIGdsb2JhbCBmaWx0ZXIgYnkgZGVmYXVsdC5cbiAgICAgKiBUaGVzZSByb3V0ZXMgd2lsbCBub3QgaGF2ZSB0aGUgZ2xvYmFsIGZpbHRlciBhcHBsaWVkIHRvIHRoZW0uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0RXhjbHVkZWRSb3V0ZXMgPSBbJ2ZvcmJpZGRlbicsICdtYWluJywgJ25vdC1mb3VuZCddO1xuICAgIHByaXZhdGUgX3Nob3dDb21wb25lbnQgPSB0cnVlO1xuXG4gICAgcHVibGljIHNob3dNb2RhbCA9IGZhbHNlO1xuICAgIHB1YmxpYyBlMDcwZW1wOiBhbnk7XG4gICAgcHVibGljIGUwNzBmaWw6IGFueTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgZm9ybWF0dGVkIHRvb2x0aXAgc3RyaW5nIGZvciBtb2JpbGUgZGV2aWNlcy5cbiAgICAgKiBDb25jYXRlbmF0ZXMgYWxsIGFjdGl2ZSBmaWVsZCBsYWJlbHMgYW5kIHZhbHVlcyBzZXBhcmF0ZWQgYnkgbmV3bGluZXMuXG4gICAgICovXG4gICAgZ2V0IG1vYmlsZVRvb2x0aXAoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGxpbmVzID0gdGhpcy5maWVsZHNcbiAgICAgICAgICAgIC5maWx0ZXIoZmlsdGVySXRlbSA9PiBmaWx0ZXJJdGVtLnZhbHVlKVxuICAgICAgICAgICAgLm1hcChmaWx0ZXJJdGVtID0+IGAke2ZpbHRlckl0ZW0ubGFiZWx9OiAke2ZpbHRlckl0ZW0uZGlzcGxheVRleHR9YCk7XG5cbiAgICAgICAgcmV0dXJuIGxpbmVzLmxlbmd0aCA+IDAgPyBsaW5lcy5qb2luKCdcXG4nKSA6IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY3VycmVudCBmaWx0ZXIgZmllbGQgY29uZmlndXJhdGlvbiBhcnJheS5cbiAgICAgKi9cbiAgICBnZXQgZmllbGRzKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlcnB4X2ZuZC5lbXByZXNhLmVfMDcwX2VtcCcpLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmUwNzBlbXAsXG4gICAgICAgICAgICAgICAgZGlzcGxheVRleHQ6IHRoaXMuZTA3MGVtcCA/IGAke3RoaXMuZTA3MGVtcC5sYWJlbH1gIDogbnVsbFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZXJweF9mbmQuZW1wcmVzYS5lXzA3MF9maWwnKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5lMDcwZmlsLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlUZXh0OiB0aGlzLmUwNzBmaWwgPyBgJHt0aGlzLmUwNzBmaWwubGFiZWx9YCA6IG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBnbG9iYWwgZmlsdGVyIGNvbXBvbmVudC5cbiAgICAgKiBDb25zaWRlcnMgYm90aCB0aGUgc2VydmljZS1sZXZlbCB2aXNpYmlsaXR5IHNldHRpbmcgYW5kIHRoZSBjdXJyZW50IHJvdXRlLlxuICAgICAqL1xuICAgIGdldCBzaG93Q29tcG9uZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nbG9iYWxGaWx0ZXJTZXJ2aWNlLnNob3dDb21wb25lbnQgJiYgdGhpcy5fc2hvd0NvbXBvbmVudDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogRmlsdGVyc1N0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbEZpbHRlclNlcnZpY2U6IEdsb2JhbEZpbHRlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkRmlsdGVyc0Zyb21TdG9yYWdlKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVJvdXRlTGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyB0aGUgY2xvc2luZyBvZiB0aGUgZmlsdGVyIG1vZGFsIGFuZCB1cGRhdGVzIGZpZWxkIHZhbHVlcy5cbiAgICAgKiBXaGVuIGZpZWxkcyBhcmUgcHJvdmlkZWQsIHVwZGF0ZXMgdGhlIGNvbXBvbmVudCBzdGF0ZSBhbmQgbm90aWZpZXMgdGhlIEdsb2JhbEZpbHRlclNlcnZpY2UuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgLSBPcHRpb25hbCBmaWx0ZXIgZmllbGQgdmFsdWVzIGZyb20gdGhlIG1vZGFsXG4gICAgICovXG4gICAgb25IaWRlKGV2ZW50PzogR2xvYmFsRmlsdGVyRmllbGRzKSB7XG4gICAgICAgIHRoaXMuc2hvd01vZGFsID0gZmFsc2U7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgdGhpcy5lMDcwZW1wID0gZXZlbnQuZTA3MGVtcDtcbiAgICAgICAgICAgIHRoaXMuZTA3MGZpbCA9IGV2ZW50LmUwNzBmaWw7XG4gICAgICAgICAgICB0aGlzLmdsb2JhbEZpbHRlclNlcnZpY2Uub25GaWx0ZXJDaGFuZ2UoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9hZHMgdGhlIHByZXZpb3VzbHkgc2F2ZWQgZmlsdGVyIHZhbHVlcyBmcm9tIGxvY2FsIHN0b3JhZ2UuXG4gICAgICogUmV0cmlldmVzIHRoZSBmaWx0ZXIgZGF0YSB1c2luZyB0aGUgRVJQWF9HTE9CQUxfRklMVEVSX0tFWSBhbmQgYXBwbGllcyBpdFxuICAgICAqIHRvIHRoZSBjb21wb25lbnQncyBlMDcwZW1wIGFuZCBlMDcwZmlsIHByb3BlcnRpZXMgaWYgYXZhaWxhYmxlLlxuICAgICAqL1xuICAgIHByaXZhdGUgbG9hZEZpbHRlcnNGcm9tU3RvcmFnZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXQoRVJQWF9HTE9CQUxfRklMVEVSX0tFWSkudGhlbigoZmlsdGVyRGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZmlsdGVyRGF0YSAmJiBPYmplY3Qua2V5cyhmaWx0ZXJEYXRhKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lMDcwZW1wID0gZmlsdGVyRGF0YS5lMDcwZW1wO1xuICAgICAgICAgICAgICAgIHRoaXMuZTA3MGZpbCA9IGZpbHRlckRhdGEuZTA3MGZpbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgdGhlIHJvdXRlIGNoYW5nZSBsaXN0ZW5lciB0byBtYW5hZ2UgY29tcG9uZW50IHZpc2liaWxpdHkuXG4gICAgICogU3Vic2NyaWJlcyB0byByb3V0ZXIgbmF2aWdhdGlvbiBldmVudHMgYW5kIHNldHMgdGhlIGNvbXBvbmVudCB2aXNpYmlsaXR5XG4gICAgICogYmFzZWQgb24gdGhlIGN1cnJlbnQgcm91dGUgYWdhaW5zdCBleGNsdWRlZCByb3V0ZXMgKGRlZmF1bHQgYW5kIHNlcnZpY2UtY29uZmlndXJlZCkuXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplUm91dGVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICApLnN1YnNjcmliZSgoZXZlbnQ6IE5hdmlnYXRpb25FbmQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4Y2x1ZGVkUm91dGVzID0gbmV3IFJlZ0V4cChgXi8oJHtbLi4udGhpcy5kZWZhdWx0RXhjbHVkZWRSb3V0ZXMsIC4uLnRoaXMuZ2xvYmFsRmlsdGVyU2VydmljZS5leGNsdWRlZFJvdXRlc10uam9pbignfCcpfSkoL3wkKWApO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFJvdXRlID0gZXZlbnQudXJsQWZ0ZXJSZWRpcmVjdHM7XG4gICAgICAgICAgICB0aGlzLl9zaG93Q29tcG9uZW50ID0gIWV4Y2x1ZGVkUm91dGVzLnRlc3QoY3VycmVudFJvdXRlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufSJdfQ==
@@ -0,0 +1,29 @@
1
+ import { __decorate } from "tslib";
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgModule } from '@angular/core';
4
+ import { ButtonModule, DynamicFormModule } from '@seniorsistemas/angular-components';
5
+ import { DialogModule } from 'primeng/dialog';
6
+ import { GlobalFilterModalComponent } from './global-filter-modal/global-filter-modal.component';
7
+ import { GlobalFilterComponent } from './global-filter.component';
8
+ import { TranslateModule } from '@ngx-translate/core';
9
+ import { ErpLookupsModule } from '../lookups';
10
+ import { FiltersStorageService } from '../storage';
11
+ let GlobalFilterModule = class GlobalFilterModule {
12
+ };
13
+ GlobalFilterModule = __decorate([
14
+ NgModule({
15
+ imports: [
16
+ CommonModule,
17
+ DynamicFormModule,
18
+ DialogModule,
19
+ ButtonModule,
20
+ TranslateModule,
21
+ ErpLookupsModule,
22
+ ],
23
+ providers: [FiltersStorageService],
24
+ declarations: [GlobalFilterComponent, GlobalFilterModalComponent],
25
+ exports: [GlobalFilterComponent],
26
+ })
27
+ ], GlobalFilterModule);
28
+ export { GlobalFilterModule };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWZpbHRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2dsb2JhbC1maWx0ZXIvZ2xvYmFsLWZpbHRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFlbkQsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7Q0FBSSxDQUFBO0FBQXRCLGtCQUFrQjtJQWI5QixRQUFRLENBQUM7UUFDTixPQUFPLEVBQUU7WUFDTCxZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLFlBQVk7WUFDWixZQUFZO1lBQ1osZUFBZTtZQUNmLGdCQUFnQjtTQUNuQjtRQUNELFNBQVMsRUFBRSxDQUFDLHFCQUFxQixDQUFDO1FBQ2xDLFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLDBCQUEwQixDQUFDO1FBQ2pFLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO0tBQ25DLENBQUM7R0FDVyxrQkFBa0IsQ0FBSTtTQUF0QixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSwgRHluYW1pY0Zvcm1Nb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcbmltcG9ydCB7IEdsb2JhbEZpbHRlck1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9nbG9iYWwtZmlsdGVyLW1vZGFsL2dsb2JhbC1maWx0ZXItbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEdsb2JhbEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZ2xvYmFsLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBFcnBMb29rdXBzTW9kdWxlIH0gZnJvbSAnLi4vbG9va3Vwcyc7XG5pbXBvcnQgeyBGaWx0ZXJzU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zdG9yYWdlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRHluYW1pY0Zvcm1Nb2R1bGUsXG4gICAgICAgIERpYWxvZ01vZHVsZSxcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIEVycExvb2t1cHNNb2R1bGUsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtGaWx0ZXJzU3RvcmFnZVNlcnZpY2VdLFxuICAgIGRlY2xhcmF0aW9uczogW0dsb2JhbEZpbHRlckNvbXBvbmVudCwgR2xvYmFsRmlsdGVyTW9kYWxDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtHbG9iYWxGaWx0ZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBHbG9iYWxGaWx0ZXJNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,74 @@
1
+ import { __decorate } from "tslib";
2
+ import { Injectable } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ let GlobalFilterService = class GlobalFilterService {
6
+ constructor() {
7
+ this._showComponent = true;
8
+ this._excludedRoutes = [];
9
+ this.filterChangeSubject = new Subject();
10
+ }
11
+ /**
12
+ * Emits a filter change event to all subscribers.
13
+ * This method should be called whenever the global filter values change
14
+ * to notify all components listening for filter updates.
15
+ *
16
+ * @param event - The filter fields object containing e070emp and e070fil information
17
+ * @param event.e070emp - e070emp (company) filter value
18
+ * @param event.e070fil - e070fil (branch) filter value
19
+ */
20
+ onFilterChange(event) {
21
+ this.filterChangeSubject.next(event);
22
+ }
23
+ /**
24
+ * Observable stream of filter changes.
25
+ * Subscribe to this to receive notifications when the filter changes.
26
+ *
27
+ * @returns Observable that emits objects containing e070emp and e070fil filter values
28
+ */
29
+ get filterChange() {
30
+ return this.filterChangeSubject.asObservable();
31
+ }
32
+ /**
33
+ * Gets the visibility state of the global filter component.
34
+ * Use this to determine whether the global filter should be displayed.
35
+ *
36
+ * @returns true if the component should be shown, false otherwise
37
+ */
38
+ get showComponent() {
39
+ return this._showComponent;
40
+ }
41
+ /**
42
+ * Sets the visibility state of the global filter component.
43
+ * Use this to programmatically show or hide the global filter.
44
+ *
45
+ * @param value - true to show the component, false to hide it
46
+ */
47
+ set showComponent(value) {
48
+ this._showComponent = value;
49
+ }
50
+ /**
51
+ * Gets the list of routes where the global filter component should not be displayed.
52
+ * These routes will automatically hide the global filter component.
53
+ *
54
+ * @returns Array of route paths to exclude from displaying the global filter
55
+ */
56
+ get excludedRoutes() {
57
+ return this._excludedRoutes;
58
+ }
59
+ /**
60
+ * Sets the routes where the global filter component should not be displayed.
61
+ * Use this to configure which pages should not show the global filter.
62
+ *
63
+ * @param value - Array of route paths to exclude from displaying the global filter
64
+ */
65
+ set excludedRoutes(value) {
66
+ this._excludedRoutes = value;
67
+ }
68
+ };
69
+ GlobalFilterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GlobalFilterService_Factory() { return new GlobalFilterService(); }, token: GlobalFilterService, providedIn: "root" });
70
+ GlobalFilterService = __decorate([
71
+ Injectable({ providedIn: 'root' })
72
+ ], GlobalFilterService);
73
+ export { GlobalFilterService };
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWZpbHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tZW1wcmVzYXJpYWwvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9nbG9iYWwtZmlsdGVyL2dsb2JhbC1maWx0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUcvQixJQUFhLG1CQUFtQixHQUFoQyxNQUFhLG1CQUFtQjtJQUFoQztRQUNZLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBQ3RCLHdCQUFtQixHQUFHLElBQUksT0FBTyxFQUFzQixDQUFDO0tBZ0U1RTtJQTlERzs7Ozs7Ozs7T0FRRztJQUNILGNBQWMsQ0FBQyxLQUF5QjtRQUNwQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLGFBQWEsQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFJLGNBQWMsQ0FBQyxLQUFlO1FBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7Q0FDSixDQUFBOztBQW5FWSxtQkFBbUI7SUFEL0IsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO0dBQ3RCLG1CQUFtQixDQW1FL0I7U0FuRVksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgR2xvYmFsRmlsdGVyU2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9zaG93Q29tcG9uZW50ID0gdHJ1ZTtcclxuICAgIHByaXZhdGUgX2V4Y2x1ZGVkUm91dGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJDaGFuZ2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8R2xvYmFsRmlsdGVyRmllbGRzPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW1pdHMgYSBmaWx0ZXIgY2hhbmdlIGV2ZW50IHRvIGFsbCBzdWJzY3JpYmVycy5cclxuICAgICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIGdsb2JhbCBmaWx0ZXIgdmFsdWVzIGNoYW5nZVxyXG4gICAgICogdG8gbm90aWZ5IGFsbCBjb21wb25lbnRzIGxpc3RlbmluZyBmb3IgZmlsdGVyIHVwZGF0ZXMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGZpbHRlciBmaWVsZHMgb2JqZWN0IGNvbnRhaW5pbmcgZTA3MGVtcCBhbmQgZTA3MGZpbCBpbmZvcm1hdGlvblxyXG4gICAgICogQHBhcmFtIGV2ZW50LmUwNzBlbXAgLSBlMDcwZW1wIChjb21wYW55KSBmaWx0ZXIgdmFsdWVcclxuICAgICAqIEBwYXJhbSBldmVudC5lMDcwZmlsIC0gZTA3MGZpbCAoYnJhbmNoKSBmaWx0ZXIgdmFsdWVcclxuICAgICAqL1xyXG4gICAgb25GaWx0ZXJDaGFuZ2UoZXZlbnQ6IEdsb2JhbEZpbHRlckZpZWxkcyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyQ2hhbmdlU3ViamVjdC5uZXh0KGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9ic2VydmFibGUgc3RyZWFtIG9mIGZpbHRlciBjaGFuZ2VzLlxyXG4gICAgICogU3Vic2NyaWJlIHRvIHRoaXMgdG8gcmVjZWl2ZSBub3RpZmljYXRpb25zIHdoZW4gdGhlIGZpbHRlciBjaGFuZ2VzLlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGUgdGhhdCBlbWl0cyBvYmplY3RzIGNvbnRhaW5pbmcgZTA3MGVtcCBhbmQgZTA3MGZpbCBmaWx0ZXIgdmFsdWVzXHJcbiAgICAgKi9cclxuICAgIGdldCBmaWx0ZXJDaGFuZ2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyQ2hhbmdlU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHZpc2liaWxpdHkgc3RhdGUgb2YgdGhlIGdsb2JhbCBmaWx0ZXIgY29tcG9uZW50LlxyXG4gICAgICogVXNlIHRoaXMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGdsb2JhbCBmaWx0ZXIgc2hvdWxkIGJlIGRpc3BsYXllZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBjb21wb25lbnQgc2hvdWxkIGJlIHNob3duLCBmYWxzZSBvdGhlcndpc2VcclxuICAgICAqL1xyXG4gICAgZ2V0IHNob3dDb21wb25lbnQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dDb21wb25lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IHN0YXRlIG9mIHRoZSBnbG9iYWwgZmlsdGVyIGNvbXBvbmVudC5cclxuICAgICAqIFVzZSB0aGlzIHRvIHByb2dyYW1tYXRpY2FsbHkgc2hvdyBvciBoaWRlIHRoZSBnbG9iYWwgZmlsdGVyLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIHRydWUgdG8gc2hvdyB0aGUgY29tcG9uZW50LCBmYWxzZSB0byBoaWRlIGl0XHJcbiAgICAgKi9cclxuICAgIHNldCBzaG93Q29tcG9uZW50KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd0NvbXBvbmVudCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgbGlzdCBvZiByb3V0ZXMgd2hlcmUgdGhlIGdsb2JhbCBmaWx0ZXIgY29tcG9uZW50IHNob3VsZCBub3QgYmUgZGlzcGxheWVkLlxyXG4gICAgICogVGhlc2Ugcm91dGVzIHdpbGwgYXV0b21hdGljYWxseSBoaWRlIHRoZSBnbG9iYWwgZmlsdGVyIGNvbXBvbmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiByb3V0ZSBwYXRocyB0byBleGNsdWRlIGZyb20gZGlzcGxheWluZyB0aGUgZ2xvYmFsIGZpbHRlclxyXG4gICAgICovXHJcbiAgICBnZXQgZXhjbHVkZWRSb3V0ZXMoKTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9leGNsdWRlZFJvdXRlcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHJvdXRlcyB3aGVyZSB0aGUgZ2xvYmFsIGZpbHRlciBjb21wb25lbnQgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQuXHJcbiAgICAgKiBVc2UgdGhpcyB0byBjb25maWd1cmUgd2hpY2ggcGFnZXMgc2hvdWxkIG5vdCBzaG93IHRoZSBnbG9iYWwgZmlsdGVyLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIEFycmF5IG9mIHJvdXRlIHBhdGhzIHRvIGV4Y2x1ZGUgZnJvbSBkaXNwbGF5aW5nIHRoZSBnbG9iYWwgZmlsdGVyXHJcbiAgICAgKi9cclxuICAgIHNldCBleGNsdWRlZFJvdXRlcyh2YWx1ZTogc3RyaW5nW10pIHtcclxuICAgICAgICB0aGlzLl9leGNsdWRlZFJvdXRlcyA9IHZhbHVlO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbEZpbHRlckZpZWxkcyB7XHJcbiAgICBlMDcwZW1wOiBhbnk7XHJcbiAgICBlMDcwZmlsOiBhbnk7XHJcbn0iXX0=
@@ -0,0 +1,4 @@
1
+ export { GlobalFilterComponent } from "./global-filter.component";
2
+ export { GlobalFilterModule } from "./global-filter.module";
3
+ export { GlobalFilterService } from "./global-filter.service";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1lbXByZXNhcmlhbC9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2dsb2JhbC1maWx0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBHbG9iYWxGaWx0ZXJDb21wb25lbnQgfSBmcm9tIFwiLi9nbG9iYWwtZmlsdGVyLmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgR2xvYmFsRmlsdGVyTW9kdWxlIH0gZnJvbSBcIi4vZ2xvYmFsLWZpbHRlci5tb2R1bGVcIjtcbmV4cG9ydCB7IEdsb2JhbEZpbHRlclNlcnZpY2UgfSBmcm9tIFwiLi9nbG9iYWwtZmlsdGVyLnNlcnZpY2VcIjsiXX0=