@super-green/query-builder 0.7.2 → 0.8.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.
Files changed (32) hide show
  1. package/dist/query-builder/fesm2022/query-builder.mjs +72 -45
  2. package/dist/query-builder/fesm2022/query-builder.mjs.map +1 -1
  3. package/dist/query-builder/types/query-builder.d.ts +342 -0
  4. package/package.json +56 -56
  5. package/dist/query-builder/esm2022/lib/query-builder/query-arrow-icon.directive.mjs +0 -15
  6. package/dist/query-builder/esm2022/lib/query-builder/query-builder.component.mjs +0 -769
  7. package/dist/query-builder/esm2022/lib/query-builder/query-builder.interfaces.mjs +0 -2
  8. package/dist/query-builder/esm2022/lib/query-builder/query-button-group.directive.mjs +0 -15
  9. package/dist/query-builder/esm2022/lib/query-builder/query-empty-warning.directive.mjs +0 -15
  10. package/dist/query-builder/esm2022/lib/query-builder/query-entity.directive.mjs +0 -15
  11. package/dist/query-builder/esm2022/lib/query-builder/query-field.directive.mjs +0 -15
  12. package/dist/query-builder/esm2022/lib/query-builder/query-input.directive.mjs +0 -28
  13. package/dist/query-builder/esm2022/lib/query-builder/query-operator.directive.mjs +0 -15
  14. package/dist/query-builder/esm2022/lib/query-builder/query-remove-button.directive.mjs +0 -15
  15. package/dist/query-builder/esm2022/lib/query-builder/query-switch-group.directive.mjs +0 -15
  16. package/dist/query-builder/esm2022/lib/query-builder.module.mjs +0 -73
  17. package/dist/query-builder/esm2022/public-api.mjs +0 -16
  18. package/dist/query-builder/esm2022/query-builder.mjs +0 -5
  19. package/dist/query-builder/index.d.ts +0 -5
  20. package/dist/query-builder/lib/query-builder/query-arrow-icon.directive.d.ts +0 -8
  21. package/dist/query-builder/lib/query-builder/query-builder.component.d.ts +0 -129
  22. package/dist/query-builder/lib/query-builder/query-builder.interfaces.d.ts +0 -143
  23. package/dist/query-builder/lib/query-builder/query-button-group.directive.d.ts +0 -8
  24. package/dist/query-builder/lib/query-builder/query-empty-warning.directive.d.ts +0 -8
  25. package/dist/query-builder/lib/query-builder/query-entity.directive.d.ts +0 -8
  26. package/dist/query-builder/lib/query-builder/query-field.directive.d.ts +0 -8
  27. package/dist/query-builder/lib/query-builder/query-input.directive.d.ts +0 -12
  28. package/dist/query-builder/lib/query-builder/query-operator.directive.d.ts +0 -8
  29. package/dist/query-builder/lib/query-builder/query-remove-button.directive.d.ts +0 -8
  30. package/dist/query-builder/lib/query-builder/query-switch-group.directive.d.ts +0 -8
  31. package/dist/query-builder/lib/query-builder.module.d.ts +0 -18
  32. package/dist/query-builder/public-api.d.ts +0 -12
@@ -1 +1 @@
1
- {"version":3,"file":"query-builder.mjs","sources":["../../../projects/query-builder/src/lib/query-builder/query-operator.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-field.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-entity.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-switch-group.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-button-group.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-input.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-remove-button.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-empty-warning.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-arrow-icon.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-builder.component.ts","../../../projects/query-builder/src/lib/query-builder/query-builder.component.html","../../../projects/query-builder/src/lib/query-builder.module.ts","../../../projects/query-builder/src/public-api.ts","../../../projects/query-builder/src/query-builder.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryOperator]'})\r\nexport class QueryOperatorDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryField]'})\r\nexport class QueryFieldDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryEntity]'})\r\nexport class QueryEntityDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[querySwitchGroup]'})\r\nexport class QuerySwitchGroupDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryButtonGroup]'})\r\nexport class QueryButtonGroupDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryInput]'})\r\nexport class QueryInputDirective {\r\n /** Unique name for query input type. */\r\n @Input()\r\n get queryInputType(): string { return this._type; }\r\n set queryInputType(value: string) {\r\n // If the directive is set without a type (updated programatically), then this setter will\r\n // trigger with an empty string and should not overwrite the programatically set value.\r\n if (!value) { return; }\r\n this._type = value;\r\n }\r\n private _type: string;\r\n\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryRemoveButton]'})\r\nexport class QueryRemoveButtonDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryEmptyWarning]'})\r\nexport class QueryEmptyWarningDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({selector: '[queryArrowIcon]'})\r\nexport class QueryArrowIconDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NG_VALIDATORS,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\nimport { QueryOperatorDirective } from './query-operator.directive';\r\nimport { QueryFieldDirective } from './query-field.directive';\r\nimport { QueryEntityDirective } from './query-entity.directive';\r\nimport { QuerySwitchGroupDirective } from './query-switch-group.directive';\r\nimport { QueryButtonGroupDirective } from './query-button-group.directive';\r\nimport { QueryInputDirective } from './query-input.directive';\r\nimport { QueryRemoveButtonDirective } from './query-remove-button.directive';\r\nimport { QueryEmptyWarningDirective } from './query-empty-warning.directive';\r\nimport { QueryArrowIconDirective } from './query-arrow-icon.directive';\r\nimport {\r\n ButtonGroupContext,\r\n Entity,\r\n Field,\r\n SwitchGroupContext,\r\n EntityContext,\r\n FieldContext,\r\n InputContext,\r\n LocalRuleMeta,\r\n OperatorContext,\r\n Option,\r\n QueryBuilderClassNames,\r\n QueryBuilderConfig,\r\n RemoveButtonContext,\r\n ArrowIconContext,\r\n Rule,\r\n RuleSet,\r\n EmptyWarningContext,\r\n} from './query-builder.interfaces';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\n\r\nexport const CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QueryBuilderComponent),\r\n multi: true\r\n};\r\n\r\nexport const VALIDATOR: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QueryBuilderComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'query-builder',\r\n templateUrl: './query-builder.component.html',\r\n styleUrls: ['./query-builder.component.scss'],\r\n providers: [CONTROL_VALUE_ACCESSOR, VALIDATOR]\r\n})\r\nexport class QueryBuilderComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\r\n public fields: Field[];\r\n public filterFields: Field[];\r\n public entities: Entity[];\r\n public defaultClassNames: QueryBuilderClassNames = {\r\n arrowIconButton: 'q-arrow-icon-button',\r\n arrowIcon: 'q-icon q-arrow-icon',\r\n removeIcon: 'q-icon q-remove-icon',\r\n addIcon: 'q-icon q-add-icon',\r\n button: 'q-button',\r\n buttonGroup: 'q-button-group',\r\n removeButton: 'q-remove-button',\r\n switchGroup: 'q-switch-group',\r\n switchLabel: 'q-switch-label',\r\n switchRadio: 'q-switch-radio',\r\n rightAlign: 'q-right-align',\r\n transition: 'q-transition',\r\n collapsed: 'q-collapsed',\r\n treeContainer: 'q-tree-container',\r\n tree: 'q-tree',\r\n row: 'q-row',\r\n connector: 'q-connector',\r\n rule: 'q-rule',\r\n ruleSet: 'q-ruleset',\r\n invalidRuleSet: 'q-invalid-ruleset',\r\n emptyWarning: 'q-empty-warning',\r\n fieldControl: 'q-field-control',\r\n fieldControlSize: 'q-control-size',\r\n entityControl: 'q-entity-control',\r\n entityControlSize: 'q-control-size',\r\n operatorControl: 'q-operator-control',\r\n operatorControlSize: 'q-control-size',\r\n inputControl: 'q-input-control',\r\n inputControlSize: 'q-control-size'\r\n };\r\n public defaultOperatorMap: { [key: string]: string[] } = {\r\n string: ['=', '!=', 'contains', 'like'],\r\n number: ['=', '!=', '>', '>=', '<', '<='],\r\n time: ['=', '!=', '>', '>=', '<', '<='],\r\n date: ['=', '!=', '>', '>=', '<', '<='],\r\n category: ['=', '!=', 'in', 'not in'],\r\n boolean: ['=']\r\n };\r\n @Input() disabled: boolean;\r\n @Input() data: RuleSet = { condition: 'and', rules: [] };\r\n\r\n // For ControlValueAccessor interface\r\n public onChangeCallback: () => void;\r\n public onTouchedCallback: () => any;\r\n\r\n @Input() allowRuleset: boolean = true;\r\n @Input() allowCollapse: boolean = false;\r\n @Input() emptyMessage: string = 'A ruleset cannot be empty. Please add a rule or remove it all together.';\r\n @Input() classNames: QueryBuilderClassNames;\r\n @Input() operatorMap: { [key: string]: string[] };\r\n @Input() parentValue: RuleSet;\r\n @Input() config: QueryBuilderConfig = { fields: {} };\r\n @Input() parentArrowIconTemplate: QueryArrowIconDirective;\r\n @Input() parentInputTemplates: QueryList<QueryInputDirective>;\r\n @Input() parentOperatorTemplate: QueryOperatorDirective;\r\n @Input() parentFieldTemplate: QueryFieldDirective;\r\n @Input() parentEntityTemplate: QueryEntityDirective;\r\n @Input() parentSwitchGroupTemplate: QuerySwitchGroupDirective;\r\n @Input() parentButtonGroupTemplate: QueryButtonGroupDirective;\r\n @Input() parentRemoveButtonTemplate: QueryRemoveButtonDirective;\r\n @Input() parentEmptyWarningTemplate: QueryEmptyWarningDirective;\r\n @Input() parentChangeCallback: () => void;\r\n @Input() parentTouchedCallback: () => void;\r\n @Input() persistValueOnFieldChange: boolean = false;\r\n\r\n @ViewChild('treeContainer', {static: true}) treeContainer: ElementRef;\r\n\r\n @ContentChild(QueryButtonGroupDirective) buttonGroupTemplate: QueryButtonGroupDirective;\r\n @ContentChild(QuerySwitchGroupDirective) switchGroupTemplate: QuerySwitchGroupDirective;\r\n @ContentChild(QueryFieldDirective) fieldTemplate: QueryFieldDirective;\r\n @ContentChild(QueryEntityDirective) entityTemplate: QueryEntityDirective;\r\n @ContentChild(QueryOperatorDirective) operatorTemplate: QueryOperatorDirective;\r\n @ContentChild(QueryRemoveButtonDirective) removeButtonTemplate: QueryRemoveButtonDirective;\r\n @ContentChild(QueryEmptyWarningDirective) emptyWarningTemplate: QueryEmptyWarningDirective;\r\n @ContentChildren(QueryInputDirective) inputTemplates: QueryList<QueryInputDirective>;\r\n @ContentChild(QueryArrowIconDirective) arrowIconTemplate: QueryArrowIconDirective;\r\n\r\n private defaultTemplateTypes: string[] = [\r\n 'string', 'number', 'time', 'date', 'category', 'boolean', 'multiselect'];\r\n private defaultPersistValueTypes: string[] = [\r\n 'string', 'number', 'time', 'date', 'boolean'];\r\n private defaultEmptyList: any[] = [];\r\n private operatorsCache: { [key: string]: string[] };\r\n private inputContextCache = new Map<Rule, InputContext>();\r\n private operatorContextCache = new Map<Rule, OperatorContext>();\r\n private fieldContextCache = new Map<Rule, FieldContext>();\r\n private entityContextCache = new Map<Rule, EntityContext>();\r\n private removeButtonContextCache = new Map<Rule, RemoveButtonContext>();\r\n private buttonGroupContext: ButtonGroupContext;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n // ----------OnInit Implementation----------\r\n\r\n ngOnInit() { }\r\n\r\n // ----------OnChanges Implementation----------\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const config = this.config;\r\n const type = typeof config;\r\n if (type === 'object') {\r\n this.fields = Object.keys(config.fields).map((value) => {\r\n const field = config.fields[value];\r\n field.value = field.value || value;\r\n return field;\r\n });\r\n if (config.entities) {\r\n this.entities = Object.keys(config.entities).map((value) => {\r\n const entity = config.entities[value];\r\n entity.value = entity.value || value;\r\n return entity;\r\n });\r\n } else {\r\n this.entities = null;\r\n }\r\n this.operatorsCache = {};\r\n } else {\r\n throw new Error(`Expected 'config' must be a valid object, got ${type} instead.`);\r\n }\r\n }\r\n\r\n // ----------Validator Implementation----------\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const errors: any = {};\r\n const ruleErrorStore = [];\r\n let hasErrors = false;\r\n\r\n if (!this.config.allowEmptyRulesets && this.checkEmptyRuleInRuleset(this.data)) {\r\n errors.empty = 'Empty rulesets are not allowed.';\r\n hasErrors = true;\r\n }\r\n\r\n this.validateRulesInRuleset(this.data, ruleErrorStore);\r\n\r\n if (ruleErrorStore.length) {\r\n errors.rules = ruleErrorStore;\r\n hasErrors = true;\r\n }\r\n return hasErrors ? errors : null;\r\n }\r\n\r\n // ----------ControlValueAccessor Implementation----------\r\n\r\n @Input()\r\n get value(): RuleSet {\r\n return this.data;\r\n }\r\n set value(value: RuleSet) {\r\n // When component is initialized without a formControl, null is passed to value\r\n this.data = value || { condition: 'and', rules: [] };\r\n this.handleDataChange();\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.value = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = () => fn(this.data);\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = () => fn(this.data);\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n // ----------END----------\r\n\r\n getDisabledState = (): boolean => {\r\n return this.disabled;\r\n }\r\n\r\n findTemplateForRule(rule: Rule): TemplateRef<any> {\r\n const type = this.getInputType(rule.field, rule.operator);\r\n if (type) {\r\n const queryInput = this.findQueryInput(type);\r\n if (queryInput) {\r\n return queryInput.template;\r\n } else {\r\n if (this.defaultTemplateTypes.indexOf(type) === -1) {\r\n console.warn(`Could not find template for field with type: ${type}`);\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n findQueryInput(type: string): QueryInputDirective {\r\n const templates = this.parentInputTemplates || this.inputTemplates;\r\n return templates.find((item) => item.queryInputType === type);\r\n }\r\n\r\n getOperators(field: string): string[] {\r\n if (this.operatorsCache[field]) {\r\n return this.operatorsCache[field];\r\n }\r\n let operators = this.defaultEmptyList;\r\n const fieldObject = this.config.fields[field];\r\n\r\n if (this.config.getOperators) {\r\n return this.config.getOperators(field, fieldObject);\r\n }\r\n\r\n const type = fieldObject.type;\r\n\r\n if (fieldObject && fieldObject.operators) {\r\n operators = fieldObject.operators;\r\n } else if (type) {\r\n operators = (this.operatorMap && this.operatorMap[type]) || this.defaultOperatorMap[type] || this.defaultEmptyList;\r\n if (operators.length === 0) {\r\n console.warn(\r\n `No operators found for field '${field}' with type ${fieldObject.type}. ` +\r\n `Please define an 'operators' property on the field or use the 'operatorMap' binding to fix this.`);\r\n }\r\n if (fieldObject.nullable) {\r\n operators = operators.concat(['is null', 'is not null']);\r\n }\r\n } else {\r\n console.warn(`No 'type' property found on field: '${field}'`);\r\n }\r\n\r\n // Cache reference to array object, so it won't be computed next time and trigger a rerender.\r\n this.operatorsCache[field] = operators;\r\n return operators;\r\n }\r\n\r\n getFields(entity: string): Field[] {\r\n if (this.entities && entity) {\r\n return this.fields.filter((field) => {\r\n return field && field.entity === entity;\r\n });\r\n } else {\r\n return this.fields;\r\n }\r\n }\r\n\r\n getInputType(field: string, operator: string): string {\r\n if (this.config.getInputType) {\r\n return this.config.getInputType(field, operator);\r\n }\r\n\r\n if (!this.config.fields[field]) {\r\n throw new Error(`No configuration for field '${field}' could be found! Please add it to config.fields.`);\r\n }\r\n\r\n const type = this.config.fields[field].type;\r\n switch (operator) {\r\n case 'is null':\r\n case 'is not null':\r\n return null; // No displayed component\r\n case 'in':\r\n case 'not in':\r\n return type === 'category' || type === 'boolean' ? 'multiselect' : type;\r\n default:\r\n return type;\r\n }\r\n }\r\n\r\n getOptions(field: string): Option[] {\r\n if (this.config.getOptions) {\r\n return this.config.getOptions(field);\r\n }\r\n return this.config.fields[field].options || this.defaultEmptyList;\r\n }\r\n\r\n getClassNames(...args): string {\r\n const clsLookup = this.classNames ? this.classNames : this.defaultClassNames;\r\n const classNames = args.map((id) => clsLookup[id] || this.defaultClassNames[id]).filter((c) => !!c);\r\n return classNames.length ? classNames.join(' ') : null;\r\n }\r\n\r\n getDefaultField(entity: Entity): Field {\r\n if (!entity) {\r\n return null;\r\n } else if (entity.defaultField !== undefined) {\r\n return this.getDefaultValue(entity.defaultField);\r\n } else {\r\n const entityFields = this.fields.filter((field) => {\r\n return field && field.entity === entity.value;\r\n });\r\n if (entityFields && entityFields.length) {\r\n return entityFields[0];\r\n } else {\r\n console.warn(`No fields found for entity '${entity.name}'. ` +\r\n `A 'defaultOperator' is also not specified on the field config. Operator value will default to null.`);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n getDefaultOperator(field: Field): string {\r\n if (field && field.defaultOperator !== undefined) {\r\n return this.getDefaultValue(field.defaultOperator);\r\n } else {\r\n const operators = this.getOperators(field.value);\r\n if (operators && operators.length) {\r\n return operators[0];\r\n } else {\r\n console.warn(`No operators found for field '${field.value}'. ` +\r\n `A 'defaultOperator' is also not specified on the field config. Operator value will default to null.`);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n addRule(parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.addRule) {\r\n this.config.addRule(parent);\r\n } else {\r\n const field = this.fields[0];\r\n parent.rules = parent.rules.concat([{\r\n field: field.value,\r\n operator: this.getDefaultOperator(field),\r\n value: this.getDefaultValue(field.defaultValue),\r\n entity: field.entity\r\n }]);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n removeRule(rule: Rule, parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.removeRule) {\r\n this.config.removeRule(rule, parent);\r\n } else {\r\n parent.rules = parent.rules.filter((r) => r !== rule);\r\n }\r\n this.inputContextCache.delete(rule);\r\n this.operatorContextCache.delete(rule);\r\n this.fieldContextCache.delete(rule);\r\n this.entityContextCache.delete(rule);\r\n this.removeButtonContextCache.delete(rule);\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n addRuleSet(parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.addRuleSet) {\r\n this.config.addRuleSet(parent);\r\n } else {\r\n parent.rules = parent.rules.concat([{ condition: 'and', rules: [] }]);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n removeRuleSet(ruleset?: RuleSet, parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n ruleset = ruleset || this.data;\r\n parent = parent || this.parentValue;\r\n if (this.config.removeRuleSet) {\r\n this.config.removeRuleSet(ruleset, parent);\r\n } else {\r\n parent.rules = parent.rules.filter((r) => r !== ruleset);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n transitionEnd(e: Event): void {\r\n this.treeContainer.nativeElement.style.maxHeight = null;\r\n }\r\n\r\n toggleCollapse(): void {\r\n this.computedTreeContainerHeight();\r\n setTimeout(() => {\r\n this.data.collapsed = !this.data.collapsed;\r\n }, 100);\r\n }\r\n\r\n computedTreeContainerHeight(): void {\r\n const nativeElement: HTMLElement = this.treeContainer.nativeElement;\r\n if (nativeElement && nativeElement.firstElementChild) {\r\n nativeElement.style.maxHeight = (nativeElement.firstElementChild.clientHeight + 8) + 'px';\r\n }\r\n }\r\n\r\n changeCondition(value: string): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.data.condition = value;\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeOperator(rule: Rule): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n if (this.config.coerceValueForOperator) {\r\n rule.value = this.config.coerceValueForOperator(rule.operator, rule.value, rule);\r\n } else {\r\n rule.value = this.coerceValueForOperator(rule.operator, rule.value, rule);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n coerceValueForOperator(operator: string, value: any, rule: Rule): any {\r\n const inputType: string = this.getInputType(rule.field, operator);\r\n if (inputType === 'multiselect' && !Array.isArray(value)) {\r\n return [value];\r\n }\r\n return value;\r\n }\r\n\r\n changeInput(): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeField(fieldValue: string, rule: Rule): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n const inputContext = this.inputContextCache.get(rule);\r\n const currentField = inputContext && inputContext.field;\r\n\r\n const nextField: Field = this.config.fields[fieldValue];\r\n\r\n const nextValue = this.calculateFieldChangeValue(\r\n currentField, nextField, rule.value);\r\n\r\n if (nextValue !== undefined) {\r\n rule.value = nextValue;\r\n } else {\r\n delete rule.value;\r\n }\r\n\r\n rule.operator = this.getDefaultOperator(nextField);\r\n\r\n // Create new context objects so templates will automatically update\r\n this.inputContextCache.delete(rule);\r\n this.operatorContextCache.delete(rule);\r\n this.fieldContextCache.delete(rule);\r\n this.entityContextCache.delete(rule);\r\n this.getInputContext(rule);\r\n this.getFieldContext(rule);\r\n this.getOperatorContext(rule);\r\n this.getEntityContext(rule);\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeEntity(entityValue: string, rule: Rule, index: number, data: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n let i = index;\r\n let rs = data;\r\n const entity: Entity = this.entities.find((e) => e.value === entityValue);\r\n const defaultField: Field = this.getDefaultField(entity);\r\n if (!rs) {\r\n rs = this.data;\r\n i = rs.rules.findIndex((x) => x === rule);\r\n }\r\n rule.field = defaultField.value;\r\n rs.rules[i] = rule;\r\n if (defaultField) {\r\n this.changeField(defaultField.value, rule);\r\n } else {\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n }\r\n\r\n getDefaultValue(defaultValue: any): any {\r\n switch (typeof defaultValue) {\r\n case 'function':\r\n return defaultValue();\r\n default:\r\n return defaultValue;\r\n }\r\n }\r\n\r\n getOperatorTemplate(): TemplateRef<any> {\r\n const t = this.parentOperatorTemplate || this.operatorTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getFieldTemplate(): TemplateRef<any> {\r\n const t = this.parentFieldTemplate || this.fieldTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getEntityTemplate(): TemplateRef<any> {\r\n const t = this.parentEntityTemplate || this.entityTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getArrowIconTemplate(): TemplateRef<any> {\r\n const t = this.parentArrowIconTemplate || this.arrowIconTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getButtonGroupTemplate(): TemplateRef<any> {\r\n const t = this.parentButtonGroupTemplate || this.buttonGroupTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getSwitchGroupTemplate(): TemplateRef<any> {\r\n const t = this.parentSwitchGroupTemplate || this.switchGroupTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getRemoveButtonTemplate(): TemplateRef<any> {\r\n const t = this.parentRemoveButtonTemplate || this.removeButtonTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getEmptyWarningTemplate(): TemplateRef<any> {\r\n const t = this.parentEmptyWarningTemplate || this.emptyWarningTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getQueryItemClassName(local: LocalRuleMeta): string {\r\n let cls = this.getClassNames('row', 'connector', 'transition');\r\n cls += ' ' + this.getClassNames(local.ruleset ? 'ruleSet' : 'rule');\r\n if (local.invalid) {\r\n cls += ' ' + this.getClassNames('invalidRuleSet');\r\n }\r\n return cls;\r\n }\r\n\r\n getButtonGroupContext(): ButtonGroupContext {\r\n if (!this.buttonGroupContext) {\r\n this.buttonGroupContext = {\r\n addRule: this.addRule.bind(this),\r\n addRuleSet: this.allowRuleset && this.addRuleSet.bind(this),\r\n removeRuleSet: this.allowRuleset && this.parentValue && this.removeRuleSet.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n return this.buttonGroupContext;\r\n }\r\n\r\n getRemoveButtonContext(rule: Rule): RemoveButtonContext {\r\n if (!this.removeButtonContextCache.has(rule)) {\r\n this.removeButtonContextCache.set(rule, {\r\n removeRule: this.removeRule.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: rule\r\n });\r\n }\r\n return this.removeButtonContextCache.get(rule);\r\n }\r\n\r\n getFieldContext(rule: Rule): FieldContext {\r\n if (!this.fieldContextCache.has(rule)) {\r\n this.fieldContextCache.set(rule, {\r\n onChange: this.changeField.bind(this),\r\n getFields: this.getFields.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n fields: this.fields,\r\n $implicit: rule\r\n });\r\n }\r\n return this.fieldContextCache.get(rule);\r\n }\r\n\r\n getEntityContext(rule: Rule): EntityContext {\r\n if (!this.entityContextCache.has(rule)) {\r\n this.entityContextCache.set(rule, {\r\n onChange: this.changeEntity.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n entities: this.entities,\r\n $implicit: rule\r\n });\r\n }\r\n return this.entityContextCache.get(rule);\r\n }\r\n\r\n getSwitchGroupContext(): SwitchGroupContext {\r\n return {\r\n onChange: this.changeCondition.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getArrowIconContext(): ArrowIconContext {\r\n return {\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getEmptyWarningContext(): EmptyWarningContext {\r\n return {\r\n getDisabledState: this.getDisabledState,\r\n message: this.emptyMessage,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getOperatorContext(rule: Rule): OperatorContext {\r\n if (!this.operatorContextCache.has(rule)) {\r\n this.operatorContextCache.set(rule, {\r\n onChange: this.changeOperator.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n operators: this.getOperators(rule.field),\r\n $implicit: rule\r\n });\r\n }\r\n return this.operatorContextCache.get(rule);\r\n }\r\n\r\n getInputContext(rule: Rule): InputContext {\r\n if (!this.inputContextCache.has(rule)) {\r\n this.inputContextCache.set(rule, {\r\n onChange: this.changeInput.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n options: this.getOptions(rule.field),\r\n field: this.config.fields[rule.field],\r\n $implicit: rule\r\n });\r\n }\r\n return this.inputContextCache.get(rule);\r\n }\r\n\r\n private calculateFieldChangeValue(\r\n currentField: Field,\r\n nextField: Field,\r\n currentValue: any\r\n ): any {\r\n\r\n if (this.config.calculateFieldChangeValue != null) {\r\n return this.config.calculateFieldChangeValue(\r\n currentField, nextField, currentValue);\r\n }\r\n\r\n const canKeepValue = () => {\r\n if (currentField == null || nextField == null) {\r\n return false;\r\n }\r\n return currentField.type === nextField.type\r\n && this.defaultPersistValueTypes.indexOf(currentField.type) !== -1;\r\n };\r\n\r\n if (this.persistValueOnFieldChange && canKeepValue()) {\r\n return currentValue;\r\n }\r\n\r\n if (nextField && nextField.defaultValue !== undefined) {\r\n return this.getDefaultValue(nextField.defaultValue);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private checkEmptyRuleInRuleset(ruleset: RuleSet): boolean {\r\n if (!ruleset || !ruleset.rules || ruleset.rules.length === 0) {\r\n return true;\r\n } else {\r\n return ruleset.rules.some((item: RuleSet) => {\r\n if (item.rules) {\r\n return this.checkEmptyRuleInRuleset(item);\r\n } else {\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private validateRulesInRuleset(ruleset: RuleSet, errorStore: any[]) {\r\n if (ruleset && ruleset.rules && ruleset.rules.length > 0) {\r\n ruleset.rules.forEach((item) => {\r\n if ((item as RuleSet).rules) {\r\n return this.validateRulesInRuleset(item as RuleSet, errorStore);\r\n } else if ((item as Rule).field) {\r\n const field = this.config.fields[(item as Rule).field];\r\n if (field && field.validator && field.validator.apply) {\r\n const error = field.validator(item as Rule, ruleset);\r\n if (error != null) {\r\n errorStore.push(error);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n private handleDataChange(): void {\r\n this.changeDetectorRef.markForCheck();\r\n if (this.onChangeCallback) {\r\n this.onChangeCallback();\r\n }\r\n if (this.parentChangeCallback) {\r\n this.parentChangeCallback();\r\n }\r\n }\r\n\r\n private handleTouched(): void {\r\n if (this.onTouchedCallback) {\r\n this.onTouchedCallback();\r\n }\r\n if (this.parentTouchedCallback) {\r\n this.parentTouchedCallback();\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"getClassNames('switchRow')\">\r\n <ng-template #defaultArrowIcon>\r\n <i [ngClass]=\"getClassNames('arrowIcon')\"></i>\r\n </ng-template>\r\n\r\n <a *ngIf=\"allowCollapse\" (click)=\"toggleCollapse()\" [ngClass]=\"getClassNames('arrowIconButton', data.collapsed ? 'collapsed' : null)\">\r\n <ng-container *ngIf=\"getArrowIconTemplate() as template; else defaultArrowIcon\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getArrowIconContext()\"></ng-container>\r\n </ng-container>\r\n </a>\r\n\r\n <ng-container *ngIf=\"getButtonGroupTemplate() as template; else defaultButtonGroup\">\r\n <div [ngClass]=\"getClassNames('buttonGroup', 'rightAlign')\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getButtonGroupContext()\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #defaultButtonGroup>\r\n <div [ngClass]=\"getClassNames('buttonGroup', 'rightAlign')\">\r\n <button type=\"button\" (click)=\"addRule()\" [ngClass]=\"getClassNames('button')\" [disabled]=disabled>\r\n <i [ngClass]=\"getClassNames('addIcon')\"></i> Rule\r\n </button>\r\n <button type=\"button\" (click)=\"addRuleSet()\" [ngClass]=\"getClassNames('button')\" *ngIf=\"allowRuleset\" [disabled]=disabled>\r\n <i [ngClass]=\"getClassNames('addIcon')\"></i> Ruleset\r\n </button>\r\n <ng-container *ngIf=\"!!parentValue && allowRuleset\">\r\n <button type=\"button\" (click)=\"removeRuleSet()\" [ngClass]=\"getClassNames('button', 'removeButton')\" [disabled]=disabled>\r\n <i [ngClass]=\"getClassNames('removeIcon')\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"getSwitchGroupTemplate() as template; else defaultSwitchGroup\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getSwitchGroupContext()\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #defaultSwitchGroup>\r\n <div [ngClass]=\"getClassNames('switchGroup', 'transition')\" *ngIf=\"data\">\r\n <div [ngClass]=\"getClassNames('switchControl')\">\r\n <input type=\"radio\" [ngClass]=\"getClassNames('switchRadio')\" [(ngModel)]=\"data.condition\" [disabled]=disabled\r\n value=\"and\" #andOption />\r\n <label (click)=\"changeCondition(andOption.value)\" [ngClass]=\"getClassNames('switchLabel')\">AND</label>\r\n </div>\r\n <div [ngClass]=\"getClassNames('switchControl')\">\r\n <input type=\"radio\" [ngClass]=\"getClassNames('switchRadio')\" [(ngModel)]=\"data.condition\" [disabled]=disabled\r\n value=\"or\" #orOption />\r\n <label (click)=\"changeCondition(orOption.value)\" [ngClass]=\"getClassNames('switchLabel')\">OR</label>\r\n </div>\r\n </div>\r\n </ng-template>\r\n</div>\r\n\r\n<div #treeContainer (transitionend)=\"transitionEnd($event)\" [ngClass]=\"getClassNames('treeContainer', data.collapsed ? 'collapsed' : null)\">\r\n <ul [ngClass]=\"getClassNames('tree')\" *ngIf=\"data && data.rules\">\r\n <ng-container *ngFor=\"let rule of data.rules;let i=index\">\r\n\r\n <ng-container *ngIf=\"{ruleset: !!rule.rules, invalid: !config.allowEmptyRulesets && rule.rules && rule.rules.length === 0} as local\">\r\n <li [ngClass]=\"getQueryItemClassName(local)\">\r\n <ng-container *ngIf=\"!local.ruleset\">\r\n\r\n <ng-container *ngIf=\"getRemoveButtonTemplate() as template; else defaultRemoveButton\">\r\n <div [ngClass]=\"getClassNames('buttonGroup', 'rightAlign')\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getRemoveButtonContext(rule)\"></ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-template #defaultRemoveButton>\r\n <div [ngClass]=\"getClassNames('removeButtonSize', 'rightAlign')\">\r\n <button type=\"button\" [ngClass]=\"getClassNames('button', 'removeButton')\" (click)=\"removeRule(rule, data)\" [disabled]=disabled>\r\n <i [ngClass]=\"getClassNames('removeIcon')\"></i>\r\n </button>\r\n </div>\r\n </ng-template>\r\n\r\n <div *ngIf=\"entities?.length > 0\" class=\"q-inline-block-display\">\r\n <ng-container *ngIf=\"getEntityTemplate() as template; else defaultEntity\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getEntityContext(rule)\"></ng-container>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #defaultEntity>\r\n <div [ngClass]=\"getClassNames('entityControlSize')\">\r\n <select [ngClass]=\"getClassNames('entityControl')\" [(ngModel)]=\"rule.entity\" (ngModelChange)=\"changeEntity($event, rule,i,data)\"\r\n [disabled]=\"disabled\">\r\n <option *ngFor=\"let entity of entities\" [ngValue]=\"entity.value\">\r\n {{entity.name}}\r\n </option>\r\n </select>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"getFieldTemplate() as template; else defaultField\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getFieldContext(rule)\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #defaultField>\r\n <div [ngClass]=\"getClassNames('fieldControlSize')\">\r\n <select [ngClass]=\"getClassNames('fieldControl')\" [(ngModel)]=\"rule.field\" (ngModelChange)=\"changeField($event, rule)\"\r\n [disabled]=\"disabled\">\r\n <option *ngFor=\"let field of getFields(rule.entity)\" [ngValue]=\"field.value\">\r\n {{field.name}}\r\n </option>\r\n </select>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"getOperatorTemplate() as template; else defaultOperator\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getOperatorContext(rule)\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #defaultOperator>\r\n <div [ngClass]=\"getClassNames('operatorControlSize')\">\r\n <select [ngClass]=\"getClassNames('operatorControl')\" [(ngModel)]=\"rule.operator\" (ngModelChange)=\"changeOperator(rule)\"\r\n [disabled]=\"disabled\">\r\n <option *ngFor=\"let operator of getOperators(rule.field)\" [ngValue]=\"operator\">\r\n {{operator}}\r\n </option>\r\n </select>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"findTemplateForRule(rule) as template; else defaultInput\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getInputContext(rule)\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #defaultInput>\r\n <div [ngClass]=\"getClassNames('inputControlSize')\" [ngSwitch]=\"getInputType(rule.field, rule.operator)\">\r\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" *ngSwitchCase=\"'string'\" type=\"text\">\r\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" *ngSwitchCase=\"'number'\" type=\"number\">\r\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" *ngSwitchCase=\"'date'\" type=\"date\">\r\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" *ngSwitchCase=\"'time'\" type=\"time\">\r\n <select [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" *ngSwitchCase=\"'category'\">\r\n <option *ngFor=\"let opt of getOptions(rule.field)\" [ngValue]=\"opt.value\">\r\n {{opt.name}}\r\n </option>\r\n </select>\r\n <ng-container *ngSwitchCase=\"'multiselect'\">\r\n <select [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" multiple>\r\n <option *ngFor=\"let opt of getOptions(rule.field)\" [ngValue]=\"opt.value\">\r\n {{opt.name}}\r\n </option>\r\n </select>\r\n </ng-container>\r\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" *ngSwitchCase=\"'boolean'\" type=\"checkbox\">\r\n </div>\r\n </ng-template>\r\n\r\n </ng-container>\r\n <query-builder *ngIf=\"local.ruleset\" [data]=\"rule\" [disabled]=\"disabled\" [parentTouchedCallback]=\"parentTouchedCallback || onTouchedCallback\"\r\n [parentChangeCallback]=\"parentChangeCallback || onChangeCallback\" [parentInputTemplates]=\"parentInputTemplates || inputTemplates\"\r\n [parentOperatorTemplate]=\"parentOperatorTemplate || operatorTemplate\" [parentFieldTemplate]=\"parentFieldTemplate || fieldTemplate\"\r\n [parentEntityTemplate]=\"parentEntityTemplate || entityTemplate\" [parentSwitchGroupTemplate]=\"parentSwitchGroupTemplate || switchGroupTemplate\"\r\n [parentButtonGroupTemplate]=\"parentButtonGroupTemplate || buttonGroupTemplate\" [parentRemoveButtonTemplate]=\"parentRemoveButtonTemplate || removeButtonTemplate\"\r\n [parentEmptyWarningTemplate]=\"parentEmptyWarningTemplate || emptyWarningTemplate\" [parentArrowIconTemplate]=\"parentArrowIconTemplate || arrowIconTemplate\"\r\n [parentValue]=\"data\" [classNames]=\"classNames\" [config]=\"config\" [allowRuleset]=\"allowRuleset\"\r\n [allowCollapse]=\"allowCollapse\" [emptyMessage]=\"emptyMessage\" [operatorMap]=\"operatorMap\">\r\n </query-builder>\r\n\r\n <ng-container *ngIf=\"getEmptyWarningTemplate() as template; else defaultEmptyWarning\">\r\n <ng-container *ngIf=\"local.invalid\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getEmptyWarningContext()\"></ng-container>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #defaultEmptyWarning>\r\n <p [ngClass]=\"getClassNames('emptyWarning')\" *ngIf=\"local.invalid\">\r\n {{emptyMessage}}\r\n </p>\r\n </ng-template>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, } from '@angular/forms';\r\n\r\nimport { QueryBuilderComponent } from './query-builder/query-builder.component';\r\n\r\nimport { QueryArrowIconDirective } from './query-builder/query-arrow-icon.directive';\r\nimport { QueryFieldDirective } from './query-builder/query-field.directive';\r\nimport { QueryInputDirective } from './query-builder/query-input.directive';\r\nimport { QueryEntityDirective } from './query-builder/query-entity.directive';\r\nimport { QueryOperatorDirective } from './query-builder/query-operator.directive';\r\nimport { QueryButtonGroupDirective } from './query-builder/query-button-group.directive';\r\nimport { QuerySwitchGroupDirective } from './query-builder/query-switch-group.directive';\r\nimport { QueryRemoveButtonDirective } from './query-builder/query-remove-button.directive';\r\nimport { QueryEmptyWarningDirective } from './query-builder/query-empty-warning.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n QueryBuilderComponent,\r\n QueryInputDirective,\r\n QueryOperatorDirective,\r\n QueryFieldDirective,\r\n QueryEntityDirective,\r\n QueryButtonGroupDirective,\r\n QuerySwitchGroupDirective,\r\n QueryRemoveButtonDirective,\r\n QueryEmptyWarningDirective,\r\n QueryArrowIconDirective\r\n ],\r\n exports: [\r\n QueryBuilderComponent,\r\n QueryInputDirective,\r\n QueryOperatorDirective,\r\n QueryFieldDirective,\r\n QueryEntityDirective,\r\n QueryButtonGroupDirective,\r\n QuerySwitchGroupDirective,\r\n QueryRemoveButtonDirective,\r\n QueryEmptyWarningDirective,\r\n QueryArrowIconDirective\r\n ]\r\n})\r\nexport class QueryBuilderModule { }\r\n","/*\r\n * Public API Surface of angular2-query-builder\r\n */\r\n\r\nexport * from './lib/query-builder/query-builder.interfaces';\r\n\r\nexport * from './lib/query-builder/query-builder.component';\r\n\r\nexport * from './lib/query-builder/query-button-group.directive';\r\nexport * from './lib/query-builder/query-entity.directive';\r\nexport * from './lib/query-builder/query-field.directive';\r\nexport * from './lib/query-builder/query-input.directive';\r\nexport * from './lib/query-builder/query-operator.directive';\r\nexport * from './lib/query-builder/query-switch-group.directive';\r\nexport * from './lib/query-builder/query-remove-button.directive';\r\nexport * from './lib/query-builder/query-empty-warning.directive';\r\nexport * from './lib/query-builder/query-arrow-icon.directive';\r\n\r\nexport * from './lib/query-builder.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-builder.mjs","sources":["../../../projects/query-builder/src/lib/query-builder/query-operator.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-field.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-entity.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-switch-group.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-button-group.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-input.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-remove-button.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-empty-warning.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-arrow-icon.directive.ts","../../../projects/query-builder/src/lib/query-builder/query-builder.component.ts","../../../projects/query-builder/src/lib/query-builder/query-builder.component.html","../../../projects/query-builder/src/lib/query-builder.module.ts","../../../projects/query-builder/src/public-api.ts","../../../projects/query-builder/src/query-builder.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\n selector: '[queryOperator]',\n standalone: false\n})\r\nexport class QueryOperatorDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\n selector: '[queryField]',\n standalone: false\n})\r\nexport class QueryFieldDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\n selector: '[queryEntity]',\n standalone: false\n})\r\nexport class QueryEntityDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\n selector: '[querySwitchGroup]',\n standalone: false\n})\r\nexport class QuerySwitchGroupDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\n selector: '[queryButtonGroup]',\n standalone: false\n})\r\nexport class QueryButtonGroupDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\n selector: '[queryInput]',\n standalone: false\n})\r\nexport class QueryInputDirective {\r\n /** Unique name for query input type. */\r\n @Input()\r\n get queryInputType(): string { return this._type; }\r\n set queryInputType(value: string) {\r\n // If the directive is set without a type (updated programatically), then this setter will\r\n // trigger with an empty string and should not overwrite the programatically set value.\r\n if (!value) { return; }\r\n this._type = value;\r\n }\r\n private _type: string;\r\n\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\n selector: '[queryRemoveButton]',\n standalone: false\n})\r\nexport class QueryRemoveButtonDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\n selector: '[queryEmptyWarning]',\n standalone: false\n})\r\nexport class QueryEmptyWarningDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\n selector: '[queryArrowIcon]',\n standalone: false\n})\r\nexport class QueryArrowIconDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NG_VALIDATORS,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\nimport { QueryOperatorDirective } from './query-operator.directive';\r\nimport { QueryFieldDirective } from './query-field.directive';\r\nimport { QueryEntityDirective } from './query-entity.directive';\r\nimport { QuerySwitchGroupDirective } from './query-switch-group.directive';\r\nimport { QueryButtonGroupDirective } from './query-button-group.directive';\r\nimport { QueryInputDirective } from './query-input.directive';\r\nimport { QueryRemoveButtonDirective } from './query-remove-button.directive';\r\nimport { QueryEmptyWarningDirective } from './query-empty-warning.directive';\r\nimport { QueryArrowIconDirective } from './query-arrow-icon.directive';\r\nimport {\r\n ButtonGroupContext,\r\n Entity,\r\n Field,\r\n SwitchGroupContext,\r\n EntityContext,\r\n FieldContext,\r\n InputContext,\r\n LocalRuleMeta,\r\n OperatorContext,\r\n Option,\r\n QueryBuilderClassNames,\r\n QueryBuilderConfig,\r\n RemoveButtonContext,\r\n ArrowIconContext,\r\n Rule,\r\n RuleSet,\r\n EmptyWarningContext,\r\n} from './query-builder.interfaces';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\n\r\nexport const CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QueryBuilderComponent),\r\n multi: true\r\n};\r\n\r\nexport const VALIDATOR: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QueryBuilderComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\n selector: 'query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.scss'],\n providers: [CONTROL_VALUE_ACCESSOR, VALIDATOR],\n standalone: false\n})\r\nexport class QueryBuilderComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\r\n public fields: Field[];\r\n public filterFields: Field[];\r\n public entities: Entity[];\r\n public defaultClassNames: QueryBuilderClassNames = {\r\n arrowIconButton: 'q-arrow-icon-button',\r\n arrowIcon: 'q-icon q-arrow-icon',\r\n removeIcon: 'q-icon q-remove-icon',\r\n addIcon: 'q-icon q-add-icon',\r\n button: 'q-button',\r\n buttonGroup: 'q-button-group',\r\n removeButton: 'q-remove-button',\r\n switchGroup: 'q-switch-group',\r\n switchLabel: 'q-switch-label',\r\n switchRadio: 'q-switch-radio',\r\n rightAlign: 'q-right-align',\r\n transition: 'q-transition',\r\n collapsed: 'q-collapsed',\r\n treeContainer: 'q-tree-container',\r\n tree: 'q-tree',\r\n row: 'q-row',\r\n connector: 'q-connector',\r\n rule: 'q-rule',\r\n ruleSet: 'q-ruleset',\r\n invalidRuleSet: 'q-invalid-ruleset',\r\n emptyWarning: 'q-empty-warning',\r\n fieldControl: 'q-field-control',\r\n fieldControlSize: 'q-control-size',\r\n entityControl: 'q-entity-control',\r\n entityControlSize: 'q-control-size',\r\n operatorControl: 'q-operator-control',\r\n operatorControlSize: 'q-control-size',\r\n inputControl: 'q-input-control',\r\n inputControlSize: 'q-control-size'\r\n };\r\n public defaultOperatorMap: { [key: string]: string[] } = {\r\n string: ['=', '!=', 'contains', 'like'],\r\n number: ['=', '!=', '>', '>=', '<', '<='],\r\n time: ['=', '!=', '>', '>=', '<', '<='],\r\n date: ['=', '!=', '>', '>=', '<', '<='],\r\n category: ['=', '!=', 'in', 'not in'],\r\n boolean: ['=']\r\n };\r\n @Input() disabled: boolean;\r\n @Input() data: RuleSet = { condition: 'and', rules: [] };\r\n\r\n // For ControlValueAccessor interface\r\n public onChangeCallback: () => void;\r\n public onTouchedCallback: () => any;\r\n\r\n @Input() allowRuleset: boolean = true;\r\n @Input() allowCollapse: boolean = false;\r\n @Input() emptyMessage: string = 'A ruleset cannot be empty. Please add a rule or remove it all together.';\r\n @Input() classNames: QueryBuilderClassNames;\r\n @Input() operatorMap: { [key: string]: string[] };\r\n @Input() parentValue: RuleSet;\r\n @Input() config: QueryBuilderConfig = { fields: {} };\r\n @Input() parentArrowIconTemplate: QueryArrowIconDirective;\r\n @Input() parentInputTemplates: QueryList<QueryInputDirective>;\r\n @Input() parentOperatorTemplate: QueryOperatorDirective;\r\n @Input() parentFieldTemplate: QueryFieldDirective;\r\n @Input() parentEntityTemplate: QueryEntityDirective;\r\n @Input() parentSwitchGroupTemplate: QuerySwitchGroupDirective;\r\n @Input() parentButtonGroupTemplate: QueryButtonGroupDirective;\r\n @Input() parentRemoveButtonTemplate: QueryRemoveButtonDirective;\r\n @Input() parentEmptyWarningTemplate: QueryEmptyWarningDirective;\r\n @Input() parentChangeCallback: () => void;\r\n @Input() parentTouchedCallback: () => void;\r\n @Input() persistValueOnFieldChange: boolean = false;\r\n\r\n @ViewChild('treeContainer', {static: true}) treeContainer: ElementRef;\r\n\r\n @ContentChild(QueryButtonGroupDirective) buttonGroupTemplate: QueryButtonGroupDirective;\r\n @ContentChild(QuerySwitchGroupDirective) switchGroupTemplate: QuerySwitchGroupDirective;\r\n @ContentChild(QueryFieldDirective) fieldTemplate: QueryFieldDirective;\r\n @ContentChild(QueryEntityDirective) entityTemplate: QueryEntityDirective;\r\n @ContentChild(QueryOperatorDirective) operatorTemplate: QueryOperatorDirective;\r\n @ContentChild(QueryRemoveButtonDirective) removeButtonTemplate: QueryRemoveButtonDirective;\r\n @ContentChild(QueryEmptyWarningDirective) emptyWarningTemplate: QueryEmptyWarningDirective;\r\n @ContentChildren(QueryInputDirective) inputTemplates: QueryList<QueryInputDirective>;\r\n @ContentChild(QueryArrowIconDirective) arrowIconTemplate: QueryArrowIconDirective;\r\n\r\n private defaultTemplateTypes: string[] = [\r\n 'string', 'number', 'time', 'date', 'category', 'boolean', 'multiselect'];\r\n private defaultPersistValueTypes: string[] = [\r\n 'string', 'number', 'time', 'date', 'boolean'];\r\n private defaultEmptyList: any[] = [];\r\n private operatorsCache: { [key: string]: string[] };\r\n private inputContextCache = new Map<Rule, InputContext>();\r\n private operatorContextCache = new Map<Rule, OperatorContext>();\r\n private fieldContextCache = new Map<Rule, FieldContext>();\r\n private entityContextCache = new Map<Rule, EntityContext>();\r\n private removeButtonContextCache = new Map<Rule, RemoveButtonContext>();\r\n private buttonGroupContext: ButtonGroupContext;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n // ----------OnInit Implementation----------\r\n\r\n ngOnInit() { }\r\n\r\n // ----------OnChanges Implementation----------\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const config = this.config;\r\n const type = typeof config;\r\n if (type === 'object') {\r\n this.fields = Object.keys(config.fields).map((value) => {\r\n const field = config.fields[value];\r\n field.value = field.value || value;\r\n return field;\r\n });\r\n if (config.entities) {\r\n this.entities = Object.keys(config.entities).map((value) => {\r\n const entity = config.entities[value];\r\n entity.value = entity.value || value;\r\n return entity;\r\n });\r\n } else {\r\n this.entities = null;\r\n }\r\n this.operatorsCache = {};\r\n } else {\r\n throw new Error(`Expected 'config' must be a valid object, got ${type} instead.`);\r\n }\r\n }\r\n\r\n // ----------Validator Implementation----------\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const errors: any = {};\r\n const ruleErrorStore = [];\r\n let hasErrors = false;\r\n\r\n if (!this.config.allowEmptyRulesets && this.checkEmptyRuleInRuleset(this.data)) {\r\n errors.empty = 'Empty rulesets are not allowed.';\r\n hasErrors = true;\r\n }\r\n\r\n this.validateRulesInRuleset(this.data, ruleErrorStore);\r\n\r\n if (ruleErrorStore.length) {\r\n errors.rules = ruleErrorStore;\r\n hasErrors = true;\r\n }\r\n return hasErrors ? errors : null;\r\n }\r\n\r\n // ----------ControlValueAccessor Implementation----------\r\n\r\n @Input()\r\n get value(): RuleSet {\r\n return this.data;\r\n }\r\n set value(value: RuleSet) {\r\n // When component is initialized without a formControl, null is passed to value\r\n this.data = value || { condition: 'and', rules: [] };\r\n this.handleDataChange();\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.value = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = () => fn(this.data);\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = () => fn(this.data);\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n // ----------END----------\r\n\r\n getDisabledState = (): boolean => {\r\n return this.disabled;\r\n }\r\n\r\n findTemplateForRule(rule: Rule): TemplateRef<any> {\r\n const type = this.getInputType(rule.field, rule.operator);\r\n if (type) {\r\n const queryInput = this.findQueryInput(type);\r\n if (queryInput) {\r\n return queryInput.template;\r\n } else {\r\n if (this.defaultTemplateTypes.indexOf(type) === -1) {\r\n console.warn(`Could not find template for field with type: ${type}`);\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n findQueryInput(type: string): QueryInputDirective {\r\n const templates = this.parentInputTemplates || this.inputTemplates;\r\n return templates.find((item) => item.queryInputType === type);\r\n }\r\n\r\n getOperators(field: string): string[] {\r\n if (this.operatorsCache[field]) {\r\n return this.operatorsCache[field];\r\n }\r\n let operators = this.defaultEmptyList;\r\n const fieldObject = this.config.fields[field];\r\n\r\n if (this.config.getOperators) {\r\n return this.config.getOperators(field, fieldObject);\r\n }\r\n\r\n const type = fieldObject.type;\r\n\r\n if (fieldObject && fieldObject.operators) {\r\n operators = fieldObject.operators;\r\n } else if (type) {\r\n operators = (this.operatorMap && this.operatorMap[type]) || this.defaultOperatorMap[type] || this.defaultEmptyList;\r\n if (operators.length === 0) {\r\n console.warn(\r\n `No operators found for field '${field}' with type ${fieldObject.type}. ` +\r\n `Please define an 'operators' property on the field or use the 'operatorMap' binding to fix this.`);\r\n }\r\n if (fieldObject.nullable) {\r\n operators = operators.concat(['is null', 'is not null']);\r\n }\r\n } else {\r\n console.warn(`No 'type' property found on field: '${field}'`);\r\n }\r\n\r\n // Cache reference to array object, so it won't be computed next time and trigger a rerender.\r\n this.operatorsCache[field] = operators;\r\n return operators;\r\n }\r\n\r\n getFields(entity: string): Field[] {\r\n if (this.entities && entity) {\r\n return this.fields.filter((field) => {\r\n return field && field.entity === entity;\r\n });\r\n } else {\r\n return this.fields;\r\n }\r\n }\r\n\r\n getInputType(field: string, operator: string): string {\r\n if (this.config.getInputType) {\r\n return this.config.getInputType(field, operator);\r\n }\r\n\r\n if (!this.config.fields[field]) {\r\n throw new Error(`No configuration for field '${field}' could be found! Please add it to config.fields.`);\r\n }\r\n\r\n const type = this.config.fields[field].type;\r\n switch (operator) {\r\n case 'is null':\r\n case 'is not null':\r\n return null; // No displayed component\r\n case 'in':\r\n case 'not in':\r\n return type === 'category' || type === 'boolean' ? 'multiselect' : type;\r\n default:\r\n return type;\r\n }\r\n }\r\n\r\n getOptions(field: string): Option[] {\r\n if (this.config.getOptions) {\r\n return this.config.getOptions(field);\r\n }\r\n return this.config.fields[field].options || this.defaultEmptyList;\r\n }\r\n\r\n getClassNames(...args): string {\r\n const clsLookup = this.classNames ? this.classNames : this.defaultClassNames;\r\n const classNames = args.map((id) => clsLookup[id] || this.defaultClassNames[id]).filter((c) => !!c);\r\n return classNames.length ? classNames.join(' ') : null;\r\n }\r\n\r\n getDefaultField(entity: Entity): Field {\r\n if (!entity) {\r\n return null;\r\n } else if (entity.defaultField !== undefined) {\r\n return this.getDefaultValue(entity.defaultField);\r\n } else {\r\n const entityFields = this.fields.filter((field) => {\r\n return field && field.entity === entity.value;\r\n });\r\n if (entityFields && entityFields.length) {\r\n return entityFields[0];\r\n } else {\r\n console.warn(`No fields found for entity '${entity.name}'. ` +\r\n `A 'defaultOperator' is also not specified on the field config. Operator value will default to null.`);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n getDefaultOperator(field: Field): string {\r\n if (field && field.defaultOperator !== undefined) {\r\n return this.getDefaultValue(field.defaultOperator);\r\n } else {\r\n const operators = this.getOperators(field.value);\r\n if (operators && operators.length) {\r\n return operators[0];\r\n } else {\r\n console.warn(`No operators found for field '${field.value}'. ` +\r\n `A 'defaultOperator' is also not specified on the field config. Operator value will default to null.`);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n addRule(parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.addRule) {\r\n this.config.addRule(parent);\r\n } else {\r\n const field = this.fields[0];\r\n parent.rules = parent.rules.concat([{\r\n field: field.value,\r\n operator: this.getDefaultOperator(field),\r\n value: this.getDefaultValue(field.defaultValue),\r\n entity: field.entity\r\n }]);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n removeRule(rule: Rule, parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.removeRule) {\r\n this.config.removeRule(rule, parent);\r\n } else {\r\n parent.rules = parent.rules.filter((r) => r !== rule);\r\n }\r\n this.inputContextCache.delete(rule);\r\n this.operatorContextCache.delete(rule);\r\n this.fieldContextCache.delete(rule);\r\n this.entityContextCache.delete(rule);\r\n this.removeButtonContextCache.delete(rule);\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n addRuleSet(parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.addRuleSet) {\r\n this.config.addRuleSet(parent);\r\n } else {\r\n parent.rules = parent.rules.concat([{ condition: 'and', rules: [] }]);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n removeRuleSet(ruleset?: RuleSet, parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n ruleset = ruleset || this.data;\r\n parent = parent || this.parentValue;\r\n if (this.config.removeRuleSet) {\r\n this.config.removeRuleSet(ruleset, parent);\r\n } else {\r\n parent.rules = parent.rules.filter((r) => r !== ruleset);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n transitionEnd(e: Event): void {\r\n this.treeContainer.nativeElement.style.maxHeight = null;\r\n }\r\n\r\n toggleCollapse(): void {\r\n this.computedTreeContainerHeight();\r\n setTimeout(() => {\r\n this.data.collapsed = !this.data.collapsed;\r\n }, 100);\r\n }\r\n\r\n computedTreeContainerHeight(): void {\r\n const nativeElement: HTMLElement = this.treeContainer.nativeElement;\r\n if (nativeElement && nativeElement.firstElementChild) {\r\n nativeElement.style.maxHeight = (nativeElement.firstElementChild.clientHeight + 8) + 'px';\r\n }\r\n }\r\n\r\n changeCondition(value: string): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.data.condition = value;\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeOperator(rule: Rule): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n if (this.config.coerceValueForOperator) {\r\n rule.value = this.config.coerceValueForOperator(rule.operator, rule.value, rule);\r\n } else {\r\n rule.value = this.coerceValueForOperator(rule.operator, rule.value, rule);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n coerceValueForOperator(operator: string, value: any, rule: Rule): any {\r\n const inputType: string = this.getInputType(rule.field, operator);\r\n if (inputType === 'multiselect' && !Array.isArray(value)) {\r\n return [value];\r\n }\r\n return value;\r\n }\r\n\r\n changeInput(): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeField(fieldValue: string, rule: Rule): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n const inputContext = this.inputContextCache.get(rule);\r\n const currentField = inputContext && inputContext.field;\r\n\r\n const nextField: Field = this.config.fields[fieldValue];\r\n\r\n const nextValue = this.calculateFieldChangeValue(\r\n currentField, nextField, rule.value);\r\n\r\n if (nextValue !== undefined) {\r\n rule.value = nextValue;\r\n } else {\r\n delete rule.value;\r\n }\r\n\r\n rule.operator = this.getDefaultOperator(nextField);\r\n\r\n // Create new context objects so templates will automatically update\r\n this.inputContextCache.delete(rule);\r\n this.operatorContextCache.delete(rule);\r\n this.fieldContextCache.delete(rule);\r\n this.entityContextCache.delete(rule);\r\n this.getInputContext(rule);\r\n this.getFieldContext(rule);\r\n this.getOperatorContext(rule);\r\n this.getEntityContext(rule);\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeEntity(entityValue: string, rule: Rule, index: number, data: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n let i = index;\r\n let rs = data;\r\n const entity: Entity = this.entities.find((e) => e.value === entityValue);\r\n const defaultField: Field = this.getDefaultField(entity);\r\n if (!rs) {\r\n rs = this.data;\r\n i = rs.rules.findIndex((x) => x === rule);\r\n }\r\n rule.field = defaultField.value;\r\n rs.rules[i] = rule;\r\n if (defaultField) {\r\n this.changeField(defaultField.value, rule);\r\n } else {\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n }\r\n\r\n getDefaultValue(defaultValue: any): any {\r\n switch (typeof defaultValue) {\r\n case 'function':\r\n return defaultValue();\r\n default:\r\n return defaultValue;\r\n }\r\n }\r\n\r\n getOperatorTemplate(): TemplateRef<any> {\r\n const t = this.parentOperatorTemplate || this.operatorTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getFieldTemplate(): TemplateRef<any> {\r\n const t = this.parentFieldTemplate || this.fieldTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getEntityTemplate(): TemplateRef<any> {\r\n const t = this.parentEntityTemplate || this.entityTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getArrowIconTemplate(): TemplateRef<any> {\r\n const t = this.parentArrowIconTemplate || this.arrowIconTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getButtonGroupTemplate(): TemplateRef<any> {\r\n const t = this.parentButtonGroupTemplate || this.buttonGroupTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getSwitchGroupTemplate(): TemplateRef<any> {\r\n const t = this.parentSwitchGroupTemplate || this.switchGroupTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getRemoveButtonTemplate(): TemplateRef<any> {\r\n const t = this.parentRemoveButtonTemplate || this.removeButtonTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getEmptyWarningTemplate(): TemplateRef<any> {\r\n const t = this.parentEmptyWarningTemplate || this.emptyWarningTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getQueryItemClassName(local: LocalRuleMeta): string {\r\n let cls = this.getClassNames('row', 'connector', 'transition');\r\n cls += ' ' + this.getClassNames(local.ruleset ? 'ruleSet' : 'rule');\r\n if (local.invalid) {\r\n cls += ' ' + this.getClassNames('invalidRuleSet');\r\n }\r\n return cls;\r\n }\r\n\r\n getButtonGroupContext(): ButtonGroupContext {\r\n if (!this.buttonGroupContext) {\r\n this.buttonGroupContext = {\r\n addRule: this.addRule.bind(this),\r\n addRuleSet: this.allowRuleset && this.addRuleSet.bind(this),\r\n removeRuleSet: this.allowRuleset && this.parentValue && this.removeRuleSet.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n return this.buttonGroupContext;\r\n }\r\n\r\n getRemoveButtonContext(rule: Rule): RemoveButtonContext {\r\n if (!this.removeButtonContextCache.has(rule)) {\r\n this.removeButtonContextCache.set(rule, {\r\n removeRule: this.removeRule.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: rule\r\n });\r\n }\r\n return this.removeButtonContextCache.get(rule);\r\n }\r\n\r\n getFieldContext(rule: Rule): FieldContext {\r\n if (!this.fieldContextCache.has(rule)) {\r\n this.fieldContextCache.set(rule, {\r\n onChange: this.changeField.bind(this),\r\n getFields: this.getFields.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n fields: this.fields,\r\n $implicit: rule\r\n });\r\n }\r\n return this.fieldContextCache.get(rule);\r\n }\r\n\r\n getEntityContext(rule: Rule): EntityContext {\r\n if (!this.entityContextCache.has(rule)) {\r\n this.entityContextCache.set(rule, {\r\n onChange: this.changeEntity.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n entities: this.entities,\r\n $implicit: rule\r\n });\r\n }\r\n return this.entityContextCache.get(rule);\r\n }\r\n\r\n getSwitchGroupContext(): SwitchGroupContext {\r\n return {\r\n onChange: this.changeCondition.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getArrowIconContext(): ArrowIconContext {\r\n return {\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getEmptyWarningContext(): EmptyWarningContext {\r\n return {\r\n getDisabledState: this.getDisabledState,\r\n message: this.emptyMessage,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getOperatorContext(rule: Rule): OperatorContext {\r\n if (!this.operatorContextCache.has(rule)) {\r\n this.operatorContextCache.set(rule, {\r\n onChange: this.changeOperator.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n operators: this.getOperators(rule.field),\r\n $implicit: rule\r\n });\r\n }\r\n return this.operatorContextCache.get(rule);\r\n }\r\n\r\n getInputContext(rule: Rule): InputContext {\r\n if (!this.inputContextCache.has(rule)) {\r\n this.inputContextCache.set(rule, {\r\n onChange: this.changeInput.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n options: this.getOptions(rule.field),\r\n field: this.config.fields[rule.field],\r\n $implicit: rule\r\n });\r\n }\r\n return this.inputContextCache.get(rule);\r\n }\r\n\r\n private calculateFieldChangeValue(\r\n currentField: Field,\r\n nextField: Field,\r\n currentValue: any\r\n ): any {\r\n\r\n if (this.config.calculateFieldChangeValue != null) {\r\n return this.config.calculateFieldChangeValue(\r\n currentField, nextField, currentValue);\r\n }\r\n\r\n const canKeepValue = () => {\r\n if (currentField == null || nextField == null) {\r\n return false;\r\n }\r\n return currentField.type === nextField.type\r\n && this.defaultPersistValueTypes.indexOf(currentField.type) !== -1;\r\n };\r\n\r\n if (this.persistValueOnFieldChange && canKeepValue()) {\r\n return currentValue;\r\n }\r\n\r\n if (nextField && nextField.defaultValue !== undefined) {\r\n return this.getDefaultValue(nextField.defaultValue);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private checkEmptyRuleInRuleset(ruleset: RuleSet): boolean {\r\n if (!ruleset || !ruleset.rules || ruleset.rules.length === 0) {\r\n return true;\r\n } else {\r\n return ruleset.rules.some((item: RuleSet) => {\r\n if (item.rules) {\r\n return this.checkEmptyRuleInRuleset(item);\r\n } else {\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private validateRulesInRuleset(ruleset: RuleSet, errorStore: any[]) {\r\n if (ruleset && ruleset.rules && ruleset.rules.length > 0) {\r\n ruleset.rules.forEach((item) => {\r\n if ((item as RuleSet).rules) {\r\n return this.validateRulesInRuleset(item as RuleSet, errorStore);\r\n } else if ((item as Rule).field) {\r\n const field = this.config.fields[(item as Rule).field];\r\n if (field && field.validator && field.validator.apply) {\r\n const error = field.validator(item as Rule, ruleset);\r\n if (error != null) {\r\n errorStore.push(error);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n private handleDataChange(): void {\r\n this.changeDetectorRef.markForCheck();\r\n if (this.onChangeCallback) {\r\n this.onChangeCallback();\r\n }\r\n if (this.parentChangeCallback) {\r\n this.parentChangeCallback();\r\n }\r\n }\r\n\r\n private handleTouched(): void {\r\n if (this.onTouchedCallback) {\r\n this.onTouchedCallback();\r\n }\r\n if (this.parentTouchedCallback) {\r\n this.parentTouchedCallback();\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"getClassNames('switchRow')\">\n\n @if (allowCollapse) {\n <a (click)=\"toggleCollapse()\" [ngClass]=\"getClassNames('arrowIconButton', data.collapsed ? 'collapsed' : null)\">\n @if (getArrowIconTemplate(); as template) {\n <ng-container *ngTemplateOutlet=\"template; context: getArrowIconContext()\"></ng-container>\n } @else {\n <i [ngClass]=\"getClassNames('arrowIcon')\"></i>\n }\n </a>\n }\n\n @if (getButtonGroupTemplate(); as template) {\n <div [ngClass]=\"getClassNames('buttonGroup', 'rightAlign')\">\n <ng-container *ngTemplateOutlet=\"template; context: getButtonGroupContext()\"></ng-container>\n </div>\n } @else {\n <div [ngClass]=\"getClassNames('buttonGroup', 'rightAlign')\">\n <button type=\"button\" (click)=\"addRule()\" [ngClass]=\"getClassNames('button')\" [disabled]=disabled>\n <i [ngClass]=\"getClassNames('addIcon')\"></i> Rule\n </button>\n @if (allowRuleset) {\n <button type=\"button\" (click)=\"addRuleSet()\" [ngClass]=\"getClassNames('button')\" [disabled]=disabled>\n <i [ngClass]=\"getClassNames('addIcon')\"></i> Ruleset\n </button>\n }\n @if (!!parentValue && allowRuleset) {\n <button type=\"button\" (click)=\"removeRuleSet()\" [ngClass]=\"getClassNames('button', 'removeButton')\" [disabled]=disabled>\n <i [ngClass]=\"getClassNames('removeIcon')\"></i>\n </button>\n }\n </div>\n }\n\n\n @if (getSwitchGroupTemplate(); as template) {\n <ng-container *ngTemplateOutlet=\"template; context: getSwitchGroupContext()\"></ng-container>\n } @else {\n @if (data) {\n <div [ngClass]=\"getClassNames('switchGroup', 'transition')\">\n <div [ngClass]=\"getClassNames('switchControl')\">\n <input type=\"radio\" [ngClass]=\"getClassNames('switchRadio')\" [(ngModel)]=\"data.condition\" [disabled]=disabled\n value=\"and\" #andOption />\n <label (click)=\"changeCondition(andOption.value)\" [ngClass]=\"getClassNames('switchLabel')\">AND</label>\n </div>\n <div [ngClass]=\"getClassNames('switchControl')\">\n <input type=\"radio\" [ngClass]=\"getClassNames('switchRadio')\" [(ngModel)]=\"data.condition\" [disabled]=disabled\n value=\"or\" #orOption />\n <label (click)=\"changeCondition(orOption.value)\" [ngClass]=\"getClassNames('switchLabel')\">OR</label>\n </div>\n </div>\n }\n }\n\n </div>\n\n <div #treeContainer (transitionend)=\"transitionEnd($event)\" [ngClass]=\"getClassNames('treeContainer', data.collapsed ? 'collapsed' : null)\">\n @if (data && data.rules) {\n <ul [ngClass]=\"getClassNames('tree')\">\n @for (rule of data.rules; track rule; let i = $index) {\n @if ({ruleset: !!rule.rules, invalid: !config.allowEmptyRulesets && rule.rules && rule.rules.length === 0}; as local) {\n <li [ngClass]=\"getQueryItemClassName(local)\">\n @if (!local.ruleset) {\n @if (getRemoveButtonTemplate(); as template) {\n <div [ngClass]=\"getClassNames('buttonGroup', 'rightAlign')\">\n <ng-container *ngTemplateOutlet=\"template; context: getRemoveButtonContext(rule)\"></ng-container>\n </div>\n } @else {\n <div [ngClass]=\"getClassNames('removeButtonSize', 'rightAlign')\">\n <button type=\"button\" [ngClass]=\"getClassNames('button', 'removeButton')\" (click)=\"removeRule(rule, data)\" [disabled]=disabled>\n <i [ngClass]=\"getClassNames('removeIcon')\"></i>\n </button>\n </div>\n }\n @if (entities?.length > 0) {\n <div class=\"q-inline-block-display\">\n @if (getEntityTemplate(); as template) {\n <ng-container *ngTemplateOutlet=\"template; context: getEntityContext(rule)\"></ng-container>\n } @else {\n <div [ngClass]=\"getClassNames('entityControlSize')\">\n <select [ngClass]=\"getClassNames('entityControl')\" [(ngModel)]=\"rule.entity\" (ngModelChange)=\"changeEntity($event, rule,i,data)\"\n [disabled]=\"disabled\">\n @for (entity of entities; track entity) {\n <option [ngValue]=\"entity.value\">\n {{entity.name}}\n </option>\n }\n </select>\n </div>\n }\n </div>\n }\n @if (getFieldTemplate(); as template) {\n <ng-container *ngTemplateOutlet=\"template; context: getFieldContext(rule)\"></ng-container>\n } @else {\n <div [ngClass]=\"getClassNames('fieldControlSize')\">\n <select [ngClass]=\"getClassNames('fieldControl')\" [(ngModel)]=\"rule.field\" (ngModelChange)=\"changeField($event, rule)\"\n [disabled]=\"disabled\">\n @for (field of getFields(rule.entity); track field) {\n <option [ngValue]=\"field.value\">\n {{field.name}}\n </option>\n }\n </select>\n </div>\n }\n @if (getOperatorTemplate(); as template) {\n <ng-container *ngTemplateOutlet=\"template; context: getOperatorContext(rule)\"></ng-container>\n } @else {\n <div [ngClass]=\"getClassNames('operatorControlSize')\">\n <select [ngClass]=\"getClassNames('operatorControl')\" [(ngModel)]=\"rule.operator\" (ngModelChange)=\"changeOperator(rule)\"\n [disabled]=\"disabled\">\n @for (operator of getOperators(rule.field); track operator) {\n <option [ngValue]=\"operator\">\n {{operator}}\n </option>\n }\n </select>\n </div>\n }\n @if (findTemplateForRule(rule); as template) {\n <ng-container *ngTemplateOutlet=\"template; context: getInputContext(rule)\"></ng-container>\n } @else {\n <div [ngClass]=\"getClassNames('inputControlSize')\">\n @switch (getInputType(rule.field, rule.operator)) {\n @case ('string') {\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\n [disabled]=\"disabled\" type=\"text\">\n }\n @case ('number') {\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\n [disabled]=\"disabled\" type=\"number\">\n }\n @case ('date') {\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\n [disabled]=\"disabled\" type=\"date\">\n }\n @case ('time') {\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\n [disabled]=\"disabled\" type=\"time\">\n }\n @case ('category') {\n <select [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\n [disabled]=\"disabled\">\n @for (opt of getOptions(rule.field); track opt) {\n <option [ngValue]=\"opt.value\">\n {{opt.name}}\n </option>\n }\n </select>\n }\n @case ('multiselect') {\n <select [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\n [disabled]=\"disabled\" multiple>\n @for (opt of getOptions(rule.field); track opt) {\n <option [ngValue]=\"opt.value\">\n {{opt.name}}\n </option>\n }\n </select>\n }\n @case ('boolean') {\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\n [disabled]=\"disabled\" type=\"checkbox\">\n }\n }\n </div>\n }\n }\n @if (local.ruleset) {\n <query-builder [data]=\"rule\" [disabled]=\"disabled\" [parentTouchedCallback]=\"parentTouchedCallback || onTouchedCallback\"\n [parentChangeCallback]=\"parentChangeCallback || onChangeCallback\" [parentInputTemplates]=\"parentInputTemplates || inputTemplates\"\n [parentOperatorTemplate]=\"parentOperatorTemplate || operatorTemplate\" [parentFieldTemplate]=\"parentFieldTemplate || fieldTemplate\"\n [parentEntityTemplate]=\"parentEntityTemplate || entityTemplate\" [parentSwitchGroupTemplate]=\"parentSwitchGroupTemplate || switchGroupTemplate\"\n [parentButtonGroupTemplate]=\"parentButtonGroupTemplate || buttonGroupTemplate\" [parentRemoveButtonTemplate]=\"parentRemoveButtonTemplate || removeButtonTemplate\"\n [parentEmptyWarningTemplate]=\"parentEmptyWarningTemplate || emptyWarningTemplate\" [parentArrowIconTemplate]=\"parentArrowIconTemplate || arrowIconTemplate\"\n [parentValue]=\"data\" [classNames]=\"classNames\" [config]=\"config\" [allowRuleset]=\"allowRuleset\"\n [allowCollapse]=\"allowCollapse\" [emptyMessage]=\"emptyMessage\" [operatorMap]=\"operatorMap\">\n </query-builder>\n }\n @if (getEmptyWarningTemplate(); as template) {\n @if (local.invalid) {\n <ng-container *ngTemplateOutlet=\"template; context: getEmptyWarningContext()\"></ng-container>\n }\n } @else {\n @if (local.invalid) {\n <p [ngClass]=\"getClassNames('emptyWarning')\">\n {{emptyMessage}}\n </p>\n }\n }\n </li>\n }\n }\n </ul>\n }\n </div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, } from '@angular/forms';\r\n\r\nimport { QueryBuilderComponent } from './query-builder/query-builder.component';\r\n\r\nimport { QueryArrowIconDirective } from './query-builder/query-arrow-icon.directive';\r\nimport { QueryFieldDirective } from './query-builder/query-field.directive';\r\nimport { QueryInputDirective } from './query-builder/query-input.directive';\r\nimport { QueryEntityDirective } from './query-builder/query-entity.directive';\r\nimport { QueryOperatorDirective } from './query-builder/query-operator.directive';\r\nimport { QueryButtonGroupDirective } from './query-builder/query-button-group.directive';\r\nimport { QuerySwitchGroupDirective } from './query-builder/query-switch-group.directive';\r\nimport { QueryRemoveButtonDirective } from './query-builder/query-remove-button.directive';\r\nimport { QueryEmptyWarningDirective } from './query-builder/query-empty-warning.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n QueryBuilderComponent,\r\n QueryInputDirective,\r\n QueryOperatorDirective,\r\n QueryFieldDirective,\r\n QueryEntityDirective,\r\n QueryButtonGroupDirective,\r\n QuerySwitchGroupDirective,\r\n QueryRemoveButtonDirective,\r\n QueryEmptyWarningDirective,\r\n QueryArrowIconDirective\r\n ],\r\n exports: [\r\n QueryBuilderComponent,\r\n QueryInputDirective,\r\n QueryOperatorDirective,\r\n QueryFieldDirective,\r\n QueryEntityDirective,\r\n QueryButtonGroupDirective,\r\n QuerySwitchGroupDirective,\r\n QueryRemoveButtonDirective,\r\n QueryEmptyWarningDirective,\r\n QueryArrowIconDirective\r\n ]\r\n})\r\nexport class QueryBuilderModule { }\r\n","/*\r\n * Public API Surface of angular2-query-builder\r\n */\r\n\r\nexport * from './lib/query-builder/query-builder.interfaces';\r\n\r\nexport * from './lib/query-builder/query-builder.component';\r\n\r\nexport * from './lib/query-builder/query-button-group.directive';\r\nexport * from './lib/query-builder/query-entity.directive';\r\nexport * from './lib/query-builder/query-field.directive';\r\nexport * from './lib/query-builder/query-input.directive';\r\nexport * from './lib/query-builder/query-operator.directive';\r\nexport * from './lib/query-builder/query-switch-group.directive';\r\nexport * from './lib/query-builder/query-remove-button.directive';\r\nexport * from './lib/query-builder/query-empty-warning.directive';\r\nexport * from './lib/query-builder/query-arrow-icon.directive';\r\n\r\nexport * from './lib/query-builder.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}