@super-green/query-builder 0.7.2

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 (34) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +340 -0
  3. package/dist/query-builder/README.md +24 -0
  4. package/dist/query-builder/esm2022/lib/query-builder/query-arrow-icon.directive.mjs +15 -0
  5. package/dist/query-builder/esm2022/lib/query-builder/query-builder.component.mjs +769 -0
  6. package/dist/query-builder/esm2022/lib/query-builder/query-builder.interfaces.mjs +2 -0
  7. package/dist/query-builder/esm2022/lib/query-builder/query-button-group.directive.mjs +15 -0
  8. package/dist/query-builder/esm2022/lib/query-builder/query-empty-warning.directive.mjs +15 -0
  9. package/dist/query-builder/esm2022/lib/query-builder/query-entity.directive.mjs +15 -0
  10. package/dist/query-builder/esm2022/lib/query-builder/query-field.directive.mjs +15 -0
  11. package/dist/query-builder/esm2022/lib/query-builder/query-input.directive.mjs +28 -0
  12. package/dist/query-builder/esm2022/lib/query-builder/query-operator.directive.mjs +15 -0
  13. package/dist/query-builder/esm2022/lib/query-builder/query-remove-button.directive.mjs +15 -0
  14. package/dist/query-builder/esm2022/lib/query-builder/query-switch-group.directive.mjs +15 -0
  15. package/dist/query-builder/esm2022/lib/query-builder.module.mjs +73 -0
  16. package/dist/query-builder/esm2022/public-api.mjs +16 -0
  17. package/dist/query-builder/esm2022/query-builder.mjs +5 -0
  18. package/dist/query-builder/fesm2022/query-builder.mjs +961 -0
  19. package/dist/query-builder/fesm2022/query-builder.mjs.map +1 -0
  20. package/dist/query-builder/index.d.ts +5 -0
  21. package/dist/query-builder/lib/query-builder/query-arrow-icon.directive.d.ts +8 -0
  22. package/dist/query-builder/lib/query-builder/query-builder.component.d.ts +129 -0
  23. package/dist/query-builder/lib/query-builder/query-builder.interfaces.d.ts +143 -0
  24. package/dist/query-builder/lib/query-builder/query-button-group.directive.d.ts +8 -0
  25. package/dist/query-builder/lib/query-builder/query-empty-warning.directive.d.ts +8 -0
  26. package/dist/query-builder/lib/query-builder/query-entity.directive.d.ts +8 -0
  27. package/dist/query-builder/lib/query-builder/query-field.directive.d.ts +8 -0
  28. package/dist/query-builder/lib/query-builder/query-input.directive.d.ts +12 -0
  29. package/dist/query-builder/lib/query-builder/query-operator.directive.d.ts +8 -0
  30. package/dist/query-builder/lib/query-builder/query-remove-button.directive.d.ts +8 -0
  31. package/dist/query-builder/lib/query-builder/query-switch-group.directive.d.ts +8 -0
  32. package/dist/query-builder/lib/query-builder.module.d.ts +18 -0
  33. package/dist/query-builder/public-api.d.ts +12 -0
  34. package/package.json +56 -0
@@ -0,0 +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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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="query-builder" />
5
+ export * from './public-api';
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class QueryArrowIconDirective {
4
+ template: TemplateRef<any>;
5
+ constructor(template: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryArrowIconDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<QueryArrowIconDirective, "[queryArrowIcon]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -0,0 +1,129 @@
1
+ import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
2
+ import { QueryOperatorDirective } from './query-operator.directive';
3
+ import { QueryFieldDirective } from './query-field.directive';
4
+ import { QueryEntityDirective } from './query-entity.directive';
5
+ import { QuerySwitchGroupDirective } from './query-switch-group.directive';
6
+ import { QueryButtonGroupDirective } from './query-button-group.directive';
7
+ import { QueryInputDirective } from './query-input.directive';
8
+ import { QueryRemoveButtonDirective } from './query-remove-button.directive';
9
+ import { QueryEmptyWarningDirective } from './query-empty-warning.directive';
10
+ import { QueryArrowIconDirective } from './query-arrow-icon.directive';
11
+ import { ButtonGroupContext, Entity, Field, SwitchGroupContext, EntityContext, FieldContext, InputContext, LocalRuleMeta, OperatorContext, Option, QueryBuilderClassNames, QueryBuilderConfig, RemoveButtonContext, ArrowIconContext, Rule, RuleSet, EmptyWarningContext } from './query-builder.interfaces';
12
+ import { ChangeDetectorRef, OnChanges, OnInit, QueryList, SimpleChanges, TemplateRef, ElementRef } from '@angular/core';
13
+ import * as i0 from "@angular/core";
14
+ export declare const CONTROL_VALUE_ACCESSOR: any;
15
+ export declare const VALIDATOR: any;
16
+ export declare class QueryBuilderComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {
17
+ private changeDetectorRef;
18
+ fields: Field[];
19
+ filterFields: Field[];
20
+ entities: Entity[];
21
+ defaultClassNames: QueryBuilderClassNames;
22
+ defaultOperatorMap: {
23
+ [key: string]: string[];
24
+ };
25
+ disabled: boolean;
26
+ data: RuleSet;
27
+ onChangeCallback: () => void;
28
+ onTouchedCallback: () => any;
29
+ allowRuleset: boolean;
30
+ allowCollapse: boolean;
31
+ emptyMessage: string;
32
+ classNames: QueryBuilderClassNames;
33
+ operatorMap: {
34
+ [key: string]: string[];
35
+ };
36
+ parentValue: RuleSet;
37
+ config: QueryBuilderConfig;
38
+ parentArrowIconTemplate: QueryArrowIconDirective;
39
+ parentInputTemplates: QueryList<QueryInputDirective>;
40
+ parentOperatorTemplate: QueryOperatorDirective;
41
+ parentFieldTemplate: QueryFieldDirective;
42
+ parentEntityTemplate: QueryEntityDirective;
43
+ parentSwitchGroupTemplate: QuerySwitchGroupDirective;
44
+ parentButtonGroupTemplate: QueryButtonGroupDirective;
45
+ parentRemoveButtonTemplate: QueryRemoveButtonDirective;
46
+ parentEmptyWarningTemplate: QueryEmptyWarningDirective;
47
+ parentChangeCallback: () => void;
48
+ parentTouchedCallback: () => void;
49
+ persistValueOnFieldChange: boolean;
50
+ treeContainer: ElementRef;
51
+ buttonGroupTemplate: QueryButtonGroupDirective;
52
+ switchGroupTemplate: QuerySwitchGroupDirective;
53
+ fieldTemplate: QueryFieldDirective;
54
+ entityTemplate: QueryEntityDirective;
55
+ operatorTemplate: QueryOperatorDirective;
56
+ removeButtonTemplate: QueryRemoveButtonDirective;
57
+ emptyWarningTemplate: QueryEmptyWarningDirective;
58
+ inputTemplates: QueryList<QueryInputDirective>;
59
+ arrowIconTemplate: QueryArrowIconDirective;
60
+ private defaultTemplateTypes;
61
+ private defaultPersistValueTypes;
62
+ private defaultEmptyList;
63
+ private operatorsCache;
64
+ private inputContextCache;
65
+ private operatorContextCache;
66
+ private fieldContextCache;
67
+ private entityContextCache;
68
+ private removeButtonContextCache;
69
+ private buttonGroupContext;
70
+ constructor(changeDetectorRef: ChangeDetectorRef);
71
+ ngOnInit(): void;
72
+ ngOnChanges(changes: SimpleChanges): void;
73
+ validate(control: AbstractControl): ValidationErrors | null;
74
+ get value(): RuleSet;
75
+ set value(value: RuleSet);
76
+ writeValue(obj: any): void;
77
+ registerOnChange(fn: any): void;
78
+ registerOnTouched(fn: any): void;
79
+ setDisabledState(isDisabled: boolean): void;
80
+ getDisabledState: () => boolean;
81
+ findTemplateForRule(rule: Rule): TemplateRef<any>;
82
+ findQueryInput(type: string): QueryInputDirective;
83
+ getOperators(field: string): string[];
84
+ getFields(entity: string): Field[];
85
+ getInputType(field: string, operator: string): string;
86
+ getOptions(field: string): Option[];
87
+ getClassNames(...args: any[]): string;
88
+ getDefaultField(entity: Entity): Field;
89
+ getDefaultOperator(field: Field): string;
90
+ addRule(parent?: RuleSet): void;
91
+ removeRule(rule: Rule, parent?: RuleSet): void;
92
+ addRuleSet(parent?: RuleSet): void;
93
+ removeRuleSet(ruleset?: RuleSet, parent?: RuleSet): void;
94
+ transitionEnd(e: Event): void;
95
+ toggleCollapse(): void;
96
+ computedTreeContainerHeight(): void;
97
+ changeCondition(value: string): void;
98
+ changeOperator(rule: Rule): void;
99
+ coerceValueForOperator(operator: string, value: any, rule: Rule): any;
100
+ changeInput(): void;
101
+ changeField(fieldValue: string, rule: Rule): void;
102
+ changeEntity(entityValue: string, rule: Rule, index: number, data: RuleSet): void;
103
+ getDefaultValue(defaultValue: any): any;
104
+ getOperatorTemplate(): TemplateRef<any>;
105
+ getFieldTemplate(): TemplateRef<any>;
106
+ getEntityTemplate(): TemplateRef<any>;
107
+ getArrowIconTemplate(): TemplateRef<any>;
108
+ getButtonGroupTemplate(): TemplateRef<any>;
109
+ getSwitchGroupTemplate(): TemplateRef<any>;
110
+ getRemoveButtonTemplate(): TemplateRef<any>;
111
+ getEmptyWarningTemplate(): TemplateRef<any>;
112
+ getQueryItemClassName(local: LocalRuleMeta): string;
113
+ getButtonGroupContext(): ButtonGroupContext;
114
+ getRemoveButtonContext(rule: Rule): RemoveButtonContext;
115
+ getFieldContext(rule: Rule): FieldContext;
116
+ getEntityContext(rule: Rule): EntityContext;
117
+ getSwitchGroupContext(): SwitchGroupContext;
118
+ getArrowIconContext(): ArrowIconContext;
119
+ getEmptyWarningContext(): EmptyWarningContext;
120
+ getOperatorContext(rule: Rule): OperatorContext;
121
+ getInputContext(rule: Rule): InputContext;
122
+ private calculateFieldChangeValue;
123
+ private checkEmptyRuleInRuleset;
124
+ private validateRulesInRuleset;
125
+ private handleDataChange;
126
+ private handleTouched;
127
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryBuilderComponent, never>;
128
+ static ɵcmp: i0.ɵɵComponentDeclaration<QueryBuilderComponent, "query-builder", never, { "disabled": { "alias": "disabled"; "required": false; }; "data": { "alias": "data"; "required": false; }; "allowRuleset": { "alias": "allowRuleset"; "required": false; }; "allowCollapse": { "alias": "allowCollapse"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "classNames": { "alias": "classNames"; "required": false; }; "operatorMap": { "alias": "operatorMap"; "required": false; }; "parentValue": { "alias": "parentValue"; "required": false; }; "config": { "alias": "config"; "required": false; }; "parentArrowIconTemplate": { "alias": "parentArrowIconTemplate"; "required": false; }; "parentInputTemplates": { "alias": "parentInputTemplates"; "required": false; }; "parentOperatorTemplate": { "alias": "parentOperatorTemplate"; "required": false; }; "parentFieldTemplate": { "alias": "parentFieldTemplate"; "required": false; }; "parentEntityTemplate": { "alias": "parentEntityTemplate"; "required": false; }; "parentSwitchGroupTemplate": { "alias": "parentSwitchGroupTemplate"; "required": false; }; "parentButtonGroupTemplate": { "alias": "parentButtonGroupTemplate"; "required": false; }; "parentRemoveButtonTemplate": { "alias": "parentRemoveButtonTemplate"; "required": false; }; "parentEmptyWarningTemplate": { "alias": "parentEmptyWarningTemplate"; "required": false; }; "parentChangeCallback": { "alias": "parentChangeCallback"; "required": false; }; "parentTouchedCallback": { "alias": "parentTouchedCallback"; "required": false; }; "persistValueOnFieldChange": { "alias": "persistValueOnFieldChange"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, ["buttonGroupTemplate", "switchGroupTemplate", "fieldTemplate", "entityTemplate", "operatorTemplate", "removeButtonTemplate", "emptyWarningTemplate", "arrowIconTemplate", "inputTemplates"], never, false, never>;
129
+ }
@@ -0,0 +1,143 @@
1
+ export interface RuleSet {
2
+ condition: string;
3
+ rules: Array<RuleSet | Rule>;
4
+ collapsed?: boolean;
5
+ isChild?: boolean;
6
+ }
7
+ export interface Rule {
8
+ field: string;
9
+ value?: any;
10
+ operator?: string;
11
+ entity?: string;
12
+ }
13
+ export interface Option {
14
+ name: string;
15
+ value: any;
16
+ }
17
+ export interface FieldMap {
18
+ [key: string]: Field;
19
+ }
20
+ export interface Field {
21
+ name: string;
22
+ value?: string;
23
+ type: string;
24
+ nullable?: boolean;
25
+ options?: Option[];
26
+ operators?: string[];
27
+ defaultValue?: any;
28
+ defaultOperator?: any;
29
+ entity?: string;
30
+ validator?: (rule: Rule, parent: RuleSet) => any | null;
31
+ }
32
+ export interface LocalRuleMeta {
33
+ ruleset: boolean;
34
+ invalid: boolean;
35
+ }
36
+ export interface EntityMap {
37
+ [key: string]: Entity;
38
+ }
39
+ export interface Entity {
40
+ name: string;
41
+ value?: string;
42
+ defaultField?: any;
43
+ }
44
+ export interface QueryBuilderClassNames {
45
+ arrowIconButton?: string;
46
+ arrowIcon?: string;
47
+ removeIcon?: string;
48
+ addIcon?: string;
49
+ button?: string;
50
+ buttonGroup?: string;
51
+ removeButton?: string;
52
+ removeButtonSize?: string;
53
+ switchRow?: string;
54
+ switchGroup?: string;
55
+ switchLabel?: string;
56
+ switchRadio?: string;
57
+ switchControl?: string;
58
+ rightAlign?: string;
59
+ transition?: string;
60
+ collapsed?: string;
61
+ treeContainer?: string;
62
+ tree?: string;
63
+ row?: string;
64
+ connector?: string;
65
+ rule?: string;
66
+ ruleSet?: string;
67
+ invalidRuleSet?: string;
68
+ emptyWarning?: string;
69
+ fieldControl?: string;
70
+ fieldControlSize?: string;
71
+ entityControl?: string;
72
+ entityControlSize?: string;
73
+ operatorControl?: string;
74
+ operatorControlSize?: string;
75
+ inputControl?: string;
76
+ inputControlSize?: string;
77
+ }
78
+ export interface QueryBuilderConfig {
79
+ fields: FieldMap;
80
+ entities?: EntityMap;
81
+ allowEmptyRulesets?: boolean;
82
+ getOperators?: (fieldName: string, field: Field) => string[];
83
+ getInputType?: (field: string, operator: string) => string;
84
+ getOptions?: (field: string) => Option[];
85
+ addRuleSet?: (parent: RuleSet) => void;
86
+ addRule?: (parent: RuleSet) => void;
87
+ removeRuleSet?: (ruleset: RuleSet, parent: RuleSet) => void;
88
+ removeRule?: (rule: Rule, parent: RuleSet) => void;
89
+ coerceValueForOperator?: (operator: string, value: any, rule: Rule) => any;
90
+ calculateFieldChangeValue?: (currentField: Field, nextField: Field, currentValue: any) => any;
91
+ }
92
+ export interface SwitchGroupContext {
93
+ onChange: (conditionValue: string) => void;
94
+ getDisabledState: () => boolean;
95
+ $implicit: RuleSet;
96
+ }
97
+ export interface EmptyWarningContext {
98
+ getDisabledState: () => boolean;
99
+ message: string;
100
+ $implicit: RuleSet;
101
+ }
102
+ export interface ArrowIconContext {
103
+ getDisabledState: () => boolean;
104
+ $implicit: RuleSet;
105
+ }
106
+ export interface EntityContext {
107
+ onChange: (entityValue: string, rule: Rule) => void;
108
+ getDisabledState: () => boolean;
109
+ entities: Entity[];
110
+ $implicit: Rule;
111
+ }
112
+ export interface FieldContext {
113
+ onChange: (fieldValue: string, rule: Rule) => void;
114
+ getFields: (entityName: string) => void;
115
+ getDisabledState: () => boolean;
116
+ fields: Field[];
117
+ $implicit: Rule;
118
+ }
119
+ export interface OperatorContext {
120
+ onChange: () => void;
121
+ getDisabledState: () => boolean;
122
+ operators: string[];
123
+ $implicit: Rule;
124
+ }
125
+ export interface InputContext {
126
+ onChange: () => void;
127
+ getDisabledState: () => boolean;
128
+ options: Option[];
129
+ field: Field;
130
+ $implicit: Rule;
131
+ }
132
+ export interface ButtonGroupContext {
133
+ addRule: () => void;
134
+ addRuleSet: () => void;
135
+ removeRuleSet: () => void;
136
+ getDisabledState: () => boolean;
137
+ $implicit: RuleSet;
138
+ }
139
+ export interface RemoveButtonContext {
140
+ removeRule: (rule: Rule) => void;
141
+ getDisabledState: () => boolean;
142
+ $implicit: Rule;
143
+ }
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class QueryButtonGroupDirective {
4
+ template: TemplateRef<any>;
5
+ constructor(template: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryButtonGroupDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<QueryButtonGroupDirective, "[queryButtonGroup]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class QueryEmptyWarningDirective {
4
+ template: TemplateRef<any>;
5
+ constructor(template: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryEmptyWarningDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<QueryEmptyWarningDirective, "[queryEmptyWarning]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class QueryEntityDirective {
4
+ template: TemplateRef<any>;
5
+ constructor(template: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryEntityDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<QueryEntityDirective, "[queryEntity]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class QueryFieldDirective {
4
+ template: TemplateRef<any>;
5
+ constructor(template: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryFieldDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<QueryFieldDirective, "[queryField]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -0,0 +1,12 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class QueryInputDirective {
4
+ template: TemplateRef<any>;
5
+ /** Unique name for query input type. */
6
+ get queryInputType(): string;
7
+ set queryInputType(value: string);
8
+ private _type;
9
+ constructor(template: TemplateRef<any>);
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryInputDirective, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<QueryInputDirective, "[queryInput]", never, { "queryInputType": { "alias": "queryInputType"; "required": false; }; }, {}, never, never, false, never>;
12
+ }
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class QueryOperatorDirective {
4
+ template: TemplateRef<any>;
5
+ constructor(template: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryOperatorDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<QueryOperatorDirective, "[queryOperator]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class QueryRemoveButtonDirective {
4
+ template: TemplateRef<any>;
5
+ constructor(template: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryRemoveButtonDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<QueryRemoveButtonDirective, "[queryRemoveButton]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class QuerySwitchGroupDirective {
4
+ template: TemplateRef<any>;
5
+ constructor(template: TemplateRef<any>);
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<QuerySwitchGroupDirective, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<QuerySwitchGroupDirective, "[querySwitchGroup]", never, {}, {}, never, never, false, never>;
8
+ }
@@ -0,0 +1,18 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./query-builder/query-builder.component";
3
+ import * as i2 from "./query-builder/query-input.directive";
4
+ import * as i3 from "./query-builder/query-operator.directive";
5
+ import * as i4 from "./query-builder/query-field.directive";
6
+ import * as i5 from "./query-builder/query-entity.directive";
7
+ import * as i6 from "./query-builder/query-button-group.directive";
8
+ import * as i7 from "./query-builder/query-switch-group.directive";
9
+ import * as i8 from "./query-builder/query-remove-button.directive";
10
+ import * as i9 from "./query-builder/query-empty-warning.directive";
11
+ import * as i10 from "./query-builder/query-arrow-icon.directive";
12
+ import * as i11 from "@angular/common";
13
+ import * as i12 from "@angular/forms";
14
+ export declare class QueryBuilderModule {
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<QueryBuilderModule, never>;
16
+ static ɵmod: i0.ɵɵNgModuleDeclaration<QueryBuilderModule, [typeof i1.QueryBuilderComponent, typeof i2.QueryInputDirective, typeof i3.QueryOperatorDirective, typeof i4.QueryFieldDirective, typeof i5.QueryEntityDirective, typeof i6.QueryButtonGroupDirective, typeof i7.QuerySwitchGroupDirective, typeof i8.QueryRemoveButtonDirective, typeof i9.QueryEmptyWarningDirective, typeof i10.QueryArrowIconDirective], [typeof i11.CommonModule, typeof i12.FormsModule], [typeof i1.QueryBuilderComponent, typeof i2.QueryInputDirective, typeof i3.QueryOperatorDirective, typeof i4.QueryFieldDirective, typeof i5.QueryEntityDirective, typeof i6.QueryButtonGroupDirective, typeof i7.QuerySwitchGroupDirective, typeof i8.QueryRemoveButtonDirective, typeof i9.QueryEmptyWarningDirective, typeof i10.QueryArrowIconDirective]>;
17
+ static ɵinj: i0.ɵɵInjectorDeclaration<QueryBuilderModule>;
18
+ }
@@ -0,0 +1,12 @@
1
+ export * from './lib/query-builder/query-builder.interfaces';
2
+ export * from './lib/query-builder/query-builder.component';
3
+ export * from './lib/query-builder/query-button-group.directive';
4
+ export * from './lib/query-builder/query-entity.directive';
5
+ export * from './lib/query-builder/query-field.directive';
6
+ export * from './lib/query-builder/query-input.directive';
7
+ export * from './lib/query-builder/query-operator.directive';
8
+ export * from './lib/query-builder/query-switch-group.directive';
9
+ export * from './lib/query-builder/query-remove-button.directive';
10
+ export * from './lib/query-builder/query-empty-warning.directive';
11
+ export * from './lib/query-builder/query-arrow-icon.directive';
12
+ export * from './lib/query-builder.module';