@memberjunction/ng-filter-builder 0.0.1 → 2.123.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 (30) hide show
  1. package/dist/lib/filter-builder/filter-builder.component.d.ts +155 -0
  2. package/dist/lib/filter-builder/filter-builder.component.d.ts.map +1 -0
  3. package/dist/lib/filter-builder/filter-builder.component.js +482 -0
  4. package/dist/lib/filter-builder/filter-builder.component.js.map +1 -0
  5. package/dist/lib/filter-builder.module.d.ts +39 -0
  6. package/dist/lib/filter-builder.module.d.ts.map +1 -0
  7. package/dist/lib/filter-builder.module.js +66 -0
  8. package/dist/lib/filter-builder.module.js.map +1 -0
  9. package/dist/lib/filter-group/filter-group.component.d.ts +102 -0
  10. package/dist/lib/filter-group/filter-group.component.d.ts.map +1 -0
  11. package/dist/lib/filter-group/filter-group.component.js +328 -0
  12. package/dist/lib/filter-group/filter-group.component.js.map +1 -0
  13. package/dist/lib/filter-rule/filter-rule.component.d.ts +165 -0
  14. package/dist/lib/filter-rule/filter-rule.component.d.ts.map +1 -0
  15. package/dist/lib/filter-rule/filter-rule.component.js +682 -0
  16. package/dist/lib/filter-rule/filter-rule.component.js.map +1 -0
  17. package/dist/lib/types/filter.types.d.ts +142 -0
  18. package/dist/lib/types/filter.types.d.ts.map +1 -0
  19. package/dist/lib/types/filter.types.js +82 -0
  20. package/dist/lib/types/filter.types.js.map +1 -0
  21. package/dist/lib/types/operators.d.ts +49 -0
  22. package/dist/lib/types/operators.d.ts.map +1 -0
  23. package/dist/lib/types/operators.js +99 -0
  24. package/dist/lib/types/operators.js.map +1 -0
  25. package/dist/public-api.d.ts +15 -0
  26. package/dist/public-api.d.ts.map +1 -0
  27. package/dist/public-api.js +19 -0
  28. package/dist/public-api.js.map +1 -0
  29. package/package.json +38 -6
  30. package/README.md +0 -45
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-builder.component.js","sourceRoot":"","sources":["../../../src/lib/filter-builder/filter-builder.component.ts","../../../src/lib/filter-builder/filter-builder.component.html"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./filter-builder/filter-builder.component";
3
+ import * as i2 from "./filter-group/filter-group.component";
4
+ import * as i3 from "./filter-rule/filter-rule.component";
5
+ import * as i4 from "@angular/common";
6
+ import * as i5 from "@angular/forms";
7
+ /**
8
+ * FilterBuilderModule
9
+ *
10
+ * Provides a complete filter builder UI for creating complex
11
+ * boolean filter expressions. Outputs Kendo-compatible
12
+ * CompositeFilterDescriptor JSON format.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { FilterBuilderModule } from '@memberjunction/ng-filter-builder';
17
+ *
18
+ * @NgModule({
19
+ * imports: [FilterBuilderModule],
20
+ * // ...
21
+ * })
22
+ * export class MyModule {}
23
+ * ```
24
+ *
25
+ * @example
26
+ * ```html
27
+ * <mj-filter-builder
28
+ * [fields]="filterFields"
29
+ * [filter]="currentFilter"
30
+ * (filterChange)="onFilterChange($event)">
31
+ * </mj-filter-builder>
32
+ * ```
33
+ */
34
+ export declare class FilterBuilderModule {
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterBuilderModule, never>;
36
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FilterBuilderModule, [typeof i1.FilterBuilderComponent, typeof i2.FilterGroupComponent, typeof i3.FilterRuleComponent], [typeof i4.CommonModule, typeof i5.FormsModule], [typeof i1.FilterBuilderComponent, typeof i2.FilterGroupComponent, typeof i3.FilterRuleComponent]>;
37
+ static ɵinj: i0.ɵɵInjectorDeclaration<FilterBuilderModule>;
38
+ }
39
+ //# sourceMappingURL=filter-builder.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-builder.module.d.ts","sourceRoot":"","sources":["../../src/lib/filter-builder.module.ts"],"names":[],"mappings":";;;;;;AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAgBa,mBAAmB;yCAAnB,mBAAmB;0CAAnB,mBAAmB;0CAAnB,mBAAmB;CAAG"}
@@ -0,0 +1,66 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { FilterBuilderComponent } from './filter-builder/filter-builder.component';
5
+ import { FilterGroupComponent } from './filter-group/filter-group.component';
6
+ import { FilterRuleComponent } from './filter-rule/filter-rule.component';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * FilterBuilderModule
10
+ *
11
+ * Provides a complete filter builder UI for creating complex
12
+ * boolean filter expressions. Outputs Kendo-compatible
13
+ * CompositeFilterDescriptor JSON format.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { FilterBuilderModule } from '@memberjunction/ng-filter-builder';
18
+ *
19
+ * @NgModule({
20
+ * imports: [FilterBuilderModule],
21
+ * // ...
22
+ * })
23
+ * export class MyModule {}
24
+ * ```
25
+ *
26
+ * @example
27
+ * ```html
28
+ * <mj-filter-builder
29
+ * [fields]="filterFields"
30
+ * [filter]="currentFilter"
31
+ * (filterChange)="onFilterChange($event)">
32
+ * </mj-filter-builder>
33
+ * ```
34
+ */
35
+ export class FilterBuilderModule {
36
+ static ɵfac = function FilterBuilderModule_Factory(t) { return new (t || FilterBuilderModule)(); };
37
+ static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: FilterBuilderModule });
38
+ static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule,
39
+ FormsModule] });
40
+ }
41
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FilterBuilderModule, [{
42
+ type: NgModule,
43
+ args: [{
44
+ declarations: [
45
+ FilterBuilderComponent,
46
+ FilterGroupComponent,
47
+ FilterRuleComponent
48
+ ],
49
+ imports: [
50
+ CommonModule,
51
+ FormsModule
52
+ ],
53
+ exports: [
54
+ FilterBuilderComponent,
55
+ FilterGroupComponent,
56
+ FilterRuleComponent
57
+ ]
58
+ }]
59
+ }], null, null); })();
60
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(FilterBuilderModule, { declarations: [FilterBuilderComponent,
61
+ FilterGroupComponent,
62
+ FilterRuleComponent], imports: [CommonModule,
63
+ FormsModule], exports: [FilterBuilderComponent,
64
+ FilterGroupComponent,
65
+ FilterRuleComponent] }); })();
66
+ //# sourceMappingURL=filter-builder.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-builder.module.js","sourceRoot":"","sources":["../../src/lib/filter-builder.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAiBH,MAAM,OAAO,mBAAmB;6EAAnB,mBAAmB;4DAAnB,mBAAmB;gEAT5B,YAAY;YACZ,WAAW;;iFAQF,mBAAmB;cAhB/B,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,sBAAsB;oBACtB,oBAAoB;oBACpB,mBAAmB;iBACpB;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,WAAW;iBACZ;gBACD,OAAO,EAAE;oBACP,sBAAsB;oBACtB,oBAAoB;oBACpB,mBAAmB;iBACpB;aACF;;wFACY,mBAAmB,mBAd5B,sBAAsB;QACtB,oBAAoB;QACpB,mBAAmB,aAGnB,YAAY;QACZ,WAAW,aAGX,sBAAsB;QACtB,oBAAoB;QACpB,mBAAmB"}
@@ -0,0 +1,102 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { CompositeFilterDescriptor, FilterDescriptor, FilterFieldInfo, FilterLogic } from '../types/filter.types';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * FilterGroupComponent - A group of filter rules with AND/OR logic
6
+ *
7
+ * Supports nested groups for complex filter expressions.
8
+ */
9
+ export declare class FilterGroupComponent implements OnInit {
10
+ /**
11
+ * The composite filter descriptor for this group
12
+ */
13
+ filter: CompositeFilterDescriptor;
14
+ /**
15
+ * Available fields to filter on
16
+ */
17
+ fields: FilterFieldInfo[];
18
+ /**
19
+ * Whether this is the root group (affects delete button visibility)
20
+ */
21
+ isRoot: boolean;
22
+ /**
23
+ * Nesting depth (for visual indication)
24
+ */
25
+ depth: number;
26
+ /**
27
+ * Maximum nesting depth allowed
28
+ */
29
+ maxDepth: number;
30
+ /**
31
+ * Whether the component is disabled
32
+ */
33
+ disabled: boolean;
34
+ /**
35
+ * Emitted when the filter changes
36
+ */
37
+ filterChange: EventEmitter<CompositeFilterDescriptor>;
38
+ /**
39
+ * Emitted when the delete button is clicked (for nested groups)
40
+ */
41
+ delete: EventEmitter<void>;
42
+ ngOnInit(): void;
43
+ /**
44
+ * Toggle the logic between AND and OR
45
+ */
46
+ toggleLogic(): void;
47
+ /**
48
+ * Set specific logic
49
+ */
50
+ setLogic(logic: FilterLogic): void;
51
+ /**
52
+ * Add a new filter rule
53
+ */
54
+ addRule(): void;
55
+ /**
56
+ * Add a new nested group
57
+ */
58
+ addGroup(): void;
59
+ /**
60
+ * Handle rule change at specified index
61
+ */
62
+ onRuleChange(index: number, updatedRule: FilterDescriptor): void;
63
+ /**
64
+ * Handle nested group change at specified index
65
+ */
66
+ onGroupChange(index: number, updatedGroup: CompositeFilterDescriptor): void;
67
+ /**
68
+ * Delete filter at specified index
69
+ */
70
+ deleteFilter(index: number): void;
71
+ /**
72
+ * Delete this group (only for nested groups)
73
+ */
74
+ onDelete(): void;
75
+ /**
76
+ * Check if a filter is a composite (group) filter
77
+ */
78
+ isGroup(filter: FilterDescriptor | CompositeFilterDescriptor): boolean;
79
+ /**
80
+ * Type guard cast to FilterDescriptor
81
+ */
82
+ asRule(filter: FilterDescriptor | CompositeFilterDescriptor): FilterDescriptor;
83
+ /**
84
+ * Type guard cast to CompositeFilterDescriptor
85
+ */
86
+ asGroup(filter: FilterDescriptor | CompositeFilterDescriptor): CompositeFilterDescriptor;
87
+ /**
88
+ * Check if we can add more nested groups
89
+ */
90
+ canAddGroup(): boolean;
91
+ /**
92
+ * Emit the filter change event
93
+ */
94
+ private emitChange;
95
+ /**
96
+ * Track by function for ngFor optimization
97
+ */
98
+ trackByIndex(index: number): number;
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterGroupComponent, never>;
100
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilterGroupComponent, "mj-filter-group", never, { "filter": { "alias": "filter"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "isRoot": { "alias": "isRoot"; "required": false; }; "depth": { "alias": "depth"; "required": false; }; "maxDepth": { "alias": "maxDepth"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "filterChange": "filterChange"; "delete": "delete"; }, never, never, false, never>;
101
+ }
102
+ //# sourceMappingURL=filter-group.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-group.component.d.ts","sourceRoot":"","sources":["../../../src/lib/filter-group/filter-group.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAqB,MAAM,eAAe,CAAC;AAClG,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,eAAe,EACf,WAAW,EAGZ,MAAM,uBAAuB,CAAC;;AAE/B;;;;GAIG;AACH,qBAMa,oBAAqB,YAAW,MAAM;IACjD;;OAEG;IACM,MAAM,EAAG,yBAAyB,CAAC;IAE5C;;OAEG;IACM,MAAM,EAAE,eAAe,EAAE,CAAM;IAExC;;OAEG;IACM,MAAM,EAAE,OAAO,CAAS;IAEjC;;OAEG;IACM,KAAK,EAAE,MAAM,CAAK;IAE3B;;OAEG;IACM,QAAQ,EAAE,MAAM,CAAK;IAE9B;;OAEG;IACM,QAAQ,EAAE,OAAO,CAAS;IAEnC;;OAEG;IACO,YAAY,0CAAiD;IAEvE;;OAEG;IACO,MAAM,qBAA4B;IAE5C,QAAQ,IAAI,IAAI;IAOhB;;OAEG;IACH,WAAW,IAAI,IAAI;IAQnB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IASlC;;OAEG;IACH,OAAO,IAAI,IAAI;IAUf;;OAEG;IACH,QAAQ,IAAI,IAAI;IAehB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,GAAG,IAAI;IAShE;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,yBAAyB,GAAG,IAAI;IAS3E;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAgBjC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,yBAAyB,GAAG,OAAO;IAItE;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,yBAAyB,GAAG,gBAAgB;IAI9E;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,yBAAyB,GAAG,yBAAyB;IAIxF;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;yCA9LxB,oBAAoB;2CAApB,oBAAoB;CAiMhC"}
@@ -0,0 +1,328 @@
1
+ import { Component, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';
2
+ import { isCompositeFilter, createFilterRule } from '../types/filter.types';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../filter-rule/filter-rule.component";
5
+ import * as i2 from "@angular/common";
6
+ function FilterGroupComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
7
+ const _r1 = i0.ɵɵgetCurrentView();
8
+ i0.ɵɵelementStart(0, "button", 13);
9
+ i0.ɵɵlistener("click", function FilterGroupComponent_Conditional_12_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addGroup()); });
10
+ i0.ɵɵelement(1, "i", 14);
11
+ i0.ɵɵelementStart(2, "span");
12
+ i0.ɵɵtext(3, "Add Group");
13
+ i0.ɵɵelementEnd()();
14
+ } if (rf & 2) {
15
+ const ctx_r1 = i0.ɵɵnextContext();
16
+ i0.ɵɵproperty("disabled", ctx_r1.disabled);
17
+ } }
18
+ function FilterGroupComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
19
+ const _r3 = i0.ɵɵgetCurrentView();
20
+ i0.ɵɵelementStart(0, "button", 15);
21
+ i0.ɵɵlistener("click", function FilterGroupComponent_Conditional_13_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onDelete()); });
22
+ i0.ɵɵelement(1, "i", 16);
23
+ i0.ɵɵelementEnd();
24
+ } if (rf & 2) {
25
+ const ctx_r1 = i0.ɵɵnextContext();
26
+ i0.ɵɵproperty("disabled", ctx_r1.disabled);
27
+ } }
28
+ function FilterGroupComponent_For_16_Conditional_1_Template(rf, ctx) { if (rf & 1) {
29
+ i0.ɵɵelementStart(0, "div", 17);
30
+ i0.ɵɵelement(1, "span", 20);
31
+ i0.ɵɵelementStart(2, "span", 21);
32
+ i0.ɵɵtext(3);
33
+ i0.ɵɵpipe(4, "uppercase");
34
+ i0.ɵɵelementEnd();
35
+ i0.ɵɵelement(5, "span", 20);
36
+ i0.ɵɵelementEnd();
37
+ } if (rf & 2) {
38
+ const ctx_r1 = i0.ɵɵnextContext(2);
39
+ i0.ɵɵadvance(3);
40
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, ctx_r1.filter.logic));
41
+ } }
42
+ function FilterGroupComponent_For_16_Conditional_2_Template(rf, ctx) { if (rf & 1) {
43
+ const _r4 = i0.ɵɵgetCurrentView();
44
+ i0.ɵɵelementStart(0, "mj-filter-group", 22);
45
+ i0.ɵɵlistener("filterChange", function FilterGroupComponent_For_16_Conditional_2_Template_mj_filter_group_filterChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ɵ$index_37_r5 = i0.ɵɵnextContext().$index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onGroupChange(ɵ$index_37_r5, $event)); })("delete", function FilterGroupComponent_For_16_Conditional_2_Template_mj_filter_group_delete_0_listener() { i0.ɵɵrestoreView(_r4); const ɵ$index_37_r5 = i0.ɵɵnextContext().$index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.deleteFilter(ɵ$index_37_r5)); });
46
+ i0.ɵɵelementEnd();
47
+ } if (rf & 2) {
48
+ const item_r6 = i0.ɵɵnextContext().$implicit;
49
+ const ctx_r1 = i0.ɵɵnextContext();
50
+ i0.ɵɵproperty("filter", ctx_r1.asGroup(item_r6))("fields", ctx_r1.fields)("isRoot", false)("depth", ctx_r1.depth + 1)("maxDepth", ctx_r1.maxDepth)("disabled", ctx_r1.disabled);
51
+ } }
52
+ function FilterGroupComponent_For_16_Conditional_3_Template(rf, ctx) { if (rf & 1) {
53
+ const _r7 = i0.ɵɵgetCurrentView();
54
+ i0.ɵɵelementStart(0, "mj-filter-rule", 23);
55
+ i0.ɵɵlistener("filterChange", function FilterGroupComponent_For_16_Conditional_3_Template_mj_filter_rule_filterChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const ɵ$index_37_r5 = i0.ɵɵnextContext().$index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onRuleChange(ɵ$index_37_r5, $event)); })("delete", function FilterGroupComponent_For_16_Conditional_3_Template_mj_filter_rule_delete_0_listener() { i0.ɵɵrestoreView(_r7); const ɵ$index_37_r5 = i0.ɵɵnextContext().$index; const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.deleteFilter(ɵ$index_37_r5)); });
56
+ i0.ɵɵelementEnd();
57
+ } if (rf & 2) {
58
+ const item_r6 = i0.ɵɵnextContext().$implicit;
59
+ const ctx_r1 = i0.ɵɵnextContext();
60
+ i0.ɵɵproperty("filter", ctx_r1.asRule(item_r6))("fields", ctx_r1.fields)("disabled", ctx_r1.disabled)("showDelete", ctx_r1.filter.filters.length > 1 || !ctx_r1.isRoot);
61
+ } }
62
+ function FilterGroupComponent_For_16_Template(rf, ctx) { if (rf & 1) {
63
+ i0.ɵɵelementStart(0, "div", 11);
64
+ i0.ɵɵtemplate(1, FilterGroupComponent_For_16_Conditional_1_Template, 6, 3, "div", 17)(2, FilterGroupComponent_For_16_Conditional_2_Template, 1, 6, "mj-filter-group", 18)(3, FilterGroupComponent_For_16_Conditional_3_Template, 1, 4, "mj-filter-rule", 19);
65
+ i0.ɵɵelementEnd();
66
+ } if (rf & 2) {
67
+ const item_r6 = ctx.$implicit;
68
+ const ɵ$index_37_r5 = ctx.$index;
69
+ const ctx_r1 = i0.ɵɵnextContext();
70
+ i0.ɵɵadvance();
71
+ i0.ɵɵconditional(ɵ$index_37_r5 > 0 ? 1 : -1);
72
+ i0.ɵɵadvance();
73
+ i0.ɵɵconditional(ctx_r1.isGroup(item_r6) ? 2 : 3);
74
+ } }
75
+ function FilterGroupComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
76
+ const _r8 = i0.ɵɵgetCurrentView();
77
+ i0.ɵɵelementStart(0, "div", 12)(1, "p");
78
+ i0.ɵɵtext(2, "No filter conditions defined.");
79
+ i0.ɵɵelementEnd();
80
+ i0.ɵɵelementStart(3, "button", 24);
81
+ i0.ɵɵlistener("click", function FilterGroupComponent_Conditional_17_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.addRule()); });
82
+ i0.ɵɵelement(4, "i", 7);
83
+ i0.ɵɵelementStart(5, "span");
84
+ i0.ɵɵtext(6, "Add your first condition");
85
+ i0.ɵɵelementEnd()()();
86
+ } if (rf & 2) {
87
+ const ctx_r1 = i0.ɵɵnextContext();
88
+ i0.ɵɵadvance(3);
89
+ i0.ɵɵproperty("disabled", ctx_r1.disabled);
90
+ } }
91
+ /**
92
+ * FilterGroupComponent - A group of filter rules with AND/OR logic
93
+ *
94
+ * Supports nested groups for complex filter expressions.
95
+ */
96
+ export class FilterGroupComponent {
97
+ /**
98
+ * The composite filter descriptor for this group
99
+ */
100
+ filter;
101
+ /**
102
+ * Available fields to filter on
103
+ */
104
+ fields = [];
105
+ /**
106
+ * Whether this is the root group (affects delete button visibility)
107
+ */
108
+ isRoot = false;
109
+ /**
110
+ * Nesting depth (for visual indication)
111
+ */
112
+ depth = 0;
113
+ /**
114
+ * Maximum nesting depth allowed
115
+ */
116
+ maxDepth = 3;
117
+ /**
118
+ * Whether the component is disabled
119
+ */
120
+ disabled = false;
121
+ /**
122
+ * Emitted when the filter changes
123
+ */
124
+ filterChange = new EventEmitter();
125
+ /**
126
+ * Emitted when the delete button is clicked (for nested groups)
127
+ */
128
+ delete = new EventEmitter();
129
+ ngOnInit() {
130
+ // Ensure filter has at least one rule
131
+ if (!this.filter.filters || this.filter.filters.length === 0) {
132
+ this.addRule();
133
+ }
134
+ }
135
+ /**
136
+ * Toggle the logic between AND and OR
137
+ */
138
+ toggleLogic() {
139
+ const newLogic = this.filter.logic === 'and' ? 'or' : 'and';
140
+ this.emitChange({
141
+ ...this.filter,
142
+ logic: newLogic
143
+ });
144
+ }
145
+ /**
146
+ * Set specific logic
147
+ */
148
+ setLogic(logic) {
149
+ if (this.filter.logic !== logic) {
150
+ this.emitChange({
151
+ ...this.filter,
152
+ logic
153
+ });
154
+ }
155
+ }
156
+ /**
157
+ * Add a new filter rule
158
+ */
159
+ addRule() {
160
+ const defaultField = this.fields[0]?.name || '';
161
+ const newRule = createFilterRule(defaultField);
162
+ this.emitChange({
163
+ ...this.filter,
164
+ filters: [...(this.filter.filters || []), newRule]
165
+ });
166
+ }
167
+ /**
168
+ * Add a new nested group
169
+ */
170
+ addGroup() {
171
+ if (this.depth >= this.maxDepth)
172
+ return;
173
+ const defaultField = this.fields[0]?.name || '';
174
+ const newGroup = {
175
+ logic: 'and',
176
+ filters: [createFilterRule(defaultField)]
177
+ };
178
+ this.emitChange({
179
+ ...this.filter,
180
+ filters: [...(this.filter.filters || []), newGroup]
181
+ });
182
+ }
183
+ /**
184
+ * Handle rule change at specified index
185
+ */
186
+ onRuleChange(index, updatedRule) {
187
+ const filters = [...(this.filter.filters || [])];
188
+ filters[index] = updatedRule;
189
+ this.emitChange({
190
+ ...this.filter,
191
+ filters
192
+ });
193
+ }
194
+ /**
195
+ * Handle nested group change at specified index
196
+ */
197
+ onGroupChange(index, updatedGroup) {
198
+ const filters = [...(this.filter.filters || [])];
199
+ filters[index] = updatedGroup;
200
+ this.emitChange({
201
+ ...this.filter,
202
+ filters
203
+ });
204
+ }
205
+ /**
206
+ * Delete filter at specified index
207
+ */
208
+ deleteFilter(index) {
209
+ const filters = [...(this.filter.filters || [])];
210
+ filters.splice(index, 1);
211
+ // Ensure at least one rule remains if this is the root
212
+ if (this.isRoot && filters.length === 0) {
213
+ const defaultField = this.fields[0]?.name || '';
214
+ filters.push(createFilterRule(defaultField));
215
+ }
216
+ this.emitChange({
217
+ ...this.filter,
218
+ filters
219
+ });
220
+ }
221
+ /**
222
+ * Delete this group (only for nested groups)
223
+ */
224
+ onDelete() {
225
+ this.delete.emit();
226
+ }
227
+ /**
228
+ * Check if a filter is a composite (group) filter
229
+ */
230
+ isGroup(filter) {
231
+ return isCompositeFilter(filter);
232
+ }
233
+ /**
234
+ * Type guard cast to FilterDescriptor
235
+ */
236
+ asRule(filter) {
237
+ return filter;
238
+ }
239
+ /**
240
+ * Type guard cast to CompositeFilterDescriptor
241
+ */
242
+ asGroup(filter) {
243
+ return filter;
244
+ }
245
+ /**
246
+ * Check if we can add more nested groups
247
+ */
248
+ canAddGroup() {
249
+ return this.depth < this.maxDepth;
250
+ }
251
+ /**
252
+ * Emit the filter change event
253
+ */
254
+ emitChange(filter) {
255
+ this.filterChange.emit(filter);
256
+ }
257
+ /**
258
+ * Track by function for ngFor optimization
259
+ */
260
+ trackByIndex(index) {
261
+ return index;
262
+ }
263
+ static ɵfac = function FilterGroupComponent_Factory(t) { return new (t || FilterGroupComponent)(); };
264
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FilterGroupComponent, selectors: [["mj-filter-group"]], inputs: { filter: "filter", fields: "fields", isRoot: "isRoot", depth: "depth", maxDepth: "maxDepth", disabled: "disabled" }, outputs: { filterChange: "filterChange", delete: "delete" }, decls: 18, vars: 15, consts: [[1, "filter-group"], [1, "group-header"], [1, "logic-toggle"], ["type", "button", "title", "Match ALL conditions", 1, "logic-btn", 3, "click", "disabled"], ["type", "button", "title", "Match ANY condition", 1, "logic-btn", 3, "click", "disabled"], [1, "group-actions"], ["type", "button", "title", "Add filter condition", 1, "add-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-plus"], ["type", "button", "title", "Add nested group", 1, "add-btn", "add-group", 3, "disabled"], ["type", "button", "title", "Remove this group", 1, "delete-group-btn", 3, "disabled"], [1, "filters-container"], [1, "filter-item"], [1, "empty-state"], ["type", "button", "title", "Add nested group", 1, "add-btn", "add-group", 3, "click", "disabled"], [1, "fa-solid", "fa-layer-group"], ["type", "button", "title", "Remove this group", 1, "delete-group-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-trash"], [1, "logic-connector"], [3, "filter", "fields", "isRoot", "depth", "maxDepth", "disabled"], [3, "filter", "fields", "disabled", "showDelete"], [1, "connector-line"], [1, "connector-label"], [3, "filterChange", "delete", "filter", "fields", "isRoot", "depth", "maxDepth", "disabled"], [3, "filterChange", "delete", "filter", "fields", "disabled", "showDelete"], ["type", "button", 1, "add-btn", "primary", 3, "click", "disabled"]], template: function FilterGroupComponent_Template(rf, ctx) { if (rf & 1) {
265
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "button", 3);
266
+ i0.ɵɵlistener("click", function FilterGroupComponent_Template_button_click_3_listener() { return ctx.setLogic("and"); });
267
+ i0.ɵɵtext(4, " AND ");
268
+ i0.ɵɵelementEnd();
269
+ i0.ɵɵelementStart(5, "button", 4);
270
+ i0.ɵɵlistener("click", function FilterGroupComponent_Template_button_click_5_listener() { return ctx.setLogic("or"); });
271
+ i0.ɵɵtext(6, " OR ");
272
+ i0.ɵɵelementEnd()();
273
+ i0.ɵɵelementStart(7, "div", 5)(8, "button", 6);
274
+ i0.ɵɵlistener("click", function FilterGroupComponent_Template_button_click_8_listener() { return ctx.addRule(); });
275
+ i0.ɵɵelement(9, "i", 7);
276
+ i0.ɵɵelementStart(10, "span");
277
+ i0.ɵɵtext(11, "Add Condition");
278
+ i0.ɵɵelementEnd()();
279
+ i0.ɵɵtemplate(12, FilterGroupComponent_Conditional_12_Template, 4, 1, "button", 8)(13, FilterGroupComponent_Conditional_13_Template, 2, 1, "button", 9);
280
+ i0.ɵɵelementEnd()();
281
+ i0.ɵɵelementStart(14, "div", 10);
282
+ i0.ɵɵrepeaterCreate(15, FilterGroupComponent_For_16_Template, 4, 2, "div", 11, ctx.trackByIndex, true);
283
+ i0.ɵɵelementEnd();
284
+ i0.ɵɵtemplate(17, FilterGroupComponent_Conditional_17_Template, 7, 1, "div", 12);
285
+ i0.ɵɵelementEnd();
286
+ } if (rf & 2) {
287
+ i0.ɵɵclassProp("root", ctx.isRoot)("disabled", ctx.disabled);
288
+ i0.ɵɵattribute("data-depth", ctx.depth);
289
+ i0.ɵɵadvance(3);
290
+ i0.ɵɵclassProp("active", ctx.filter.logic === "and");
291
+ i0.ɵɵproperty("disabled", ctx.disabled);
292
+ i0.ɵɵadvance(2);
293
+ i0.ɵɵclassProp("active", ctx.filter.logic === "or");
294
+ i0.ɵɵproperty("disabled", ctx.disabled);
295
+ i0.ɵɵadvance(3);
296
+ i0.ɵɵproperty("disabled", ctx.disabled);
297
+ i0.ɵɵadvance(4);
298
+ i0.ɵɵconditional(ctx.canAddGroup() ? 12 : -1);
299
+ i0.ɵɵadvance();
300
+ i0.ɵɵconditional(!ctx.isRoot ? 13 : -1);
301
+ i0.ɵɵadvance(2);
302
+ i0.ɵɵrepeater(ctx.filter.filters);
303
+ i0.ɵɵadvance(2);
304
+ i0.ɵɵconditional(!ctx.filter.filters || ctx.filter.filters.length === 0 ? 17 : -1);
305
+ } }, dependencies: [FilterGroupComponent, i1.FilterRuleComponent, i2.UpperCasePipe], styles: ["/* Scoped to mj-filter-group to prevent style leakage with ViewEncapsulation.None */\nmj-filter-group .filter-group {\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n padding: 12px;\n background: #fafafa;\n transition: all 0.15s ease;\n}\n\nmj-filter-group .filter-group.root {\n background: transparent;\n border: none;\n padding: 0;\n}\n\nmj-filter-group .filter-group:not(.root) {\n margin-left: 16px;\n border-left: 3px solid #1976d2;\n}\n\nmj-filter-group .filter-group[data-depth=\"1\"]:not(.root) {\n border-left-color: #7b1fa2;\n}\n\nmj-filter-group .filter-group[data-depth=\"2\"]:not(.root) {\n border-left-color: #388e3c;\n}\n\nmj-filter-group .filter-group[data-depth=\"3\"]:not(.root) {\n border-left-color: #f57c00;\n}\n\nmj-filter-group .filter-group.disabled {\n opacity: 0.6;\n pointer-events: none;\n}\n\n/* Group Header */\nmj-filter-group .group-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 12px;\n flex-wrap: wrap;\n}\n\n/* Logic Toggle */\nmj-filter-group .logic-toggle {\n display: flex;\n background: #f4f4f5;\n border-radius: 8px;\n padding: 3px;\n border: 1px solid #e5e7eb;\n}\n\nmj-filter-group .logic-btn {\n padding: 8px 20px;\n border: none;\n background: transparent;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 0.5px;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #71717a;\n}\n\nmj-filter-group .logic-btn:hover:not(:disabled) {\n color: #3f3f46;\n background: rgba(255, 255, 255, 0.5);\n}\n\nmj-filter-group .logic-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\nmj-filter-group .logic-btn.active {\n background: white;\n color: #3b82f6;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n font-weight: 700;\n}\n\n/* Group Actions */\nmj-filter-group .group-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\nmj-filter-group .add-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n border: 1px dashed #d4d4d8;\n background: white;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n color: #52525b;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\nmj-filter-group .add-btn:hover:not(:disabled) {\n border-color: #3b82f6;\n color: #3b82f6;\n background: #eff6ff;\n}\n\nmj-filter-group .add-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\nmj-filter-group .add-btn.primary {\n border-style: solid;\n border-color: #3b82f6;\n background: #3b82f6;\n color: white;\n}\n\nmj-filter-group .add-btn.primary:hover:not(:disabled) {\n background: #2563eb;\n border-color: #2563eb;\n}\n\nmj-filter-group .add-btn i {\n font-size: 12px;\n}\n\nmj-filter-group .add-group {\n border-color: #a855f7;\n color: #a855f7;\n}\n\nmj-filter-group .add-group:hover:not(:disabled) {\n border-color: #9333ea;\n color: #9333ea;\n background: #faf5ff;\n}\n\nmj-filter-group .delete-group-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n border-radius: 8px;\n color: #a1a1aa;\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 14px;\n}\n\nmj-filter-group .delete-group-btn:hover:not(:disabled) {\n background: #fef2f2;\n color: #ef4444;\n}\n\nmj-filter-group .delete-group-btn:disabled {\n cursor: not-allowed;\n opacity: 0.3;\n}\n\n/* Filters Container */\nmj-filter-group .filters-container {\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\nmj-filter-group .filter-item {\n display: flex;\n flex-direction: column;\n}\n\n/* Logic Connector */\nmj-filter-group .logic-connector {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n margin: 4px 0;\n}\n\nmj-filter-group .connector-line {\n flex: 1;\n height: 1px;\n background: #e0e0e0;\n}\n\nmj-filter-group .connector-label {\n font-size: 11px;\n font-weight: 600;\n color: #999;\n letter-spacing: 0.5px;\n}\n\n/* Empty State */\nmj-filter-group .empty-state {\n text-align: center;\n padding: 24px;\n color: #999;\n}\n\nmj-filter-group .empty-state p {\n margin: 0 0 12px 0;\n font-size: 14px;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n mj-filter-group .group-header {\n flex-direction: column;\n align-items: stretch;\n }\n\n mj-filter-group .logic-toggle {\n justify-content: center;\n }\n\n mj-filter-group .group-actions {\n justify-content: center;\n flex-wrap: wrap;\n }\n\n mj-filter-group .filter-group:not(.root) {\n margin-left: 8px;\n }\n}\n"], encapsulation: 2 });
306
+ }
307
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FilterGroupComponent, [{
308
+ type: Component,
309
+ args: [{ selector: 'mj-filter-group', encapsulation: ViewEncapsulation.None, template: "<div class=\"filter-group\" [class.root]=\"isRoot\" [class.disabled]=\"disabled\" [attr.data-depth]=\"depth\">\n <!-- Group Header -->\n <div class=\"group-header\">\n <div class=\"logic-toggle\">\n <button\n type=\"button\"\n class=\"logic-btn\"\n [class.active]=\"filter.logic === 'and'\"\n (click)=\"setLogic('and')\"\n [disabled]=\"disabled\"\n title=\"Match ALL conditions\">\n AND\n </button>\n <button\n type=\"button\"\n class=\"logic-btn\"\n [class.active]=\"filter.logic === 'or'\"\n (click)=\"setLogic('or')\"\n [disabled]=\"disabled\"\n title=\"Match ANY condition\">\n OR\n </button>\n </div>\n\n <div class=\"group-actions\">\n <button\n type=\"button\"\n class=\"add-btn\"\n (click)=\"addRule()\"\n [disabled]=\"disabled\"\n title=\"Add filter condition\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>Add Condition</span>\n </button>\n @if (canAddGroup()) {\n <button\n type=\"button\"\n class=\"add-btn add-group\"\n (click)=\"addGroup()\"\n [disabled]=\"disabled\"\n title=\"Add nested group\">\n <i class=\"fa-solid fa-layer-group\"></i>\n <span>Add Group</span>\n </button>\n }\n @if (!isRoot) {\n <button\n type=\"button\"\n class=\"delete-group-btn\"\n (click)=\"onDelete()\"\n [disabled]=\"disabled\"\n title=\"Remove this group\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n }\n </div>\n </div>\n\n <!-- Filters Container -->\n <div class=\"filters-container\">\n @for (item of filter.filters; track trackByIndex($index); let i = $index; let isLast = $last) {\n <div class=\"filter-item\">\n <!-- Logic connector between items -->\n @if (i > 0) {\n <div class=\"logic-connector\">\n <span class=\"connector-line\"></span>\n <span class=\"connector-label\">{{ filter.logic | uppercase }}</span>\n <span class=\"connector-line\"></span>\n </div>\n }\n\n @if (isGroup(item)) {\n <!-- Nested Group -->\n <mj-filter-group\n [filter]=\"asGroup(item)\"\n [fields]=\"fields\"\n [isRoot]=\"false\"\n [depth]=\"depth + 1\"\n [maxDepth]=\"maxDepth\"\n [disabled]=\"disabled\"\n (filterChange)=\"onGroupChange(i, $event)\"\n (delete)=\"deleteFilter(i)\">\n </mj-filter-group>\n } @else {\n <!-- Simple Rule -->\n <mj-filter-rule\n [filter]=\"asRule(item)\"\n [fields]=\"fields\"\n [disabled]=\"disabled\"\n [showDelete]=\"filter.filters.length > 1 || !isRoot\"\n (filterChange)=\"onRuleChange(i, $event)\"\n (delete)=\"deleteFilter(i)\">\n </mj-filter-rule>\n }\n </div>\n }\n </div>\n\n <!-- Empty State -->\n @if (!filter.filters || filter.filters.length === 0) {\n <div class=\"empty-state\">\n <p>No filter conditions defined.</p>\n <button\n type=\"button\"\n class=\"add-btn primary\"\n (click)=\"addRule()\"\n [disabled]=\"disabled\">\n <i class=\"fa-solid fa-plus\"></i>\n <span>Add your first condition</span>\n </button>\n </div>\n }\n</div>\n", styles: ["/* Scoped to mj-filter-group to prevent style leakage with ViewEncapsulation.None */\nmj-filter-group .filter-group {\n border: 1px solid #e0e0e0;\n border-radius: 8px;\n padding: 12px;\n background: #fafafa;\n transition: all 0.15s ease;\n}\n\nmj-filter-group .filter-group.root {\n background: transparent;\n border: none;\n padding: 0;\n}\n\nmj-filter-group .filter-group:not(.root) {\n margin-left: 16px;\n border-left: 3px solid #1976d2;\n}\n\nmj-filter-group .filter-group[data-depth=\"1\"]:not(.root) {\n border-left-color: #7b1fa2;\n}\n\nmj-filter-group .filter-group[data-depth=\"2\"]:not(.root) {\n border-left-color: #388e3c;\n}\n\nmj-filter-group .filter-group[data-depth=\"3\"]:not(.root) {\n border-left-color: #f57c00;\n}\n\nmj-filter-group .filter-group.disabled {\n opacity: 0.6;\n pointer-events: none;\n}\n\n/* Group Header */\nmj-filter-group .group-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 12px;\n flex-wrap: wrap;\n}\n\n/* Logic Toggle */\nmj-filter-group .logic-toggle {\n display: flex;\n background: #f4f4f5;\n border-radius: 8px;\n padding: 3px;\n border: 1px solid #e5e7eb;\n}\n\nmj-filter-group .logic-btn {\n padding: 8px 20px;\n border: none;\n background: transparent;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n letter-spacing: 0.5px;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #71717a;\n}\n\nmj-filter-group .logic-btn:hover:not(:disabled) {\n color: #3f3f46;\n background: rgba(255, 255, 255, 0.5);\n}\n\nmj-filter-group .logic-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\nmj-filter-group .logic-btn.active {\n background: white;\n color: #3b82f6;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n font-weight: 700;\n}\n\n/* Group Actions */\nmj-filter-group .group-actions {\n display: flex;\n gap: 8px;\n align-items: center;\n}\n\nmj-filter-group .add-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 14px;\n border: 1px dashed #d4d4d8;\n background: white;\n border-radius: 8px;\n font-size: 13px;\n font-weight: 500;\n color: #52525b;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\nmj-filter-group .add-btn:hover:not(:disabled) {\n border-color: #3b82f6;\n color: #3b82f6;\n background: #eff6ff;\n}\n\nmj-filter-group .add-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\nmj-filter-group .add-btn.primary {\n border-style: solid;\n border-color: #3b82f6;\n background: #3b82f6;\n color: white;\n}\n\nmj-filter-group .add-btn.primary:hover:not(:disabled) {\n background: #2563eb;\n border-color: #2563eb;\n}\n\nmj-filter-group .add-btn i {\n font-size: 12px;\n}\n\nmj-filter-group .add-group {\n border-color: #a855f7;\n color: #a855f7;\n}\n\nmj-filter-group .add-group:hover:not(:disabled) {\n border-color: #9333ea;\n color: #9333ea;\n background: #faf5ff;\n}\n\nmj-filter-group .delete-group-btn {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n border-radius: 8px;\n color: #a1a1aa;\n cursor: pointer;\n transition: all 0.2s ease;\n font-size: 14px;\n}\n\nmj-filter-group .delete-group-btn:hover:not(:disabled) {\n background: #fef2f2;\n color: #ef4444;\n}\n\nmj-filter-group .delete-group-btn:disabled {\n cursor: not-allowed;\n opacity: 0.3;\n}\n\n/* Filters Container */\nmj-filter-group .filters-container {\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\nmj-filter-group .filter-item {\n display: flex;\n flex-direction: column;\n}\n\n/* Logic Connector */\nmj-filter-group .logic-connector {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 4px 0;\n margin: 4px 0;\n}\n\nmj-filter-group .connector-line {\n flex: 1;\n height: 1px;\n background: #e0e0e0;\n}\n\nmj-filter-group .connector-label {\n font-size: 11px;\n font-weight: 600;\n color: #999;\n letter-spacing: 0.5px;\n}\n\n/* Empty State */\nmj-filter-group .empty-state {\n text-align: center;\n padding: 24px;\n color: #999;\n}\n\nmj-filter-group .empty-state p {\n margin: 0 0 12px 0;\n font-size: 14px;\n}\n\n/* Responsive */\n@media (max-width: 768px) {\n mj-filter-group .group-header {\n flex-direction: column;\n align-items: stretch;\n }\n\n mj-filter-group .logic-toggle {\n justify-content: center;\n }\n\n mj-filter-group .group-actions {\n justify-content: center;\n flex-wrap: wrap;\n }\n\n mj-filter-group .filter-group:not(.root) {\n margin-left: 8px;\n }\n}\n"] }]
310
+ }], null, { filter: [{
311
+ type: Input
312
+ }], fields: [{
313
+ type: Input
314
+ }], isRoot: [{
315
+ type: Input
316
+ }], depth: [{
317
+ type: Input
318
+ }], maxDepth: [{
319
+ type: Input
320
+ }], disabled: [{
321
+ type: Input
322
+ }], filterChange: [{
323
+ type: Output
324
+ }], delete: [{
325
+ type: Output
326
+ }] }); })();
327
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterGroupComponent, { className: "FilterGroupComponent", filePath: "src/lib/filter-group/filter-group.component.ts", lineNumber: 22 }); })();
328
+ //# sourceMappingURL=filter-group.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-group.component.js","sourceRoot":"","sources":["../../../src/lib/filter-group/filter-group.component.ts","../../../src/lib/filter-group/filter-group.component.html"],"names":[],"mappings":"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"}