@memberjunction/ng-filter-builder 3.3.0 → 4.0.0
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/dist/lib/filter-builder/filter-builder.component.d.ts.map +1 -1
- package/dist/lib/filter-builder/filter-builder.component.js +10 -8
- package/dist/lib/filter-builder/filter-builder.component.js.map +1 -1
- package/dist/lib/filter-group/filter-group.component.d.ts.map +1 -1
- package/dist/lib/filter-group/filter-group.component.js +8 -6
- package/dist/lib/filter-group/filter-group.component.js.map +1 -1
- package/dist/lib/filter-rule/filter-rule.component.d.ts +3 -0
- package/dist/lib/filter-rule/filter-rule.component.d.ts.map +1 -1
- package/dist/lib/filter-rule/filter-rule.component.js +172 -136
- package/dist/lib/filter-rule/filter-rule.component.js.map +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-builder.component.d.ts","sourceRoot":"","sources":["../../../src/lib/filter-builder/filter-builder.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,yBAAyB,EAEzB,eAAe,EACf,mBAAmB,EAGpB,MAAM,uBAAuB,CAAC;;AAa/B;;;;;;;;;;;;;;;;GAgBG;AACH,
|
|
1
|
+
{"version":3,"file":"filter-builder.component.d.ts","sourceRoot":"","sources":["../../../src/lib/filter-builder/filter-builder.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EACL,yBAAyB,EAEzB,eAAe,EACf,mBAAmB,EAGpB,MAAM,uBAAuB,CAAC;;AAa/B;;;;;;;;;;;;;;;;GAgBG;AACH,qBAMa,sBAAuB,YAAW,MAAM,EAAE,SAAS;IA6DlD,OAAO,CAAC,SAAS;IA5D7B;;OAEG;IACM,MAAM,EAAE,eAAe,EAAE,CAAM;IAExC;;OAEG;IACM,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAQ;IAEzD;;OAEG;IACM,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAM;IAEnD;;OAEG;IACM,QAAQ,EAAE,OAAO,CAAS;IAEnC;;OAEG;IACM,WAAW,EAAE,OAAO,CAAS;IAEtC;;OAEG;IACI,iBAAiB,EAAE,OAAO,CAAS;IAE1C;;OAEG;IACO,YAAY,0CAAiD;IAEvE;;OAEG;IACO,KAAK,0CAAiD;IAEhE;;OAEG;IACO,KAAK,qBAA4B;IAE3C;;OAEG;IACI,cAAc,EAAE,yBAAyB,CAAuB;IAEvE;;OAEG;IACI,YAAY,EAAE,mBAAmB,CAAyB;IAEjE;;OAEG;IACI,gBAAgB,EAAE,OAAO,CAAS;gBAErB,SAAS,EAAE,YAAY;IAE3C,QAAQ,IAAI,IAAI;IAKhB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IASzC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI;IASvD;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,OAAO,IAAI,IAAI;IAOf;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;IACH,oBAAoB,IAAI,QAAQ;IAQhC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAWrB;IAEF;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8B9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmDvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,UAAU;yCAtWP,sBAAsB;2CAAtB,sBAAsB;CA2WlC"}
|
|
@@ -10,7 +10,7 @@ function FilterBuilderComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
|
10
10
|
} if (rf & 2) {
|
|
11
11
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
12
12
|
i0.ɵɵadvance();
|
|
13
|
-
i0.ɵɵtextInterpolate2("", ctx_r0.getFilterCount(), " condition", ctx_r0.getFilterCount() !== 1 ? "s" : ""
|
|
13
|
+
i0.ɵɵtextInterpolate2("", ctx_r0.getFilterCount(), " condition", ctx_r0.getFilterCount() !== 1 ? "s" : "");
|
|
14
14
|
} }
|
|
15
15
|
function FilterBuilderComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
16
16
|
i0.ɵɵelementStart(0, "span", 6);
|
|
@@ -70,7 +70,7 @@ function FilterBuilderComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
|
70
70
|
i0.ɵɵelementStart(6, "span", 24);
|
|
71
71
|
i0.ɵɵtext(7);
|
|
72
72
|
i0.ɵɵelementEnd()();
|
|
73
|
-
i0.ɵɵ
|
|
73
|
+
i0.ɵɵconditionalCreate(8, FilterBuilderComponent_Conditional_13_Conditional_8_Template, 2, 1, "div", 25);
|
|
74
74
|
i0.ɵɵelementEnd();
|
|
75
75
|
} if (rf & 2) {
|
|
76
76
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -428,19 +428,21 @@ export class FilterBuilderComponent {
|
|
|
428
428
|
return div.innerHTML;
|
|
429
429
|
}
|
|
430
430
|
static ɵfac = function FilterBuilderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FilterBuilderComponent)(i0.ɵɵdirectiveInject(i1.DomSanitizer)); };
|
|
431
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FilterBuilderComponent, selectors: [["mj-filter-builder"]], inputs: { fields: "fields", filter: "filter", config: "config", disabled: "disabled", showSummary: "showSummary" }, outputs: { filterChange: "filterChange", apply: "apply", clear: "clear" }, features: [i0.ɵɵNgOnChangesFeature], decls: 14, vars: 13, consts: [[1, "filter-builder"], [1, "filter-header"], [1, "filter-summary"], [1, "filter-icon"], [1, "fa-solid", "fa-filter"], [1, "filter-count"], [1, "filter-count", "no-filters"], [1, "filter-actions"], ["type", "button", "title", "Clear all filters", 1, "action-btn", "clear-btn", 3, "disabled"], ["type", "button", "title", "Apply filters", 1, "action-btn", "apply-btn", 3, "disabled"], [1, "filter-content"], [3, "filterChange", "filter", "fields", "isRoot", "depth", "maxDepth", "disabled"], [1, "filter-tips"], [1, "filter-expression-summary", 3, "expanded"], ["type", "button", "title", "Clear all filters", 1, "action-btn", "clear-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-times"], ["type", "button", "title", "Apply filters", 1, "action-btn", "apply-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-lightbulb"], [1, "filter-expression-summary"], ["type", "button", 1, "expression-toggle", 3, "click"], [1, "fa-solid"], [1, "fa-solid", "fa-code", "expression-icon"], [1, "expression-label"], [1, "expression-badge"], [1, "expression-content"], [1, "expression-text", 3, "innerHTML"]], template: function FilterBuilderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
431
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FilterBuilderComponent, selectors: [["mj-filter-builder"]], inputs: { fields: "fields", filter: "filter", config: "config", disabled: "disabled", showSummary: "showSummary" }, outputs: { filterChange: "filterChange", apply: "apply", clear: "clear" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 14, vars: 13, consts: [[1, "filter-builder"], [1, "filter-header"], [1, "filter-summary"], [1, "filter-icon"], [1, "fa-solid", "fa-filter"], [1, "filter-count"], [1, "filter-count", "no-filters"], [1, "filter-actions"], ["type", "button", "title", "Clear all filters", 1, "action-btn", "clear-btn", 3, "disabled"], ["type", "button", "title", "Apply filters", 1, "action-btn", "apply-btn", 3, "disabled"], [1, "filter-content"], [3, "filterChange", "filter", "fields", "isRoot", "depth", "maxDepth", "disabled"], [1, "filter-tips"], [1, "filter-expression-summary", 3, "expanded"], ["type", "button", "title", "Clear all filters", 1, "action-btn", "clear-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-times"], ["type", "button", "title", "Apply filters", 1, "action-btn", "apply-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-check"], [1, "fa-solid", "fa-lightbulb"], [1, "filter-expression-summary"], ["type", "button", 1, "expression-toggle", 3, "click"], [1, "fa-solid"], [1, "fa-solid", "fa-code", "expression-icon"], [1, "expression-label"], [1, "expression-badge"], [1, "expression-content"], [1, "expression-text", 3, "innerHTML"]], template: function FilterBuilderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
432
432
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "span", 3);
|
|
433
433
|
i0.ɵɵelement(4, "i", 4);
|
|
434
434
|
i0.ɵɵelementEnd();
|
|
435
|
-
i0.ɵɵ
|
|
435
|
+
i0.ɵɵconditionalCreate(5, FilterBuilderComponent_Conditional_5_Template, 2, 2, "span", 5)(6, FilterBuilderComponent_Conditional_6_Template, 2, 0, "span", 6);
|
|
436
436
|
i0.ɵɵelementEnd();
|
|
437
437
|
i0.ɵɵelementStart(7, "div", 7);
|
|
438
|
-
i0.ɵɵ
|
|
438
|
+
i0.ɵɵconditionalCreate(8, FilterBuilderComponent_Conditional_8_Template, 4, 1, "button", 8);
|
|
439
|
+
i0.ɵɵconditionalCreate(9, FilterBuilderComponent_Conditional_9_Template, 4, 1, "button", 9);
|
|
439
440
|
i0.ɵɵelementEnd()();
|
|
440
441
|
i0.ɵɵelementStart(10, "div", 10)(11, "mj-filter-group", 11);
|
|
441
442
|
i0.ɵɵlistener("filterChange", function FilterBuilderComponent_Template_mj_filter_group_filterChange_11_listener($event) { return ctx.onFilterChange($event); });
|
|
442
443
|
i0.ɵɵelementEnd()();
|
|
443
|
-
i0.ɵɵ
|
|
444
|
+
i0.ɵɵconditionalCreate(12, FilterBuilderComponent_Conditional_12_Template, 6, 0, "div", 12);
|
|
445
|
+
i0.ɵɵconditionalCreate(13, FilterBuilderComponent_Conditional_13_Template, 9, 8, "div", 13);
|
|
444
446
|
i0.ɵɵelementEnd();
|
|
445
447
|
} if (rf & 2) {
|
|
446
448
|
i0.ɵɵclassProp("disabled", ctx.disabled);
|
|
@@ -460,7 +462,7 @@ export class FilterBuilderComponent {
|
|
|
460
462
|
}
|
|
461
463
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FilterBuilderComponent, [{
|
|
462
464
|
type: Component,
|
|
463
|
-
args: [{ selector: 'mj-filter-builder', template: "<div class=\"filter-builder\" [class.disabled]=\"disabled\">\n <!-- Header with summary and actions -->\n <div class=\"filter-header\">\n <div class=\"filter-summary\">\n <span class=\"filter-icon\">\n <i class=\"fa-solid fa-filter\"></i>\n </span>\n @if (hasActiveFilters) {\n <span class=\"filter-count\">{{ getFilterCount() }} condition{{ getFilterCount() !== 1 ? 's' : '' }}</span>\n } @else {\n <span class=\"filter-count no-filters\">No filters applied</span>\n }\n </div>\n\n <div class=\"filter-actions\">\n @if (mergedConfig.showClearButton && hasActiveFilters) {\n <button\n type=\"button\"\n class=\"action-btn clear-btn\"\n (click)=\"onClear()\"\n [disabled]=\"disabled\"\n title=\"Clear all filters\">\n <i class=\"fa-solid fa-times\"></i>\n <span>Clear All</span>\n </button>\n }\n @if (mergedConfig.showApplyButton) {\n <button\n type=\"button\"\n class=\"action-btn apply-btn\"\n (click)=\"onApply()\"\n [disabled]=\"disabled\"\n title=\"Apply filters\">\n <i class=\"fa-solid fa-check\"></i>\n <span>Apply</span>\n </button>\n }\n </div>\n </div>\n\n <!-- Filter Builder Content -->\n <div class=\"filter-content\">\n <mj-filter-group\n [filter]=\"internalFilter\"\n [fields]=\"fields\"\n [isRoot]=\"true\"\n [depth]=\"0\"\n [maxDepth]=\"mergedConfig.maxDepth\"\n [disabled]=\"disabled\"\n (filterChange)=\"onFilterChange($event)\">\n </mj-filter-group>\n </div>\n\n <!-- Quick tips (shown when no filters) -->\n @if (!hasActiveFilters) {\n <div class=\"filter-tips\">\n <p>\n <i class=\"fa-solid fa-lightbulb\"></i>\n <strong>Tip:</strong> Click \"Add Condition\" to create filter rules.\n Use \"Add Group\" for complex AND/OR combinations.\n </p>\n </div>\n }\n\n <!-- Collapsible filter expression summary -->\n @if (showSummary && hasActiveFilters) {\n <div class=\"filter-expression-summary\" [class.expanded]=\"isSummaryExpanded\">\n <button type=\"button\" class=\"expression-toggle\" (click)=\"toggleSummary()\">\n <i class=\"fa-solid\" [class.fa-chevron-right]=\"!isSummaryExpanded\" [class.fa-chevron-down]=\"isSummaryExpanded\"></i>\n <i class=\"fa-solid fa-code expression-icon\"></i>\n <span class=\"expression-label\">View Filter Expression</span>\n <span class=\"expression-badge\">{{ getFilterCount() }}</span>\n </button>\n @if (isSummaryExpanded) {\n <div class=\"expression-content\">\n <pre class=\"expression-text\" [innerHTML]=\"getFilterSummaryHtml()\"></pre>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".filter-builder {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.filter-builder.disabled {\n opacity: 0.6;\n pointer-events: none;\n}\n\n/* Header */\n.filter-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: 12px;\n border-bottom: 1px solid #eee;\n}\n\n.filter-summary {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.filter-icon {\n color: #1976d2;\n font-size: 14px;\n}\n\n.filter-count {\n font-size: 13px;\n color: #333;\n font-weight: 500;\n}\n\n.filter-count.no-filters {\n color: #999;\n font-weight: 400;\n}\n\n/* Actions */\n.filter-actions {\n display: flex;\n gap: 8px;\n}\n\n.action-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.action-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.action-btn i {\n font-size: 11px;\n}\n\n.clear-btn {\n background: #f5f5f5;\n color: #666;\n}\n\n.clear-btn:hover:not(:disabled) {\n background: #ffebee;\n color: #c62828;\n}\n\n.apply-btn {\n background: #1976d2;\n color: white;\n}\n\n.apply-btn:hover:not(:disabled) {\n background: #1565c0;\n}\n\n/* Content */\n.filter-content {\n min-height: 60px;\n}\n\n/* Tips */\n.filter-tips {\n padding: 12px;\n background: #f5f9ff;\n border-radius: 6px;\n border: 1px solid #e3edfa;\n}\n\n.filter-tips p {\n margin: 0;\n font-size: 13px;\n color: #666;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.filter-tips i {\n color: #ffc107;\n margin-top: 2px;\n}\n\n.filter-tips strong {\n color: #333;\n}\n\n/* Collapsible Filter Expression Summary */\n.filter-expression-summary {\n background: #f8f9fa;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n margin-top: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.filter-expression-summary.expanded {\n background: white;\n border-color: #d1d5db;\n}\n\n/* Toggle Button */\n.expression-toggle {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 12px 16px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n color: #6b7280;\n text-align: left;\n transition: all 0.15s ease;\n}\n\n.expression-toggle:hover {\n background: rgba(0, 0, 0, 0.03);\n color: #374151;\n}\n\n.expression-toggle i:first-child {\n font-size: 10px;\n color: #9ca3af;\n width: 12px;\n transition: transform 0.2s ease;\n}\n\n.expression-icon {\n color: #6366f1;\n font-size: 13px;\n}\n\n.expression-label {\n flex: 1;\n}\n\n.expression-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: #e0e7ff;\n color: #4f46e5;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n/* Expression Content */\n.expression-content {\n padding: 0 16px 16px 16px;\n animation: slideDown 0.2s ease;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.expression-text {\n font-family: 'SF Mono', 'Monaco', 'Menlo', 'Consolas', monospace;\n font-size: 13px;\n line-height: 1.8;\n color: #374151;\n padding: 16px;\n margin: 0;\n background: linear-gradient(135deg, #fafbfc 0%, #f3f4f6 100%);\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/* Syntax Highlighting */\n.expression-text .field-name {\n color: #0369a1;\n font-weight: 600;\n}\n\n.expression-text .operator {\n color: #6b7280;\n font-style: italic;\n}\n\n.expression-text .value {\n font-weight: 500;\n}\n\n.expression-text .value-string {\n color: #059669;\n}\n\n.expression-text .value-number {\n color: #7c3aed;\n}\n\n.expression-text .value-boolean {\n font-weight: 600;\n}\n\n.expression-text .value-true {\n color: #16a34a;\n}\n\n.expression-text .value-false {\n color: #dc2626;\n}\n\n.expression-text .value-date {\n color: #c2410c;\n font-weight: 500;\n}\n\n.expression-text .logic-keyword {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n}\n\n.expression-text .logic-and {\n background: #dbeafe;\n color: #1d4ed8;\n}\n\n.expression-text .logic-or {\n background: #fef3c7;\n color: #b45309;\n}\n\n.expression-text .group-bracket {\n color: #9333ea;\n font-weight: 700;\n font-size: 15px;\n}\n\n.expression-text .no-filters {\n color: #9ca3af;\n font-style: italic;\n}\n\n/* Responsive */\n@media (max-width: 600px) {\n .filter-header {\n flex-direction: column;\n align-items: stretch;\n gap: 12px;\n }\n\n .filter-summary {\n justify-content: center;\n }\n\n .filter-actions {\n justify-content: center;\n }\n\n .expression-toggle {\n padding: 10px 12px;\n }\n\n .expression-content {\n padding: 0 12px 12px 12px;\n }\n\n .expression-text {\n font-size: 12px;\n padding: 12px;\n }\n}\n"] }]
|
|
465
|
+
args: [{ standalone: false, selector: 'mj-filter-builder', template: "<div class=\"filter-builder\" [class.disabled]=\"disabled\">\n <!-- Header with summary and actions -->\n <div class=\"filter-header\">\n <div class=\"filter-summary\">\n <span class=\"filter-icon\">\n <i class=\"fa-solid fa-filter\"></i>\n </span>\n @if (hasActiveFilters) {\n <span class=\"filter-count\">{{ getFilterCount() }} condition{{ getFilterCount() !== 1 ? 's' : '' }}</span>\n } @else {\n <span class=\"filter-count no-filters\">No filters applied</span>\n }\n </div>\n\n <div class=\"filter-actions\">\n @if (mergedConfig.showClearButton && hasActiveFilters) {\n <button\n type=\"button\"\n class=\"action-btn clear-btn\"\n (click)=\"onClear()\"\n [disabled]=\"disabled\"\n title=\"Clear all filters\">\n <i class=\"fa-solid fa-times\"></i>\n <span>Clear All</span>\n </button>\n }\n @if (mergedConfig.showApplyButton) {\n <button\n type=\"button\"\n class=\"action-btn apply-btn\"\n (click)=\"onApply()\"\n [disabled]=\"disabled\"\n title=\"Apply filters\">\n <i class=\"fa-solid fa-check\"></i>\n <span>Apply</span>\n </button>\n }\n </div>\n </div>\n\n <!-- Filter Builder Content -->\n <div class=\"filter-content\">\n <mj-filter-group\n [filter]=\"internalFilter\"\n [fields]=\"fields\"\n [isRoot]=\"true\"\n [depth]=\"0\"\n [maxDepth]=\"mergedConfig.maxDepth\"\n [disabled]=\"disabled\"\n (filterChange)=\"onFilterChange($event)\">\n </mj-filter-group>\n </div>\n\n <!-- Quick tips (shown when no filters) -->\n @if (!hasActiveFilters) {\n <div class=\"filter-tips\">\n <p>\n <i class=\"fa-solid fa-lightbulb\"></i>\n <strong>Tip:</strong> Click \"Add Condition\" to create filter rules.\n Use \"Add Group\" for complex AND/OR combinations.\n </p>\n </div>\n }\n\n <!-- Collapsible filter expression summary -->\n @if (showSummary && hasActiveFilters) {\n <div class=\"filter-expression-summary\" [class.expanded]=\"isSummaryExpanded\">\n <button type=\"button\" class=\"expression-toggle\" (click)=\"toggleSummary()\">\n <i class=\"fa-solid\" [class.fa-chevron-right]=\"!isSummaryExpanded\" [class.fa-chevron-down]=\"isSummaryExpanded\"></i>\n <i class=\"fa-solid fa-code expression-icon\"></i>\n <span class=\"expression-label\">View Filter Expression</span>\n <span class=\"expression-badge\">{{ getFilterCount() }}</span>\n </button>\n @if (isSummaryExpanded) {\n <div class=\"expression-content\">\n <pre class=\"expression-text\" [innerHTML]=\"getFilterSummaryHtml()\"></pre>\n </div>\n }\n </div>\n }\n</div>\n", styles: [".filter-builder {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.filter-builder.disabled {\n opacity: 0.6;\n pointer-events: none;\n}\n\n/* Header */\n.filter-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: 12px;\n border-bottom: 1px solid #eee;\n}\n\n.filter-summary {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.filter-icon {\n color: #1976d2;\n font-size: 14px;\n}\n\n.filter-count {\n font-size: 13px;\n color: #333;\n font-weight: 500;\n}\n\n.filter-count.no-filters {\n color: #999;\n font-weight: 400;\n}\n\n/* Actions */\n.filter-actions {\n display: flex;\n gap: 8px;\n}\n\n.action-btn {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 12px;\n border: none;\n border-radius: 6px;\n font-size: 13px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.action-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.action-btn i {\n font-size: 11px;\n}\n\n.clear-btn {\n background: #f5f5f5;\n color: #666;\n}\n\n.clear-btn:hover:not(:disabled) {\n background: #ffebee;\n color: #c62828;\n}\n\n.apply-btn {\n background: #1976d2;\n color: white;\n}\n\n.apply-btn:hover:not(:disabled) {\n background: #1565c0;\n}\n\n/* Content */\n.filter-content {\n min-height: 60px;\n}\n\n/* Tips */\n.filter-tips {\n padding: 12px;\n background: #f5f9ff;\n border-radius: 6px;\n border: 1px solid #e3edfa;\n}\n\n.filter-tips p {\n margin: 0;\n font-size: 13px;\n color: #666;\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n\n.filter-tips i {\n color: #ffc107;\n margin-top: 2px;\n}\n\n.filter-tips strong {\n color: #333;\n}\n\n/* Collapsible Filter Expression Summary */\n.filter-expression-summary {\n background: #f8f9fa;\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n margin-top: 8px;\n overflow: hidden;\n transition: all 0.2s ease;\n}\n\n.filter-expression-summary.expanded {\n background: white;\n border-color: #d1d5db;\n}\n\n/* Toggle Button */\n.expression-toggle {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 12px 16px;\n border: none;\n background: transparent;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n color: #6b7280;\n text-align: left;\n transition: all 0.15s ease;\n}\n\n.expression-toggle:hover {\n background: rgba(0, 0, 0, 0.03);\n color: #374151;\n}\n\n.expression-toggle i:first-child {\n font-size: 10px;\n color: #9ca3af;\n width: 12px;\n transition: transform 0.2s ease;\n}\n\n.expression-icon {\n color: #6366f1;\n font-size: 13px;\n}\n\n.expression-label {\n flex: 1;\n}\n\n.expression-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n background: #e0e7ff;\n color: #4f46e5;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n}\n\n/* Expression Content */\n.expression-content {\n padding: 0 16px 16px 16px;\n animation: slideDown 0.2s ease;\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.expression-text {\n font-family: 'SF Mono', 'Monaco', 'Menlo', 'Consolas', monospace;\n font-size: 13px;\n line-height: 1.8;\n color: #374151;\n padding: 16px;\n margin: 0;\n background: linear-gradient(135deg, #fafbfc 0%, #f3f4f6 100%);\n border: 1px solid #e5e7eb;\n border-radius: 8px;\n overflow-x: auto;\n white-space: pre-wrap;\n word-break: break-word;\n}\n\n/* Syntax Highlighting */\n.expression-text .field-name {\n color: #0369a1;\n font-weight: 600;\n}\n\n.expression-text .operator {\n color: #6b7280;\n font-style: italic;\n}\n\n.expression-text .value {\n font-weight: 500;\n}\n\n.expression-text .value-string {\n color: #059669;\n}\n\n.expression-text .value-number {\n color: #7c3aed;\n}\n\n.expression-text .value-boolean {\n font-weight: 600;\n}\n\n.expression-text .value-true {\n color: #16a34a;\n}\n\n.expression-text .value-false {\n color: #dc2626;\n}\n\n.expression-text .value-date {\n color: #c2410c;\n font-weight: 500;\n}\n\n.expression-text .logic-keyword {\n display: inline-block;\n padding: 2px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.5px;\n text-transform: uppercase;\n}\n\n.expression-text .logic-and {\n background: #dbeafe;\n color: #1d4ed8;\n}\n\n.expression-text .logic-or {\n background: #fef3c7;\n color: #b45309;\n}\n\n.expression-text .group-bracket {\n color: #9333ea;\n font-weight: 700;\n font-size: 15px;\n}\n\n.expression-text .no-filters {\n color: #9ca3af;\n font-style: italic;\n}\n\n/* Responsive */\n@media (max-width: 600px) {\n .filter-header {\n flex-direction: column;\n align-items: stretch;\n gap: 12px;\n }\n\n .filter-summary {\n justify-content: center;\n }\n\n .filter-actions {\n justify-content: center;\n }\n\n .expression-toggle {\n padding: 10px 12px;\n }\n\n .expression-content {\n padding: 0 12px 12px 12px;\n }\n\n .expression-text {\n font-size: 12px;\n padding: 12px;\n }\n}\n"] }]
|
|
464
466
|
}], () => [{ type: i1.DomSanitizer }], { fields: [{
|
|
465
467
|
type: Input
|
|
466
468
|
}], filter: [{
|
|
@@ -478,5 +480,5 @@ export class FilterBuilderComponent {
|
|
|
478
480
|
}], clear: [{
|
|
479
481
|
type: Output
|
|
480
482
|
}] }); })();
|
|
481
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterBuilderComponent, { className: "FilterBuilderComponent", filePath: "src/lib/filter-builder/filter-builder.component.ts", lineNumber:
|
|
483
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterBuilderComponent, { className: "FilterBuilderComponent", filePath: "src/lib/filter-builder/filter-builder.component.ts", lineNumber: 46 }); })();
|
|
482
484
|
//# sourceMappingURL=filter-builder.component.js.map
|
|
@@ -1 +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":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAoC,MAAM,eAAe,CAAC;AAEzG,OAAO,EAKL,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;;;;;ICDvB,+BAA2B;IAAA,YAAuE;IAAA,iBAAO;;;IAA9E,cAAuE;IAAvE,
|
|
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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"}
|
|
@@ -1 +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,
|
|
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,qBAOa,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"}
|
|
@@ -61,7 +61,8 @@ function FilterGroupComponent_For_16_Conditional_3_Template(rf, ctx) { if (rf &
|
|
|
61
61
|
} }
|
|
62
62
|
function FilterGroupComponent_For_16_Template(rf, ctx) { if (rf & 1) {
|
|
63
63
|
i0.ɵɵelementStart(0, "div", 11);
|
|
64
|
-
i0.ɵɵ
|
|
64
|
+
i0.ɵɵconditionalCreate(1, FilterGroupComponent_For_16_Conditional_1_Template, 6, 3, "div", 17);
|
|
65
|
+
i0.ɵɵconditionalCreate(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
66
|
i0.ɵɵelementEnd();
|
|
66
67
|
} if (rf & 2) {
|
|
67
68
|
const item_r6 = ctx.$implicit;
|
|
@@ -261,7 +262,7 @@ export class FilterGroupComponent {
|
|
|
261
262
|
return index;
|
|
262
263
|
}
|
|
263
264
|
static ɵfac = function FilterGroupComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || 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
|
+
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" }, standalone: false, 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
266
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "button", 3);
|
|
266
267
|
i0.ɵɵlistener("click", function FilterGroupComponent_Template_button_click_3_listener() { return ctx.setLogic("and"); });
|
|
267
268
|
i0.ɵɵtext(4, " AND ");
|
|
@@ -276,12 +277,13 @@ export class FilterGroupComponent {
|
|
|
276
277
|
i0.ɵɵelementStart(10, "span");
|
|
277
278
|
i0.ɵɵtext(11, "Add Condition");
|
|
278
279
|
i0.ɵɵelementEnd()();
|
|
279
|
-
i0.ɵɵ
|
|
280
|
+
i0.ɵɵconditionalCreate(12, FilterGroupComponent_Conditional_12_Template, 4, 1, "button", 8);
|
|
281
|
+
i0.ɵɵconditionalCreate(13, FilterGroupComponent_Conditional_13_Template, 2, 1, "button", 9);
|
|
280
282
|
i0.ɵɵelementEnd()();
|
|
281
283
|
i0.ɵɵelementStart(14, "div", 10);
|
|
282
284
|
i0.ɵɵrepeaterCreate(15, FilterGroupComponent_For_16_Template, 4, 2, "div", 11, ctx.trackByIndex, true);
|
|
283
285
|
i0.ɵɵelementEnd();
|
|
284
|
-
i0.ɵɵ
|
|
286
|
+
i0.ɵɵconditionalCreate(17, FilterGroupComponent_Conditional_17_Template, 7, 1, "div", 12);
|
|
285
287
|
i0.ɵɵelementEnd();
|
|
286
288
|
} if (rf & 2) {
|
|
287
289
|
i0.ɵɵclassProp("root", ctx.isRoot)("disabled", ctx.disabled);
|
|
@@ -306,7 +308,7 @@ export class FilterGroupComponent {
|
|
|
306
308
|
}
|
|
307
309
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FilterGroupComponent, [{
|
|
308
310
|
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"] }]
|
|
311
|
+
args: [{ standalone: false, 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
312
|
}], null, { filter: [{
|
|
311
313
|
type: Input
|
|
312
314
|
}], fields: [{
|
|
@@ -324,5 +326,5 @@ export class FilterGroupComponent {
|
|
|
324
326
|
}], delete: [{
|
|
325
327
|
type: Output
|
|
326
328
|
}] }); })();
|
|
327
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterGroupComponent, { className: "FilterGroupComponent", filePath: "src/lib/filter-group/filter-group.component.ts", lineNumber:
|
|
329
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterGroupComponent, { className: "FilterGroupComponent", filePath: "src/lib/filter-group/filter-group.component.ts", lineNumber: 23 }); })();
|
|
328
330
|
//# sourceMappingURL=filter-group.component.js.map
|
|
@@ -1 +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":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAU,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,EAKL,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;;;;;;IC2BvB,kCAK2B;IAFzB,yLAAS,iBAAU,KAAC;IAGpB,wBAAuC;IACvC,4BAAM;IAAA,yBAAS;IACjB,AADiB,iBAAO,EACf;;;IAJP,0CAAqB;;;;IAOvB,kCAK4B;IAF1B,yLAAS,iBAAU,KAAC;IAGpB,wBAAiC;IACnC,iBAAS;;;IAHP,0CAAqB;;;IAcrB,+BAA6B;IAC3B,2BAAoC;IACpC,gCAA8B;IAAA,YAA8B;;IAAA,iBAAO;IACnE,2BAAoC;IACtC,iBAAM;;;IAF0B,eAA8B;IAA9B,+DAA8B;;;;IAO9D,2CAQ6B;IAA3B,AADA,6QAAgB,2CAAwB,KAAC,8OAC/B,kCAAe,KAAC;IAC5B,iBAAkB;;;;IAHhB,AADA,AADA,AADA,AADA,AADA,gDAAwB,yBACP,iBACD,2BACG,6BACE,6BACA;;;;IAMvB,0CAM6B;IAA3B,AADA,4QAAgB,0CAAuB,KAAC,6OAC9B,kCAAe,KAAC;IAC5B,iBAAiB;;;;IAHf,AADA,AADA,AADA,+CAAuB,yBACN,6BACI,kEAC8B;;;IA5BzD,+BAAyB;
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAU,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClG,OAAO,EAKL,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;;;;;;IC2BvB,kCAK2B;IAFzB,yLAAS,iBAAU,KAAC;IAGpB,wBAAuC;IACvC,4BAAM;IAAA,yBAAS;IACjB,AADiB,iBAAO,EACf;;;IAJP,0CAAqB;;;;IAOvB,kCAK4B;IAF1B,yLAAS,iBAAU,KAAC;IAGpB,wBAAiC;IACnC,iBAAS;;;IAHP,0CAAqB;;;IAcrB,+BAA6B;IAC3B,2BAAoC;IACpC,gCAA8B;IAAA,YAA8B;;IAAA,iBAAO;IACnE,2BAAoC;IACtC,iBAAM;;;IAF0B,eAA8B;IAA9B,+DAA8B;;;;IAO9D,2CAQ6B;IAA3B,AADA,6QAAgB,2CAAwB,KAAC,8OAC/B,kCAAe,KAAC;IAC5B,iBAAkB;;;;IAHhB,AADA,AADA,AADA,AADA,AADA,gDAAwB,yBACP,iBACD,2BACG,6BACE,6BACA;;;;IAMvB,0CAM6B;IAA3B,AADA,4QAAgB,0CAAuB,KAAC,6OAC9B,kCAAe,KAAC;IAC5B,iBAAiB;;;;IAHf,AADA,AADA,AADA,+CAAuB,yBACN,6BACI,kEAC8B;;;IA5BzD,+BAAyB;IAEvB,8FAAa;IAoBX,AAZF,0GAAqB,mFAYZ;IAWX,iBAAM;;;;;IA/BJ,cAMC;IAND,4CAMC;IAED,cAsBC;IAtBD,iDAsBC;;;;IAQH,AADF,+BAAyB,QACpB;IAAA,6CAA6B;IAAA,iBAAI;IACpC,kCAIwB;IADtB,yLAAS,gBAAS,KAAC;IAEnB,uBAAgC;IAChC,4BAAM;IAAA,wCAAwB;IAElC,AADE,AADgC,iBAAO,EAC9B,EACL;;;IAJF,eAAqB;IAArB,0CAAqB;;ADhG7B;;;;GAIG;AAQH,MAAM,OAAO,oBAAoB;IAC/B;;OAEG;IACM,MAAM,CAA6B;IAE5C;;OAEG;IACM,MAAM,GAAsB,EAAE,CAAC;IAExC;;OAEG;IACM,MAAM,GAAY,KAAK,CAAC;IAEjC;;OAEG;IACM,KAAK,GAAW,CAAC,CAAC;IAE3B;;OAEG;IACM,QAAQ,GAAW,CAAC,CAAC;IAE9B;;OAEG;IACM,QAAQ,GAAY,KAAK,CAAC;IAEnC;;OAEG;IACO,YAAY,GAAG,IAAI,YAAY,EAA6B,CAAC;IAEvE;;OAEG;IACO,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;IAE5C,QAAQ;QACN,sCAAsC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,QAAQ,GAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC;YACd,GAAG,IAAI,CAAC,MAAM;YACd,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAkB;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC;gBACd,GAAG,IAAI,CAAC,MAAM;gBACd,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE/C,IAAI,CAAC,UAAU,CAAC;YACd,GAAG,IAAI,CAAC,MAAM;YACd,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAExC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QAChD,MAAM,QAAQ,GAA8B;YAC1C,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;SAC1C,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC;YACd,GAAG,IAAI,CAAC,MAAM;YACd,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAa,EAAE,WAA6B;QACvD,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC;YACd,GAAG,IAAI,CAAC,MAAM;YACd,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAa,EAAE,YAAuC;QAClE,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC;YACd,GAAG,IAAI,CAAC,MAAM;YACd,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAa;QACxB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEzB,uDAAuD;QACvD,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,UAAU,CAAC;YACd,GAAG,IAAI,CAAC,MAAM;YACd,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAoD;QAC1D,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAoD;QACzD,OAAO,MAA0B,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAoD;QAC1D,OAAO,MAAmC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,MAAiC;QAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,KAAa;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;8GAhMU,oBAAoB;6DAApB,oBAAoB;YClB3B,AADF,AADF,AAFF,8BAAsG,aAE1E,aACE,gBAOO;YAF7B,iGAAS,aAAS,KAAK,CAAC,IAAC;YAGzB,qBACF;YAAA,iBAAS;YACT,iCAM8B;YAF5B,iGAAS,aAAS,IAAI,CAAC,IAAC;YAGxB,oBACF;YACF,AADE,iBAAS,EACL;YAGJ,AADF,8BAA2B,gBAMM;YAF7B,iGAAS,aAAS,IAAC;YAGnB,uBAAgC;YAChC,6BAAM;YAAA,8BAAa;YACrB,AADqB,iBAAO,EACnB;YACT,2FAAqB;YAWrB,2FAAe;YAWnB,AADE,iBAAM,EACF;YAGN,gCAA+B;YAC7B,sGAmCC;YACH,iBAAM;YAGN,yFAAsD;YAaxD,iBAAM;;YAhH0C,AAAtB,kCAAqB,0BAA4B;;YAOnE,eAAuC;YAAvC,oDAAuC;YAEvC,uCAAqB;YAOrB,eAAsC;YAAtC,mDAAsC;YAEtC,uCAAqB;YAWrB,eAAqB;YAArB,uCAAqB;YAKvB,eAUC;YAVD,6CAUC;YACD,cASC;YATD,uCASC;YAMH,eAmCC;YAnCD,iCAmCC;YAIH,eAYC;YAZD,kFAYC;4BDzFU,oBAAoB;;iFAApB,oBAAoB;cAPhC,SAAS;6BACI,KAAK,YACP,iBAAiB,iBAGZ,iBAAiB,CAAC,IAAI;;kBAMpC,KAAK;;kBAKL,KAAK;;kBAKL,KAAK;;kBAKL,KAAK;;kBAKL,KAAK;;kBAKL,KAAK;;kBAKL,MAAM;;kBAKN,MAAM;;kFAvCI,oBAAoB"}
|
|
@@ -52,6 +52,9 @@ export declare class FilterRuleComponent implements OnInit, OnChanges {
|
|
|
52
52
|
fieldHighlightIndex: number;
|
|
53
53
|
operatorHighlightIndex: number;
|
|
54
54
|
valueHighlightIndex: number;
|
|
55
|
+
fieldDropdownBtn: ElementRef<HTMLButtonElement>;
|
|
56
|
+
operatorDropdownBtn: ElementRef<HTMLButtonElement>;
|
|
57
|
+
valueDropdownBtn: ElementRef<HTMLButtonElement>;
|
|
55
58
|
constructor(elementRef: ElementRef);
|
|
56
59
|
/**
|
|
57
60
|
* Close dropdowns when clicking outside the component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-rule.component.d.ts","sourceRoot":"","sources":["../../../src/lib/filter-rule/filter-rule.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAmC,UAAU,
|
|
1
|
+
{"version":3,"file":"filter-rule.component.d.ts","sourceRoot":"","sources":["../../../src/lib/filter-rule/filter-rule.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,182 +1,185 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ViewEncapsulation, HostListener } from '@angular/core';
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewEncapsulation, HostListener, ViewChild } from '@angular/core';
|
|
2
2
|
import { getOperatorsForType, operatorRequiresValue } from '../types/operators';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
const _c0 = ["fieldDropdownBtn"];
|
|
5
|
+
const _c1 = ["operatorDropdownBtn"];
|
|
6
|
+
const _c2 = ["valueDropdownBtn"];
|
|
4
7
|
const _forTrack0 = ($index, $item) => $item.name;
|
|
5
8
|
const _forTrack1 = ($index, $item) => $item.value;
|
|
6
|
-
function
|
|
7
|
-
const
|
|
8
|
-
i0.ɵɵelementStart(0, "div",
|
|
9
|
-
i0.ɵɵlistener("click", function
|
|
9
|
+
function FilterRuleComponent_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
10
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
11
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
12
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_Conditional_7_For_2_Template_div_click_0_listener() { const field_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.selectField(field_r3.name)); });
|
|
10
13
|
i0.ɵɵtext(1);
|
|
11
14
|
i0.ɵɵelementEnd();
|
|
12
15
|
} if (rf & 2) {
|
|
13
|
-
const
|
|
14
|
-
const ɵ$
|
|
15
|
-
const
|
|
16
|
-
i0.ɵɵclassProp("selected",
|
|
16
|
+
const field_r3 = ctx.$implicit;
|
|
17
|
+
const ɵ$index_15_r5 = ctx.$index;
|
|
18
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
19
|
+
i0.ɵɵclassProp("selected", field_r3.name === ctx_r3.filter.field)("highlighted", ɵ$index_15_r5 === ctx_r3.fieldHighlightIndex);
|
|
17
20
|
i0.ɵɵadvance();
|
|
18
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
21
|
+
i0.ɵɵtextInterpolate1(" ", field_r3.displayName, " ");
|
|
19
22
|
} }
|
|
20
|
-
function
|
|
21
|
-
i0.ɵɵelementStart(0, "div",
|
|
23
|
+
function FilterRuleComponent_Conditional_7_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
i0.ɵɵelementStart(0, "div", 13);
|
|
22
25
|
i0.ɵɵtext(1, "No fields available");
|
|
23
26
|
i0.ɵɵelementEnd();
|
|
24
27
|
} }
|
|
25
|
-
function
|
|
26
|
-
i0.ɵɵelementStart(0, "div",
|
|
27
|
-
i0.ɵɵrepeaterCreate(1,
|
|
28
|
-
i0.ɵɵ
|
|
28
|
+
function FilterRuleComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
i0.ɵɵelementStart(0, "div", 8);
|
|
30
|
+
i0.ɵɵrepeaterCreate(1, FilterRuleComponent_Conditional_7_For_2_Template, 2, 5, "div", 12, _forTrack0);
|
|
31
|
+
i0.ɵɵconditionalCreate(3, FilterRuleComponent_Conditional_7_Conditional_3_Template, 2, 0, "div", 13);
|
|
29
32
|
i0.ɵɵelementEnd();
|
|
30
33
|
} if (rf & 2) {
|
|
31
|
-
const
|
|
34
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
32
35
|
i0.ɵɵadvance();
|
|
33
|
-
i0.ɵɵrepeater(
|
|
36
|
+
i0.ɵɵrepeater(ctx_r3.fields);
|
|
34
37
|
i0.ɵɵadvance(2);
|
|
35
|
-
i0.ɵɵconditional(
|
|
38
|
+
i0.ɵɵconditional(ctx_r3.fields.length === 0 ? 3 : -1);
|
|
36
39
|
} }
|
|
37
|
-
function
|
|
38
|
-
const
|
|
39
|
-
i0.ɵɵelementStart(0, "div",
|
|
40
|
-
i0.ɵɵlistener("click", function
|
|
40
|
+
function FilterRuleComponent_Conditional_14_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
41
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
42
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
43
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_Conditional_14_For_2_Template_div_click_0_listener() { const op_r7 = i0.ɵɵrestoreView(_r6).$implicit; const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.selectOperator(op_r7.value)); });
|
|
41
44
|
i0.ɵɵtext(1);
|
|
42
45
|
i0.ɵɵelementEnd();
|
|
43
46
|
} if (rf & 2) {
|
|
44
|
-
const
|
|
45
|
-
const ɵ$
|
|
46
|
-
const
|
|
47
|
-
i0.ɵɵclassProp("selected",
|
|
47
|
+
const op_r7 = ctx.$implicit;
|
|
48
|
+
const ɵ$index_35_r8 = ctx.$index;
|
|
49
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
50
|
+
i0.ɵɵclassProp("selected", op_r7.value === ctx_r3.filter.operator)("highlighted", ɵ$index_35_r8 === ctx_r3.operatorHighlightIndex);
|
|
48
51
|
i0.ɵɵadvance();
|
|
49
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
52
|
+
i0.ɵɵtextInterpolate1(" ", op_r7.label, " ");
|
|
50
53
|
} }
|
|
51
|
-
function
|
|
52
|
-
i0.ɵɵelementStart(0, "div",
|
|
53
|
-
i0.ɵɵrepeaterCreate(1,
|
|
54
|
+
function FilterRuleComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
+
i0.ɵɵelementStart(0, "div", 8);
|
|
56
|
+
i0.ɵɵrepeaterCreate(1, FilterRuleComponent_Conditional_14_For_2_Template, 2, 5, "div", 12, _forTrack1);
|
|
54
57
|
i0.ɵɵelementEnd();
|
|
55
58
|
} if (rf & 2) {
|
|
56
|
-
const
|
|
59
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
57
60
|
i0.ɵɵadvance();
|
|
58
|
-
i0.ɵɵrepeater(
|
|
61
|
+
i0.ɵɵrepeater(ctx_r3.availableOperators);
|
|
59
62
|
} }
|
|
60
|
-
function
|
|
61
|
-
const
|
|
62
|
-
i0.ɵɵelementStart(0, "div",
|
|
63
|
-
i0.ɵɵlistener("click", function
|
|
63
|
+
function FilterRuleComponent_Conditional_15_Conditional_0_Conditional_6_For_4_Template(rf, ctx) { if (rf & 1) {
|
|
64
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
65
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
66
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_Conditional_15_Conditional_0_Conditional_6_For_4_Template_div_click_0_listener() { const option_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r3 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r3.selectValueFromOption(option_r12.value)); });
|
|
64
67
|
i0.ɵɵtext(1);
|
|
65
68
|
i0.ɵɵelementEnd();
|
|
66
69
|
} if (rf & 2) {
|
|
67
|
-
const
|
|
68
|
-
const ɵ$
|
|
69
|
-
const
|
|
70
|
-
i0.ɵɵclassProp("selected",
|
|
70
|
+
const option_r12 = ctx.$implicit;
|
|
71
|
+
const ɵ$index_56_r13 = ctx.$index;
|
|
72
|
+
const ctx_r3 = i0.ɵɵnextContext(4);
|
|
73
|
+
i0.ɵɵclassProp("selected", option_r12.value === ctx_r3.filter.value)("highlighted", ɵ$index_56_r13 + 1 === ctx_r3.valueHighlightIndex);
|
|
71
74
|
i0.ɵɵadvance();
|
|
72
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
75
|
+
i0.ɵɵtextInterpolate1(" ", option_r12.label, " ");
|
|
73
76
|
} }
|
|
74
|
-
function
|
|
75
|
-
const
|
|
76
|
-
i0.ɵɵelementStart(0, "div",
|
|
77
|
-
i0.ɵɵlistener("click", function
|
|
77
|
+
function FilterRuleComponent_Conditional_15_Conditional_0_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
78
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
79
|
+
i0.ɵɵelementStart(0, "div", 8)(1, "div", 14);
|
|
80
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_Conditional_15_Conditional_0_Conditional_6_Template_div_click_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r3 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r3.selectValue("")); });
|
|
78
81
|
i0.ɵɵtext(2, " Select... ");
|
|
79
82
|
i0.ɵɵelementEnd();
|
|
80
|
-
i0.ɵɵrepeaterCreate(3,
|
|
83
|
+
i0.ɵɵrepeaterCreate(3, FilterRuleComponent_Conditional_15_Conditional_0_Conditional_6_For_4_Template, 2, 5, "div", 12, _forTrack1);
|
|
81
84
|
i0.ɵɵelementEnd();
|
|
82
85
|
} if (rf & 2) {
|
|
83
|
-
const
|
|
86
|
+
const ctx_r3 = i0.ɵɵnextContext(3);
|
|
84
87
|
i0.ɵɵadvance();
|
|
85
|
-
i0.ɵɵclassProp("selected", !
|
|
88
|
+
i0.ɵɵclassProp("selected", !ctx_r3.filter.value)("highlighted", 0 === ctx_r3.valueHighlightIndex);
|
|
86
89
|
i0.ɵɵadvance(2);
|
|
87
|
-
i0.ɵɵrepeater(
|
|
90
|
+
i0.ɵɵrepeater(ctx_r3.selectedField.valueList);
|
|
88
91
|
} }
|
|
89
|
-
function
|
|
90
|
-
const
|
|
91
|
-
i0.ɵɵelementStart(0, "div",
|
|
92
|
-
i0.ɵɵlistener("click", function
|
|
93
|
-
i0.ɵɵelementStart(
|
|
94
|
-
i0.ɵɵtext(
|
|
92
|
+
function FilterRuleComponent_Conditional_15_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
93
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
94
|
+
i0.ɵɵelementStart(0, "div", 21)(1, "button", 5, 2);
|
|
95
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_Conditional_15_Conditional_0_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r9); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.toggleValueDropdown()); })("keydown", function FilterRuleComponent_Conditional_15_Conditional_0_Template_button_keydown_1_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onValueKeydown($event)); });
|
|
96
|
+
i0.ɵɵelementStart(3, "span", 6);
|
|
97
|
+
i0.ɵɵtext(4);
|
|
95
98
|
i0.ɵɵelementEnd();
|
|
96
|
-
i0.ɵɵelement(
|
|
99
|
+
i0.ɵɵelement(5, "i", 7);
|
|
97
100
|
i0.ɵɵelementEnd();
|
|
98
|
-
i0.ɵɵ
|
|
101
|
+
i0.ɵɵconditionalCreate(6, FilterRuleComponent_Conditional_15_Conditional_0_Conditional_6_Template, 5, 4, "div", 8);
|
|
99
102
|
i0.ɵɵelementEnd();
|
|
100
103
|
} if (rf & 2) {
|
|
101
|
-
const
|
|
102
|
-
i0.ɵɵclassProp("open",
|
|
104
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
105
|
+
i0.ɵɵclassProp("open", ctx_r3.valueDropdownOpen)("disabled", ctx_r3.disabled);
|
|
103
106
|
i0.ɵɵadvance();
|
|
104
|
-
i0.ɵɵproperty("disabled",
|
|
107
|
+
i0.ɵɵproperty("disabled", ctx_r3.disabled);
|
|
108
|
+
i0.ɵɵadvance(3);
|
|
109
|
+
i0.ɵɵtextInterpolate(ctx_r3.getSelectedValueLabel());
|
|
105
110
|
i0.ɵɵadvance(2);
|
|
106
|
-
i0.ɵɵ
|
|
107
|
-
i0.ɵɵadvance(2);
|
|
108
|
-
i0.ɵɵconditional(ctx_r2.valueDropdownOpen ? 5 : -1);
|
|
111
|
+
i0.ɵɵconditional(ctx_r3.valueDropdownOpen ? 6 : -1);
|
|
109
112
|
} }
|
|
110
|
-
function
|
|
111
|
-
const
|
|
112
|
-
i0.ɵɵelementStart(0, "input",
|
|
113
|
-
i0.ɵɵlistener("input", function
|
|
113
|
+
function FilterRuleComponent_Conditional_15_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
114
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
115
|
+
i0.ɵɵelementStart(0, "input", 22);
|
|
116
|
+
i0.ɵɵlistener("input", function FilterRuleComponent_Conditional_15_Conditional_1_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onValueChange($event.target.value)); });
|
|
114
117
|
i0.ɵɵelementEnd();
|
|
115
118
|
} if (rf & 2) {
|
|
116
|
-
const
|
|
117
|
-
i0.ɵɵproperty("value",
|
|
119
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
120
|
+
i0.ɵɵproperty("value", ctx_r3.filter.value || "")("disabled", ctx_r3.disabled);
|
|
118
121
|
} }
|
|
119
|
-
function
|
|
120
|
-
const
|
|
121
|
-
i0.ɵɵelementStart(0, "input",
|
|
122
|
-
i0.ɵɵlistener("input", function
|
|
122
|
+
function FilterRuleComponent_Conditional_15_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
123
|
+
const _r15 = i0.ɵɵgetCurrentView();
|
|
124
|
+
i0.ɵɵelementStart(0, "input", 23);
|
|
125
|
+
i0.ɵɵlistener("input", function FilterRuleComponent_Conditional_15_Conditional_2_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onValueChange($event.target.valueAsNumber)); });
|
|
123
126
|
i0.ɵɵelementEnd();
|
|
124
127
|
} if (rf & 2) {
|
|
125
|
-
const
|
|
126
|
-
i0.ɵɵproperty("value",
|
|
128
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
129
|
+
i0.ɵɵproperty("value", ctx_r3.filter.value)("disabled", ctx_r3.disabled);
|
|
127
130
|
} }
|
|
128
|
-
function
|
|
129
|
-
const
|
|
130
|
-
i0.ɵɵelementStart(0, "div",
|
|
131
|
-
i0.ɵɵlistener("click", function
|
|
131
|
+
function FilterRuleComponent_Conditional_15_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
132
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
133
|
+
i0.ɵɵelementStart(0, "div", 18)(1, "button", 24);
|
|
134
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_Conditional_15_Conditional_3_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r16); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onBooleanChange(true)); });
|
|
132
135
|
i0.ɵɵtext(2, " True ");
|
|
133
136
|
i0.ɵɵelementEnd();
|
|
134
|
-
i0.ɵɵelementStart(3, "button",
|
|
135
|
-
i0.ɵɵlistener("click", function
|
|
137
|
+
i0.ɵɵelementStart(3, "button", 25);
|
|
138
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_Conditional_15_Conditional_3_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r16); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onBooleanChange(false)); });
|
|
136
139
|
i0.ɵɵtext(4, " False ");
|
|
137
140
|
i0.ɵɵelementEnd()();
|
|
138
141
|
} if (rf & 2) {
|
|
139
|
-
const
|
|
142
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
140
143
|
i0.ɵɵadvance();
|
|
141
|
-
i0.ɵɵclassProp("active",
|
|
142
|
-
i0.ɵɵproperty("disabled",
|
|
144
|
+
i0.ɵɵclassProp("active", ctx_r3.filter.value === true);
|
|
145
|
+
i0.ɵɵproperty("disabled", ctx_r3.disabled);
|
|
143
146
|
i0.ɵɵadvance(2);
|
|
144
|
-
i0.ɵɵclassProp("active",
|
|
145
|
-
i0.ɵɵproperty("disabled",
|
|
147
|
+
i0.ɵɵclassProp("active", ctx_r3.filter.value === false);
|
|
148
|
+
i0.ɵɵproperty("disabled", ctx_r3.disabled);
|
|
146
149
|
} }
|
|
147
|
-
function
|
|
148
|
-
const
|
|
149
|
-
i0.ɵɵelementStart(0, "input",
|
|
150
|
-
i0.ɵɵlistener("change", function
|
|
150
|
+
function FilterRuleComponent_Conditional_15_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
151
|
+
const _r17 = i0.ɵɵgetCurrentView();
|
|
152
|
+
i0.ɵɵelementStart(0, "input", 26);
|
|
153
|
+
i0.ɵɵlistener("change", function FilterRuleComponent_Conditional_15_Conditional_4_Template_input_change_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onDateChange($event)); });
|
|
151
154
|
i0.ɵɵelementEnd();
|
|
152
155
|
} if (rf & 2) {
|
|
153
|
-
const
|
|
154
|
-
i0.ɵɵproperty("value",
|
|
156
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
157
|
+
i0.ɵɵproperty("value", ctx_r3.getDateInputValue())("disabled", ctx_r3.disabled);
|
|
155
158
|
} }
|
|
156
|
-
function
|
|
157
|
-
const
|
|
158
|
-
i0.ɵɵelementStart(0, "input",
|
|
159
|
-
i0.ɵɵlistener("input", function
|
|
159
|
+
function FilterRuleComponent_Conditional_15_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
|
161
|
+
i0.ɵɵelementStart(0, "input", 27);
|
|
162
|
+
i0.ɵɵlistener("input", function FilterRuleComponent_Conditional_15_Conditional_5_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.onValueChange($event.target.value)); });
|
|
160
163
|
i0.ɵɵelementEnd();
|
|
161
164
|
} if (rf & 2) {
|
|
162
|
-
const
|
|
163
|
-
i0.ɵɵproperty("value",
|
|
165
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
166
|
+
i0.ɵɵproperty("value", ctx_r3.filter.value || "")("disabled", ctx_r3.disabled);
|
|
164
167
|
} }
|
|
165
|
-
function
|
|
166
|
-
i0.ɵɵ
|
|
168
|
+
function FilterRuleComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
169
|
+
i0.ɵɵconditionalCreate(0, FilterRuleComponent_Conditional_15_Conditional_0_Template, 7, 7, "div", 15)(1, FilterRuleComponent_Conditional_15_Conditional_1_Template, 1, 2, "input", 16)(2, FilterRuleComponent_Conditional_15_Conditional_2_Template, 1, 2, "input", 17)(3, FilterRuleComponent_Conditional_15_Conditional_3_Template, 5, 6, "div", 18)(4, FilterRuleComponent_Conditional_15_Conditional_4_Template, 1, 2, "input", 19)(5, FilterRuleComponent_Conditional_15_Conditional_5_Template, 1, 2, "input", 20);
|
|
167
170
|
} if (rf & 2) {
|
|
168
|
-
const
|
|
169
|
-
i0.ɵɵconditional(
|
|
171
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
172
|
+
i0.ɵɵconditional(ctx_r3.selectedField.type === "string" && ctx_r3.hasValueList() ? 0 : ctx_r3.selectedField.type === "string" ? 1 : ctx_r3.selectedField.type === "number" ? 2 : ctx_r3.selectedField.type === "boolean" ? 3 : ctx_r3.selectedField.type === "date" ? 4 : ctx_r3.selectedField.type === "lookup" ? 5 : -1);
|
|
170
173
|
} }
|
|
171
|
-
function
|
|
172
|
-
const
|
|
173
|
-
i0.ɵɵelementStart(0, "button",
|
|
174
|
-
i0.ɵɵlistener("click", function
|
|
175
|
-
i0.ɵɵelement(1, "i",
|
|
174
|
+
function FilterRuleComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
175
|
+
const _r19 = i0.ɵɵgetCurrentView();
|
|
176
|
+
i0.ɵɵelementStart(0, "button", 28);
|
|
177
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_Conditional_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onDelete()); });
|
|
178
|
+
i0.ɵɵelement(1, "i", 29);
|
|
176
179
|
i0.ɵɵelementEnd();
|
|
177
180
|
} if (rf & 2) {
|
|
178
|
-
const
|
|
179
|
-
i0.ɵɵproperty("disabled",
|
|
181
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
182
|
+
i0.ɵɵproperty("disabled", ctx_r3.disabled);
|
|
180
183
|
} }
|
|
181
184
|
/**
|
|
182
185
|
* FilterRuleComponent - A single filter condition row
|
|
@@ -230,6 +233,10 @@ export class FilterRuleComponent {
|
|
|
230
233
|
fieldHighlightIndex = -1;
|
|
231
234
|
operatorHighlightIndex = -1;
|
|
232
235
|
valueHighlightIndex = -1;
|
|
236
|
+
// ViewChild references for dropdown buttons (Safari focus fix)
|
|
237
|
+
fieldDropdownBtn;
|
|
238
|
+
operatorDropdownBtn;
|
|
239
|
+
valueDropdownBtn;
|
|
233
240
|
constructor(elementRef) {
|
|
234
241
|
this.elementRef = elementRef;
|
|
235
242
|
}
|
|
@@ -274,6 +281,10 @@ export class FilterRuleComponent {
|
|
|
274
281
|
const wasOpen = this.fieldDropdownOpen;
|
|
275
282
|
this.closeAllDropdowns();
|
|
276
283
|
this.fieldDropdownOpen = !wasOpen;
|
|
284
|
+
if (this.fieldDropdownOpen) {
|
|
285
|
+
// Ensure button retains focus for keyboard events (Safari fix)
|
|
286
|
+
setTimeout(() => this.fieldDropdownBtn?.nativeElement?.focus(), 0);
|
|
287
|
+
}
|
|
277
288
|
}
|
|
278
289
|
toggleOperatorDropdown() {
|
|
279
290
|
if (this.disabled || !this.selectedField)
|
|
@@ -281,6 +292,10 @@ export class FilterRuleComponent {
|
|
|
281
292
|
const wasOpen = this.operatorDropdownOpen;
|
|
282
293
|
this.closeAllDropdowns();
|
|
283
294
|
this.operatorDropdownOpen = !wasOpen;
|
|
295
|
+
if (this.operatorDropdownOpen) {
|
|
296
|
+
// Ensure button retains focus for keyboard events (Safari fix)
|
|
297
|
+
setTimeout(() => this.operatorDropdownBtn?.nativeElement?.focus(), 0);
|
|
298
|
+
}
|
|
284
299
|
}
|
|
285
300
|
toggleValueDropdown() {
|
|
286
301
|
if (this.disabled)
|
|
@@ -288,6 +303,10 @@ export class FilterRuleComponent {
|
|
|
288
303
|
const wasOpen = this.valueDropdownOpen;
|
|
289
304
|
this.closeAllDropdowns();
|
|
290
305
|
this.valueDropdownOpen = !wasOpen;
|
|
306
|
+
if (this.valueDropdownOpen) {
|
|
307
|
+
// Ensure button retains focus for keyboard events (Safari fix)
|
|
308
|
+
setTimeout(() => this.valueDropdownBtn?.nativeElement?.focus(), 0);
|
|
309
|
+
}
|
|
291
310
|
}
|
|
292
311
|
closeFieldDropdown() {
|
|
293
312
|
this.fieldDropdownOpen = false;
|
|
@@ -610,30 +629,38 @@ export class FilterRuleComponent {
|
|
|
610
629
|
return !!(this.selectedField?.valueList && this.selectedField.valueList.length > 0);
|
|
611
630
|
}
|
|
612
631
|
static ɵfac = function FilterRuleComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FilterRuleComponent)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
|
613
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FilterRuleComponent, selectors: [["mj-filter-rule"]],
|
|
614
|
-
i0.ɵɵ
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
i0.ɵɵ
|
|
618
|
-
i0.ɵɵ
|
|
619
|
-
i0.ɵɵ
|
|
632
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FilterRuleComponent, selectors: [["mj-filter-rule"]], viewQuery: function FilterRuleComponent_Query(rf, ctx) { if (rf & 1) {
|
|
633
|
+
i0.ɵɵviewQuery(_c0, 5)(_c1, 5)(_c2, 5);
|
|
634
|
+
} if (rf & 2) {
|
|
635
|
+
let _t;
|
|
636
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fieldDropdownBtn = _t.first);
|
|
637
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.operatorDropdownBtn = _t.first);
|
|
638
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.valueDropdownBtn = _t.first);
|
|
639
|
+
} }, hostBindings: function FilterRuleComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
640
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_click_HostBindingHandler($event) { return ctx.onDocumentClick($event); }, i0.ɵɵresolveDocument);
|
|
641
|
+
} }, inputs: { filter: "filter", fields: "fields", disabled: "disabled", showDelete: "showDelete" }, outputs: { filterChange: "filterChange", delete: "delete" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 18, vars: 18, consts: [["fieldDropdownBtn", ""], ["operatorDropdownBtn", ""], ["valueDropdownBtn", ""], [1, "filter-rule"], [1, "custom-dropdown", "field-dropdown"], ["type", "button", 1, "dropdown-trigger", 3, "click", "keydown", "disabled"], [1, "dropdown-value"], [1, "fa-solid", "fa-chevron-down", "dropdown-arrow"], [1, "dropdown-menu"], [1, "custom-dropdown", "operator-dropdown"], [1, "rule-actions"], ["type", "button", "title", "Remove filter", 1, "action-btn", "delete", 3, "disabled"], [1, "dropdown-item", 3, "selected", "highlighted"], [1, "dropdown-empty"], [1, "dropdown-item", 3, "click"], [1, "custom-dropdown", "value-dropdown", 3, "open", "disabled"], ["type", "text", "placeholder", "Enter value...", 1, "value-input", 3, "value", "disabled"], ["type", "number", "placeholder", "Enter number...", 1, "value-input", 3, "value", "disabled"], [1, "value-toggle"], ["type", "date", 1, "value-input", "value-date", 3, "value", "disabled"], ["type", "text", "placeholder", "Enter ID...", 1, "value-input", 3, "value", "disabled"], [1, "custom-dropdown", "value-dropdown"], ["type", "text", "placeholder", "Enter value...", 1, "value-input", 3, "input", "value", "disabled"], ["type", "number", "placeholder", "Enter number...", 1, "value-input", 3, "input", "value", "disabled"], ["type", "button", 1, "toggle-btn", "true", 3, "click", "disabled"], ["type", "button", 1, "toggle-btn", "false", 3, "click", "disabled"], ["type", "date", 1, "value-input", "value-date", 3, "change", "value", "disabled"], ["type", "text", "placeholder", "Enter ID...", 1, "value-input", 3, "input", "value", "disabled"], ["type", "button", "title", "Remove filter", 1, "action-btn", "delete", 3, "click", "disabled"], [1, "fa-solid", "fa-times"]], template: function FilterRuleComponent_Template(rf, ctx) { if (rf & 1) {
|
|
642
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
643
|
+
i0.ɵɵelementStart(0, "div", 3)(1, "div", 4)(2, "button", 5, 0);
|
|
644
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleFieldDropdown()); })("keydown", function FilterRuleComponent_Template_button_keydown_2_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onFieldKeydown($event)); });
|
|
645
|
+
i0.ɵɵelementStart(4, "span", 6);
|
|
646
|
+
i0.ɵɵtext(5);
|
|
620
647
|
i0.ɵɵelementEnd();
|
|
621
|
-
i0.ɵɵelement(
|
|
648
|
+
i0.ɵɵelement(6, "i", 7);
|
|
622
649
|
i0.ɵɵelementEnd();
|
|
623
|
-
i0.ɵɵ
|
|
650
|
+
i0.ɵɵconditionalCreate(7, FilterRuleComponent_Conditional_7_Template, 4, 1, "div", 8);
|
|
624
651
|
i0.ɵɵelementEnd();
|
|
625
|
-
i0.ɵɵelementStart(
|
|
626
|
-
i0.ɵɵlistener("click", function
|
|
627
|
-
i0.ɵɵelementStart(
|
|
628
|
-
i0.ɵɵtext(
|
|
652
|
+
i0.ɵɵelementStart(8, "div", 9)(9, "button", 5, 1);
|
|
653
|
+
i0.ɵɵlistener("click", function FilterRuleComponent_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleOperatorDropdown()); })("keydown", function FilterRuleComponent_Template_button_keydown_9_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onOperatorKeydown($event)); });
|
|
654
|
+
i0.ɵɵelementStart(11, "span", 6);
|
|
655
|
+
i0.ɵɵtext(12);
|
|
629
656
|
i0.ɵɵelementEnd();
|
|
630
|
-
i0.ɵɵelement(
|
|
657
|
+
i0.ɵɵelement(13, "i", 7);
|
|
631
658
|
i0.ɵɵelementEnd();
|
|
632
|
-
i0.ɵɵ
|
|
659
|
+
i0.ɵɵconditionalCreate(14, FilterRuleComponent_Conditional_14_Template, 3, 0, "div", 8);
|
|
633
660
|
i0.ɵɵelementEnd();
|
|
634
|
-
i0.ɵɵ
|
|
635
|
-
i0.ɵɵelementStart(
|
|
636
|
-
i0.ɵɵ
|
|
661
|
+
i0.ɵɵconditionalCreate(15, FilterRuleComponent_Conditional_15_Template, 6, 1);
|
|
662
|
+
i0.ɵɵelementStart(16, "div", 10);
|
|
663
|
+
i0.ɵɵconditionalCreate(17, FilterRuleComponent_Conditional_17_Template, 2, 1, "button", 11);
|
|
637
664
|
i0.ɵɵelementEnd()();
|
|
638
665
|
} if (rf & 2) {
|
|
639
666
|
i0.ɵɵclassProp("disabled", ctx.disabled);
|
|
@@ -641,27 +668,27 @@ export class FilterRuleComponent {
|
|
|
641
668
|
i0.ɵɵclassProp("open", ctx.fieldDropdownOpen)("disabled", ctx.disabled);
|
|
642
669
|
i0.ɵɵadvance();
|
|
643
670
|
i0.ɵɵproperty("disabled", ctx.disabled);
|
|
644
|
-
i0.ɵɵadvance(
|
|
671
|
+
i0.ɵɵadvance(3);
|
|
645
672
|
i0.ɵɵtextInterpolate(ctx.getSelectedFieldDisplayName());
|
|
646
673
|
i0.ɵɵadvance(2);
|
|
647
|
-
i0.ɵɵconditional(ctx.fieldDropdownOpen ?
|
|
674
|
+
i0.ɵɵconditional(ctx.fieldDropdownOpen ? 7 : -1);
|
|
648
675
|
i0.ɵɵadvance();
|
|
649
676
|
i0.ɵɵclassProp("open", ctx.operatorDropdownOpen)("disabled", ctx.disabled || !ctx.selectedField);
|
|
650
677
|
i0.ɵɵadvance();
|
|
651
678
|
i0.ɵɵproperty("disabled", ctx.disabled || !ctx.selectedField);
|
|
652
|
-
i0.ɵɵadvance(
|
|
679
|
+
i0.ɵɵadvance(3);
|
|
653
680
|
i0.ɵɵtextInterpolate(ctx.getSelectedOperatorLabel());
|
|
654
681
|
i0.ɵɵadvance(2);
|
|
655
|
-
i0.ɵɵconditional(ctx.operatorDropdownOpen ?
|
|
682
|
+
i0.ɵɵconditional(ctx.operatorDropdownOpen ? 14 : -1);
|
|
656
683
|
i0.ɵɵadvance();
|
|
657
|
-
i0.ɵɵconditional(ctx.requiresValue && ctx.selectedField ?
|
|
684
|
+
i0.ɵɵconditional(ctx.requiresValue && ctx.selectedField ? 15 : -1);
|
|
658
685
|
i0.ɵɵadvance(2);
|
|
659
|
-
i0.ɵɵconditional(ctx.showDelete ?
|
|
686
|
+
i0.ɵɵconditional(ctx.showDelete ? 17 : -1);
|
|
660
687
|
} }, styles: ["/* Scoped to mj-filter-rule to prevent style leakage with ViewEncapsulation.None */\nmj-filter-rule .filter-rule {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: linear-gradient(to bottom, #ffffff, #fafafa);\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n transition: all 0.2s ease;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n}\n\nmj-filter-rule .filter-rule:hover {\n border-color: #d1d5db;\n background: linear-gradient(to bottom, #ffffff, #f5f5f5);\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);\n}\n\nmj-filter-rule .filter-rule.disabled {\n opacity: 0.6;\n pointer-events: none;\n box-shadow: none;\n}\n\n/* ========================================\n CUSTOM DROPDOWN STYLES\n ======================================== */\n\nmj-filter-rule .custom-dropdown {\n position: relative;\n min-width: 160px;\n}\n\nmj-filter-rule .custom-dropdown.field-dropdown {\n min-width: 180px;\n}\n\nmj-filter-rule .custom-dropdown.operator-dropdown {\n min-width: 160px;\n}\n\nmj-filter-rule .custom-dropdown.value-dropdown {\n min-width: 160px;\n flex: 1;\n}\n\nmj-filter-rule .custom-dropdown.disabled {\n opacity: 0.6;\n pointer-events: none;\n}\n\n/* Dropdown Trigger Button */\nmj-filter-rule .dropdown-trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 10px 14px;\n border: 1px solid #d4d4d8;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n background: white;\n color: #374151;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);\n text-align: left;\n}\n\nmj-filter-rule .dropdown-trigger:hover:not(:disabled) {\n border-color: #a1a1aa;\n background: #fafafa;\n}\n\nmj-filter-rule .dropdown-trigger:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);\n background: white;\n}\n\nmj-filter-rule .dropdown-trigger:disabled {\n background-color: #f4f4f5;\n color: #a1a1aa;\n cursor: not-allowed;\n box-shadow: none;\n}\n\nmj-filter-rule .custom-dropdown.open .dropdown-trigger {\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);\n}\n\nmj-filter-rule .dropdown-value {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\nmj-filter-rule .dropdown-arrow {\n font-size: 10px;\n color: #6b7280;\n margin-left: 8px;\n transition: transform 0.2s ease;\n}\n\nmj-filter-rule .custom-dropdown.open .dropdown-arrow {\n transform: rotate(180deg);\n}\n\n/* Dropdown Menu */\nmj-filter-rule .dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n min-width: 100%;\n max-height: 280px;\n overflow-y: auto;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.04);\n z-index: 9999;\n animation: dropdownFadeIn 0.15s ease;\n}\n\n@keyframes dropdownFadeIn {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Dropdown Items */\nmj-filter-rule .dropdown-item {\n padding: 10px 14px;\n font-size: 14px;\n color: #374151;\n cursor: pointer;\n transition: all 0.15s ease;\n border-bottom: 1px solid #f3f4f6;\n}\n\nmj-filter-rule .dropdown-item:last-child {\n border-bottom: none;\n}\n\nmj-filter-rule .dropdown-item:hover,\nmj-filter-rule .dropdown-item.highlighted {\n background: #f0f9ff;\n color: #1d4ed8;\n}\n\nmj-filter-rule .dropdown-item.highlighted {\n outline: 2px solid #3b82f6;\n outline-offset: -2px;\n}\n\nmj-filter-rule .dropdown-item.selected {\n background: #eff6ff;\n color: #1d4ed8;\n font-weight: 600;\n}\n\nmj-filter-rule .dropdown-item.selected::before {\n content: '\\f00c';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n font-size: 10px;\n margin-right: 8px;\n color: #3b82f6;\n}\n\nmj-filter-rule .dropdown-empty {\n padding: 16px;\n text-align: center;\n color: #9ca3af;\n font-size: 13px;\n font-style: italic;\n}\n\n/* Scrollbar styling for dropdown */\nmj-filter-rule .dropdown-menu::-webkit-scrollbar {\n width: 6px;\n}\n\nmj-filter-rule .dropdown-menu::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 3px;\n}\n\nmj-filter-rule .dropdown-menu::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 3px;\n}\n\nmj-filter-rule .dropdown-menu::-webkit-scrollbar-thumb:hover {\n background: #a1a1a1;\n}\n\n/* ========================================\n VALUE INPUT STYLES\n ======================================== */\n\nmj-filter-rule .value-input {\n padding: 10px 14px;\n border: 1px solid #d4d4d8;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n background-color: white;\n color: #374151;\n transition: all 0.2s ease;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);\n flex: 1;\n min-width: 150px;\n}\n\nmj-filter-rule .value-input:hover:not(:disabled) {\n border-color: #a1a1aa;\n background-color: #fafafa;\n}\n\nmj-filter-rule .value-input:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);\n background-color: white;\n}\n\nmj-filter-rule .value-input:disabled {\n background-color: #f4f4f5;\n color: #a1a1aa;\n cursor: not-allowed;\n box-shadow: none;\n}\n\nmj-filter-rule .value-input::placeholder {\n color: #9ca3af;\n font-weight: 400;\n}\n\nmj-filter-rule .value-date {\n min-width: 160px;\n}\n\n/* ========================================\n BOOLEAN TOGGLE STYLES\n ======================================== */\n\nmj-filter-rule .value-toggle {\n display: flex;\n background: #f4f4f5;\n border-radius: 8px;\n padding: 3px;\n border: 1px solid #e5e7eb;\n}\n\nmj-filter-rule .toggle-btn {\n padding: 8px 18px;\n border: none;\n background: transparent;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #71717a;\n}\n\nmj-filter-rule .toggle-btn:hover:not(:disabled) {\n color: #3f3f46;\n background: rgba(255, 255, 255, 0.5);\n}\n\nmj-filter-rule .toggle-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\nmj-filter-rule .toggle-btn.active {\n background: white;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n color: #18181b;\n}\n\nmj-filter-rule .toggle-btn.true.active {\n color: #16a34a;\n}\n\nmj-filter-rule .toggle-btn.false.active {\n color: #dc2626;\n}\n\n/* ========================================\n RULE ACTIONS\n ======================================== */\n\nmj-filter-rule .rule-actions {\n display: flex;\n gap: 4px;\n margin-left: auto;\n flex-shrink: 0;\n}\n\nmj-filter-rule .action-btn {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n border-radius: 8px;\n cursor: pointer;\n color: #a1a1aa;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n}\n\nmj-filter-rule .action-btn:hover:not(:disabled) {\n background: #f4f4f5;\n color: #71717a;\n}\n\nmj-filter-rule .action-btn:disabled {\n cursor: not-allowed;\n opacity: 0.3;\n}\n\nmj-filter-rule .action-btn.delete:hover:not(:disabled) {\n background: #fef2f2;\n color: #ef4444;\n}\n\n/* ========================================\n RESPONSIVE\n ======================================== */\n\n@media (max-width: 768px) {\n mj-filter-rule .filter-rule {\n flex-wrap: wrap;\n }\n\n mj-filter-rule .custom-dropdown,\n mj-filter-rule .value-input {\n min-width: 100%;\n flex: 1 1 100%;\n }\n\n mj-filter-rule .custom-dropdown.field-dropdown,\n mj-filter-rule .custom-dropdown.operator-dropdown,\n mj-filter-rule .custom-dropdown.value-dropdown {\n min-width: 100%;\n }\n}\n"], encapsulation: 2 });
|
|
661
688
|
}
|
|
662
689
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FilterRuleComponent, [{
|
|
663
690
|
type: Component,
|
|
664
|
-
args: [{ selector: 'mj-filter-rule', encapsulation: ViewEncapsulation.None, template: "<div class=\"filter-rule\" [class.disabled]=\"disabled\">\n <!-- Field Selector - Custom Dropdown -->\n <div class=\"custom-dropdown field-dropdown\" [class.open]=\"fieldDropdownOpen\" [class.disabled]=\"disabled\">\n <button\n type=\"button\"\n class=\"dropdown-trigger\"\n (click)=\"toggleFieldDropdown()\"\n (keydown)=\"onFieldKeydown($event)\"\n [disabled]=\"disabled\">\n <span class=\"dropdown-value\">{{ getSelectedFieldDisplayName() }}</span>\n <i class=\"fa-solid fa-chevron-down dropdown-arrow\"></i>\n </button>\n @if (fieldDropdownOpen) {\n <div class=\"dropdown-menu\">\n @for (field of fields; track field.name; let i = $index) {\n <div\n class=\"dropdown-item\"\n [class.selected]=\"field.name === filter.field\"\n [class.highlighted]=\"i === fieldHighlightIndex\"\n (click)=\"selectField(field.name)\">\n {{ field.displayName }}\n </div>\n }\n @if (fields.length === 0) {\n <div class=\"dropdown-empty\">No fields available</div>\n }\n </div>\n }\n </div>\n\n <!-- Operator Selector - Custom Dropdown -->\n <div class=\"custom-dropdown operator-dropdown\" [class.open]=\"operatorDropdownOpen\" [class.disabled]=\"disabled || !selectedField\">\n <button\n type=\"button\"\n class=\"dropdown-trigger\"\n (click)=\"toggleOperatorDropdown()\"\n (keydown)=\"onOperatorKeydown($event)\"\n [disabled]=\"disabled || !selectedField\">\n <span class=\"dropdown-value\">{{ getSelectedOperatorLabel() }}</span>\n <i class=\"fa-solid fa-chevron-down dropdown-arrow\"></i>\n </button>\n @if (operatorDropdownOpen) {\n <div class=\"dropdown-menu\">\n @for (op of availableOperators; track op.value; let i = $index) {\n <div\n class=\"dropdown-item\"\n [class.selected]=\"op.value === filter.operator\"\n [class.highlighted]=\"i === operatorHighlightIndex\"\n (click)=\"selectOperator(op.value)\">\n {{ op.label }}\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Value Editor - varies by field type -->\n @if (requiresValue && selectedField) {\n <!-- String with value list (custom dropdown) -->\n @if (selectedField.type === 'string' && hasValueList()) {\n <div class=\"custom-dropdown value-dropdown\" [class.open]=\"valueDropdownOpen\" [class.disabled]=\"disabled\">\n <button\n type=\"button\"\n class=\"dropdown-trigger\"\n (click)=\"toggleValueDropdown()\"\n (keydown)=\"onValueKeydown($event)\"\n [disabled]=\"disabled\">\n <span class=\"dropdown-value\">{{ getSelectedValueLabel() }}</span>\n <i class=\"fa-solid fa-chevron-down dropdown-arrow\"></i>\n </button>\n @if (valueDropdownOpen) {\n <div class=\"dropdown-menu\">\n <div\n class=\"dropdown-item\"\n [class.selected]=\"!filter.value\"\n [class.highlighted]=\"0 === valueHighlightIndex\"\n (click)=\"selectValue('')\">\n Select...\n </div>\n @for (option of selectedField.valueList; track option.value; let i = $index) {\n <div\n class=\"dropdown-item\"\n [class.selected]=\"option.value === filter.value\"\n [class.highlighted]=\"(i + 1) === valueHighlightIndex\"\n (click)=\"selectValue(option.value)\">\n {{ option.label }}\n </div>\n }\n </div>\n }\n </div>\n }\n <!-- String (text input) -->\n @else if (selectedField.type === 'string') {\n <input\n type=\"text\"\n class=\"value-input\"\n [value]=\"filter.value || ''\"\n (input)=\"onValueChange($any($event.target).value)\"\n [disabled]=\"disabled\"\n placeholder=\"Enter value...\">\n }\n <!-- Number -->\n @else if (selectedField.type === 'number') {\n <input\n type=\"number\"\n class=\"value-input\"\n [value]=\"filter.value\"\n (input)=\"onValueChange($any($event.target).valueAsNumber)\"\n [disabled]=\"disabled\"\n placeholder=\"Enter number...\">\n }\n <!-- Boolean -->\n @else if (selectedField.type === 'boolean') {\n <div class=\"value-toggle\">\n <button\n type=\"button\"\n class=\"toggle-btn true\"\n [class.active]=\"filter.value === true\"\n (click)=\"onBooleanChange(true)\"\n [disabled]=\"disabled\">\n True\n </button>\n <button\n type=\"button\"\n class=\"toggle-btn false\"\n [class.active]=\"filter.value === false\"\n (click)=\"onBooleanChange(false)\"\n [disabled]=\"disabled\">\n False\n </button>\n </div>\n }\n <!-- Date -->\n @else if (selectedField.type === 'date') {\n <input\n type=\"date\"\n class=\"value-input value-date\"\n [value]=\"getDateInputValue()\"\n (change)=\"onDateChange($event)\"\n [disabled]=\"disabled\">\n }\n <!-- Lookup (for now, simple text input - can be enhanced with record selector) -->\n @else if (selectedField.type === 'lookup') {\n <input\n type=\"text\"\n class=\"value-input\"\n [value]=\"filter.value || ''\"\n (input)=\"onValueChange($any($event.target).value)\"\n [disabled]=\"disabled\"\n placeholder=\"Enter ID...\">\n }\n }\n\n <!-- Actions -->\n <div class=\"rule-actions\">\n @if (showDelete) {\n <button\n type=\"button\"\n class=\"action-btn delete\"\n (click)=\"onDelete()\"\n [disabled]=\"disabled\"\n title=\"Remove filter\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n</div>\n", styles: ["/* Scoped to mj-filter-rule to prevent style leakage with ViewEncapsulation.None */\nmj-filter-rule .filter-rule {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: linear-gradient(to bottom, #ffffff, #fafafa);\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n transition: all 0.2s ease;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n}\n\nmj-filter-rule .filter-rule:hover {\n border-color: #d1d5db;\n background: linear-gradient(to bottom, #ffffff, #f5f5f5);\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);\n}\n\nmj-filter-rule .filter-rule.disabled {\n opacity: 0.6;\n pointer-events: none;\n box-shadow: none;\n}\n\n/* ========================================\n CUSTOM DROPDOWN STYLES\n ======================================== */\n\nmj-filter-rule .custom-dropdown {\n position: relative;\n min-width: 160px;\n}\n\nmj-filter-rule .custom-dropdown.field-dropdown {\n min-width: 180px;\n}\n\nmj-filter-rule .custom-dropdown.operator-dropdown {\n min-width: 160px;\n}\n\nmj-filter-rule .custom-dropdown.value-dropdown {\n min-width: 160px;\n flex: 1;\n}\n\nmj-filter-rule .custom-dropdown.disabled {\n opacity: 0.6;\n pointer-events: none;\n}\n\n/* Dropdown Trigger Button */\nmj-filter-rule .dropdown-trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 10px 14px;\n border: 1px solid #d4d4d8;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n background: white;\n color: #374151;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);\n text-align: left;\n}\n\nmj-filter-rule .dropdown-trigger:hover:not(:disabled) {\n border-color: #a1a1aa;\n background: #fafafa;\n}\n\nmj-filter-rule .dropdown-trigger:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);\n background: white;\n}\n\nmj-filter-rule .dropdown-trigger:disabled {\n background-color: #f4f4f5;\n color: #a1a1aa;\n cursor: not-allowed;\n box-shadow: none;\n}\n\nmj-filter-rule .custom-dropdown.open .dropdown-trigger {\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);\n}\n\nmj-filter-rule .dropdown-value {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\nmj-filter-rule .dropdown-arrow {\n font-size: 10px;\n color: #6b7280;\n margin-left: 8px;\n transition: transform 0.2s ease;\n}\n\nmj-filter-rule .custom-dropdown.open .dropdown-arrow {\n transform: rotate(180deg);\n}\n\n/* Dropdown Menu */\nmj-filter-rule .dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n min-width: 100%;\n max-height: 280px;\n overflow-y: auto;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.04);\n z-index: 9999;\n animation: dropdownFadeIn 0.15s ease;\n}\n\n@keyframes dropdownFadeIn {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Dropdown Items */\nmj-filter-rule .dropdown-item {\n padding: 10px 14px;\n font-size: 14px;\n color: #374151;\n cursor: pointer;\n transition: all 0.15s ease;\n border-bottom: 1px solid #f3f4f6;\n}\n\nmj-filter-rule .dropdown-item:last-child {\n border-bottom: none;\n}\n\nmj-filter-rule .dropdown-item:hover,\nmj-filter-rule .dropdown-item.highlighted {\n background: #f0f9ff;\n color: #1d4ed8;\n}\n\nmj-filter-rule .dropdown-item.highlighted {\n outline: 2px solid #3b82f6;\n outline-offset: -2px;\n}\n\nmj-filter-rule .dropdown-item.selected {\n background: #eff6ff;\n color: #1d4ed8;\n font-weight: 600;\n}\n\nmj-filter-rule .dropdown-item.selected::before {\n content: '\\f00c';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n font-size: 10px;\n margin-right: 8px;\n color: #3b82f6;\n}\n\nmj-filter-rule .dropdown-empty {\n padding: 16px;\n text-align: center;\n color: #9ca3af;\n font-size: 13px;\n font-style: italic;\n}\n\n/* Scrollbar styling for dropdown */\nmj-filter-rule .dropdown-menu::-webkit-scrollbar {\n width: 6px;\n}\n\nmj-filter-rule .dropdown-menu::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 3px;\n}\n\nmj-filter-rule .dropdown-menu::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 3px;\n}\n\nmj-filter-rule .dropdown-menu::-webkit-scrollbar-thumb:hover {\n background: #a1a1a1;\n}\n\n/* ========================================\n VALUE INPUT STYLES\n ======================================== */\n\nmj-filter-rule .value-input {\n padding: 10px 14px;\n border: 1px solid #d4d4d8;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n background-color: white;\n color: #374151;\n transition: all 0.2s ease;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);\n flex: 1;\n min-width: 150px;\n}\n\nmj-filter-rule .value-input:hover:not(:disabled) {\n border-color: #a1a1aa;\n background-color: #fafafa;\n}\n\nmj-filter-rule .value-input:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);\n background-color: white;\n}\n\nmj-filter-rule .value-input:disabled {\n background-color: #f4f4f5;\n color: #a1a1aa;\n cursor: not-allowed;\n box-shadow: none;\n}\n\nmj-filter-rule .value-input::placeholder {\n color: #9ca3af;\n font-weight: 400;\n}\n\nmj-filter-rule .value-date {\n min-width: 160px;\n}\n\n/* ========================================\n BOOLEAN TOGGLE STYLES\n ======================================== */\n\nmj-filter-rule .value-toggle {\n display: flex;\n background: #f4f4f5;\n border-radius: 8px;\n padding: 3px;\n border: 1px solid #e5e7eb;\n}\n\nmj-filter-rule .toggle-btn {\n padding: 8px 18px;\n border: none;\n background: transparent;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #71717a;\n}\n\nmj-filter-rule .toggle-btn:hover:not(:disabled) {\n color: #3f3f46;\n background: rgba(255, 255, 255, 0.5);\n}\n\nmj-filter-rule .toggle-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\nmj-filter-rule .toggle-btn.active {\n background: white;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n color: #18181b;\n}\n\nmj-filter-rule .toggle-btn.true.active {\n color: #16a34a;\n}\n\nmj-filter-rule .toggle-btn.false.active {\n color: #dc2626;\n}\n\n/* ========================================\n RULE ACTIONS\n ======================================== */\n\nmj-filter-rule .rule-actions {\n display: flex;\n gap: 4px;\n margin-left: auto;\n flex-shrink: 0;\n}\n\nmj-filter-rule .action-btn {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n border-radius: 8px;\n cursor: pointer;\n color: #a1a1aa;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n}\n\nmj-filter-rule .action-btn:hover:not(:disabled) {\n background: #f4f4f5;\n color: #71717a;\n}\n\nmj-filter-rule .action-btn:disabled {\n cursor: not-allowed;\n opacity: 0.3;\n}\n\nmj-filter-rule .action-btn.delete:hover:not(:disabled) {\n background: #fef2f2;\n color: #ef4444;\n}\n\n/* ========================================\n RESPONSIVE\n ======================================== */\n\n@media (max-width: 768px) {\n mj-filter-rule .filter-rule {\n flex-wrap: wrap;\n }\n\n mj-filter-rule .custom-dropdown,\n mj-filter-rule .value-input {\n min-width: 100%;\n flex: 1 1 100%;\n }\n\n mj-filter-rule .custom-dropdown.field-dropdown,\n mj-filter-rule .custom-dropdown.operator-dropdown,\n mj-filter-rule .custom-dropdown.value-dropdown {\n min-width: 100%;\n }\n}\n"] }]
|
|
691
|
+
args: [{ standalone: false, selector: 'mj-filter-rule', encapsulation: ViewEncapsulation.None, template: "<div class=\"filter-rule\" [class.disabled]=\"disabled\">\n <!-- Field Selector - Custom Dropdown -->\n <div class=\"custom-dropdown field-dropdown\" [class.open]=\"fieldDropdownOpen\" [class.disabled]=\"disabled\">\n <button\n #fieldDropdownBtn\n type=\"button\"\n class=\"dropdown-trigger\"\n (click)=\"toggleFieldDropdown()\"\n (keydown)=\"onFieldKeydown($event)\"\n [disabled]=\"disabled\">\n <span class=\"dropdown-value\">{{ getSelectedFieldDisplayName() }}</span>\n <i class=\"fa-solid fa-chevron-down dropdown-arrow\"></i>\n </button>\n @if (fieldDropdownOpen) {\n <div class=\"dropdown-menu\">\n @for (field of fields; track field.name; let i = $index) {\n <div\n class=\"dropdown-item\"\n [class.selected]=\"field.name === filter.field\"\n [class.highlighted]=\"i === fieldHighlightIndex\"\n (click)=\"selectField(field.name)\">\n {{ field.displayName }}\n </div>\n }\n @if (fields.length === 0) {\n <div class=\"dropdown-empty\">No fields available</div>\n }\n </div>\n }\n </div>\n\n <!-- Operator Selector - Custom Dropdown -->\n <div class=\"custom-dropdown operator-dropdown\" [class.open]=\"operatorDropdownOpen\" [class.disabled]=\"disabled || !selectedField\">\n <button\n #operatorDropdownBtn\n type=\"button\"\n class=\"dropdown-trigger\"\n (click)=\"toggleOperatorDropdown()\"\n (keydown)=\"onOperatorKeydown($event)\"\n [disabled]=\"disabled || !selectedField\">\n <span class=\"dropdown-value\">{{ getSelectedOperatorLabel() }}</span>\n <i class=\"fa-solid fa-chevron-down dropdown-arrow\"></i>\n </button>\n @if (operatorDropdownOpen) {\n <div class=\"dropdown-menu\">\n @for (op of availableOperators; track op.value; let i = $index) {\n <div\n class=\"dropdown-item\"\n [class.selected]=\"op.value === filter.operator\"\n [class.highlighted]=\"i === operatorHighlightIndex\"\n (click)=\"selectOperator(op.value)\">\n {{ op.label }}\n </div>\n }\n </div>\n }\n </div>\n\n <!-- Value Editor - varies by field type -->\n @if (requiresValue && selectedField) {\n <!-- String with value list (custom dropdown) -->\n @if (selectedField.type === 'string' && hasValueList()) {\n <div class=\"custom-dropdown value-dropdown\" [class.open]=\"valueDropdownOpen\" [class.disabled]=\"disabled\">\n <button\n #valueDropdownBtn\n type=\"button\"\n class=\"dropdown-trigger\"\n (click)=\"toggleValueDropdown()\"\n (keydown)=\"onValueKeydown($event)\"\n [disabled]=\"disabled\">\n <span class=\"dropdown-value\">{{ getSelectedValueLabel() }}</span>\n <i class=\"fa-solid fa-chevron-down dropdown-arrow\"></i>\n </button>\n @if (valueDropdownOpen) {\n <div class=\"dropdown-menu\">\n <div\n class=\"dropdown-item\"\n [class.selected]=\"!filter.value\"\n [class.highlighted]=\"0 === valueHighlightIndex\"\n (click)=\"selectValue('')\">\n Select...\n </div>\n @for (option of selectedField.valueList; track option.value; let i = $index) {\n <div\n class=\"dropdown-item\"\n [class.selected]=\"option.value === filter.value\"\n [class.highlighted]=\"(i + 1) === valueHighlightIndex\"\n (click)=\"selectValueFromOption(option.value)\">\n {{ option.label }}\n </div>\n }\n </div>\n }\n </div>\n }\n <!-- String (text input) -->\n @else if (selectedField.type === 'string') {\n <input\n type=\"text\"\n class=\"value-input\"\n [value]=\"filter.value || ''\"\n (input)=\"onValueChange($any($event.target).value)\"\n [disabled]=\"disabled\"\n placeholder=\"Enter value...\">\n }\n <!-- Number -->\n @else if (selectedField.type === 'number') {\n <input\n type=\"number\"\n class=\"value-input\"\n [value]=\"filter.value\"\n (input)=\"onValueChange($any($event.target).valueAsNumber)\"\n [disabled]=\"disabled\"\n placeholder=\"Enter number...\">\n }\n <!-- Boolean -->\n @else if (selectedField.type === 'boolean') {\n <div class=\"value-toggle\">\n <button\n type=\"button\"\n class=\"toggle-btn true\"\n [class.active]=\"filter.value === true\"\n (click)=\"onBooleanChange(true)\"\n [disabled]=\"disabled\">\n True\n </button>\n <button\n type=\"button\"\n class=\"toggle-btn false\"\n [class.active]=\"filter.value === false\"\n (click)=\"onBooleanChange(false)\"\n [disabled]=\"disabled\">\n False\n </button>\n </div>\n }\n <!-- Date -->\n @else if (selectedField.type === 'date') {\n <input\n type=\"date\"\n class=\"value-input value-date\"\n [value]=\"getDateInputValue()\"\n (change)=\"onDateChange($event)\"\n [disabled]=\"disabled\">\n }\n <!-- Lookup (for now, simple text input - can be enhanced with record selector) -->\n @else if (selectedField.type === 'lookup') {\n <input\n type=\"text\"\n class=\"value-input\"\n [value]=\"filter.value || ''\"\n (input)=\"onValueChange($any($event.target).value)\"\n [disabled]=\"disabled\"\n placeholder=\"Enter ID...\">\n }\n }\n\n <!-- Actions -->\n <div class=\"rule-actions\">\n @if (showDelete) {\n <button\n type=\"button\"\n class=\"action-btn delete\"\n (click)=\"onDelete()\"\n [disabled]=\"disabled\"\n title=\"Remove filter\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n }\n </div>\n</div>\n", styles: ["/* Scoped to mj-filter-rule to prevent style leakage with ViewEncapsulation.None */\nmj-filter-rule .filter-rule {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 16px;\n background: linear-gradient(to bottom, #ffffff, #fafafa);\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n transition: all 0.2s ease;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n}\n\nmj-filter-rule .filter-rule:hover {\n border-color: #d1d5db;\n background: linear-gradient(to bottom, #ffffff, #f5f5f5);\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);\n}\n\nmj-filter-rule .filter-rule.disabled {\n opacity: 0.6;\n pointer-events: none;\n box-shadow: none;\n}\n\n/* ========================================\n CUSTOM DROPDOWN STYLES\n ======================================== */\n\nmj-filter-rule .custom-dropdown {\n position: relative;\n min-width: 160px;\n}\n\nmj-filter-rule .custom-dropdown.field-dropdown {\n min-width: 180px;\n}\n\nmj-filter-rule .custom-dropdown.operator-dropdown {\n min-width: 160px;\n}\n\nmj-filter-rule .custom-dropdown.value-dropdown {\n min-width: 160px;\n flex: 1;\n}\n\nmj-filter-rule .custom-dropdown.disabled {\n opacity: 0.6;\n pointer-events: none;\n}\n\n/* Dropdown Trigger Button */\nmj-filter-rule .dropdown-trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: 10px 14px;\n border: 1px solid #d4d4d8;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n background: white;\n color: #374151;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);\n text-align: left;\n}\n\nmj-filter-rule .dropdown-trigger:hover:not(:disabled) {\n border-color: #a1a1aa;\n background: #fafafa;\n}\n\nmj-filter-rule .dropdown-trigger:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);\n background: white;\n}\n\nmj-filter-rule .dropdown-trigger:disabled {\n background-color: #f4f4f5;\n color: #a1a1aa;\n cursor: not-allowed;\n box-shadow: none;\n}\n\nmj-filter-rule .custom-dropdown.open .dropdown-trigger {\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);\n}\n\nmj-filter-rule .dropdown-value {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\nmj-filter-rule .dropdown-arrow {\n font-size: 10px;\n color: #6b7280;\n margin-left: 8px;\n transition: transform 0.2s ease;\n}\n\nmj-filter-rule .custom-dropdown.open .dropdown-arrow {\n transform: rotate(180deg);\n}\n\n/* Dropdown Menu */\nmj-filter-rule .dropdown-menu {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n min-width: 100%;\n max-height: 280px;\n overflow-y: auto;\n background: white;\n border: 1px solid #e5e7eb;\n border-radius: 10px;\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.04);\n z-index: 9999;\n animation: dropdownFadeIn 0.15s ease;\n}\n\n@keyframes dropdownFadeIn {\n from {\n opacity: 0;\n transform: translateY(-8px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n/* Dropdown Items */\nmj-filter-rule .dropdown-item {\n padding: 10px 14px;\n font-size: 14px;\n color: #374151;\n cursor: pointer;\n transition: all 0.15s ease;\n border-bottom: 1px solid #f3f4f6;\n}\n\nmj-filter-rule .dropdown-item:last-child {\n border-bottom: none;\n}\n\nmj-filter-rule .dropdown-item:hover,\nmj-filter-rule .dropdown-item.highlighted {\n background: #f0f9ff;\n color: #1d4ed8;\n}\n\nmj-filter-rule .dropdown-item.highlighted {\n outline: 2px solid #3b82f6;\n outline-offset: -2px;\n}\n\nmj-filter-rule .dropdown-item.selected {\n background: #eff6ff;\n color: #1d4ed8;\n font-weight: 600;\n}\n\nmj-filter-rule .dropdown-item.selected::before {\n content: '\\f00c';\n font-family: 'Font Awesome 6 Free';\n font-weight: 900;\n font-size: 10px;\n margin-right: 8px;\n color: #3b82f6;\n}\n\nmj-filter-rule .dropdown-empty {\n padding: 16px;\n text-align: center;\n color: #9ca3af;\n font-size: 13px;\n font-style: italic;\n}\n\n/* Scrollbar styling for dropdown */\nmj-filter-rule .dropdown-menu::-webkit-scrollbar {\n width: 6px;\n}\n\nmj-filter-rule .dropdown-menu::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 3px;\n}\n\nmj-filter-rule .dropdown-menu::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 3px;\n}\n\nmj-filter-rule .dropdown-menu::-webkit-scrollbar-thumb:hover {\n background: #a1a1a1;\n}\n\n/* ========================================\n VALUE INPUT STYLES\n ======================================== */\n\nmj-filter-rule .value-input {\n padding: 10px 14px;\n border: 1px solid #d4d4d8;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n background-color: white;\n color: #374151;\n transition: all 0.2s ease;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);\n flex: 1;\n min-width: 150px;\n}\n\nmj-filter-rule .value-input:hover:not(:disabled) {\n border-color: #a1a1aa;\n background-color: #fafafa;\n}\n\nmj-filter-rule .value-input:focus {\n outline: none;\n border-color: #3b82f6;\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);\n background-color: white;\n}\n\nmj-filter-rule .value-input:disabled {\n background-color: #f4f4f5;\n color: #a1a1aa;\n cursor: not-allowed;\n box-shadow: none;\n}\n\nmj-filter-rule .value-input::placeholder {\n color: #9ca3af;\n font-weight: 400;\n}\n\nmj-filter-rule .value-date {\n min-width: 160px;\n}\n\n/* ========================================\n BOOLEAN TOGGLE STYLES\n ======================================== */\n\nmj-filter-rule .value-toggle {\n display: flex;\n background: #f4f4f5;\n border-radius: 8px;\n padding: 3px;\n border: 1px solid #e5e7eb;\n}\n\nmj-filter-rule .toggle-btn {\n padding: 8px 18px;\n border: none;\n background: transparent;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s ease;\n color: #71717a;\n}\n\nmj-filter-rule .toggle-btn:hover:not(:disabled) {\n color: #3f3f46;\n background: rgba(255, 255, 255, 0.5);\n}\n\nmj-filter-rule .toggle-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\nmj-filter-rule .toggle-btn.active {\n background: white;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n color: #18181b;\n}\n\nmj-filter-rule .toggle-btn.true.active {\n color: #16a34a;\n}\n\nmj-filter-rule .toggle-btn.false.active {\n color: #dc2626;\n}\n\n/* ========================================\n RULE ACTIONS\n ======================================== */\n\nmj-filter-rule .rule-actions {\n display: flex;\n gap: 4px;\n margin-left: auto;\n flex-shrink: 0;\n}\n\nmj-filter-rule .action-btn {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n border-radius: 8px;\n cursor: pointer;\n color: #a1a1aa;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n}\n\nmj-filter-rule .action-btn:hover:not(:disabled) {\n background: #f4f4f5;\n color: #71717a;\n}\n\nmj-filter-rule .action-btn:disabled {\n cursor: not-allowed;\n opacity: 0.3;\n}\n\nmj-filter-rule .action-btn.delete:hover:not(:disabled) {\n background: #fef2f2;\n color: #ef4444;\n}\n\n/* ========================================\n RESPONSIVE\n ======================================== */\n\n@media (max-width: 768px) {\n mj-filter-rule .filter-rule {\n flex-wrap: wrap;\n }\n\n mj-filter-rule .custom-dropdown,\n mj-filter-rule .value-input {\n min-width: 100%;\n flex: 1 1 100%;\n }\n\n mj-filter-rule .custom-dropdown.field-dropdown,\n mj-filter-rule .custom-dropdown.operator-dropdown,\n mj-filter-rule .custom-dropdown.value-dropdown {\n min-width: 100%;\n }\n}\n"] }]
|
|
665
692
|
}], () => [{ type: i0.ElementRef }], { filter: [{
|
|
666
693
|
type: Input
|
|
667
694
|
}], fields: [{
|
|
@@ -674,9 +701,18 @@ export class FilterRuleComponent {
|
|
|
674
701
|
type: Output
|
|
675
702
|
}], delete: [{
|
|
676
703
|
type: Output
|
|
704
|
+
}], fieldDropdownBtn: [{
|
|
705
|
+
type: ViewChild,
|
|
706
|
+
args: ['fieldDropdownBtn']
|
|
707
|
+
}], operatorDropdownBtn: [{
|
|
708
|
+
type: ViewChild,
|
|
709
|
+
args: ['operatorDropdownBtn']
|
|
710
|
+
}], valueDropdownBtn: [{
|
|
711
|
+
type: ViewChild,
|
|
712
|
+
args: ['valueDropdownBtn']
|
|
677
713
|
}], onDocumentClick: [{
|
|
678
714
|
type: HostListener,
|
|
679
715
|
args: ['document:click', ['$event']]
|
|
680
716
|
}] }); })();
|
|
681
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterRuleComponent, { className: "FilterRuleComponent", filePath: "src/lib/filter-rule/filter-rule.component.ts", lineNumber:
|
|
717
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FilterRuleComponent, { className: "FilterRuleComponent", filePath: "src/lib/filter-rule/filter-rule.component.ts", lineNumber: 23 }); })();
|
|
682
718
|
//# sourceMappingURL=filter-rule.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-rule.component.js","sourceRoot":"","sources":["../../../src/lib/filter-rule/filter-rule.component.ts","../../../src/lib/filter-rule/filter-rule.component.html"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filter-rule.component.js","sourceRoot":"","sources":["../../../src/lib/filter-rule/filter-rule.component.ts","../../../src/lib/filter-rule/filter-rule.component.html"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-filter-builder",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "MemberJunction: Angular Filter Builder Component - a modern, intuitive filter builder for creating complex boolean filter expressions with portable JSON format.",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -20,19 +20,19 @@
|
|
|
20
20
|
"author": "",
|
|
21
21
|
"license": "ISC",
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@angular/compiler": "
|
|
24
|
-
"@angular/compiler-cli": "
|
|
23
|
+
"@angular/compiler": "21.1.3",
|
|
24
|
+
"@angular/compiler-cli": "21.1.3"
|
|
25
25
|
},
|
|
26
26
|
"peerDependencies": {
|
|
27
|
-
"@angular/common": "
|
|
28
|
-
"@angular/core": "
|
|
29
|
-
"@angular/forms": "
|
|
30
|
-
"rxjs": "^7.8.
|
|
27
|
+
"@angular/common": "21.1.3",
|
|
28
|
+
"@angular/core": "21.1.3",
|
|
29
|
+
"@angular/forms": "21.1.3",
|
|
30
|
+
"rxjs": "^7.8.2"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@angular/platform-browser": "
|
|
34
|
-
"@memberjunction/core": "
|
|
35
|
-
"tslib": "^2.
|
|
33
|
+
"@angular/platform-browser": "21.1.3",
|
|
34
|
+
"@memberjunction/core": "4.0.0",
|
|
35
|
+
"tslib": "^2.8.1"
|
|
36
36
|
},
|
|
37
37
|
"sideEffects": false,
|
|
38
38
|
"repository": {
|