@pepperi-addons/ngx-lib 0.4.2-beta.82 → 0.4.2-beta.83

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.
@@ -2,7 +2,7 @@ import { PepSmartFilterOperators, PepSmartFilterAdditionalOperators, PepSmartFil
2
2
  const Equals = {
3
3
  legacy: 'IsEqual',
4
4
  smartFilter: PepSmartFilterOperators.Equals,
5
- type: ['boolean', 'int', 'text']
5
+ type: ['boolean', 'int', 'text', 'real']
6
6
  };
7
7
  const EqualsVariable = {
8
8
  legacy: 'IsEqualVariable',
@@ -263,4 +263,4 @@ export function getLegacyOperator(operator, type) {
263
263
  (item.type === null || item.type.includes(type)));
264
264
  return legacyOperator ? legacyOperator.legacy : null;
265
265
  }
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL21vZGVsL29wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUVsQyxNQUFNLHVDQUF1QyxDQUFDO0FBUy9DLE1BQU0sTUFBTSxHQUE2QjtJQUNyQyxNQUFNLEVBQUUsU0FBUztJQUNqQixXQUFXLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtJQUMzQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztDQUNuQyxDQUFDO0FBRUYsTUFBTSxjQUFjLEdBQTZCO0lBQzdDLE1BQU0sRUFBRSxpQkFBaUI7SUFDekIsV0FBVyxFQUFFLCtCQUErQixDQUFDLGdCQUFnQjtJQUM3RCxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUM7Q0FDbkQsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUE2QjtJQUN2QyxNQUFNLEVBQUUsWUFBWTtJQUNwQixXQUFXLEVBQUUsdUJBQXVCLENBQUMsUUFBUTtJQUM3QyxJQUFJLEVBQUUsSUFBSTtDQUNiLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUE2QjtJQUNoRCxNQUFNLEVBQUUsb0JBQW9CO0lBQzVCLFdBQVcsRUFBRSwrQkFBK0IsQ0FBQyxtQkFBbUI7SUFDaEUsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQztDQUNwQyxDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQTZCO0lBQ3ZDLE1BQU0sRUFBRSxHQUFHO0lBQ1gsV0FBVyxFQUFFLHVCQUF1QixDQUFDLFFBQVE7SUFDN0MsSUFBSSxFQUFFLElBQUk7Q0FDYixDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQTZCO0lBQzlDLE1BQU0sRUFB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WUFBWTtJQUNaLG9CQUFvQjtJQUNwQixLQUFLO0lBQ0wsUUFBUTtJQUNSLFNBQVM7SUFDVCxTQUFTO0lBQ1QsaUJBQWlCO0lBQ2pCLEtBQUs7SUFDTCxRQUFRO0lBQ1IsRUFBRTtJQUNGLE9BQU87SUFDUCxVQUFVO0lBQ1YsRUFBRTtDQUNMLENBQUE7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFnQixFQUFFLElBQXdCO0lBQzdFLE1BQU0sbUJBQW1CLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQzdELElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUTtRQUN4QixDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ25ELENBQUM7SUFDRixPQUFPLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN4RSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBaUMsRUFBRSxJQUF3QjtJQUN6RixNQUFNLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDeEQsSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRO1FBQzdCLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbkQsQ0FBQztJQUNGLE9BQU8sY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMsXG4gICAgUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnMsXG4gICAgSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3Jcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc21hcnQtZmlsdGVycyc7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlclR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbWFydC1maWx0ZXJzJztcblxuZXhwb3J0IGludGVyZmFjZSBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3Ige1xuICAgIGxlZ2FjeTogc3RyaW5nLCAvL2xlZ2FjeSBPcGVyYXRvciAgICBcbiAgICBzbWFydEZpbHRlcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IsIC8vc21hcnQgZmlsdGVyIG9wZXJhdG9yICAgIFxuICAgIHR5cGU6IFBlcFNtYXJ0RmlsdGVyVHlwZVtdIHwgbnVsbCAvL3NtYXJ0IGZpbHRlciB0eXBlXG59XG5cbmNvbnN0IEVxdWFsczogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0lzRXF1YWwnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5FcXVhbHMsXG4gICAgdHlwZTogWydib29sZWFuJywgJ2ludCcsICd0ZXh0J11cbn07XG5cbmNvbnN0IEVxdWFsc1ZhcmlhYmxlOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSXNFcXVhbFZhcmlhYmxlJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycy5FcXVhbHNUb1ZhcmlhYmxlLFxuICAgIHR5cGU6IFsnYm9vbGVhbicsICdpbnQnLCAndGV4dCcsICdtdWx0aS1zZWxlY3QnXVxufTtcblxuY29uc3QgTm90RXF1YWw6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc05vdEVxdWFsJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90RXF1YWwsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgTm90RXF1YWxzVmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc05vdEVxdWFsVmFyaWFibGUnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLk5vdEVxdWFsc1RvVmFyaWFibGUsXG4gICAgdHlwZTogWydib29sZWFuJywgJ211bHRpLXNlbGVjdCddXG59O1xuXG5jb25zdCBMZXNzVGhhbjogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJzwnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5MZXNzVGhhbixcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBMZXNzVGhhblZhcmlibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdMZXNzVGhhblZhcmlibGUnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLkxlc3NUaGFuVmFyaWFibGUsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgR3JlYXRlclRoYW46IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICc+JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuR3JlYXRlclRoYW4sXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgR3JlYXRlclRoYW5WYXJpYmxlOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnR3JlYXRlclRoYW5WYXJpYmxlJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycy5HcmVhdGVyVGhhblZhcmlhYmxlLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbi8qXG5jb25zdCBHcmVhdGVyVGhhbk9yRXF1YWxzOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiB7XG4gICAgICAgIG9wZXJhdG9yOiAnPj0nLFxuICAgICAgICB0eXBlOiAnSW50ZWdlcidcbiAgICB9LFxuICAgIHNtYXJ0RmlsdGVyOiB7XG4gICAgICAgIGl0ZW06IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkdyZWF0ZXJUaGFuT3JFcXVhbHMsXG4gICAgICAgIHR5cGU6ICdpbnQnXG4gICAgfVxufTtcblxuY29uc3QgTGVzc1RoYW5PckVxdWFsczogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJzw9JyxcbiAgICAgICAgdHlwZTogJ0ludGVnZXInXG4gICAgfSxcbiAgICBzbWFydEZpbHRlcjoge1xuICAgICAgICBpdGVtOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5MZXNzVGhhbk9yRXF1YWxzLFxuICAgICAgICB0eXBlOiAnaW50JyxcbiAgICAgICAgdHlwZTogJ0ludGVnZXInXG4gICAgfVxufTsgKi9cblxuY29uc3QgTnVtYmVyUmFuZ2U6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZXR3ZWVuJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTnVtYmVyUmFuZ2UsXG4gICAgdHlwZTogWydpbnQnXVxufTtcblxuY29uc3QgQ29udGFpbnM6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdDb250YWlucycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkNvbnRhaW5zLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IEJlZ2luc1dpdGg6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZWdpbnNXaXRoJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuQmVnaW5zV2l0aCxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBFbmRzV2l0aDogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0VuZHNXaXRoJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRW5kc1dpdGgsXG4gICAgdHlwZTogbnVsbFxufTtcblxuLypcbmNvbnN0IEJlZ2luc1dpdGg6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6IHtcbiAgICAgICAgb3BlcmF0b3I6ICdCZWdpbnNXaXRoJyxcbiAgICAgICAgdHlwZTogJ1N0cmluZydcbiAgICB9LFxuICAgIHNtYXJ0RmlsdGVyOiB7XG4gICAgICAgIGl0ZW06IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkJlZ2luc1dpdGgsXG4gICAgICAgIHR5cGU6ICd0ZXh0J1xuICAgIH1cbn07XG5cbmNvbnN0IEVuZHNXaXRoOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiB7XG4gICAgICAgIG9wZXJhdG9yOiAnRW5kc1dpdGgnLFxuICAgICAgICB0eXBlOiAnU3RyaW5nJ1xuICAgIH0sXG4gICAgc21hcnRGaWx0ZXI6IHtcbiAgICAgICAgaXRlbTogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRW5kc1dpdGgsXG4gICAgICAgIHR5cGU6ICd0ZXh0J1xuICAgIH1cbn07XG5cbmNvbnN0IEJlZm9yZTogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJ0JlZm9yZScsXG4gICAgICAgIHR5cGU6ICdEYXRlJ1xuICAgIH0sXG4gICAgc21hcnRGaWx0ZXI6IHtcbiAgICAgICAgaXRlbTogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuQmVmb3JlLFxuICAgICAgICB0eXBlOiAnZGF0ZSdcbiAgICB9XG59O1xuXG5jb25zdCBBZnRlcjogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJ0FmdGVyJyxcbiAgICAgICAgdHlwZTogJ0RhdGUnXG4gICAgfSxcbiAgICBzbWFydEZpbHRlcjoge1xuICAgICAgICBpdGVtOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5BZnRlcixcbiAgICAgICAgdHlwZTogJ2RhdGUnXG4gICAgfVxufTsgKi9cblxuY29uc3QgSW5UaGVMYXN0OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSW5UaGVMYXN0JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW5UaGVMYXN0LFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IEluVGhlTGFzdENhbGVuZGFyOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSW5UaGVMYXN0Q2FsZW5kYXInLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnMuSW5UaGVMYXN0Q2FsZW5kYXIsXG4gICAgdHlwZTogbnVsbFxufVxuXG4vKlxuY29uc3QgSW5UaGVMYXN0VmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJblRoZUxhc3RWYXJpYWJsZScsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnMuSW5UaGVMYXN0VmFyaWFibGUsXG4gICAgdHlwZTogbnVsbFxufSAqL1xuXG5jb25zdCBOb3RJblRoZUxhc3Q6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdOb3RJblRoZUxhc3QnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ob3RJblRoZUxhc3QsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgTm90SW5UaGVMYXN0Q2FsZW5kYXI6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdOb3RJblRoZUxhc3RDYWxlbmRhcicsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycy5Ob3RJblRoZUxhc3RDYWxlbmRhcixcbiAgICB0eXBlOiBudWxsXG59XG5cbmNvbnN0IFRvZGF5OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnVG9kYXknLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ub2RheSxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBUaGlzV2VlazogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ1RoaXNXZWVrJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuVGhpc1dlZWssXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgVGhpc01vbnRoOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnVGhpc01vbnRoJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuVGhpc01vbnRoLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IERhdGVSYW5nZTogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0JldHdlZW4nLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5EYXRlUmFuZ2UsXG4gICAgdHlwZTogWydkYXRlLXRpbWUnXVxufTtcblxuY29uc3QgZGF0ZVJhbmdlVmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZXR3ZWVuVmFyaWFibGUnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLkRhdGVSYW5nZVZhcmlhYmxlLFxuICAgIHR5cGU6IFsnZGF0ZS10aW1lJ11cbn07XG5cbmNvbnN0IER1ZUluOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnRHVlSW4nLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5EdWVJbixcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBOb3REdWVJbjogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ05vdER1ZUluJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90RHVlSW4sXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgT246IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdPbicsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk9uLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IElzRW1wdHk6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VtcHR5JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSXNFbXB0eSxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBJc05vdEVtcHR5OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSXNOb3RFbXB0eScsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLklzTm90RW1wdHksXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgSW46IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VxdWFsJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW4sXG4gICAgdHlwZTogWydtdWx0aS1zZWxlY3QnXVxufTtcblxuXG5jb25zdCBQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvcnMgPSBbXG4gICAgRXF1YWxzLFxuICAgIEVxdWFsc1ZhcmlhYmxlLFxuICAgIE5vdEVxdWFsLFxuICAgIE5vdEVxdWFsc1ZhcmlhYmxlLFxuICAgIExlc3NUaGFuLFxuICAgIExlc3NUaGFuVmFyaWJsZSxcbiAgICAvLyAgIExlc3NUaGFuT3JFcXVhbHMsXG4gICAgR3JlYXRlclRoYW4sXG4gICAgR3JlYXRlclRoYW5WYXJpYmxlLFxuICAgIC8vICAgR3JlYXRlclRoYW5PckVxdWFscyxcbiAgICBOdW1iZXJSYW5nZSxcbiAgICBDb250YWlucyxcbiAgICBCZWdpbnNXaXRoLFxuICAgIEVuZHNXaXRoLFxuICAgIC8vICAgQWZ0ZXIsXG4gICAgLy8gICBCZWZvcmUsXG4gICAgSW5UaGVMYXN0LFxuICAgIC8vIEluVGhlTGFzdFZhcmlhYmxlLFxuICAgIEluVGhlTGFzdENhbGVuZGFyLFxuICAgIE5vdEluVGhlTGFzdCxcbiAgICBOb3RJblRoZUxhc3RDYWxlbmRhcixcbiAgICBUb2RheSxcbiAgICBUaGlzV2VlayxcbiAgICBUaGlzTW9udGgsXG4gICAgRGF0ZVJhbmdlLFxuICAgIGRhdGVSYW5nZVZhcmlhYmxlLFxuICAgIER1ZUluLFxuICAgIE5vdER1ZUluLFxuICAgIE9uLFxuICAgIElzRW1wdHksXG4gICAgSXNOb3RFbXB0eSxcbiAgICBJblxuXVxuXG4vKipcbiAqIGdldHMgYSBzbWFydCBmaWx0ZXIgb3BlcmF0b3IgaXRlbVxuICogQHBhcmFtIG9wZXJhdG9yIGxlZ2FjeSBvcGVyYXRvclxuICogQHBhcmFtIHR5cGUgc21hcnQgZmlsdGVyJ3MgdHlwZVxuICogQHJldHVybnMgc21hcnQgZmlsdGVyIG9wZXJhdG9yIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNtYXJ0RmlsdGVyT3BlcmF0b3Iob3BlcmF0b3I6IHN0cmluZywgdHlwZTogUGVwU21hcnRGaWx0ZXJUeXBlKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgfCBudWxsIHtcbiAgICBjb25zdCBzbWFydEZpbHRlck9wZXJhdG9yID0gUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3JzLmZpbmQoaXRlbSA9PlxuICAgICAgICBpdGVtLmxlZ2FjeSA9PT0gb3BlcmF0b3IgJiZcbiAgICAgICAgKGl0ZW0udHlwZSA9PT0gbnVsbCB8fCBpdGVtLnR5cGUuaW5jbHVkZXModHlwZSkpXG4gICAgKTtcbiAgICByZXR1cm4gc21hcnRGaWx0ZXJPcGVyYXRvciA/IHNtYXJ0RmlsdGVyT3BlcmF0b3Iuc21hcnRGaWx0ZXIgOiBudWxsO1xufVxuXG4vKipcbiAqIGdldHMgYSBsZWdhY3kgb3BlcmF0b3IgdmFsdWVcbiAqIEBwYXJhbSBvcGVyYXRvciBzbWFydCBmaWx0ZXIgb3BlcmF0b3IgaXRlbVxuICogQHBhcmFtIHR5cGUgc21hcnQgZmlsdGVyJ3MgdHlwZVxuICogQHJldHVybnMgbGVnYWN5IG9wZXJhdG9yIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMZWdhY3lPcGVyYXRvcihvcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IsIHR5cGU6IFBlcFNtYXJ0RmlsdGVyVHlwZSk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGxlZ2FjeU9wZXJhdG9yID0gUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3JzLmZpbmQoaXRlbSA9PlxuICAgICAgICBpdGVtLnNtYXJ0RmlsdGVyID09PSBvcGVyYXRvciAmJlxuICAgICAgICAoaXRlbS50eXBlID09PSBudWxsIHx8IGl0ZW0udHlwZS5pbmNsdWRlcyh0eXBlKSlcbiAgICApO1xuICAgIHJldHVybiBsZWdhY3lPcGVyYXRvciA/IGxlZ2FjeU9wZXJhdG9yLmxlZ2FjeSA6IG51bGw7XG59XG4iXX0=
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL21vZGVsL29wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUVsQyxNQUFNLHVDQUF1QyxDQUFDO0FBUy9DLE1BQU0sTUFBTSxHQUE2QjtJQUNyQyxNQUFNLEVBQUUsU0FBUztJQUNqQixXQUFXLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtJQUMzQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7Q0FDM0MsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUE2QjtJQUM3QyxNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFdBQVcsRUFBRSwrQkFBK0IsQ0FBQyxnQkFBZ0I7SUFDN0QsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDO0NBQ25ELENBQUM7QUFFRixNQUFNLFFBQVEsR0FBNkI7SUFDdkMsTUFBTSxFQUFFLFlBQVk7SUFDcEIsV0FBVyxFQUFFLHVCQUF1QixDQUFDLFFBQVE7SUFDN0MsSUFBSSxFQUFFLElBQUk7Q0FDYixDQUFDO0FBRUYsTUFBTSxpQkFBaUIsR0FBNkI7SUFDaEQsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixXQUFXLEVBQUUsK0JBQStCLENBQUMsbUJBQW1CO0lBQ2hFLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUM7Q0FDcEMsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUE2QjtJQUN2QyxNQUFNLEVBQUUsR0FBRztJQUNYLFdBQVcsRUFBRSx1QkFBdUIsQ0FBQyxRQUFRO0lBQzdDLElBQUksRUFBRSxJQUFJO0NBQ2IsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUE2QjtJQUM5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QWlCO0lBQ2pCLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsS0FBSztJQUNMLFFBQVE7SUFDUixTQUFTO0lBQ1QsU0FBUztJQUNULGlCQUFpQjtJQUNqQixLQUFLO0lBQ0wsUUFBUTtJQUNSLEVBQUU7SUFDRixPQUFPO0lBQ1AsVUFBVTtJQUNWLEVBQUU7Q0FDTCxDQUFBO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsUUFBZ0IsRUFBRSxJQUF3QjtJQUM3RSxNQUFNLG1CQUFtQixHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUM3RCxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVE7UUFDeEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNuRCxDQUFDO0lBQ0YsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFFBQWlDLEVBQUUsSUFBd0I7SUFDekYsTUFBTSxjQUFjLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3hELElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUTtRQUM3QixDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ25ELENBQUM7SUFDRixPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLFxuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJUeXBlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc21hcnQtZmlsdGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yIHtcbiAgICBsZWdhY3k6IHN0cmluZywgLy9sZWdhY3kgT3BlcmF0b3IgICAgXG4gICAgc21hcnRGaWx0ZXI6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yLCAvL3NtYXJ0IGZpbHRlciBvcGVyYXRvciAgICBcbiAgICB0eXBlOiBQZXBTbWFydEZpbHRlclR5cGVbXSB8IG51bGwgLy9zbWFydCBmaWx0ZXIgdHlwZVxufVxuXG5jb25zdCBFcXVhbHM6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VxdWFsJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRXF1YWxzLFxuICAgIHR5cGU6IFsnYm9vbGVhbicsICdpbnQnLCAndGV4dCcsICdyZWFsJ11cbn07XG5cbmNvbnN0IEVxdWFsc1ZhcmlhYmxlOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSXNFcXVhbFZhcmlhYmxlJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycy5FcXVhbHNUb1ZhcmlhYmxlLFxuICAgIHR5cGU6IFsnYm9vbGVhbicsICdpbnQnLCAndGV4dCcsICdtdWx0aS1zZWxlY3QnXVxufTtcblxuY29uc3QgTm90RXF1YWw6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc05vdEVxdWFsJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90RXF1YWwsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgTm90RXF1YWxzVmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc05vdEVxdWFsVmFyaWFibGUnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLk5vdEVxdWFsc1RvVmFyaWFibGUsXG4gICAgdHlwZTogWydib29sZWFuJywgJ211bHRpLXNlbGVjdCddXG59O1xuXG5jb25zdCBMZXNzVGhhbjogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJzwnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5MZXNzVGhhbixcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBMZXNzVGhhblZhcmlibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdMZXNzVGhhblZhcmlibGUnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLkxlc3NUaGFuVmFyaWFibGUsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgR3JlYXRlclRoYW46IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICc+JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuR3JlYXRlclRoYW4sXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgR3JlYXRlclRoYW5WYXJpYmxlOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnR3JlYXRlclRoYW5WYXJpYmxlJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycy5HcmVhdGVyVGhhblZhcmlhYmxlLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbi8qXG5jb25zdCBHcmVhdGVyVGhhbk9yRXF1YWxzOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiB7XG4gICAgICAgIG9wZXJhdG9yOiAnPj0nLFxuICAgICAgICB0eXBlOiAnSW50ZWdlcidcbiAgICB9LFxuICAgIHNtYXJ0RmlsdGVyOiB7XG4gICAgICAgIGl0ZW06IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkdyZWF0ZXJUaGFuT3JFcXVhbHMsXG4gICAgICAgIHR5cGU6ICdpbnQnXG4gICAgfVxufTtcblxuY29uc3QgTGVzc1RoYW5PckVxdWFsczogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJzw9JyxcbiAgICAgICAgdHlwZTogJ0ludGVnZXInXG4gICAgfSxcbiAgICBzbWFydEZpbHRlcjoge1xuICAgICAgICBpdGVtOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5MZXNzVGhhbk9yRXF1YWxzLFxuICAgICAgICB0eXBlOiAnaW50JyxcbiAgICAgICAgdHlwZTogJ0ludGVnZXInXG4gICAgfVxufTsgKi9cblxuY29uc3QgTnVtYmVyUmFuZ2U6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZXR3ZWVuJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTnVtYmVyUmFuZ2UsXG4gICAgdHlwZTogWydpbnQnXVxufTtcblxuY29uc3QgQ29udGFpbnM6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdDb250YWlucycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkNvbnRhaW5zLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IEJlZ2luc1dpdGg6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZWdpbnNXaXRoJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuQmVnaW5zV2l0aCxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBFbmRzV2l0aDogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0VuZHNXaXRoJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRW5kc1dpdGgsXG4gICAgdHlwZTogbnVsbFxufTtcblxuLypcbmNvbnN0IEJlZ2luc1dpdGg6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6IHtcbiAgICAgICAgb3BlcmF0b3I6ICdCZWdpbnNXaXRoJyxcbiAgICAgICAgdHlwZTogJ1N0cmluZydcbiAgICB9LFxuICAgIHNtYXJ0RmlsdGVyOiB7XG4gICAgICAgIGl0ZW06IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkJlZ2luc1dpdGgsXG4gICAgICAgIHR5cGU6ICd0ZXh0J1xuICAgIH1cbn07XG5cbmNvbnN0IEVuZHNXaXRoOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiB7XG4gICAgICAgIG9wZXJhdG9yOiAnRW5kc1dpdGgnLFxuICAgICAgICB0eXBlOiAnU3RyaW5nJ1xuICAgIH0sXG4gICAgc21hcnRGaWx0ZXI6IHtcbiAgICAgICAgaXRlbTogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRW5kc1dpdGgsXG4gICAgICAgIHR5cGU6ICd0ZXh0J1xuICAgIH1cbn07XG5cbmNvbnN0IEJlZm9yZTogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJ0JlZm9yZScsXG4gICAgICAgIHR5cGU6ICdEYXRlJ1xuICAgIH0sXG4gICAgc21hcnRGaWx0ZXI6IHtcbiAgICAgICAgaXRlbTogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuQmVmb3JlLFxuICAgICAgICB0eXBlOiAnZGF0ZSdcbiAgICB9XG59O1xuXG5jb25zdCBBZnRlcjogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJ0FmdGVyJyxcbiAgICAgICAgdHlwZTogJ0RhdGUnXG4gICAgfSxcbiAgICBzbWFydEZpbHRlcjoge1xuICAgICAgICBpdGVtOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5BZnRlcixcbiAgICAgICAgdHlwZTogJ2RhdGUnXG4gICAgfVxufTsgKi9cblxuY29uc3QgSW5UaGVMYXN0OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSW5UaGVMYXN0JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW5UaGVMYXN0LFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IEluVGhlTGFzdENhbGVuZGFyOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSW5UaGVMYXN0Q2FsZW5kYXInLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnMuSW5UaGVMYXN0Q2FsZW5kYXIsXG4gICAgdHlwZTogbnVsbFxufVxuXG4vKlxuY29uc3QgSW5UaGVMYXN0VmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJblRoZUxhc3RWYXJpYWJsZScsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnMuSW5UaGVMYXN0VmFyaWFibGUsXG4gICAgdHlwZTogbnVsbFxufSAqL1xuXG5jb25zdCBOb3RJblRoZUxhc3Q6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdOb3RJblRoZUxhc3QnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ob3RJblRoZUxhc3QsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgTm90SW5UaGVMYXN0Q2FsZW5kYXI6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdOb3RJblRoZUxhc3RDYWxlbmRhcicsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycy5Ob3RJblRoZUxhc3RDYWxlbmRhcixcbiAgICB0eXBlOiBudWxsXG59XG5cbmNvbnN0IFRvZGF5OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnVG9kYXknLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ub2RheSxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBUaGlzV2VlazogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ1RoaXNXZWVrJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuVGhpc1dlZWssXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgVGhpc01vbnRoOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnVGhpc01vbnRoJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuVGhpc01vbnRoLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IERhdGVSYW5nZTogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0JldHdlZW4nLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5EYXRlUmFuZ2UsXG4gICAgdHlwZTogWydkYXRlLXRpbWUnXVxufTtcblxuY29uc3QgZGF0ZVJhbmdlVmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZXR3ZWVuVmFyaWFibGUnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLkRhdGVSYW5nZVZhcmlhYmxlLFxuICAgIHR5cGU6IFsnZGF0ZS10aW1lJ11cbn07XG5cbmNvbnN0IER1ZUluOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnRHVlSW4nLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5EdWVJbixcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBOb3REdWVJbjogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ05vdER1ZUluJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90RHVlSW4sXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgT246IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdPbicsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk9uLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IElzRW1wdHk6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VtcHR5JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSXNFbXB0eSxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBJc05vdEVtcHR5OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSXNOb3RFbXB0eScsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLklzTm90RW1wdHksXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgSW46IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VxdWFsJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW4sXG4gICAgdHlwZTogWydtdWx0aS1zZWxlY3QnXVxufTtcblxuXG5jb25zdCBQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvcnMgPSBbXG4gICAgRXF1YWxzLFxuICAgIEVxdWFsc1ZhcmlhYmxlLFxuICAgIE5vdEVxdWFsLFxuICAgIE5vdEVxdWFsc1ZhcmlhYmxlLFxuICAgIExlc3NUaGFuLFxuICAgIExlc3NUaGFuVmFyaWJsZSxcbiAgICAvLyAgIExlc3NUaGFuT3JFcXVhbHMsXG4gICAgR3JlYXRlclRoYW4sXG4gICAgR3JlYXRlclRoYW5WYXJpYmxlLFxuICAgIC8vICAgR3JlYXRlclRoYW5PckVxdWFscyxcbiAgICBOdW1iZXJSYW5nZSxcbiAgICBDb250YWlucyxcbiAgICBCZWdpbnNXaXRoLFxuICAgIEVuZHNXaXRoLFxuICAgIC8vICAgQWZ0ZXIsXG4gICAgLy8gICBCZWZvcmUsXG4gICAgSW5UaGVMYXN0LFxuICAgIC8vIEluVGhlTGFzdFZhcmlhYmxlLFxuICAgIEluVGhlTGFzdENhbGVuZGFyLFxuICAgIE5vdEluVGhlTGFzdCxcbiAgICBOb3RJblRoZUxhc3RDYWxlbmRhcixcbiAgICBUb2RheSxcbiAgICBUaGlzV2VlayxcbiAgICBUaGlzTW9udGgsXG4gICAgRGF0ZVJhbmdlLFxuICAgIGRhdGVSYW5nZVZhcmlhYmxlLFxuICAgIER1ZUluLFxuICAgIE5vdER1ZUluLFxuICAgIE9uLFxuICAgIElzRW1wdHksXG4gICAgSXNOb3RFbXB0eSxcbiAgICBJblxuXVxuXG4vKipcbiAqIGdldHMgYSBzbWFydCBmaWx0ZXIgb3BlcmF0b3IgaXRlbVxuICogQHBhcmFtIG9wZXJhdG9yIGxlZ2FjeSBvcGVyYXRvclxuICogQHBhcmFtIHR5cGUgc21hcnQgZmlsdGVyJ3MgdHlwZVxuICogQHJldHVybnMgc21hcnQgZmlsdGVyIG9wZXJhdG9yIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNtYXJ0RmlsdGVyT3BlcmF0b3Iob3BlcmF0b3I6IHN0cmluZywgdHlwZTogUGVwU21hcnRGaWx0ZXJUeXBlKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgfCBudWxsIHtcbiAgICBjb25zdCBzbWFydEZpbHRlck9wZXJhdG9yID0gUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3JzLmZpbmQoaXRlbSA9PlxuICAgICAgICBpdGVtLmxlZ2FjeSA9PT0gb3BlcmF0b3IgJiZcbiAgICAgICAgKGl0ZW0udHlwZSA9PT0gbnVsbCB8fCBpdGVtLnR5cGUuaW5jbHVkZXModHlwZSkpXG4gICAgKTtcbiAgICByZXR1cm4gc21hcnRGaWx0ZXJPcGVyYXRvciA/IHNtYXJ0RmlsdGVyT3BlcmF0b3Iuc21hcnRGaWx0ZXIgOiBudWxsO1xufVxuXG4vKipcbiAqIGdldHMgYSBsZWdhY3kgb3BlcmF0b3IgdmFsdWVcbiAqIEBwYXJhbSBvcGVyYXRvciBzbWFydCBmaWx0ZXIgb3BlcmF0b3IgaXRlbVxuICogQHBhcmFtIHR5cGUgc21hcnQgZmlsdGVyJ3MgdHlwZVxuICogQHJldHVybnMgbGVnYWN5IG9wZXJhdG9yIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMZWdhY3lPcGVyYXRvcihvcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IsIHR5cGU6IFBlcFNtYXJ0RmlsdGVyVHlwZSk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGxlZ2FjeU9wZXJhdG9yID0gUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3JzLmZpbmQoaXRlbSA9PlxuICAgICAgICBpdGVtLnNtYXJ0RmlsdGVyID09PSBvcGVyYXRvciAmJlxuICAgICAgICAoaXRlbS50eXBlID09PSBudWxsIHx8IGl0ZW0udHlwZS5pbmNsdWRlcyh0eXBlKSlcbiAgICApO1xuICAgIHJldHVybiBsZWdhY3lPcGVyYXRvciA/IGxlZ2FjeU9wZXJhdG9yLmxlZ2FjeSA6IG51bGw7XG59XG4iXX0=
@@ -273,7 +273,7 @@ var PepOperatorTypes;
273
273
  const Equals = {
274
274
  legacy: 'IsEqual',
275
275
  smartFilter: PepSmartFilterOperators.Equals,
276
- type: ['boolean', 'int', 'text']
276
+ type: ['boolean', 'int', 'text', 'real']
277
277
  };
278
278
  const EqualsVariable = {
279
279
  legacy: 'IsEqualVariable',
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-lib-query-builder.mjs","sources":["../../../projects/ngx-lib/query-builder/common/services/type-convertor.service.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.html","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.ts","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.html","../../../projects/ngx-lib/query-builder/common/model/type-map.ts","../../../projects/ngx-lib/query-builder/common/model/type.ts","../../../projects/ngx-lib/query-builder/common/model/operator.ts","../../../projects/ngx-lib/query-builder/common/model/operator-unit.ts","../../../projects/ngx-lib/query-builder/common/services/output-query.service.ts","../../../projects/ngx-lib/query-builder/query-builder.service.ts","../../../projects/ngx-lib/query-builder/common/services/query-structure.service.ts","../../../projects/ngx-lib/query-builder/query-builder.component.ts","../../../projects/ngx-lib/query-builder/query-builder.component.html","../../../projects/ngx-lib/query-builder/query-builder.module.ts","../../../projects/ngx-lib/query-builder/public-api.ts","../../../projects/ngx-lib/query-builder/pepperi-addons-ngx-lib-query-builder.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Injectable()\nexport class PepTypeConvertorService {\n private readonly _operators: IPepOption[] = [];\n private readonly _booleans: IPepOption[] = [];\n\n public get operators(): IPepOption[] {\n return this._operators;\n }\n\n public get booleans(): IPepOption[] {\n return this._booleans;\n }\n\n constructor() {\n this.initOperators();\n this.initBooleans();\n }\n\n private initOperators() {\n this._operators.push({\n key: 'AND',\n value: 'And'\n });\n this._operators.push({\n key: 'OR',\n value: 'Or'\n });\n }\n\n private initBooleans() {\n this._booleans.push({\n key: 'True',\n value: 'True'\n });\n this._booleans.push({\n key: 'False',\n value: 'False'\n });\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n IPepButtonClickEvent,\n PepButton,\n} from '@pepperi-addons/ngx-lib/button';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryDepth } from '../common/model/structure';\n\n@Component({\n selector: 'pep-query-builder-section',\n templateUrl: './query-builder-section.component.html',\n styleUrls: ['./query-builder-section.component.scss', './query-builder-section.component.theme.scss'],\n})\nexport class PepQueryBuilderSectionComponent {\n @Input() form: FormGroup;\n @Input() depth: IPepQueryDepth;\n @Input() hasFields = true;\n\n @Output()\n createSection = new EventEmitter();\n @Output()\n createItem = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n @Output()\n operatorChange = new EventEmitter();\n\n @ViewChild('sectionContainer', { read: ViewContainerRef, static: true }) sectionContainer: ViewContainerRef;\n\n toggleButtons: Array<PepButton>;\n\n constructor(private _typeConvertorService: PepTypeConvertorService) {\n }\n\n ngOnInit() {\n this.initOperators();\n }\n\n get f() {\n return this.form.controls;\n }\n\n initOperators() {\n this.toggleButtons = this._typeConvertorService.operators.map((operator: IPepOption) => {\n return {\n key: operator.key,\n value: operator.value,\n callback: (event: IPepButtonClickEvent) =>\n this.onOperatorChanged(event)\n } as PepButton\n });\n }\n\n onOperatorChanged(event) {\n if (event?.source?.key) {\n this.f.operator.setValue(event.source.key);\n this.operatorChange.emit();\n }\n }\n\n onAddRuleClicked() {\n this.createItem.emit();\n }\n\n onAddRuleSetClicked() {\n this.createSection.emit();\n }\n\n onDeleteSectionClicked() {\n this.remove.emit();\n }\n\n\n}\n","<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { PepSmartFilterBaseField, IPepSmartFilterField } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepSmartFilterData } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryBuilderFieldContainer } from '../common/model/field';\n\n\n@Component({\n selector: 'pep-query-builder-item',\n templateUrl: './query-builder-item.component.html',\n styleUrls: ['./query-builder-item.component.scss'],\n})\nexport class PepQueryBuilderItemComponent {\n @Input() formKey: string;\n _fields: Array<IPepQueryBuilderFieldContainer> = [];\n _options: IPepOption[] = [];\n @Input()\n set fields(list: Array<IPepQueryBuilderFieldContainer>) {\n if (list?.length > 0) {\n this._fields = list;\n this._options = list.map(field => {\n return {\n key: field.smart.id,\n value: field.smart.name\n }\n })\n }\n }\n _selectedField: PepSmartFilterBaseField = null;\n @Input()\n set selected(value: IPepQueryBuilderFieldContainer) {\n if (value) {\n this._selectedField = value.smart;\n this.queryForm.fieldType.setValue(value.query.fieldType);\n }\n }\n _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n if (value) {\n this._filter = value;\n }\n }\n _parentForm: FormGroup;\n @Input()\n set parentForm(value: FormGroup) {\n if (value) {\n this._parentForm = value;\n this.addToParentForm();\n }\n }\n \n @Input() \n variableFields: any = {};\n\n @Output()\n filterChange = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n\n form: FormGroup;\n\n constructor(\n private _fb: FormBuilder,\n public typeConvertorService: PepTypeConvertorService\n ) {\n this.setupForm();\n }\n\n ngOnInit() {\n //\n }\n\n get f() {\n return this.form.controls;\n }\n\n get queryForm() {\n return (this.f.query as FormGroup).controls;\n }\n\n setupForm() {\n this.form = this._fb.group({\n smart: this._fb.group({\n fieldId: this._fb.control(null),\n fieldType: this._fb.control(null),\n operator: this._fb.control(null),\n operatorUnit: this._fb.control(null),\n values: this._fb.group({\n first: this._fb.control(null),\n second: this._fb.control(null)\n })\n }),\n query: this._fb.group({\n fieldType: this._fb.control(null)\n })\n });\n }\n\n addToParentForm() {\n this._parentForm.setControl(this.formKey, this.form);\n }\n\n onFieldChanged(key) {\n const item = this._fields.find(field => field.smart.id === key);\n\n this.setupForm();\n this.queryForm.fieldType.setValue(item.query.fieldType);\n this.addToParentForm();\n\n /**\n * hack due to angular's change detection bug -\n * ERROR Error: There is no FormControl instance attached to form control element with name: [formControlName]\n */\n this._selectedField = null;\n setTimeout(() => {\n this._selectedField = item ? item.smart : null;\n }, 0);\n\n this._filter = null;\n }\n\n onFilterChanged() {\n if (this.form.valid) {\n this.filterChange.emit();\n }\n }\n\n onDeleteItemClicked() {\n this.remove.emit();\n }\n\n\n\n}\n","<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.['multi-select']\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>","import { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\n\nexport class PepQueryBuilderTypeMap {\n private map: Map<string, PepSmartFilterType>;\n\n constructor() {\n this.loadTypes();\n }\n\n private loadTypes() {\n this.map = new Map<string, PepSmartFilterType>();\n this.map.set('Bool', 'boolean');\n this.map.set('JsonBool', 'boolean');\n this.map.set('Integer', 'int');\n this.map.set('Double', 'real');\n this.map.set('String', 'text');\n this.map.set('Guid', 'text');\n this.map.set('Date', 'date');\n this.map.set('DateTime', 'date-time');\n this.map.set('MultipleStringValues', 'multi-select');\n }\n\n /**\n * Converts legacy field type to smart filter type\n * @param type legacy type\n * @returns smart filter field type\n */\n getSmartFilterType(key: string): PepSmartFilterType | null {\n const item = this.map.get(key);\n return item ? item : null;\n }\n\n}\n\n","export enum PepOperatorTypes {\n And = 'AND',\n Or = 'OR'\n}\n\n","import {\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n IPepSmartFilterOperator\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\nexport interface IPepQueryBuilderOperator {\n legacy: string, //legacy Operator \n smartFilter: IPepSmartFilterOperator, //smart filter operator \n type: PepSmartFilterType[] | null //smart filter type\n}\n\nconst Equals: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.Equals,\n type: ['boolean', 'int', 'text']\n};\n\nconst EqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsEqualVariable',\n smartFilter: PepSmartFilterVariableOperators.EqualsToVariable,\n type: ['boolean', 'int', 'text', 'multi-select']\n};\n\nconst NotEqual: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqual',\n smartFilter: PepSmartFilterOperators.NotEqual,\n type: null\n};\n\nconst NotEqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqualVariable',\n smartFilter: PepSmartFilterVariableOperators.NotEqualsToVariable,\n type: ['boolean', 'multi-select']\n};\n\nconst LessThan: IPepQueryBuilderOperator = {\n legacy: '<',\n smartFilter: PepSmartFilterOperators.LessThan,\n type: null\n};\n\nconst LessThanVarible: IPepQueryBuilderOperator = {\n legacy: 'LessThanVarible',\n smartFilter: PepSmartFilterVariableOperators.LessThanVariable,\n type: null\n};\n\nconst GreaterThan: IPepQueryBuilderOperator = {\n legacy: '>',\n smartFilter: PepSmartFilterOperators.GreaterThan,\n type: null\n};\n\nconst GreaterThanVarible: IPepQueryBuilderOperator = {\n legacy: 'GreaterThanVarible',\n smartFilter: PepSmartFilterVariableOperators.GreaterThanVariable,\n type: null\n};\n\n/*\nconst GreaterThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '>=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.GreaterThanOrEquals,\n type: 'int'\n }\n};\n\nconst LessThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '<=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.LessThanOrEquals,\n type: 'int',\n type: 'Integer'\n }\n}; */\n\nconst NumberRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.NumberRange,\n type: ['int']\n};\n\nconst Contains: IPepQueryBuilderOperator = {\n legacy: 'Contains',\n smartFilter: PepSmartFilterOperators.Contains,\n type: null\n};\n\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: 'BeginsWith',\n smartFilter: PepSmartFilterOperators.BeginsWith,\n type: null\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: 'EndsWith',\n smartFilter: PepSmartFilterOperators.EndsWith,\n type: null\n};\n\n/*\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'BeginsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.BeginsWith,\n type: 'text'\n }\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'EndsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.EndsWith,\n type: 'text'\n }\n};\n\nconst Before: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'Before',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.Before,\n type: 'date'\n }\n};\n\nconst After: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'After',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.After,\n type: 'date'\n }\n}; */\n\nconst InTheLast: IPepQueryBuilderOperator = {\n legacy: 'InTheLast',\n smartFilter: PepSmartFilterOperators.InTheLast,\n type: null\n};\n\nconst InTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'InTheLastCalendar',\n smartFilter: PepSmartFilterAdditionalOperators.InTheLastCalendar,\n type: null\n}\n\n/*\nconst InTheLastVariable: IPepQueryBuilderOperator = {\n legacy: 'InTheLastVariable',\n smartFilter: PepSmartFilterVariableOperators.InTheLastVariable,\n type: null\n} */\n\nconst NotInTheLast: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLast',\n smartFilter: PepSmartFilterOperators.NotInTheLast,\n type: null\n};\n\nconst NotInTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLastCalendar',\n smartFilter: PepSmartFilterAdditionalOperators.NotInTheLastCalendar,\n type: null\n}\n\nconst Today: IPepQueryBuilderOperator = {\n legacy: 'Today',\n smartFilter: PepSmartFilterOperators.Today,\n type: null\n};\n\nconst ThisWeek: IPepQueryBuilderOperator = {\n legacy: 'ThisWeek',\n smartFilter: PepSmartFilterOperators.ThisWeek,\n type: null\n};\n\nconst ThisMonth: IPepQueryBuilderOperator = {\n legacy: 'ThisMonth',\n smartFilter: PepSmartFilterOperators.ThisMonth,\n type: null\n};\n\nconst DateRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.DateRange,\n type: ['date-time']\n};\n\nconst dateRangeVariable: IPepQueryBuilderOperator = {\n legacy: 'BetweenVariable',\n smartFilter: PepSmartFilterVariableOperators.DateRangeVariable,\n type: ['date-time']\n};\n\nconst DueIn: IPepQueryBuilderOperator = {\n legacy: 'DueIn',\n smartFilter: PepSmartFilterOperators.DueIn,\n type: null\n};\n\nconst NotDueIn: IPepQueryBuilderOperator = {\n legacy: 'NotDueIn',\n smartFilter: PepSmartFilterOperators.NotDueIn,\n type: null\n};\n\nconst On: IPepQueryBuilderOperator = {\n legacy: 'On',\n smartFilter: PepSmartFilterOperators.On,\n type: null\n};\n\nconst IsEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsEmpty',\n smartFilter: PepSmartFilterOperators.IsEmpty,\n type: null\n};\n\nconst IsNotEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsNotEmpty',\n smartFilter: PepSmartFilterOperators.IsNotEmpty,\n type: null\n};\n\nconst In: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.In,\n type: ['multi-select']\n};\n\n\nconst PepQueryBuilderOperators = [\n Equals,\n EqualsVariable,\n NotEqual,\n NotEqualsVariable,\n LessThan,\n LessThanVarible,\n // LessThanOrEquals,\n GreaterThan,\n GreaterThanVarible,\n // GreaterThanOrEquals,\n NumberRange,\n Contains,\n BeginsWith,\n EndsWith,\n // After,\n // Before,\n InTheLast,\n // InTheLastVariable,\n InTheLastCalendar,\n NotInTheLast,\n NotInTheLastCalendar,\n Today,\n ThisWeek,\n ThisMonth,\n DateRange,\n dateRangeVariable,\n DueIn,\n NotDueIn,\n On,\n IsEmpty,\n IsNotEmpty,\n In\n]\n\n/**\n * gets a smart filter operator item\n * @param operator legacy operator\n * @param type smart filter's type\n * @returns smart filter operator item\n */\nexport function getSmartFilterOperator(operator: string, type: PepSmartFilterType): IPepSmartFilterOperator | null {\n const smartFilterOperator = PepQueryBuilderOperators.find(item =>\n item.legacy === operator &&\n (item.type === null || item.type.includes(type))\n );\n return smartFilterOperator ? smartFilterOperator.smartFilter : null;\n}\n\n/**\n * gets a legacy operator value\n * @param operator smart filter operator item\n * @param type smart filter's type\n * @returns legacy operator value\n */\nexport function getLegacyOperator(operator: IPepSmartFilterOperator, type: PepSmartFilterType): string | null {\n const legacyOperator = PepQueryBuilderOperators.find(item =>\n item.smartFilter === operator &&\n (item.type === null || item.type.includes(type))\n );\n return legacyOperator ? legacyOperator.legacy : null;\n}\n","\nimport { IPepSmartFilterOperatorUnit, PepSmartFilterOperatorUnits } from '@pepperi-addons/ngx-lib/smart-filters';\n\ninterface IPepQueryBuilderOperationUnit {\n legacy: string,\n smartFilter: IPepSmartFilterOperatorUnit,\n}\n\nconst Days: IPepQueryBuilderOperationUnit = {\n legacy: 'Days',\n smartFilter: PepSmartFilterOperatorUnits.Days\n};\n\nconst Weeks: IPepQueryBuilderOperationUnit = {\n legacy: 'Weeks',\n smartFilter: PepSmartFilterOperatorUnits.Weeks\n};\n\nconst Months: IPepQueryBuilderOperationUnit = {\n legacy: 'Months',\n smartFilter: PepSmartFilterOperatorUnits.Months\n};\n\nconst Years: IPepQueryBuilderOperationUnit = {\n legacy: 'Years',\n smartFilter: PepSmartFilterOperatorUnits.Years\n};\n\nconst PepQueryBuilderOperationUnit = [\n Days,\n Weeks,\n Months,\n Years,\n];\n\n/**\n * gets a smart filter operation unit item\n * @param operationUnit legacy operation unit\n * @returns smart filter operation unit item\n */\nexport function getSmartFilterOperationUnit(operationUnit: string): IPepSmartFilterOperatorUnit | null {\n const smartFilterOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.legacy === operationUnit);\n return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;\n}\n\n/**\n * gets a legacy operation unit value\n * @param operationUnit smart filter operation unit item\n * @returns legacy operation unit value\n */\nexport function getLegacyOperationUnit(operationUnit: IPepSmartFilterOperatorUnit): string | null {\n const legacyOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.smartFilter === operationUnit);\n return legacyOperationUnit ? legacyOperationUnit.legacy : null;\n}\n","import { Injectable } from '@angular/core';\nimport { IPepQuerySection, IPepQueryItem } from '../model/legacy';\nimport { getLegacyOperator } from '../model/operator';\nimport { PepOperatorTypes } from '../model/type';\nimport { getLegacyOperationUnit } from '../model/operator-unit';\nimport { \n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators\n} from '@pepperi-addons/ngx-lib/smart-filters';\n\n\n@Injectable()\nexport class PepOutputQueryService {\n private _complexIdCounter: number;\n private _expressionIdCounter: number;\n\n constructor() {\n //\n }\n\n /**\n * generates a legacy query structure \n * @param filters UI smart filters structure \n * @returns legacy query\n */\n generateQuery(filters: any) {\n this.initParams();\n\n return this.sectionWalk(filters);\n }\n\n /**\n * init params\n */\n private initParams() {\n this._complexIdCounter = 1;\n this._expressionIdCounter = 1;\n }\n\n /**\n * a recursive function dynamically builds legacy query structure\n * @param current UI object represents either a section or filter component\n * @returns section query data\n */\n private sectionWalk(current: any) {\n let section: IPepQuerySection | IPepQueryItem = null;\n\n Object.keys(current).forEach(key => {\n if (key.includes('item')) {\n section = this.addToSection(section, {\n ExpressionId: (this._expressionIdCounter++).toString(),\n ApiName: current[key].smart.fieldId,\n FieldType: current[key].query.fieldType,\n Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),\n Values: this.getItemValues(current[key].smart)\n } as IPepQueryItem, current.operator);\n } else if (key.includes('section')) {\n const childSection = this.sectionWalk(current[key]);\n if (childSection) {\n section = this.addToSection(section, childSection, current.operator);\n }\n }\n });\n\n return section;\n }\n\n /**\n * adds a legacy filter object to the current query structure\n * @param section section query data\n * @param item filter item\n * @param operator query operator\n * @returns \n */\n private addToSection(section: any, item: any, operator: string): any {\n return section ? this.createSection(section, item, operator) : item;\n }\n\n /**\n * creates a legacy complex object\n * @param left LeftNode object\n * @param right RightNode object\n * @param operator query operator\n * @returns legacy complex object\n */\n private createSection(left: any, right: any, operator: string): IPepQuerySection {\n return {\n ComplexId: (this._complexIdCounter++).toString(),\n LeftNode: left,\n RightNode: right,\n Operation: <PepOperatorTypes>operator\n }\n }\n\n /**\n * gets legacy filter values object\n * @param current UI filter object's values\n * @returns an array represents legacy values\n */\n private getItemValues(current: any) {\n let values: any[] = [];\n\n if (current?.values?.first) {\n if (current.operator === PepSmartFilterOperators.In) { //multi select \n values = current.values.first;\n } else if (\n current.operator === PepSmartFilterOperators.InTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n current.operator === PepSmartFilterOperators.NotInTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n current.operator === PepSmartFilterOperators.DueIn ||\n current.operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit \n values.push(current.values.first);\n if (current.operatorUnit) {\n values.push(getLegacyOperationUnit(current.operatorUnit));\n }\n } else {\n values.push(current.values.first);\n if (current.values.second) {\n values.push(current.values.second);\n }\n }\n }\n\n return values;\n }\n\n}","import { Injectable } from '@angular/core';\nimport { \n IPepQueryBuilderField, \n IPepQueryItem \n} from './common/model/legacy';\nimport { \n IPepSmartFilterData,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { getSmartFilterOperator } from './common/model/operator';\nimport { IPepQueryBuilderFieldContainer } from './common/model/field';\nimport { PepQueryBuilderTypeMap } from './common/model/type-map';\nimport { getSmartFilterOperationUnit } from './common/model/operator-unit';\nimport { IPepQueryBuilderValues } from './common/model/filter';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PepQueryBuilderService {\n\n constructor() {\n //\n }\n\n /**\n * creates a smart filter object\n * @param current filter legacy element\n * @param field filter's selected field\n * @returns smart filter object\n */\n getFilter(current: IPepQueryItem, field: PepSmartFilterBaseField): IPepSmartFilterData | null { \n const operator: IPepSmartFilterOperator = getSmartFilterOperator(current.Operation, field.type);\n if (operator) {\n const filterValues: IPepQueryBuilderValues = this.getFilterValues(current, operator, field);\n return createSmartFilter(\n current.ApiName,\n operator,\n filterValues.first,\n filterValues.second,\n filterValues.operationUnit\n );\n } else {\n return null;\n }\n }\n \n /**\n * converts legacy fields to smart filter fields\n * @param fields legacy fields array\n * @returns smart filter fields array\n */\n convertToSmartFilterFields(fields: Array<IPepQueryBuilderField>): Array<IPepQueryBuilderFieldContainer> {\n if (fields?.length > 0) {\n const typeMapper = new PepQueryBuilderTypeMap();\n\n return fields.map((field) => {\n return {\n smart: createSmartFilterField(\n {\n id: field.FieldID,\n name: field.Title,\n options: field.OptionalValues?.map(option => {\n return {\n key: option.Key,\n value: option.Value\n }\n })\n }, typeMapper.getSmartFilterType(field.FieldType) as PepSmartFilterType),\n query: {\n fieldType: field.FieldType\n }\n }\n })\n } else {\n return [];\n }\n }\n \n /**\n * gets smart filter's values data\n * @param current filter legacy element\n * @param operator smart filter operator\n * @param field filter's selected field\n * @returns object contains the filter values data\n */\n private getFilterValues(current: IPepQueryItem, operator: IPepSmartFilterOperator, field: any) {\n const data: IPepQueryBuilderValues = {\n first: null,\n second: null,\n operationUnit: null\n };\n\n if (operator === PepSmartFilterOperators.In) { //multi select \n //filter keys don't exist on field options\n data.first = current?.Values?.length > 0 ? current.Values.filter(item => {\n return field.options.find(option => option.key === item);\n }) : null;\n } else if (\n operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n if (current?.Values?.length === 2) {\n data.operationUnit = getSmartFilterOperationUnit(current.Values[1]);\n }\n } else {\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n data.second = current?.Values?.length === 2 ? current.Values[1] : null;\n }\n\n return data;\n }\n\n}","import { Injectable, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { } from 'lodash';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from '../../common/model/legacy';\nimport {\n IPepSmartFilterData,\n PepSmartFilterOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepQueryBuilderService } from '../../query-builder.service';\nimport { PepOutputQueryService } from '../../common/services/output-query.service';\nimport { getSmartFilterOperator } from '../../common/model/operator';\nimport { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';\nimport { IPepQueryBuilderFieldContainer } from '../../common/model/field';\nimport { PepQueryBuilderTypeMap } from '../../common/model/type-map';\nimport { getSmartFilterOperationUnit } from '../../common/model/operator-unit';\nimport { IPepQueryBuilderValues } from '../../common/model/filter';\nimport { PepOperatorTypes } from '../../common/model/type';\n\nconst MAX_STRUCTURE_DEPTH = 3;\n\n@Injectable()\nexport class PepQueryStructureService {\n private _outputQuery$ = new BehaviorSubject<IPepQuerySection | IPepQueryItem>(null);\n\n private _smartFilterFields: Array<IPepQueryBuilderFieldContainer>;\n private _variableFields: any = {};\n private _form: FormGroup;\n private _maxStructureDepth = MAX_STRUCTURE_DEPTH;\n\n public outputQuery$ = this._outputQuery$.asObservable();\n\n constructor(\n private _resolver: ComponentFactoryResolver,\n private _outputQueryService: PepOutputQueryService,\n private _queryBuilderService: PepQueryBuilderService) {\n\n }\n\n set maxDepth(value) {\n this._maxStructureDepth = value;\n }\n\n get maxDepth() {\n return this._maxStructureDepth;\n }\n\n set fields(list: Array<IPepQueryBuilderField>) {\n this._smartFilterFields = this._queryBuilderService.convertToSmartFilterFields(list);\n }\n\n get hasFields(): boolean {\n return this._smartFilterFields?.length > 0;\n }\n\n set variableFields(list: Array<IPepQueryBuilderField>) {\n if (list?.length) {\n const typeMapper = new PepQueryBuilderTypeMap();\n list.forEach(field => {\n const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));\n if (this.hasProperty(this._variableFields, fieldType)) {\n this._variableFields[fieldType].push(field.FieldID);\n } else {\n this._variableFields[fieldType] = [field.FieldID];\n }\n });\n }\n }\n\n set form(value: FormGroup) {\n this._form = value;\n }\n\n get form() {\n return this._form;\n }\n\n /**\n * builds a dynamic UI query structure\n * might has a different structure than the query's due to parent-child elements merge\n * @param query legacy query \n * @param containerRef reference to root element\n */\n buildQueryStructure(\n query: IPepQuerySection | IPepQueryItem,\n containerRef: ViewContainerRef\n ) {\n //update root operator \n if (this.hasProperty(query, 'ComplexId') &&\n query?.Operation &&\n query.Operation !== this._form.get('operator').value) {\n this._form.get('operator').setValue(query.Operation);\n }\n this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);\n }\n\n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n private hasProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n /**\n * a recursive function dynamically builds UI filters structure\n * @param parentOperator parent legacy complex operator\n * @param current child legacy object (either another complex or expression type)\n * @param containerRef parent element\n * @param parentForm parent form\n */\n private flatten(parentOperator: string, current: IPepQuerySection | IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n if (this.hasProperty(current, 'ComplexId')) {\n const section = current as IPepQuerySection;\n if (parentOperator === current.Operation) {\n this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);\n this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);\n } else {\n const result = this.createSection(section.Operation, containerRef, parentForm, depth + 1);\n this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);\n this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);\n }\n } else if (this.hasProperty(current, 'ExpressionId')) {\n this.createItem(current as IPepQueryItem, containerRef, parentForm);\n }\n }\n\n /**\n * creates a container object of two or more child filter items\n * @param operator AND/OR operator\n * @param containerRef parent element\n * @param parentForm parent form\n * @param depth\n * @returns an object containing the current element and current form\n */\n createSection(operator: PepOperatorTypes, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);\n const componentRef = containerRef.createComponent(factory);\n\n // const sectionGroup = this._fb.group({\n // operator: this._fb.control(operator)\n // });\n const sectionGroup = new FormGroup({\n operator: new FormControl(operator)\n });\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) { counter++; } });\n const formKey = `section${counter}`;\n parentForm.addControl(formKey, sectionGroup);\n\n componentRef.instance.form = sectionGroup;\n componentRef.instance.depth = {\n current: depth,\n max: this._maxStructureDepth\n };\n componentRef.instance.createSection.subscribe(() => {\n const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);\n this.createItem(null, section.containerRef, section.parentForm);\n });\n componentRef.instance.createItem.subscribe(() => {\n this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n componentRef.instance.operatorChange.subscribe(() => {\n this.createOutputQuery();\n });\n\n return {\n containerRef: componentRef.instance.sectionContainer,\n parentForm: sectionGroup\n };\n }\n\n /**\n * creates a component represents filter item (leaf element - has no childs)\n * @param current filter legacy element\n * @param containerRef parent element\n * @param parentForm parent form\n */\n createItem(current: IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);\n const componentRef = containerRef.createComponent(factory);\n\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) { counter++; } });\n const formKey = `item${counter}`;\n\n componentRef.instance.formKey = formKey;\n componentRef.instance.fields = this._smartFilterFields;\n componentRef.instance.variableFields = this._variableFields;\n const selectedField = this.getSelectedField(current);\n if (selectedField) {\n componentRef.instance.selected = selectedField;\n if (current) {\n componentRef.instance.filter = this._queryBuilderService.getFilter(current, selectedField.smart);\n }\n }\n componentRef.instance.parentForm = parentForm;\n componentRef.instance.filterChange.subscribe(() => {\n this.createOutputQuery();\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n }\n\n /**\n * get smart filter field\n * @param current filter legacy element\n * @returns smart filter field, if not found returns the first field\n */\n private getSelectedField(current: IPepQueryItem): IPepQueryBuilderFieldContainer | null {\n if (current) {\n const item = this._smartFilterFields.find(field => field.smart.id === current.ApiName);\n return item ? item : this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n } else {\n return this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n }\n }\n\n private convertSmartFilterComponentType(type: string) {\n switch (type) {\n case 'int':\n case 'currency':\n case 'real':\n case 'percentage':\n return 'number';\n case 'date-time':\n return 'date';\n default:\n return type;\n }\n }\n\n /**\n * creates a legacy output query \n */\n createOutputQuery() {\n if (this._form.valid) {\n const query = this._outputQueryService.generateQuery(this._form.value);\n this._outputQuery$.next(query);\n }\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n OnInit,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from './common/model/legacy';\nimport { PepQueryStructureService } from './common/services/query-structure.service';\nimport { PepTypeConvertorService } from './common/services/type-convertor.service';\nimport { PepOutputQueryService } from './common/services/output-query.service';\nimport { IPepQueryDepth } from './common/model/structure';\nimport { PepOperatorTypes } from './common/model/type';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'pep-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.scss'],\n providers: [ PepQueryStructureService, PepTypeConvertorService, PepOutputQueryService]\n})\nexport class PepQueryBuilderComponent implements OnInit, OnDestroy {\n _query: IPepQuerySection | IPepQueryItem = null;\n @Input()\n set query(object: IPepQuerySection | IPepQueryItem) {\n this._query = object;\n this.loadQuery()\n }\n @Input()\n set fields(list: Array<IPepQueryBuilderField>) {\n this.queryStructureService.fields = list;\n this.hasFields = this.queryStructureService.hasFields;\n this.loadQuery();\n }\n @Input() \n set variableFields(list : Array<IPepQueryBuilderField>) {\n this.queryStructureService.variableFields = list;\n }\n @Input()\n set maxDepth(value: number) {\n this.queryStructureService.maxDepth = value;\n }\n\n @Output()\n queryChange: EventEmitter<IPepQuerySection | IPepQueryItem> = new EventEmitter<IPepQuerySection | IPepQueryItem>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('rootContainer', { static: true }) root: PepQueryBuilderSectionComponent;\n\n _formSubscription$: Subscription;\n _outputQuerySubscription$: Subscription;\n _lastFormValidStatus = true;\n depth: IPepQueryDepth;\n hasFields = false;\n\n constructor(\n private _fb: FormBuilder,\n public queryStructureService: PepQueryStructureService\n ) {\n this.setupForm();\n this.initDepth();\n this._formSubscription$ = this.queryStructureService.form.valueChanges.subscribe((val) => {\n if (this.queryStructureService.form.valid !== this._lastFormValidStatus) {\n this._lastFormValidStatus = this.queryStructureService.form.valid;\n this.formValidationChange.emit(this._lastFormValidStatus);\n }\n });\n this._outputQuerySubscription$ = this.queryStructureService.outputQuery$.subscribe((outputQuery) => {\n this.queryChange.emit(outputQuery);\n });\n }\n\n ngOnInit() {\n //\n }\n\n setupForm() {\n this.queryStructureService.form = this._fb.group({\n operator: this._fb.control(PepOperatorTypes.And)\n });\n }\n\n initDepth() {\n this.depth = {\n current: 0,\n max: this.queryStructureService.maxDepth\n }\n }\n\n /**\n * builds UI query structure as soon as both the fields and query loads\n */\n loadQuery() {\n if (\n this._query &&\n this.queryStructureService.hasFields &&\n this.root?.sectionContainer\n ) {\n this.queryStructureService.buildQueryStructure(this._query, this.root.sectionContainer);\n }\n }\n\n onCreateSection() {\n const section = this.queryStructureService.createSection(PepOperatorTypes.And, this.root.sectionContainer, this.queryStructureService.form, 1);\n this.queryStructureService.createItem(null, section.containerRef, section.parentForm);\n }\n\n onCreateItem() {\n this.queryStructureService.createItem(null, this.root.sectionContainer, this.queryStructureService.form);\n }\n\n onOperatorChange() {\n this.queryStructureService.createOutputQuery();\n }\n\n ngOnDestroy() {\n if (this._formSubscription$) {\n this._formSubscription$.unsubscribe();\n }\n if (this._outputQuerySubscription$) {\n this._outputQuerySubscription$.unsubscribe();\n }\n }\n\n}\n","<pep-query-builder-section #rootContainer [form]=\"queryStructureService.form\" [depth]=\"depth\" [hasFields]=\"hasFields\"\n (createSection)=\"onCreateSection()\" (createItem)=\"onCreateItem()\" (operatorChange)=\"onOperatorChange()\">\n</pep-query-builder-section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\nimport { PepQueryBuilderComponent } from './query-builder.component';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n PepSelectModule,\n PepButtonModule,\n PepGroupButtonsModule,\n PepSmartFiltersModule\n ],\n exports: [\n PepQueryBuilderComponent\n ],\n declarations: [\n PepQueryBuilderComponent,\n PepQueryBuilderSectionComponent,\n PepQueryBuilderItemComponent\n ],\n providers: [\n FormBuilder\n ]\n})\nexport class PepQueryBuilderModule { }\n","/*\n * Public API Surface of ngx-lib/query-builder\n */\nexport * from './query-builder.module';\nexport * from './query-builder.component';\nexport * from './query-builder.service';\nexport * from './common/model/legacy';\nexport * from './query-builder.service';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepTypeConvertorService","i2","i3","i2.PepTypeConvertorService","i4","i5","i6","i1.PepOutputQueryService","i2.PepQueryBuilderService","i2.PepQueryStructureService","i3.PepQueryBuilderSectionComponent"],"mappings":"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"}
1
+ {"version":3,"file":"pepperi-addons-ngx-lib-query-builder.mjs","sources":["../../../projects/ngx-lib/query-builder/common/services/type-convertor.service.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.html","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.ts","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.html","../../../projects/ngx-lib/query-builder/common/model/type-map.ts","../../../projects/ngx-lib/query-builder/common/model/type.ts","../../../projects/ngx-lib/query-builder/common/model/operator.ts","../../../projects/ngx-lib/query-builder/common/model/operator-unit.ts","../../../projects/ngx-lib/query-builder/common/services/output-query.service.ts","../../../projects/ngx-lib/query-builder/query-builder.service.ts","../../../projects/ngx-lib/query-builder/common/services/query-structure.service.ts","../../../projects/ngx-lib/query-builder/query-builder.component.ts","../../../projects/ngx-lib/query-builder/query-builder.component.html","../../../projects/ngx-lib/query-builder/query-builder.module.ts","../../../projects/ngx-lib/query-builder/public-api.ts","../../../projects/ngx-lib/query-builder/pepperi-addons-ngx-lib-query-builder.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Injectable()\nexport class PepTypeConvertorService {\n private readonly _operators: IPepOption[] = [];\n private readonly _booleans: IPepOption[] = [];\n\n public get operators(): IPepOption[] {\n return this._operators;\n }\n\n public get booleans(): IPepOption[] {\n return this._booleans;\n }\n\n constructor() {\n this.initOperators();\n this.initBooleans();\n }\n\n private initOperators() {\n this._operators.push({\n key: 'AND',\n value: 'And'\n });\n this._operators.push({\n key: 'OR',\n value: 'Or'\n });\n }\n\n private initBooleans() {\n this._booleans.push({\n key: 'True',\n value: 'True'\n });\n this._booleans.push({\n key: 'False',\n value: 'False'\n });\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n IPepButtonClickEvent,\n PepButton,\n} from '@pepperi-addons/ngx-lib/button';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryDepth } from '../common/model/structure';\n\n@Component({\n selector: 'pep-query-builder-section',\n templateUrl: './query-builder-section.component.html',\n styleUrls: ['./query-builder-section.component.scss', './query-builder-section.component.theme.scss'],\n})\nexport class PepQueryBuilderSectionComponent {\n @Input() form: FormGroup;\n @Input() depth: IPepQueryDepth;\n @Input() hasFields = true;\n\n @Output()\n createSection = new EventEmitter();\n @Output()\n createItem = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n @Output()\n operatorChange = new EventEmitter();\n\n @ViewChild('sectionContainer', { read: ViewContainerRef, static: true }) sectionContainer: ViewContainerRef;\n\n toggleButtons: Array<PepButton>;\n\n constructor(private _typeConvertorService: PepTypeConvertorService) {\n }\n\n ngOnInit() {\n this.initOperators();\n }\n\n get f() {\n return this.form.controls;\n }\n\n initOperators() {\n this.toggleButtons = this._typeConvertorService.operators.map((operator: IPepOption) => {\n return {\n key: operator.key,\n value: operator.value,\n callback: (event: IPepButtonClickEvent) =>\n this.onOperatorChanged(event)\n } as PepButton\n });\n }\n\n onOperatorChanged(event) {\n if (event?.source?.key) {\n this.f.operator.setValue(event.source.key);\n this.operatorChange.emit();\n }\n }\n\n onAddRuleClicked() {\n this.createItem.emit();\n }\n\n onAddRuleSetClicked() {\n this.createSection.emit();\n }\n\n onDeleteSectionClicked() {\n this.remove.emit();\n }\n\n\n}\n","<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { PepSmartFilterBaseField, IPepSmartFilterField } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepSmartFilterData } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryBuilderFieldContainer } from '../common/model/field';\n\n\n@Component({\n selector: 'pep-query-builder-item',\n templateUrl: './query-builder-item.component.html',\n styleUrls: ['./query-builder-item.component.scss'],\n})\nexport class PepQueryBuilderItemComponent {\n @Input() formKey: string;\n _fields: Array<IPepQueryBuilderFieldContainer> = [];\n _options: IPepOption[] = [];\n @Input()\n set fields(list: Array<IPepQueryBuilderFieldContainer>) {\n if (list?.length > 0) {\n this._fields = list;\n this._options = list.map(field => {\n return {\n key: field.smart.id,\n value: field.smart.name\n }\n })\n }\n }\n _selectedField: PepSmartFilterBaseField = null;\n @Input()\n set selected(value: IPepQueryBuilderFieldContainer) {\n if (value) {\n this._selectedField = value.smart;\n this.queryForm.fieldType.setValue(value.query.fieldType);\n }\n }\n _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n if (value) {\n this._filter = value;\n }\n }\n _parentForm: FormGroup;\n @Input()\n set parentForm(value: FormGroup) {\n if (value) {\n this._parentForm = value;\n this.addToParentForm();\n }\n }\n \n @Input() \n variableFields: any = {};\n\n @Output()\n filterChange = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n\n form: FormGroup;\n\n constructor(\n private _fb: FormBuilder,\n public typeConvertorService: PepTypeConvertorService\n ) {\n this.setupForm();\n }\n\n ngOnInit() {\n //\n }\n\n get f() {\n return this.form.controls;\n }\n\n get queryForm() {\n return (this.f.query as FormGroup).controls;\n }\n\n setupForm() {\n this.form = this._fb.group({\n smart: this._fb.group({\n fieldId: this._fb.control(null),\n fieldType: this._fb.control(null),\n operator: this._fb.control(null),\n operatorUnit: this._fb.control(null),\n values: this._fb.group({\n first: this._fb.control(null),\n second: this._fb.control(null)\n })\n }),\n query: this._fb.group({\n fieldType: this._fb.control(null)\n })\n });\n }\n\n addToParentForm() {\n this._parentForm.setControl(this.formKey, this.form);\n }\n\n onFieldChanged(key) {\n const item = this._fields.find(field => field.smart.id === key);\n\n this.setupForm();\n this.queryForm.fieldType.setValue(item.query.fieldType);\n this.addToParentForm();\n\n /**\n * hack due to angular's change detection bug -\n * ERROR Error: There is no FormControl instance attached to form control element with name: [formControlName]\n */\n this._selectedField = null;\n setTimeout(() => {\n this._selectedField = item ? item.smart : null;\n }, 0);\n\n this._filter = null;\n }\n\n onFilterChanged() {\n if (this.form.valid) {\n this.filterChange.emit();\n }\n }\n\n onDeleteItemClicked() {\n this.remove.emit();\n }\n\n\n\n}\n","<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.['multi-select']\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>","import { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\n\nexport class PepQueryBuilderTypeMap {\n private map: Map<string, PepSmartFilterType>;\n\n constructor() {\n this.loadTypes();\n }\n\n private loadTypes() {\n this.map = new Map<string, PepSmartFilterType>();\n this.map.set('Bool', 'boolean');\n this.map.set('JsonBool', 'boolean');\n this.map.set('Integer', 'int');\n this.map.set('Double', 'real');\n this.map.set('String', 'text');\n this.map.set('Guid', 'text');\n this.map.set('Date', 'date');\n this.map.set('DateTime', 'date-time');\n this.map.set('MultipleStringValues', 'multi-select');\n }\n\n /**\n * Converts legacy field type to smart filter type\n * @param type legacy type\n * @returns smart filter field type\n */\n getSmartFilterType(key: string): PepSmartFilterType | null {\n const item = this.map.get(key);\n return item ? item : null;\n }\n\n}\n\n","export enum PepOperatorTypes {\n And = 'AND',\n Or = 'OR'\n}\n\n","import {\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n IPepSmartFilterOperator\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\nexport interface IPepQueryBuilderOperator {\n legacy: string, //legacy Operator \n smartFilter: IPepSmartFilterOperator, //smart filter operator \n type: PepSmartFilterType[] | null //smart filter type\n}\n\nconst Equals: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.Equals,\n type: ['boolean', 'int', 'text', 'real']\n};\n\nconst EqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsEqualVariable',\n smartFilter: PepSmartFilterVariableOperators.EqualsToVariable,\n type: ['boolean', 'int', 'text', 'multi-select']\n};\n\nconst NotEqual: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqual',\n smartFilter: PepSmartFilterOperators.NotEqual,\n type: null\n};\n\nconst NotEqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqualVariable',\n smartFilter: PepSmartFilterVariableOperators.NotEqualsToVariable,\n type: ['boolean', 'multi-select']\n};\n\nconst LessThan: IPepQueryBuilderOperator = {\n legacy: '<',\n smartFilter: PepSmartFilterOperators.LessThan,\n type: null\n};\n\nconst LessThanVarible: IPepQueryBuilderOperator = {\n legacy: 'LessThanVarible',\n smartFilter: PepSmartFilterVariableOperators.LessThanVariable,\n type: null\n};\n\nconst GreaterThan: IPepQueryBuilderOperator = {\n legacy: '>',\n smartFilter: PepSmartFilterOperators.GreaterThan,\n type: null\n};\n\nconst GreaterThanVarible: IPepQueryBuilderOperator = {\n legacy: 'GreaterThanVarible',\n smartFilter: PepSmartFilterVariableOperators.GreaterThanVariable,\n type: null\n};\n\n/*\nconst GreaterThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '>=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.GreaterThanOrEquals,\n type: 'int'\n }\n};\n\nconst LessThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '<=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.LessThanOrEquals,\n type: 'int',\n type: 'Integer'\n }\n}; */\n\nconst NumberRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.NumberRange,\n type: ['int']\n};\n\nconst Contains: IPepQueryBuilderOperator = {\n legacy: 'Contains',\n smartFilter: PepSmartFilterOperators.Contains,\n type: null\n};\n\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: 'BeginsWith',\n smartFilter: PepSmartFilterOperators.BeginsWith,\n type: null\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: 'EndsWith',\n smartFilter: PepSmartFilterOperators.EndsWith,\n type: null\n};\n\n/*\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'BeginsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.BeginsWith,\n type: 'text'\n }\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'EndsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.EndsWith,\n type: 'text'\n }\n};\n\nconst Before: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'Before',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.Before,\n type: 'date'\n }\n};\n\nconst After: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'After',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.After,\n type: 'date'\n }\n}; */\n\nconst InTheLast: IPepQueryBuilderOperator = {\n legacy: 'InTheLast',\n smartFilter: PepSmartFilterOperators.InTheLast,\n type: null\n};\n\nconst InTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'InTheLastCalendar',\n smartFilter: PepSmartFilterAdditionalOperators.InTheLastCalendar,\n type: null\n}\n\n/*\nconst InTheLastVariable: IPepQueryBuilderOperator = {\n legacy: 'InTheLastVariable',\n smartFilter: PepSmartFilterVariableOperators.InTheLastVariable,\n type: null\n} */\n\nconst NotInTheLast: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLast',\n smartFilter: PepSmartFilterOperators.NotInTheLast,\n type: null\n};\n\nconst NotInTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLastCalendar',\n smartFilter: PepSmartFilterAdditionalOperators.NotInTheLastCalendar,\n type: null\n}\n\nconst Today: IPepQueryBuilderOperator = {\n legacy: 'Today',\n smartFilter: PepSmartFilterOperators.Today,\n type: null\n};\n\nconst ThisWeek: IPepQueryBuilderOperator = {\n legacy: 'ThisWeek',\n smartFilter: PepSmartFilterOperators.ThisWeek,\n type: null\n};\n\nconst ThisMonth: IPepQueryBuilderOperator = {\n legacy: 'ThisMonth',\n smartFilter: PepSmartFilterOperators.ThisMonth,\n type: null\n};\n\nconst DateRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.DateRange,\n type: ['date-time']\n};\n\nconst dateRangeVariable: IPepQueryBuilderOperator = {\n legacy: 'BetweenVariable',\n smartFilter: PepSmartFilterVariableOperators.DateRangeVariable,\n type: ['date-time']\n};\n\nconst DueIn: IPepQueryBuilderOperator = {\n legacy: 'DueIn',\n smartFilter: PepSmartFilterOperators.DueIn,\n type: null\n};\n\nconst NotDueIn: IPepQueryBuilderOperator = {\n legacy: 'NotDueIn',\n smartFilter: PepSmartFilterOperators.NotDueIn,\n type: null\n};\n\nconst On: IPepQueryBuilderOperator = {\n legacy: 'On',\n smartFilter: PepSmartFilterOperators.On,\n type: null\n};\n\nconst IsEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsEmpty',\n smartFilter: PepSmartFilterOperators.IsEmpty,\n type: null\n};\n\nconst IsNotEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsNotEmpty',\n smartFilter: PepSmartFilterOperators.IsNotEmpty,\n type: null\n};\n\nconst In: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.In,\n type: ['multi-select']\n};\n\n\nconst PepQueryBuilderOperators = [\n Equals,\n EqualsVariable,\n NotEqual,\n NotEqualsVariable,\n LessThan,\n LessThanVarible,\n // LessThanOrEquals,\n GreaterThan,\n GreaterThanVarible,\n // GreaterThanOrEquals,\n NumberRange,\n Contains,\n BeginsWith,\n EndsWith,\n // After,\n // Before,\n InTheLast,\n // InTheLastVariable,\n InTheLastCalendar,\n NotInTheLast,\n NotInTheLastCalendar,\n Today,\n ThisWeek,\n ThisMonth,\n DateRange,\n dateRangeVariable,\n DueIn,\n NotDueIn,\n On,\n IsEmpty,\n IsNotEmpty,\n In\n]\n\n/**\n * gets a smart filter operator item\n * @param operator legacy operator\n * @param type smart filter's type\n * @returns smart filter operator item\n */\nexport function getSmartFilterOperator(operator: string, type: PepSmartFilterType): IPepSmartFilterOperator | null {\n const smartFilterOperator = PepQueryBuilderOperators.find(item =>\n item.legacy === operator &&\n (item.type === null || item.type.includes(type))\n );\n return smartFilterOperator ? smartFilterOperator.smartFilter : null;\n}\n\n/**\n * gets a legacy operator value\n * @param operator smart filter operator item\n * @param type smart filter's type\n * @returns legacy operator value\n */\nexport function getLegacyOperator(operator: IPepSmartFilterOperator, type: PepSmartFilterType): string | null {\n const legacyOperator = PepQueryBuilderOperators.find(item =>\n item.smartFilter === operator &&\n (item.type === null || item.type.includes(type))\n );\n return legacyOperator ? legacyOperator.legacy : null;\n}\n","\nimport { IPepSmartFilterOperatorUnit, PepSmartFilterOperatorUnits } from '@pepperi-addons/ngx-lib/smart-filters';\n\ninterface IPepQueryBuilderOperationUnit {\n legacy: string,\n smartFilter: IPepSmartFilterOperatorUnit,\n}\n\nconst Days: IPepQueryBuilderOperationUnit = {\n legacy: 'Days',\n smartFilter: PepSmartFilterOperatorUnits.Days\n};\n\nconst Weeks: IPepQueryBuilderOperationUnit = {\n legacy: 'Weeks',\n smartFilter: PepSmartFilterOperatorUnits.Weeks\n};\n\nconst Months: IPepQueryBuilderOperationUnit = {\n legacy: 'Months',\n smartFilter: PepSmartFilterOperatorUnits.Months\n};\n\nconst Years: IPepQueryBuilderOperationUnit = {\n legacy: 'Years',\n smartFilter: PepSmartFilterOperatorUnits.Years\n};\n\nconst PepQueryBuilderOperationUnit = [\n Days,\n Weeks,\n Months,\n Years,\n];\n\n/**\n * gets a smart filter operation unit item\n * @param operationUnit legacy operation unit\n * @returns smart filter operation unit item\n */\nexport function getSmartFilterOperationUnit(operationUnit: string): IPepSmartFilterOperatorUnit | null {\n const smartFilterOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.legacy === operationUnit);\n return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;\n}\n\n/**\n * gets a legacy operation unit value\n * @param operationUnit smart filter operation unit item\n * @returns legacy operation unit value\n */\nexport function getLegacyOperationUnit(operationUnit: IPepSmartFilterOperatorUnit): string | null {\n const legacyOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.smartFilter === operationUnit);\n return legacyOperationUnit ? legacyOperationUnit.legacy : null;\n}\n","import { Injectable } from '@angular/core';\nimport { IPepQuerySection, IPepQueryItem } from '../model/legacy';\nimport { getLegacyOperator } from '../model/operator';\nimport { PepOperatorTypes } from '../model/type';\nimport { getLegacyOperationUnit } from '../model/operator-unit';\nimport { \n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators\n} from '@pepperi-addons/ngx-lib/smart-filters';\n\n\n@Injectable()\nexport class PepOutputQueryService {\n private _complexIdCounter: number;\n private _expressionIdCounter: number;\n\n constructor() {\n //\n }\n\n /**\n * generates a legacy query structure \n * @param filters UI smart filters structure \n * @returns legacy query\n */\n generateQuery(filters: any) {\n this.initParams();\n\n return this.sectionWalk(filters);\n }\n\n /**\n * init params\n */\n private initParams() {\n this._complexIdCounter = 1;\n this._expressionIdCounter = 1;\n }\n\n /**\n * a recursive function dynamically builds legacy query structure\n * @param current UI object represents either a section or filter component\n * @returns section query data\n */\n private sectionWalk(current: any) {\n let section: IPepQuerySection | IPepQueryItem = null;\n\n Object.keys(current).forEach(key => {\n if (key.includes('item')) {\n section = this.addToSection(section, {\n ExpressionId: (this._expressionIdCounter++).toString(),\n ApiName: current[key].smart.fieldId,\n FieldType: current[key].query.fieldType,\n Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),\n Values: this.getItemValues(current[key].smart)\n } as IPepQueryItem, current.operator);\n } else if (key.includes('section')) {\n const childSection = this.sectionWalk(current[key]);\n if (childSection) {\n section = this.addToSection(section, childSection, current.operator);\n }\n }\n });\n\n return section;\n }\n\n /**\n * adds a legacy filter object to the current query structure\n * @param section section query data\n * @param item filter item\n * @param operator query operator\n * @returns \n */\n private addToSection(section: any, item: any, operator: string): any {\n return section ? this.createSection(section, item, operator) : item;\n }\n\n /**\n * creates a legacy complex object\n * @param left LeftNode object\n * @param right RightNode object\n * @param operator query operator\n * @returns legacy complex object\n */\n private createSection(left: any, right: any, operator: string): IPepQuerySection {\n return {\n ComplexId: (this._complexIdCounter++).toString(),\n LeftNode: left,\n RightNode: right,\n Operation: <PepOperatorTypes>operator\n }\n }\n\n /**\n * gets legacy filter values object\n * @param current UI filter object's values\n * @returns an array represents legacy values\n */\n private getItemValues(current: any) {\n let values: any[] = [];\n\n if (current?.values?.first) {\n if (current.operator === PepSmartFilterOperators.In) { //multi select \n values = current.values.first;\n } else if (\n current.operator === PepSmartFilterOperators.InTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n current.operator === PepSmartFilterOperators.NotInTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n current.operator === PepSmartFilterOperators.DueIn ||\n current.operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit \n values.push(current.values.first);\n if (current.operatorUnit) {\n values.push(getLegacyOperationUnit(current.operatorUnit));\n }\n } else {\n values.push(current.values.first);\n if (current.values.second) {\n values.push(current.values.second);\n }\n }\n }\n\n return values;\n }\n\n}","import { Injectable } from '@angular/core';\nimport { \n IPepQueryBuilderField, \n IPepQueryItem \n} from './common/model/legacy';\nimport { \n IPepSmartFilterData,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { getSmartFilterOperator } from './common/model/operator';\nimport { IPepQueryBuilderFieldContainer } from './common/model/field';\nimport { PepQueryBuilderTypeMap } from './common/model/type-map';\nimport { getSmartFilterOperationUnit } from './common/model/operator-unit';\nimport { IPepQueryBuilderValues } from './common/model/filter';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PepQueryBuilderService {\n\n constructor() {\n //\n }\n\n /**\n * creates a smart filter object\n * @param current filter legacy element\n * @param field filter's selected field\n * @returns smart filter object\n */\n getFilter(current: IPepQueryItem, field: PepSmartFilterBaseField): IPepSmartFilterData | null { \n const operator: IPepSmartFilterOperator = getSmartFilterOperator(current.Operation, field.type);\n if (operator) {\n const filterValues: IPepQueryBuilderValues = this.getFilterValues(current, operator, field);\n return createSmartFilter(\n current.ApiName,\n operator,\n filterValues.first,\n filterValues.second,\n filterValues.operationUnit\n );\n } else {\n return null;\n }\n }\n \n /**\n * converts legacy fields to smart filter fields\n * @param fields legacy fields array\n * @returns smart filter fields array\n */\n convertToSmartFilterFields(fields: Array<IPepQueryBuilderField>): Array<IPepQueryBuilderFieldContainer> {\n if (fields?.length > 0) {\n const typeMapper = new PepQueryBuilderTypeMap();\n\n return fields.map((field) => {\n return {\n smart: createSmartFilterField(\n {\n id: field.FieldID,\n name: field.Title,\n options: field.OptionalValues?.map(option => {\n return {\n key: option.Key,\n value: option.Value\n }\n })\n }, typeMapper.getSmartFilterType(field.FieldType) as PepSmartFilterType),\n query: {\n fieldType: field.FieldType\n }\n }\n })\n } else {\n return [];\n }\n }\n \n /**\n * gets smart filter's values data\n * @param current filter legacy element\n * @param operator smart filter operator\n * @param field filter's selected field\n * @returns object contains the filter values data\n */\n private getFilterValues(current: IPepQueryItem, operator: IPepSmartFilterOperator, field: any) {\n const data: IPepQueryBuilderValues = {\n first: null,\n second: null,\n operationUnit: null\n };\n\n if (operator === PepSmartFilterOperators.In) { //multi select \n //filter keys don't exist on field options\n data.first = current?.Values?.length > 0 ? current.Values.filter(item => {\n return field.options.find(option => option.key === item);\n }) : null;\n } else if (\n operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n if (current?.Values?.length === 2) {\n data.operationUnit = getSmartFilterOperationUnit(current.Values[1]);\n }\n } else {\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n data.second = current?.Values?.length === 2 ? current.Values[1] : null;\n }\n\n return data;\n }\n\n}","import { Injectable, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { } from 'lodash';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from '../../common/model/legacy';\nimport {\n IPepSmartFilterData,\n PepSmartFilterOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepQueryBuilderService } from '../../query-builder.service';\nimport { PepOutputQueryService } from '../../common/services/output-query.service';\nimport { getSmartFilterOperator } from '../../common/model/operator';\nimport { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';\nimport { IPepQueryBuilderFieldContainer } from '../../common/model/field';\nimport { PepQueryBuilderTypeMap } from '../../common/model/type-map';\nimport { getSmartFilterOperationUnit } from '../../common/model/operator-unit';\nimport { IPepQueryBuilderValues } from '../../common/model/filter';\nimport { PepOperatorTypes } from '../../common/model/type';\n\nconst MAX_STRUCTURE_DEPTH = 3;\n\n@Injectable()\nexport class PepQueryStructureService {\n private _outputQuery$ = new BehaviorSubject<IPepQuerySection | IPepQueryItem>(null);\n\n private _smartFilterFields: Array<IPepQueryBuilderFieldContainer>;\n private _variableFields: any = {};\n private _form: FormGroup;\n private _maxStructureDepth = MAX_STRUCTURE_DEPTH;\n\n public outputQuery$ = this._outputQuery$.asObservable();\n\n constructor(\n private _resolver: ComponentFactoryResolver,\n private _outputQueryService: PepOutputQueryService,\n private _queryBuilderService: PepQueryBuilderService) {\n\n }\n\n set maxDepth(value) {\n this._maxStructureDepth = value;\n }\n\n get maxDepth() {\n return this._maxStructureDepth;\n }\n\n set fields(list: Array<IPepQueryBuilderField>) {\n this._smartFilterFields = this._queryBuilderService.convertToSmartFilterFields(list);\n }\n\n get hasFields(): boolean {\n return this._smartFilterFields?.length > 0;\n }\n\n set variableFields(list: Array<IPepQueryBuilderField>) {\n if (list?.length) {\n const typeMapper = new PepQueryBuilderTypeMap();\n list.forEach(field => {\n const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));\n if (this.hasProperty(this._variableFields, fieldType)) {\n this._variableFields[fieldType].push(field.FieldID);\n } else {\n this._variableFields[fieldType] = [field.FieldID];\n }\n });\n }\n }\n\n set form(value: FormGroup) {\n this._form = value;\n }\n\n get form() {\n return this._form;\n }\n\n /**\n * builds a dynamic UI query structure\n * might has a different structure than the query's due to parent-child elements merge\n * @param query legacy query \n * @param containerRef reference to root element\n */\n buildQueryStructure(\n query: IPepQuerySection | IPepQueryItem,\n containerRef: ViewContainerRef\n ) {\n //update root operator \n if (this.hasProperty(query, 'ComplexId') &&\n query?.Operation &&\n query.Operation !== this._form.get('operator').value) {\n this._form.get('operator').setValue(query.Operation);\n }\n this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);\n }\n\n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n private hasProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n /**\n * a recursive function dynamically builds UI filters structure\n * @param parentOperator parent legacy complex operator\n * @param current child legacy object (either another complex or expression type)\n * @param containerRef parent element\n * @param parentForm parent form\n */\n private flatten(parentOperator: string, current: IPepQuerySection | IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n if (this.hasProperty(current, 'ComplexId')) {\n const section = current as IPepQuerySection;\n if (parentOperator === current.Operation) {\n this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);\n this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);\n } else {\n const result = this.createSection(section.Operation, containerRef, parentForm, depth + 1);\n this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);\n this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);\n }\n } else if (this.hasProperty(current, 'ExpressionId')) {\n this.createItem(current as IPepQueryItem, containerRef, parentForm);\n }\n }\n\n /**\n * creates a container object of two or more child filter items\n * @param operator AND/OR operator\n * @param containerRef parent element\n * @param parentForm parent form\n * @param depth\n * @returns an object containing the current element and current form\n */\n createSection(operator: PepOperatorTypes, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);\n const componentRef = containerRef.createComponent(factory);\n\n // const sectionGroup = this._fb.group({\n // operator: this._fb.control(operator)\n // });\n const sectionGroup = new FormGroup({\n operator: new FormControl(operator)\n });\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) { counter++; } });\n const formKey = `section${counter}`;\n parentForm.addControl(formKey, sectionGroup);\n\n componentRef.instance.form = sectionGroup;\n componentRef.instance.depth = {\n current: depth,\n max: this._maxStructureDepth\n };\n componentRef.instance.createSection.subscribe(() => {\n const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);\n this.createItem(null, section.containerRef, section.parentForm);\n });\n componentRef.instance.createItem.subscribe(() => {\n this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n componentRef.instance.operatorChange.subscribe(() => {\n this.createOutputQuery();\n });\n\n return {\n containerRef: componentRef.instance.sectionContainer,\n parentForm: sectionGroup\n };\n }\n\n /**\n * creates a component represents filter item (leaf element - has no childs)\n * @param current filter legacy element\n * @param containerRef parent element\n * @param parentForm parent form\n */\n createItem(current: IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);\n const componentRef = containerRef.createComponent(factory);\n\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) { counter++; } });\n const formKey = `item${counter}`;\n\n componentRef.instance.formKey = formKey;\n componentRef.instance.fields = this._smartFilterFields;\n componentRef.instance.variableFields = this._variableFields;\n const selectedField = this.getSelectedField(current);\n if (selectedField) {\n componentRef.instance.selected = selectedField;\n if (current) {\n componentRef.instance.filter = this._queryBuilderService.getFilter(current, selectedField.smart);\n }\n }\n componentRef.instance.parentForm = parentForm;\n componentRef.instance.filterChange.subscribe(() => {\n this.createOutputQuery();\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n }\n\n /**\n * get smart filter field\n * @param current filter legacy element\n * @returns smart filter field, if not found returns the first field\n */\n private getSelectedField(current: IPepQueryItem): IPepQueryBuilderFieldContainer | null {\n if (current) {\n const item = this._smartFilterFields.find(field => field.smart.id === current.ApiName);\n return item ? item : this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n } else {\n return this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n }\n }\n\n private convertSmartFilterComponentType(type: string) {\n switch (type) {\n case 'int':\n case 'currency':\n case 'real':\n case 'percentage':\n return 'number';\n case 'date-time':\n return 'date';\n default:\n return type;\n }\n }\n\n /**\n * creates a legacy output query \n */\n createOutputQuery() {\n if (this._form.valid) {\n const query = this._outputQueryService.generateQuery(this._form.value);\n this._outputQuery$.next(query);\n }\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n OnInit,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from './common/model/legacy';\nimport { PepQueryStructureService } from './common/services/query-structure.service';\nimport { PepTypeConvertorService } from './common/services/type-convertor.service';\nimport { PepOutputQueryService } from './common/services/output-query.service';\nimport { IPepQueryDepth } from './common/model/structure';\nimport { PepOperatorTypes } from './common/model/type';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'pep-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.scss'],\n providers: [ PepQueryStructureService, PepTypeConvertorService, PepOutputQueryService]\n})\nexport class PepQueryBuilderComponent implements OnInit, OnDestroy {\n _query: IPepQuerySection | IPepQueryItem = null;\n @Input()\n set query(object: IPepQuerySection | IPepQueryItem) {\n this._query = object;\n this.loadQuery()\n }\n @Input()\n set fields(list: Array<IPepQueryBuilderField>) {\n this.queryStructureService.fields = list;\n this.hasFields = this.queryStructureService.hasFields;\n this.loadQuery();\n }\n @Input() \n set variableFields(list : Array<IPepQueryBuilderField>) {\n this.queryStructureService.variableFields = list;\n }\n @Input()\n set maxDepth(value: number) {\n this.queryStructureService.maxDepth = value;\n }\n\n @Output()\n queryChange: EventEmitter<IPepQuerySection | IPepQueryItem> = new EventEmitter<IPepQuerySection | IPepQueryItem>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('rootContainer', { static: true }) root: PepQueryBuilderSectionComponent;\n\n _formSubscription$: Subscription;\n _outputQuerySubscription$: Subscription;\n _lastFormValidStatus = true;\n depth: IPepQueryDepth;\n hasFields = false;\n\n constructor(\n private _fb: FormBuilder,\n public queryStructureService: PepQueryStructureService\n ) {\n this.setupForm();\n this.initDepth();\n this._formSubscription$ = this.queryStructureService.form.valueChanges.subscribe((val) => {\n if (this.queryStructureService.form.valid !== this._lastFormValidStatus) {\n this._lastFormValidStatus = this.queryStructureService.form.valid;\n this.formValidationChange.emit(this._lastFormValidStatus);\n }\n });\n this._outputQuerySubscription$ = this.queryStructureService.outputQuery$.subscribe((outputQuery) => {\n this.queryChange.emit(outputQuery);\n });\n }\n\n ngOnInit() {\n //\n }\n\n setupForm() {\n this.queryStructureService.form = this._fb.group({\n operator: this._fb.control(PepOperatorTypes.And)\n });\n }\n\n initDepth() {\n this.depth = {\n current: 0,\n max: this.queryStructureService.maxDepth\n }\n }\n\n /**\n * builds UI query structure as soon as both the fields and query loads\n */\n loadQuery() {\n if (\n this._query &&\n this.queryStructureService.hasFields &&\n this.root?.sectionContainer\n ) {\n this.queryStructureService.buildQueryStructure(this._query, this.root.sectionContainer);\n }\n }\n\n onCreateSection() {\n const section = this.queryStructureService.createSection(PepOperatorTypes.And, this.root.sectionContainer, this.queryStructureService.form, 1);\n this.queryStructureService.createItem(null, section.containerRef, section.parentForm);\n }\n\n onCreateItem() {\n this.queryStructureService.createItem(null, this.root.sectionContainer, this.queryStructureService.form);\n }\n\n onOperatorChange() {\n this.queryStructureService.createOutputQuery();\n }\n\n ngOnDestroy() {\n if (this._formSubscription$) {\n this._formSubscription$.unsubscribe();\n }\n if (this._outputQuerySubscription$) {\n this._outputQuerySubscription$.unsubscribe();\n }\n }\n\n}\n","<pep-query-builder-section #rootContainer [form]=\"queryStructureService.form\" [depth]=\"depth\" [hasFields]=\"hasFields\"\n (createSection)=\"onCreateSection()\" (createItem)=\"onCreateItem()\" (operatorChange)=\"onOperatorChange()\">\n</pep-query-builder-section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\nimport { PepQueryBuilderComponent } from './query-builder.component';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n PepSelectModule,\n PepButtonModule,\n PepGroupButtonsModule,\n PepSmartFiltersModule\n ],\n exports: [\n PepQueryBuilderComponent\n ],\n declarations: [\n PepQueryBuilderComponent,\n PepQueryBuilderSectionComponent,\n PepQueryBuilderItemComponent\n ],\n providers: [\n FormBuilder\n ]\n})\nexport class PepQueryBuilderModule { }\n","/*\n * Public API Surface of ngx-lib/query-builder\n */\nexport * from './query-builder.module';\nexport * from './query-builder.component';\nexport * from './query-builder.service';\nexport * from './common/model/legacy';\nexport * from './query-builder.service';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepTypeConvertorService","i2","i3","i2.PepTypeConvertorService","i4","i5","i6","i1.PepOutputQueryService","i2.PepQueryBuilderService","i2.PepQueryStructureService","i3.PepQueryBuilderSectionComponent"],"mappings":"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"}
@@ -272,7 +272,7 @@ var PepOperatorTypes;
272
272
  const Equals = {
273
273
  legacy: 'IsEqual',
274
274
  smartFilter: PepSmartFilterOperators.Equals,
275
- type: ['boolean', 'int', 'text']
275
+ type: ['boolean', 'int', 'text', 'real']
276
276
  };
277
277
  const EqualsVariable = {
278
278
  legacy: 'IsEqualVariable',
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-lib-query-builder.mjs","sources":["../../../projects/ngx-lib/query-builder/common/services/type-convertor.service.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.html","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.ts","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.html","../../../projects/ngx-lib/query-builder/common/model/type-map.ts","../../../projects/ngx-lib/query-builder/common/model/type.ts","../../../projects/ngx-lib/query-builder/common/model/operator.ts","../../../projects/ngx-lib/query-builder/common/model/operator-unit.ts","../../../projects/ngx-lib/query-builder/common/services/output-query.service.ts","../../../projects/ngx-lib/query-builder/query-builder.service.ts","../../../projects/ngx-lib/query-builder/common/services/query-structure.service.ts","../../../projects/ngx-lib/query-builder/query-builder.component.ts","../../../projects/ngx-lib/query-builder/query-builder.component.html","../../../projects/ngx-lib/query-builder/query-builder.module.ts","../../../projects/ngx-lib/query-builder/public-api.ts","../../../projects/ngx-lib/query-builder/pepperi-addons-ngx-lib-query-builder.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Injectable()\nexport class PepTypeConvertorService {\n private readonly _operators: IPepOption[] = [];\n private readonly _booleans: IPepOption[] = [];\n\n public get operators(): IPepOption[] {\n return this._operators;\n }\n\n public get booleans(): IPepOption[] {\n return this._booleans;\n }\n\n constructor() {\n this.initOperators();\n this.initBooleans();\n }\n\n private initOperators() {\n this._operators.push({\n key: 'AND',\n value: 'And'\n });\n this._operators.push({\n key: 'OR',\n value: 'Or'\n });\n }\n\n private initBooleans() {\n this._booleans.push({\n key: 'True',\n value: 'True'\n });\n this._booleans.push({\n key: 'False',\n value: 'False'\n });\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n IPepButtonClickEvent,\n PepButton,\n} from '@pepperi-addons/ngx-lib/button';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryDepth } from '../common/model/structure';\n\n@Component({\n selector: 'pep-query-builder-section',\n templateUrl: './query-builder-section.component.html',\n styleUrls: ['./query-builder-section.component.scss', './query-builder-section.component.theme.scss'],\n})\nexport class PepQueryBuilderSectionComponent {\n @Input() form: FormGroup;\n @Input() depth: IPepQueryDepth;\n @Input() hasFields = true;\n\n @Output()\n createSection = new EventEmitter();\n @Output()\n createItem = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n @Output()\n operatorChange = new EventEmitter();\n\n @ViewChild('sectionContainer', { read: ViewContainerRef, static: true }) sectionContainer: ViewContainerRef;\n\n toggleButtons: Array<PepButton>;\n\n constructor(private _typeConvertorService: PepTypeConvertorService) {\n }\n\n ngOnInit() {\n this.initOperators();\n }\n\n get f() {\n return this.form.controls;\n }\n\n initOperators() {\n this.toggleButtons = this._typeConvertorService.operators.map((operator: IPepOption) => {\n return {\n key: operator.key,\n value: operator.value,\n callback: (event: IPepButtonClickEvent) =>\n this.onOperatorChanged(event)\n } as PepButton\n });\n }\n\n onOperatorChanged(event) {\n if (event?.source?.key) {\n this.f.operator.setValue(event.source.key);\n this.operatorChange.emit();\n }\n }\n\n onAddRuleClicked() {\n this.createItem.emit();\n }\n\n onAddRuleSetClicked() {\n this.createSection.emit();\n }\n\n onDeleteSectionClicked() {\n this.remove.emit();\n }\n\n\n}\n","<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { PepSmartFilterBaseField, IPepSmartFilterField } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepSmartFilterData } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryBuilderFieldContainer } from '../common/model/field';\n\n\n@Component({\n selector: 'pep-query-builder-item',\n templateUrl: './query-builder-item.component.html',\n styleUrls: ['./query-builder-item.component.scss'],\n})\nexport class PepQueryBuilderItemComponent {\n @Input() formKey: string;\n _fields: Array<IPepQueryBuilderFieldContainer> = [];\n _options: IPepOption[] = [];\n @Input()\n set fields(list: Array<IPepQueryBuilderFieldContainer>) {\n if (list?.length > 0) {\n this._fields = list;\n this._options = list.map(field => {\n return {\n key: field.smart.id,\n value: field.smart.name\n }\n })\n }\n }\n _selectedField: PepSmartFilterBaseField = null;\n @Input()\n set selected(value: IPepQueryBuilderFieldContainer) {\n if (value) {\n this._selectedField = value.smart;\n this.queryForm.fieldType.setValue(value.query.fieldType);\n }\n }\n _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n if (value) {\n this._filter = value;\n }\n }\n _parentForm: FormGroup;\n @Input()\n set parentForm(value: FormGroup) {\n if (value) {\n this._parentForm = value;\n this.addToParentForm();\n }\n }\n \n @Input() \n variableFields: any = {};\n\n @Output()\n filterChange = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n\n form: FormGroup;\n\n constructor(\n private _fb: FormBuilder,\n public typeConvertorService: PepTypeConvertorService\n ) {\n this.setupForm();\n }\n\n ngOnInit() {\n //\n }\n\n get f() {\n return this.form.controls;\n }\n\n get queryForm() {\n return (this.f.query as FormGroup).controls;\n }\n\n setupForm() {\n this.form = this._fb.group({\n smart: this._fb.group({\n fieldId: this._fb.control(null),\n fieldType: this._fb.control(null),\n operator: this._fb.control(null),\n operatorUnit: this._fb.control(null),\n values: this._fb.group({\n first: this._fb.control(null),\n second: this._fb.control(null)\n })\n }),\n query: this._fb.group({\n fieldType: this._fb.control(null)\n })\n });\n }\n\n addToParentForm() {\n this._parentForm.setControl(this.formKey, this.form);\n }\n\n onFieldChanged(key) {\n const item = this._fields.find(field => field.smart.id === key);\n\n this.setupForm();\n this.queryForm.fieldType.setValue(item.query.fieldType);\n this.addToParentForm();\n\n /**\n * hack due to angular's change detection bug -\n * ERROR Error: There is no FormControl instance attached to form control element with name: [formControlName]\n */\n this._selectedField = null;\n setTimeout(() => {\n this._selectedField = item ? item.smart : null;\n }, 0);\n\n this._filter = null;\n }\n\n onFilterChanged() {\n if (this.form.valid) {\n this.filterChange.emit();\n }\n }\n\n onDeleteItemClicked() {\n this.remove.emit();\n }\n\n\n\n}\n","<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.['multi-select']\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>","import { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\n\nexport class PepQueryBuilderTypeMap {\n private map: Map<string, PepSmartFilterType>;\n\n constructor() {\n this.loadTypes();\n }\n\n private loadTypes() {\n this.map = new Map<string, PepSmartFilterType>();\n this.map.set('Bool', 'boolean');\n this.map.set('JsonBool', 'boolean');\n this.map.set('Integer', 'int');\n this.map.set('Double', 'real');\n this.map.set('String', 'text');\n this.map.set('Guid', 'text');\n this.map.set('Date', 'date');\n this.map.set('DateTime', 'date-time');\n this.map.set('MultipleStringValues', 'multi-select');\n }\n\n /**\n * Converts legacy field type to smart filter type\n * @param type legacy type\n * @returns smart filter field type\n */\n getSmartFilterType(key: string): PepSmartFilterType | null {\n const item = this.map.get(key);\n return item ? item : null;\n }\n\n}\n\n","export enum PepOperatorTypes {\n And = 'AND',\n Or = 'OR'\n}\n\n","import {\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n IPepSmartFilterOperator\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\nexport interface IPepQueryBuilderOperator {\n legacy: string, //legacy Operator \n smartFilter: IPepSmartFilterOperator, //smart filter operator \n type: PepSmartFilterType[] | null //smart filter type\n}\n\nconst Equals: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.Equals,\n type: ['boolean', 'int', 'text']\n};\n\nconst EqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsEqualVariable',\n smartFilter: PepSmartFilterVariableOperators.EqualsToVariable,\n type: ['boolean', 'int', 'text', 'multi-select']\n};\n\nconst NotEqual: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqual',\n smartFilter: PepSmartFilterOperators.NotEqual,\n type: null\n};\n\nconst NotEqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqualVariable',\n smartFilter: PepSmartFilterVariableOperators.NotEqualsToVariable,\n type: ['boolean', 'multi-select']\n};\n\nconst LessThan: IPepQueryBuilderOperator = {\n legacy: '<',\n smartFilter: PepSmartFilterOperators.LessThan,\n type: null\n};\n\nconst LessThanVarible: IPepQueryBuilderOperator = {\n legacy: 'LessThanVarible',\n smartFilter: PepSmartFilterVariableOperators.LessThanVariable,\n type: null\n};\n\nconst GreaterThan: IPepQueryBuilderOperator = {\n legacy: '>',\n smartFilter: PepSmartFilterOperators.GreaterThan,\n type: null\n};\n\nconst GreaterThanVarible: IPepQueryBuilderOperator = {\n legacy: 'GreaterThanVarible',\n smartFilter: PepSmartFilterVariableOperators.GreaterThanVariable,\n type: null\n};\n\n/*\nconst GreaterThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '>=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.GreaterThanOrEquals,\n type: 'int'\n }\n};\n\nconst LessThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '<=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.LessThanOrEquals,\n type: 'int',\n type: 'Integer'\n }\n}; */\n\nconst NumberRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.NumberRange,\n type: ['int']\n};\n\nconst Contains: IPepQueryBuilderOperator = {\n legacy: 'Contains',\n smartFilter: PepSmartFilterOperators.Contains,\n type: null\n};\n\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: 'BeginsWith',\n smartFilter: PepSmartFilterOperators.BeginsWith,\n type: null\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: 'EndsWith',\n smartFilter: PepSmartFilterOperators.EndsWith,\n type: null\n};\n\n/*\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'BeginsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.BeginsWith,\n type: 'text'\n }\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'EndsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.EndsWith,\n type: 'text'\n }\n};\n\nconst Before: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'Before',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.Before,\n type: 'date'\n }\n};\n\nconst After: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'After',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.After,\n type: 'date'\n }\n}; */\n\nconst InTheLast: IPepQueryBuilderOperator = {\n legacy: 'InTheLast',\n smartFilter: PepSmartFilterOperators.InTheLast,\n type: null\n};\n\nconst InTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'InTheLastCalendar',\n smartFilter: PepSmartFilterAdditionalOperators.InTheLastCalendar,\n type: null\n}\n\n/*\nconst InTheLastVariable: IPepQueryBuilderOperator = {\n legacy: 'InTheLastVariable',\n smartFilter: PepSmartFilterVariableOperators.InTheLastVariable,\n type: null\n} */\n\nconst NotInTheLast: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLast',\n smartFilter: PepSmartFilterOperators.NotInTheLast,\n type: null\n};\n\nconst NotInTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLastCalendar',\n smartFilter: PepSmartFilterAdditionalOperators.NotInTheLastCalendar,\n type: null\n}\n\nconst Today: IPepQueryBuilderOperator = {\n legacy: 'Today',\n smartFilter: PepSmartFilterOperators.Today,\n type: null\n};\n\nconst ThisWeek: IPepQueryBuilderOperator = {\n legacy: 'ThisWeek',\n smartFilter: PepSmartFilterOperators.ThisWeek,\n type: null\n};\n\nconst ThisMonth: IPepQueryBuilderOperator = {\n legacy: 'ThisMonth',\n smartFilter: PepSmartFilterOperators.ThisMonth,\n type: null\n};\n\nconst DateRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.DateRange,\n type: ['date-time']\n};\n\nconst dateRangeVariable: IPepQueryBuilderOperator = {\n legacy: 'BetweenVariable',\n smartFilter: PepSmartFilterVariableOperators.DateRangeVariable,\n type: ['date-time']\n};\n\nconst DueIn: IPepQueryBuilderOperator = {\n legacy: 'DueIn',\n smartFilter: PepSmartFilterOperators.DueIn,\n type: null\n};\n\nconst NotDueIn: IPepQueryBuilderOperator = {\n legacy: 'NotDueIn',\n smartFilter: PepSmartFilterOperators.NotDueIn,\n type: null\n};\n\nconst On: IPepQueryBuilderOperator = {\n legacy: 'On',\n smartFilter: PepSmartFilterOperators.On,\n type: null\n};\n\nconst IsEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsEmpty',\n smartFilter: PepSmartFilterOperators.IsEmpty,\n type: null\n};\n\nconst IsNotEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsNotEmpty',\n smartFilter: PepSmartFilterOperators.IsNotEmpty,\n type: null\n};\n\nconst In: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.In,\n type: ['multi-select']\n};\n\n\nconst PepQueryBuilderOperators = [\n Equals,\n EqualsVariable,\n NotEqual,\n NotEqualsVariable,\n LessThan,\n LessThanVarible,\n // LessThanOrEquals,\n GreaterThan,\n GreaterThanVarible,\n // GreaterThanOrEquals,\n NumberRange,\n Contains,\n BeginsWith,\n EndsWith,\n // After,\n // Before,\n InTheLast,\n // InTheLastVariable,\n InTheLastCalendar,\n NotInTheLast,\n NotInTheLastCalendar,\n Today,\n ThisWeek,\n ThisMonth,\n DateRange,\n dateRangeVariable,\n DueIn,\n NotDueIn,\n On,\n IsEmpty,\n IsNotEmpty,\n In\n]\n\n/**\n * gets a smart filter operator item\n * @param operator legacy operator\n * @param type smart filter's type\n * @returns smart filter operator item\n */\nexport function getSmartFilterOperator(operator: string, type: PepSmartFilterType): IPepSmartFilterOperator | null {\n const smartFilterOperator = PepQueryBuilderOperators.find(item =>\n item.legacy === operator &&\n (item.type === null || item.type.includes(type))\n );\n return smartFilterOperator ? smartFilterOperator.smartFilter : null;\n}\n\n/**\n * gets a legacy operator value\n * @param operator smart filter operator item\n * @param type smart filter's type\n * @returns legacy operator value\n */\nexport function getLegacyOperator(operator: IPepSmartFilterOperator, type: PepSmartFilterType): string | null {\n const legacyOperator = PepQueryBuilderOperators.find(item =>\n item.smartFilter === operator &&\n (item.type === null || item.type.includes(type))\n );\n return legacyOperator ? legacyOperator.legacy : null;\n}\n","\nimport { IPepSmartFilterOperatorUnit, PepSmartFilterOperatorUnits } from '@pepperi-addons/ngx-lib/smart-filters';\n\ninterface IPepQueryBuilderOperationUnit {\n legacy: string,\n smartFilter: IPepSmartFilterOperatorUnit,\n}\n\nconst Days: IPepQueryBuilderOperationUnit = {\n legacy: 'Days',\n smartFilter: PepSmartFilterOperatorUnits.Days\n};\n\nconst Weeks: IPepQueryBuilderOperationUnit = {\n legacy: 'Weeks',\n smartFilter: PepSmartFilterOperatorUnits.Weeks\n};\n\nconst Months: IPepQueryBuilderOperationUnit = {\n legacy: 'Months',\n smartFilter: PepSmartFilterOperatorUnits.Months\n};\n\nconst Years: IPepQueryBuilderOperationUnit = {\n legacy: 'Years',\n smartFilter: PepSmartFilterOperatorUnits.Years\n};\n\nconst PepQueryBuilderOperationUnit = [\n Days,\n Weeks,\n Months,\n Years,\n];\n\n/**\n * gets a smart filter operation unit item\n * @param operationUnit legacy operation unit\n * @returns smart filter operation unit item\n */\nexport function getSmartFilterOperationUnit(operationUnit: string): IPepSmartFilterOperatorUnit | null {\n const smartFilterOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.legacy === operationUnit);\n return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;\n}\n\n/**\n * gets a legacy operation unit value\n * @param operationUnit smart filter operation unit item\n * @returns legacy operation unit value\n */\nexport function getLegacyOperationUnit(operationUnit: IPepSmartFilterOperatorUnit): string | null {\n const legacyOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.smartFilter === operationUnit);\n return legacyOperationUnit ? legacyOperationUnit.legacy : null;\n}\n","import { Injectable } from '@angular/core';\nimport { IPepQuerySection, IPepQueryItem } from '../model/legacy';\nimport { getLegacyOperator } from '../model/operator';\nimport { PepOperatorTypes } from '../model/type';\nimport { getLegacyOperationUnit } from '../model/operator-unit';\nimport { \n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators\n} from '@pepperi-addons/ngx-lib/smart-filters';\n\n\n@Injectable()\nexport class PepOutputQueryService {\n private _complexIdCounter: number;\n private _expressionIdCounter: number;\n\n constructor() {\n //\n }\n\n /**\n * generates a legacy query structure \n * @param filters UI smart filters structure \n * @returns legacy query\n */\n generateQuery(filters: any) {\n this.initParams();\n\n return this.sectionWalk(filters);\n }\n\n /**\n * init params\n */\n private initParams() {\n this._complexIdCounter = 1;\n this._expressionIdCounter = 1;\n }\n\n /**\n * a recursive function dynamically builds legacy query structure\n * @param current UI object represents either a section or filter component\n * @returns section query data\n */\n private sectionWalk(current: any) {\n let section: IPepQuerySection | IPepQueryItem = null;\n\n Object.keys(current).forEach(key => {\n if (key.includes('item')) {\n section = this.addToSection(section, {\n ExpressionId: (this._expressionIdCounter++).toString(),\n ApiName: current[key].smart.fieldId,\n FieldType: current[key].query.fieldType,\n Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),\n Values: this.getItemValues(current[key].smart)\n } as IPepQueryItem, current.operator);\n } else if (key.includes('section')) {\n const childSection = this.sectionWalk(current[key]);\n if (childSection) {\n section = this.addToSection(section, childSection, current.operator);\n }\n }\n });\n\n return section;\n }\n\n /**\n * adds a legacy filter object to the current query structure\n * @param section section query data\n * @param item filter item\n * @param operator query operator\n * @returns \n */\n private addToSection(section: any, item: any, operator: string): any {\n return section ? this.createSection(section, item, operator) : item;\n }\n\n /**\n * creates a legacy complex object\n * @param left LeftNode object\n * @param right RightNode object\n * @param operator query operator\n * @returns legacy complex object\n */\n private createSection(left: any, right: any, operator: string): IPepQuerySection {\n return {\n ComplexId: (this._complexIdCounter++).toString(),\n LeftNode: left,\n RightNode: right,\n Operation: <PepOperatorTypes>operator\n }\n }\n\n /**\n * gets legacy filter values object\n * @param current UI filter object's values\n * @returns an array represents legacy values\n */\n private getItemValues(current: any) {\n let values: any[] = [];\n\n if (current?.values?.first) {\n if (current.operator === PepSmartFilterOperators.In) { //multi select \n values = current.values.first;\n } else if (\n current.operator === PepSmartFilterOperators.InTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n current.operator === PepSmartFilterOperators.NotInTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n current.operator === PepSmartFilterOperators.DueIn ||\n current.operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit \n values.push(current.values.first);\n if (current.operatorUnit) {\n values.push(getLegacyOperationUnit(current.operatorUnit));\n }\n } else {\n values.push(current.values.first);\n if (current.values.second) {\n values.push(current.values.second);\n }\n }\n }\n\n return values;\n }\n\n}","import { Injectable } from '@angular/core';\nimport { \n IPepQueryBuilderField, \n IPepQueryItem \n} from './common/model/legacy';\nimport { \n IPepSmartFilterData,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { getSmartFilterOperator } from './common/model/operator';\nimport { IPepQueryBuilderFieldContainer } from './common/model/field';\nimport { PepQueryBuilderTypeMap } from './common/model/type-map';\nimport { getSmartFilterOperationUnit } from './common/model/operator-unit';\nimport { IPepQueryBuilderValues } from './common/model/filter';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PepQueryBuilderService {\n\n constructor() {\n //\n }\n\n /**\n * creates a smart filter object\n * @param current filter legacy element\n * @param field filter's selected field\n * @returns smart filter object\n */\n getFilter(current: IPepQueryItem, field: PepSmartFilterBaseField): IPepSmartFilterData | null { \n const operator: IPepSmartFilterOperator = getSmartFilterOperator(current.Operation, field.type);\n if (operator) {\n const filterValues: IPepQueryBuilderValues = this.getFilterValues(current, operator, field);\n return createSmartFilter(\n current.ApiName,\n operator,\n filterValues.first,\n filterValues.second,\n filterValues.operationUnit\n );\n } else {\n return null;\n }\n }\n \n /**\n * converts legacy fields to smart filter fields\n * @param fields legacy fields array\n * @returns smart filter fields array\n */\n convertToSmartFilterFields(fields: Array<IPepQueryBuilderField>): Array<IPepQueryBuilderFieldContainer> {\n if (fields?.length > 0) {\n const typeMapper = new PepQueryBuilderTypeMap();\n\n return fields.map((field) => {\n return {\n smart: createSmartFilterField(\n {\n id: field.FieldID,\n name: field.Title,\n options: field.OptionalValues?.map(option => {\n return {\n key: option.Key,\n value: option.Value\n }\n })\n }, typeMapper.getSmartFilterType(field.FieldType) as PepSmartFilterType),\n query: {\n fieldType: field.FieldType\n }\n }\n })\n } else {\n return [];\n }\n }\n \n /**\n * gets smart filter's values data\n * @param current filter legacy element\n * @param operator smart filter operator\n * @param field filter's selected field\n * @returns object contains the filter values data\n */\n private getFilterValues(current: IPepQueryItem, operator: IPepSmartFilterOperator, field: any) {\n const data: IPepQueryBuilderValues = {\n first: null,\n second: null,\n operationUnit: null\n };\n\n if (operator === PepSmartFilterOperators.In) { //multi select \n //filter keys don't exist on field options\n data.first = current?.Values?.length > 0 ? current.Values.filter(item => {\n return field.options.find(option => option.key === item);\n }) : null;\n } else if (\n operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n if (current?.Values?.length === 2) {\n data.operationUnit = getSmartFilterOperationUnit(current.Values[1]);\n }\n } else {\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n data.second = current?.Values?.length === 2 ? current.Values[1] : null;\n }\n\n return data;\n }\n\n}","import { Injectable, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { } from 'lodash';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from '../../common/model/legacy';\nimport {\n IPepSmartFilterData,\n PepSmartFilterOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepQueryBuilderService } from '../../query-builder.service';\nimport { PepOutputQueryService } from '../../common/services/output-query.service';\nimport { getSmartFilterOperator } from '../../common/model/operator';\nimport { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';\nimport { IPepQueryBuilderFieldContainer } from '../../common/model/field';\nimport { PepQueryBuilderTypeMap } from '../../common/model/type-map';\nimport { getSmartFilterOperationUnit } from '../../common/model/operator-unit';\nimport { IPepQueryBuilderValues } from '../../common/model/filter';\nimport { PepOperatorTypes } from '../../common/model/type';\n\nconst MAX_STRUCTURE_DEPTH = 3;\n\n@Injectable()\nexport class PepQueryStructureService {\n private _outputQuery$ = new BehaviorSubject<IPepQuerySection | IPepQueryItem>(null);\n\n private _smartFilterFields: Array<IPepQueryBuilderFieldContainer>;\n private _variableFields: any = {};\n private _form: FormGroup;\n private _maxStructureDepth = MAX_STRUCTURE_DEPTH;\n\n public outputQuery$ = this._outputQuery$.asObservable();\n\n constructor(\n private _resolver: ComponentFactoryResolver,\n private _outputQueryService: PepOutputQueryService,\n private _queryBuilderService: PepQueryBuilderService) {\n\n }\n\n set maxDepth(value) {\n this._maxStructureDepth = value;\n }\n\n get maxDepth() {\n return this._maxStructureDepth;\n }\n\n set fields(list: Array<IPepQueryBuilderField>) {\n this._smartFilterFields = this._queryBuilderService.convertToSmartFilterFields(list);\n }\n\n get hasFields(): boolean {\n return this._smartFilterFields?.length > 0;\n }\n\n set variableFields(list: Array<IPepQueryBuilderField>) {\n if (list?.length) {\n const typeMapper = new PepQueryBuilderTypeMap();\n list.forEach(field => {\n const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));\n if (this.hasProperty(this._variableFields, fieldType)) {\n this._variableFields[fieldType].push(field.FieldID);\n } else {\n this._variableFields[fieldType] = [field.FieldID];\n }\n });\n }\n }\n\n set form(value: FormGroup) {\n this._form = value;\n }\n\n get form() {\n return this._form;\n }\n\n /**\n * builds a dynamic UI query structure\n * might has a different structure than the query's due to parent-child elements merge\n * @param query legacy query \n * @param containerRef reference to root element\n */\n buildQueryStructure(\n query: IPepQuerySection | IPepQueryItem,\n containerRef: ViewContainerRef\n ) {\n //update root operator \n if (this.hasProperty(query, 'ComplexId') &&\n query?.Operation &&\n query.Operation !== this._form.get('operator').value) {\n this._form.get('operator').setValue(query.Operation);\n }\n this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);\n }\n\n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n private hasProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n /**\n * a recursive function dynamically builds UI filters structure\n * @param parentOperator parent legacy complex operator\n * @param current child legacy object (either another complex or expression type)\n * @param containerRef parent element\n * @param parentForm parent form\n */\n private flatten(parentOperator: string, current: IPepQuerySection | IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n if (this.hasProperty(current, 'ComplexId')) {\n const section = current as IPepQuerySection;\n if (parentOperator === current.Operation) {\n this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);\n this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);\n } else {\n const result = this.createSection(section.Operation, containerRef, parentForm, depth + 1);\n this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);\n this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);\n }\n } else if (this.hasProperty(current, 'ExpressionId')) {\n this.createItem(current as IPepQueryItem, containerRef, parentForm);\n }\n }\n\n /**\n * creates a container object of two or more child filter items\n * @param operator AND/OR operator\n * @param containerRef parent element\n * @param parentForm parent form\n * @param depth\n * @returns an object containing the current element and current form\n */\n createSection(operator: PepOperatorTypes, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);\n const componentRef = containerRef.createComponent(factory);\n\n // const sectionGroup = this._fb.group({\n // operator: this._fb.control(operator)\n // });\n const sectionGroup = new FormGroup({\n operator: new FormControl(operator)\n });\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) { counter++; } });\n const formKey = `section${counter}`;\n parentForm.addControl(formKey, sectionGroup);\n\n componentRef.instance.form = sectionGroup;\n componentRef.instance.depth = {\n current: depth,\n max: this._maxStructureDepth\n };\n componentRef.instance.createSection.subscribe(() => {\n const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);\n this.createItem(null, section.containerRef, section.parentForm);\n });\n componentRef.instance.createItem.subscribe(() => {\n this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n componentRef.instance.operatorChange.subscribe(() => {\n this.createOutputQuery();\n });\n\n return {\n containerRef: componentRef.instance.sectionContainer,\n parentForm: sectionGroup\n };\n }\n\n /**\n * creates a component represents filter item (leaf element - has no childs)\n * @param current filter legacy element\n * @param containerRef parent element\n * @param parentForm parent form\n */\n createItem(current: IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);\n const componentRef = containerRef.createComponent(factory);\n\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) { counter++; } });\n const formKey = `item${counter}`;\n\n componentRef.instance.formKey = formKey;\n componentRef.instance.fields = this._smartFilterFields;\n componentRef.instance.variableFields = this._variableFields;\n const selectedField = this.getSelectedField(current);\n if (selectedField) {\n componentRef.instance.selected = selectedField;\n if (current) {\n componentRef.instance.filter = this._queryBuilderService.getFilter(current, selectedField.smart);\n }\n }\n componentRef.instance.parentForm = parentForm;\n componentRef.instance.filterChange.subscribe(() => {\n this.createOutputQuery();\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n }\n\n /**\n * get smart filter field\n * @param current filter legacy element\n * @returns smart filter field, if not found returns the first field\n */\n private getSelectedField(current: IPepQueryItem): IPepQueryBuilderFieldContainer | null {\n if (current) {\n const item = this._smartFilterFields.find(field => field.smart.id === current.ApiName);\n return item ? item : this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n } else {\n return this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n }\n }\n\n private convertSmartFilterComponentType(type: string) {\n switch (type) {\n case 'int':\n case 'currency':\n case 'real':\n case 'percentage':\n return 'number';\n case 'date-time':\n return 'date';\n default:\n return type;\n }\n }\n\n /**\n * creates a legacy output query \n */\n createOutputQuery() {\n if (this._form.valid) {\n const query = this._outputQueryService.generateQuery(this._form.value);\n this._outputQuery$.next(query);\n }\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n OnInit,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from './common/model/legacy';\nimport { PepQueryStructureService } from './common/services/query-structure.service';\nimport { PepTypeConvertorService } from './common/services/type-convertor.service';\nimport { PepOutputQueryService } from './common/services/output-query.service';\nimport { IPepQueryDepth } from './common/model/structure';\nimport { PepOperatorTypes } from './common/model/type';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'pep-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.scss'],\n providers: [ PepQueryStructureService, PepTypeConvertorService, PepOutputQueryService]\n})\nexport class PepQueryBuilderComponent implements OnInit, OnDestroy {\n _query: IPepQuerySection | IPepQueryItem = null;\n @Input()\n set query(object: IPepQuerySection | IPepQueryItem) {\n this._query = object;\n this.loadQuery()\n }\n @Input()\n set fields(list: Array<IPepQueryBuilderField>) {\n this.queryStructureService.fields = list;\n this.hasFields = this.queryStructureService.hasFields;\n this.loadQuery();\n }\n @Input() \n set variableFields(list : Array<IPepQueryBuilderField>) {\n this.queryStructureService.variableFields = list;\n }\n @Input()\n set maxDepth(value: number) {\n this.queryStructureService.maxDepth = value;\n }\n\n @Output()\n queryChange: EventEmitter<IPepQuerySection | IPepQueryItem> = new EventEmitter<IPepQuerySection | IPepQueryItem>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('rootContainer', { static: true }) root: PepQueryBuilderSectionComponent;\n\n _formSubscription$: Subscription;\n _outputQuerySubscription$: Subscription;\n _lastFormValidStatus = true;\n depth: IPepQueryDepth;\n hasFields = false;\n\n constructor(\n private _fb: FormBuilder,\n public queryStructureService: PepQueryStructureService\n ) {\n this.setupForm();\n this.initDepth();\n this._formSubscription$ = this.queryStructureService.form.valueChanges.subscribe((val) => {\n if (this.queryStructureService.form.valid !== this._lastFormValidStatus) {\n this._lastFormValidStatus = this.queryStructureService.form.valid;\n this.formValidationChange.emit(this._lastFormValidStatus);\n }\n });\n this._outputQuerySubscription$ = this.queryStructureService.outputQuery$.subscribe((outputQuery) => {\n this.queryChange.emit(outputQuery);\n });\n }\n\n ngOnInit() {\n //\n }\n\n setupForm() {\n this.queryStructureService.form = this._fb.group({\n operator: this._fb.control(PepOperatorTypes.And)\n });\n }\n\n initDepth() {\n this.depth = {\n current: 0,\n max: this.queryStructureService.maxDepth\n }\n }\n\n /**\n * builds UI query structure as soon as both the fields and query loads\n */\n loadQuery() {\n if (\n this._query &&\n this.queryStructureService.hasFields &&\n this.root?.sectionContainer\n ) {\n this.queryStructureService.buildQueryStructure(this._query, this.root.sectionContainer);\n }\n }\n\n onCreateSection() {\n const section = this.queryStructureService.createSection(PepOperatorTypes.And, this.root.sectionContainer, this.queryStructureService.form, 1);\n this.queryStructureService.createItem(null, section.containerRef, section.parentForm);\n }\n\n onCreateItem() {\n this.queryStructureService.createItem(null, this.root.sectionContainer, this.queryStructureService.form);\n }\n\n onOperatorChange() {\n this.queryStructureService.createOutputQuery();\n }\n\n ngOnDestroy() {\n if (this._formSubscription$) {\n this._formSubscription$.unsubscribe();\n }\n if (this._outputQuerySubscription$) {\n this._outputQuerySubscription$.unsubscribe();\n }\n }\n\n}\n","<pep-query-builder-section #rootContainer [form]=\"queryStructureService.form\" [depth]=\"depth\" [hasFields]=\"hasFields\"\n (createSection)=\"onCreateSection()\" (createItem)=\"onCreateItem()\" (operatorChange)=\"onOperatorChange()\">\n</pep-query-builder-section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\nimport { PepQueryBuilderComponent } from './query-builder.component';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n PepSelectModule,\n PepButtonModule,\n PepGroupButtonsModule,\n PepSmartFiltersModule\n ],\n exports: [\n PepQueryBuilderComponent\n ],\n declarations: [\n PepQueryBuilderComponent,\n PepQueryBuilderSectionComponent,\n PepQueryBuilderItemComponent\n ],\n providers: [\n FormBuilder\n ]\n})\nexport class PepQueryBuilderModule { }\n","/*\n * Public API Surface of ngx-lib/query-builder\n */\nexport * from './query-builder.module';\nexport * from './query-builder.component';\nexport * from './query-builder.service';\nexport * from './common/model/legacy';\nexport * from './query-builder.service';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepTypeConvertorService","i2","i3","i2.PepTypeConvertorService","i4","i5","i6","i1.PepOutputQueryService","i2.PepQueryBuilderService","i2.PepQueryStructureService","i3.PepQueryBuilderSectionComponent"],"mappings":"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"}
1
+ {"version":3,"file":"pepperi-addons-ngx-lib-query-builder.mjs","sources":["../../../projects/ngx-lib/query-builder/common/services/type-convertor.service.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.ts","../../../projects/ngx-lib/query-builder/query-builder-section/query-builder-section.component.html","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.ts","../../../projects/ngx-lib/query-builder/query-builder-item/query-builder-item.component.html","../../../projects/ngx-lib/query-builder/common/model/type-map.ts","../../../projects/ngx-lib/query-builder/common/model/type.ts","../../../projects/ngx-lib/query-builder/common/model/operator.ts","../../../projects/ngx-lib/query-builder/common/model/operator-unit.ts","../../../projects/ngx-lib/query-builder/common/services/output-query.service.ts","../../../projects/ngx-lib/query-builder/query-builder.service.ts","../../../projects/ngx-lib/query-builder/common/services/query-structure.service.ts","../../../projects/ngx-lib/query-builder/query-builder.component.ts","../../../projects/ngx-lib/query-builder/query-builder.component.html","../../../projects/ngx-lib/query-builder/query-builder.module.ts","../../../projects/ngx-lib/query-builder/public-api.ts","../../../projects/ngx-lib/query-builder/pepperi-addons-ngx-lib-query-builder.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Injectable()\nexport class PepTypeConvertorService {\n private readonly _operators: IPepOption[] = [];\n private readonly _booleans: IPepOption[] = [];\n\n public get operators(): IPepOption[] {\n return this._operators;\n }\n\n public get booleans(): IPepOption[] {\n return this._booleans;\n }\n\n constructor() {\n this.initOperators();\n this.initBooleans();\n }\n\n private initOperators() {\n this._operators.push({\n key: 'AND',\n value: 'And'\n });\n this._operators.push({\n key: 'OR',\n value: 'Or'\n });\n }\n\n private initBooleans() {\n this._booleans.push({\n key: 'True',\n value: 'True'\n });\n this._booleans.push({\n key: 'False',\n value: 'False'\n });\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n IPepButtonClickEvent,\n PepButton,\n} from '@pepperi-addons/ngx-lib/button';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryDepth } from '../common/model/structure';\n\n@Component({\n selector: 'pep-query-builder-section',\n templateUrl: './query-builder-section.component.html',\n styleUrls: ['./query-builder-section.component.scss', './query-builder-section.component.theme.scss'],\n})\nexport class PepQueryBuilderSectionComponent {\n @Input() form: FormGroup;\n @Input() depth: IPepQueryDepth;\n @Input() hasFields = true;\n\n @Output()\n createSection = new EventEmitter();\n @Output()\n createItem = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n @Output()\n operatorChange = new EventEmitter();\n\n @ViewChild('sectionContainer', { read: ViewContainerRef, static: true }) sectionContainer: ViewContainerRef;\n\n toggleButtons: Array<PepButton>;\n\n constructor(private _typeConvertorService: PepTypeConvertorService) {\n }\n\n ngOnInit() {\n this.initOperators();\n }\n\n get f() {\n return this.form.controls;\n }\n\n initOperators() {\n this.toggleButtons = this._typeConvertorService.operators.map((operator: IPepOption) => {\n return {\n key: operator.key,\n value: operator.value,\n callback: (event: IPepButtonClickEvent) =>\n this.onOperatorChanged(event)\n } as PepButton\n });\n }\n\n onOperatorChanged(event) {\n if (event?.source?.key) {\n this.f.operator.setValue(event.source.key);\n this.operatorChange.emit();\n }\n }\n\n onAddRuleClicked() {\n this.createItem.emit();\n }\n\n onAddRuleSetClicked() {\n this.createSection.emit();\n }\n\n onDeleteSectionClicked() {\n this.remove.emit();\n }\n\n\n}\n","<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { PepSmartFilterBaseField, IPepSmartFilterField } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepSmartFilterData } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { PepTypeConvertorService } from '../common/services/type-convertor.service';\nimport { IPepQueryBuilderFieldContainer } from '../common/model/field';\n\n\n@Component({\n selector: 'pep-query-builder-item',\n templateUrl: './query-builder-item.component.html',\n styleUrls: ['./query-builder-item.component.scss'],\n})\nexport class PepQueryBuilderItemComponent {\n @Input() formKey: string;\n _fields: Array<IPepQueryBuilderFieldContainer> = [];\n _options: IPepOption[] = [];\n @Input()\n set fields(list: Array<IPepQueryBuilderFieldContainer>) {\n if (list?.length > 0) {\n this._fields = list;\n this._options = list.map(field => {\n return {\n key: field.smart.id,\n value: field.smart.name\n }\n })\n }\n }\n _selectedField: PepSmartFilterBaseField = null;\n @Input()\n set selected(value: IPepQueryBuilderFieldContainer) {\n if (value) {\n this._selectedField = value.smart;\n this.queryForm.fieldType.setValue(value.query.fieldType);\n }\n }\n _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n if (value) {\n this._filter = value;\n }\n }\n _parentForm: FormGroup;\n @Input()\n set parentForm(value: FormGroup) {\n if (value) {\n this._parentForm = value;\n this.addToParentForm();\n }\n }\n \n @Input() \n variableFields: any = {};\n\n @Output()\n filterChange = new EventEmitter();\n @Output()\n remove = new EventEmitter();\n\n form: FormGroup;\n\n constructor(\n private _fb: FormBuilder,\n public typeConvertorService: PepTypeConvertorService\n ) {\n this.setupForm();\n }\n\n ngOnInit() {\n //\n }\n\n get f() {\n return this.form.controls;\n }\n\n get queryForm() {\n return (this.f.query as FormGroup).controls;\n }\n\n setupForm() {\n this.form = this._fb.group({\n smart: this._fb.group({\n fieldId: this._fb.control(null),\n fieldType: this._fb.control(null),\n operator: this._fb.control(null),\n operatorUnit: this._fb.control(null),\n values: this._fb.group({\n first: this._fb.control(null),\n second: this._fb.control(null)\n })\n }),\n query: this._fb.group({\n fieldType: this._fb.control(null)\n })\n });\n }\n\n addToParentForm() {\n this._parentForm.setControl(this.formKey, this.form);\n }\n\n onFieldChanged(key) {\n const item = this._fields.find(field => field.smart.id === key);\n\n this.setupForm();\n this.queryForm.fieldType.setValue(item.query.fieldType);\n this.addToParentForm();\n\n /**\n * hack due to angular's change detection bug -\n * ERROR Error: There is no FormControl instance attached to form control element with name: [formControlName]\n */\n this._selectedField = null;\n setTimeout(() => {\n this._selectedField = item ? item.smart : null;\n }, 0);\n\n this._filter = null;\n }\n\n onFilterChanged() {\n if (this.form.valid) {\n this.filterChange.emit();\n }\n }\n\n onDeleteItemClicked() {\n this.remove.emit();\n }\n\n\n\n}\n","<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.['multi-select']\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>","import { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\n\nexport class PepQueryBuilderTypeMap {\n private map: Map<string, PepSmartFilterType>;\n\n constructor() {\n this.loadTypes();\n }\n\n private loadTypes() {\n this.map = new Map<string, PepSmartFilterType>();\n this.map.set('Bool', 'boolean');\n this.map.set('JsonBool', 'boolean');\n this.map.set('Integer', 'int');\n this.map.set('Double', 'real');\n this.map.set('String', 'text');\n this.map.set('Guid', 'text');\n this.map.set('Date', 'date');\n this.map.set('DateTime', 'date-time');\n this.map.set('MultipleStringValues', 'multi-select');\n }\n\n /**\n * Converts legacy field type to smart filter type\n * @param type legacy type\n * @returns smart filter field type\n */\n getSmartFilterType(key: string): PepSmartFilterType | null {\n const item = this.map.get(key);\n return item ? item : null;\n }\n\n}\n\n","export enum PepOperatorTypes {\n And = 'AND',\n Or = 'OR'\n}\n\n","import {\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n IPepSmartFilterOperator\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSmartFilterType } from '@pepperi-addons/ngx-lib/smart-filters';\n\nexport interface IPepQueryBuilderOperator {\n legacy: string, //legacy Operator \n smartFilter: IPepSmartFilterOperator, //smart filter operator \n type: PepSmartFilterType[] | null //smart filter type\n}\n\nconst Equals: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.Equals,\n type: ['boolean', 'int', 'text', 'real']\n};\n\nconst EqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsEqualVariable',\n smartFilter: PepSmartFilterVariableOperators.EqualsToVariable,\n type: ['boolean', 'int', 'text', 'multi-select']\n};\n\nconst NotEqual: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqual',\n smartFilter: PepSmartFilterOperators.NotEqual,\n type: null\n};\n\nconst NotEqualsVariable: IPepQueryBuilderOperator = {\n legacy: 'IsNotEqualVariable',\n smartFilter: PepSmartFilterVariableOperators.NotEqualsToVariable,\n type: ['boolean', 'multi-select']\n};\n\nconst LessThan: IPepQueryBuilderOperator = {\n legacy: '<',\n smartFilter: PepSmartFilterOperators.LessThan,\n type: null\n};\n\nconst LessThanVarible: IPepQueryBuilderOperator = {\n legacy: 'LessThanVarible',\n smartFilter: PepSmartFilterVariableOperators.LessThanVariable,\n type: null\n};\n\nconst GreaterThan: IPepQueryBuilderOperator = {\n legacy: '>',\n smartFilter: PepSmartFilterOperators.GreaterThan,\n type: null\n};\n\nconst GreaterThanVarible: IPepQueryBuilderOperator = {\n legacy: 'GreaterThanVarible',\n smartFilter: PepSmartFilterVariableOperators.GreaterThanVariable,\n type: null\n};\n\n/*\nconst GreaterThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '>=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.GreaterThanOrEquals,\n type: 'int'\n }\n};\n\nconst LessThanOrEquals: IPepQueryBuilderOperator = {\n legacy: {\n operator: '<=',\n type: 'Integer'\n },\n smartFilter: {\n item: PepSmartFilterOperators.LessThanOrEquals,\n type: 'int',\n type: 'Integer'\n }\n}; */\n\nconst NumberRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.NumberRange,\n type: ['int']\n};\n\nconst Contains: IPepQueryBuilderOperator = {\n legacy: 'Contains',\n smartFilter: PepSmartFilterOperators.Contains,\n type: null\n};\n\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: 'BeginsWith',\n smartFilter: PepSmartFilterOperators.BeginsWith,\n type: null\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: 'EndsWith',\n smartFilter: PepSmartFilterOperators.EndsWith,\n type: null\n};\n\n/*\nconst BeginsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'BeginsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.BeginsWith,\n type: 'text'\n }\n};\n\nconst EndsWith: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'EndsWith',\n type: 'String'\n },\n smartFilter: {\n item: PepSmartFilterOperators.EndsWith,\n type: 'text'\n }\n};\n\nconst Before: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'Before',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.Before,\n type: 'date'\n }\n};\n\nconst After: IPepQueryBuilderOperator = {\n legacy: {\n operator: 'After',\n type: 'Date'\n },\n smartFilter: {\n item: PepSmartFilterOperators.After,\n type: 'date'\n }\n}; */\n\nconst InTheLast: IPepQueryBuilderOperator = {\n legacy: 'InTheLast',\n smartFilter: PepSmartFilterOperators.InTheLast,\n type: null\n};\n\nconst InTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'InTheLastCalendar',\n smartFilter: PepSmartFilterAdditionalOperators.InTheLastCalendar,\n type: null\n}\n\n/*\nconst InTheLastVariable: IPepQueryBuilderOperator = {\n legacy: 'InTheLastVariable',\n smartFilter: PepSmartFilterVariableOperators.InTheLastVariable,\n type: null\n} */\n\nconst NotInTheLast: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLast',\n smartFilter: PepSmartFilterOperators.NotInTheLast,\n type: null\n};\n\nconst NotInTheLastCalendar: IPepQueryBuilderOperator = {\n legacy: 'NotInTheLastCalendar',\n smartFilter: PepSmartFilterAdditionalOperators.NotInTheLastCalendar,\n type: null\n}\n\nconst Today: IPepQueryBuilderOperator = {\n legacy: 'Today',\n smartFilter: PepSmartFilterOperators.Today,\n type: null\n};\n\nconst ThisWeek: IPepQueryBuilderOperator = {\n legacy: 'ThisWeek',\n smartFilter: PepSmartFilterOperators.ThisWeek,\n type: null\n};\n\nconst ThisMonth: IPepQueryBuilderOperator = {\n legacy: 'ThisMonth',\n smartFilter: PepSmartFilterOperators.ThisMonth,\n type: null\n};\n\nconst DateRange: IPepQueryBuilderOperator = {\n legacy: 'Between',\n smartFilter: PepSmartFilterOperators.DateRange,\n type: ['date-time']\n};\n\nconst dateRangeVariable: IPepQueryBuilderOperator = {\n legacy: 'BetweenVariable',\n smartFilter: PepSmartFilterVariableOperators.DateRangeVariable,\n type: ['date-time']\n};\n\nconst DueIn: IPepQueryBuilderOperator = {\n legacy: 'DueIn',\n smartFilter: PepSmartFilterOperators.DueIn,\n type: null\n};\n\nconst NotDueIn: IPepQueryBuilderOperator = {\n legacy: 'NotDueIn',\n smartFilter: PepSmartFilterOperators.NotDueIn,\n type: null\n};\n\nconst On: IPepQueryBuilderOperator = {\n legacy: 'On',\n smartFilter: PepSmartFilterOperators.On,\n type: null\n};\n\nconst IsEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsEmpty',\n smartFilter: PepSmartFilterOperators.IsEmpty,\n type: null\n};\n\nconst IsNotEmpty: IPepQueryBuilderOperator = {\n legacy: 'IsNotEmpty',\n smartFilter: PepSmartFilterOperators.IsNotEmpty,\n type: null\n};\n\nconst In: IPepQueryBuilderOperator = {\n legacy: 'IsEqual',\n smartFilter: PepSmartFilterOperators.In,\n type: ['multi-select']\n};\n\n\nconst PepQueryBuilderOperators = [\n Equals,\n EqualsVariable,\n NotEqual,\n NotEqualsVariable,\n LessThan,\n LessThanVarible,\n // LessThanOrEquals,\n GreaterThan,\n GreaterThanVarible,\n // GreaterThanOrEquals,\n NumberRange,\n Contains,\n BeginsWith,\n EndsWith,\n // After,\n // Before,\n InTheLast,\n // InTheLastVariable,\n InTheLastCalendar,\n NotInTheLast,\n NotInTheLastCalendar,\n Today,\n ThisWeek,\n ThisMonth,\n DateRange,\n dateRangeVariable,\n DueIn,\n NotDueIn,\n On,\n IsEmpty,\n IsNotEmpty,\n In\n]\n\n/**\n * gets a smart filter operator item\n * @param operator legacy operator\n * @param type smart filter's type\n * @returns smart filter operator item\n */\nexport function getSmartFilterOperator(operator: string, type: PepSmartFilterType): IPepSmartFilterOperator | null {\n const smartFilterOperator = PepQueryBuilderOperators.find(item =>\n item.legacy === operator &&\n (item.type === null || item.type.includes(type))\n );\n return smartFilterOperator ? smartFilterOperator.smartFilter : null;\n}\n\n/**\n * gets a legacy operator value\n * @param operator smart filter operator item\n * @param type smart filter's type\n * @returns legacy operator value\n */\nexport function getLegacyOperator(operator: IPepSmartFilterOperator, type: PepSmartFilterType): string | null {\n const legacyOperator = PepQueryBuilderOperators.find(item =>\n item.smartFilter === operator &&\n (item.type === null || item.type.includes(type))\n );\n return legacyOperator ? legacyOperator.legacy : null;\n}\n","\nimport { IPepSmartFilterOperatorUnit, PepSmartFilterOperatorUnits } from '@pepperi-addons/ngx-lib/smart-filters';\n\ninterface IPepQueryBuilderOperationUnit {\n legacy: string,\n smartFilter: IPepSmartFilterOperatorUnit,\n}\n\nconst Days: IPepQueryBuilderOperationUnit = {\n legacy: 'Days',\n smartFilter: PepSmartFilterOperatorUnits.Days\n};\n\nconst Weeks: IPepQueryBuilderOperationUnit = {\n legacy: 'Weeks',\n smartFilter: PepSmartFilterOperatorUnits.Weeks\n};\n\nconst Months: IPepQueryBuilderOperationUnit = {\n legacy: 'Months',\n smartFilter: PepSmartFilterOperatorUnits.Months\n};\n\nconst Years: IPepQueryBuilderOperationUnit = {\n legacy: 'Years',\n smartFilter: PepSmartFilterOperatorUnits.Years\n};\n\nconst PepQueryBuilderOperationUnit = [\n Days,\n Weeks,\n Months,\n Years,\n];\n\n/**\n * gets a smart filter operation unit item\n * @param operationUnit legacy operation unit\n * @returns smart filter operation unit item\n */\nexport function getSmartFilterOperationUnit(operationUnit: string): IPepSmartFilterOperatorUnit | null {\n const smartFilterOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.legacy === operationUnit);\n return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;\n}\n\n/**\n * gets a legacy operation unit value\n * @param operationUnit smart filter operation unit item\n * @returns legacy operation unit value\n */\nexport function getLegacyOperationUnit(operationUnit: IPepSmartFilterOperatorUnit): string | null {\n const legacyOperationUnit: IPepQueryBuilderOperationUnit = PepQueryBuilderOperationUnit.find(unit => unit.smartFilter === operationUnit);\n return legacyOperationUnit ? legacyOperationUnit.legacy : null;\n}\n","import { Injectable } from '@angular/core';\nimport { IPepQuerySection, IPepQueryItem } from '../model/legacy';\nimport { getLegacyOperator } from '../model/operator';\nimport { PepOperatorTypes } from '../model/type';\nimport { getLegacyOperationUnit } from '../model/operator-unit';\nimport { \n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators\n} from '@pepperi-addons/ngx-lib/smart-filters';\n\n\n@Injectable()\nexport class PepOutputQueryService {\n private _complexIdCounter: number;\n private _expressionIdCounter: number;\n\n constructor() {\n //\n }\n\n /**\n * generates a legacy query structure \n * @param filters UI smart filters structure \n * @returns legacy query\n */\n generateQuery(filters: any) {\n this.initParams();\n\n return this.sectionWalk(filters);\n }\n\n /**\n * init params\n */\n private initParams() {\n this._complexIdCounter = 1;\n this._expressionIdCounter = 1;\n }\n\n /**\n * a recursive function dynamically builds legacy query structure\n * @param current UI object represents either a section or filter component\n * @returns section query data\n */\n private sectionWalk(current: any) {\n let section: IPepQuerySection | IPepQueryItem = null;\n\n Object.keys(current).forEach(key => {\n if (key.includes('item')) {\n section = this.addToSection(section, {\n ExpressionId: (this._expressionIdCounter++).toString(),\n ApiName: current[key].smart.fieldId,\n FieldType: current[key].query.fieldType,\n Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),\n Values: this.getItemValues(current[key].smart)\n } as IPepQueryItem, current.operator);\n } else if (key.includes('section')) {\n const childSection = this.sectionWalk(current[key]);\n if (childSection) {\n section = this.addToSection(section, childSection, current.operator);\n }\n }\n });\n\n return section;\n }\n\n /**\n * adds a legacy filter object to the current query structure\n * @param section section query data\n * @param item filter item\n * @param operator query operator\n * @returns \n */\n private addToSection(section: any, item: any, operator: string): any {\n return section ? this.createSection(section, item, operator) : item;\n }\n\n /**\n * creates a legacy complex object\n * @param left LeftNode object\n * @param right RightNode object\n * @param operator query operator\n * @returns legacy complex object\n */\n private createSection(left: any, right: any, operator: string): IPepQuerySection {\n return {\n ComplexId: (this._complexIdCounter++).toString(),\n LeftNode: left,\n RightNode: right,\n Operation: <PepOperatorTypes>operator\n }\n }\n\n /**\n * gets legacy filter values object\n * @param current UI filter object's values\n * @returns an array represents legacy values\n */\n private getItemValues(current: any) {\n let values: any[] = [];\n\n if (current?.values?.first) {\n if (current.operator === PepSmartFilterOperators.In) { //multi select \n values = current.values.first;\n } else if (\n current.operator === PepSmartFilterOperators.InTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n current.operator === PepSmartFilterOperators.NotInTheLast ||\n current.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n current.operator === PepSmartFilterOperators.DueIn ||\n current.operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit \n values.push(current.values.first);\n if (current.operatorUnit) {\n values.push(getLegacyOperationUnit(current.operatorUnit));\n }\n } else {\n values.push(current.values.first);\n if (current.values.second) {\n values.push(current.values.second);\n }\n }\n }\n\n return values;\n }\n\n}","import { Injectable } from '@angular/core';\nimport { \n IPepQueryBuilderField, \n IPepQueryItem \n} from './common/model/legacy';\nimport { \n IPepSmartFilterData,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { getSmartFilterOperator } from './common/model/operator';\nimport { IPepQueryBuilderFieldContainer } from './common/model/field';\nimport { PepQueryBuilderTypeMap } from './common/model/type-map';\nimport { getSmartFilterOperationUnit } from './common/model/operator-unit';\nimport { IPepQueryBuilderValues } from './common/model/filter';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PepQueryBuilderService {\n\n constructor() {\n //\n }\n\n /**\n * creates a smart filter object\n * @param current filter legacy element\n * @param field filter's selected field\n * @returns smart filter object\n */\n getFilter(current: IPepQueryItem, field: PepSmartFilterBaseField): IPepSmartFilterData | null { \n const operator: IPepSmartFilterOperator = getSmartFilterOperator(current.Operation, field.type);\n if (operator) {\n const filterValues: IPepQueryBuilderValues = this.getFilterValues(current, operator, field);\n return createSmartFilter(\n current.ApiName,\n operator,\n filterValues.first,\n filterValues.second,\n filterValues.operationUnit\n );\n } else {\n return null;\n }\n }\n \n /**\n * converts legacy fields to smart filter fields\n * @param fields legacy fields array\n * @returns smart filter fields array\n */\n convertToSmartFilterFields(fields: Array<IPepQueryBuilderField>): Array<IPepQueryBuilderFieldContainer> {\n if (fields?.length > 0) {\n const typeMapper = new PepQueryBuilderTypeMap();\n\n return fields.map((field) => {\n return {\n smart: createSmartFilterField(\n {\n id: field.FieldID,\n name: field.Title,\n options: field.OptionalValues?.map(option => {\n return {\n key: option.Key,\n value: option.Value\n }\n })\n }, typeMapper.getSmartFilterType(field.FieldType) as PepSmartFilterType),\n query: {\n fieldType: field.FieldType\n }\n }\n })\n } else {\n return [];\n }\n }\n \n /**\n * gets smart filter's values data\n * @param current filter legacy element\n * @param operator smart filter operator\n * @param field filter's selected field\n * @returns object contains the filter values data\n */\n private getFilterValues(current: IPepQueryItem, operator: IPepSmartFilterOperator, field: any) {\n const data: IPepQueryBuilderValues = {\n first: null,\n second: null,\n operationUnit: null\n };\n\n if (operator === PepSmartFilterOperators.In) { //multi select \n //filter keys don't exist on field options\n data.first = current?.Values?.length > 0 ? current.Values.filter(item => {\n return field.options.find(option => option.key === item);\n }) : null;\n } else if (\n operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\n ) { //operation unit\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n if (current?.Values?.length === 2) {\n data.operationUnit = getSmartFilterOperationUnit(current.Values[1]);\n }\n } else {\n data.first = current?.Values?.length > 0 ? current.Values[0] : null;\n data.second = current?.Values?.length === 2 ? current.Values[1] : null;\n }\n\n return data;\n }\n\n}","import { Injectable, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { } from 'lodash';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from '../../common/model/legacy';\nimport {\n IPepSmartFilterData,\n PepSmartFilterOperators,\n IPepSmartFilterOperator,\n PepSmartFilterType,\n createSmartFilter,\n createSmartFilterField,\n PepSmartFilterBaseField\n} from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepQueryBuilderService } from '../../query-builder.service';\nimport { PepOutputQueryService } from '../../common/services/output-query.service';\nimport { getSmartFilterOperator } from '../../common/model/operator';\nimport { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';\nimport { IPepQueryBuilderFieldContainer } from '../../common/model/field';\nimport { PepQueryBuilderTypeMap } from '../../common/model/type-map';\nimport { getSmartFilterOperationUnit } from '../../common/model/operator-unit';\nimport { IPepQueryBuilderValues } from '../../common/model/filter';\nimport { PepOperatorTypes } from '../../common/model/type';\n\nconst MAX_STRUCTURE_DEPTH = 3;\n\n@Injectable()\nexport class PepQueryStructureService {\n private _outputQuery$ = new BehaviorSubject<IPepQuerySection | IPepQueryItem>(null);\n\n private _smartFilterFields: Array<IPepQueryBuilderFieldContainer>;\n private _variableFields: any = {};\n private _form: FormGroup;\n private _maxStructureDepth = MAX_STRUCTURE_DEPTH;\n\n public outputQuery$ = this._outputQuery$.asObservable();\n\n constructor(\n private _resolver: ComponentFactoryResolver,\n private _outputQueryService: PepOutputQueryService,\n private _queryBuilderService: PepQueryBuilderService) {\n\n }\n\n set maxDepth(value) {\n this._maxStructureDepth = value;\n }\n\n get maxDepth() {\n return this._maxStructureDepth;\n }\n\n set fields(list: Array<IPepQueryBuilderField>) {\n this._smartFilterFields = this._queryBuilderService.convertToSmartFilterFields(list);\n }\n\n get hasFields(): boolean {\n return this._smartFilterFields?.length > 0;\n }\n\n set variableFields(list: Array<IPepQueryBuilderField>) {\n if (list?.length) {\n const typeMapper = new PepQueryBuilderTypeMap();\n list.forEach(field => {\n const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));\n if (this.hasProperty(this._variableFields, fieldType)) {\n this._variableFields[fieldType].push(field.FieldID);\n } else {\n this._variableFields[fieldType] = [field.FieldID];\n }\n });\n }\n }\n\n set form(value: FormGroup) {\n this._form = value;\n }\n\n get form() {\n return this._form;\n }\n\n /**\n * builds a dynamic UI query structure\n * might has a different structure than the query's due to parent-child elements merge\n * @param query legacy query \n * @param containerRef reference to root element\n */\n buildQueryStructure(\n query: IPepQuerySection | IPepQueryItem,\n containerRef: ViewContainerRef\n ) {\n //update root operator \n if (this.hasProperty(query, 'ComplexId') &&\n query?.Operation &&\n query.Operation !== this._form.get('operator').value) {\n this._form.get('operator').setValue(query.Operation);\n }\n this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);\n }\n\n /**\n * checks if the object contains property\n * @param obj object\n * @param prop property name\n * @returns true if contains, false otherwise\n */\n private hasProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n /**\n * a recursive function dynamically builds UI filters structure\n * @param parentOperator parent legacy complex operator\n * @param current child legacy object (either another complex or expression type)\n * @param containerRef parent element\n * @param parentForm parent form\n */\n private flatten(parentOperator: string, current: IPepQuerySection | IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n if (this.hasProperty(current, 'ComplexId')) {\n const section = current as IPepQuerySection;\n if (parentOperator === current.Operation) {\n this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);\n this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);\n } else {\n const result = this.createSection(section.Operation, containerRef, parentForm, depth + 1);\n this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);\n this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);\n }\n } else if (this.hasProperty(current, 'ExpressionId')) {\n this.createItem(current as IPepQueryItem, containerRef, parentForm);\n }\n }\n\n /**\n * creates a container object of two or more child filter items\n * @param operator AND/OR operator\n * @param containerRef parent element\n * @param parentForm parent form\n * @param depth\n * @returns an object containing the current element and current form\n */\n createSection(operator: PepOperatorTypes, containerRef: ViewContainerRef, parentForm: FormGroup, depth: number) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);\n const componentRef = containerRef.createComponent(factory);\n\n // const sectionGroup = this._fb.group({\n // operator: this._fb.control(operator)\n // });\n const sectionGroup = new FormGroup({\n operator: new FormControl(operator)\n });\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) { counter++; } });\n const formKey = `section${counter}`;\n parentForm.addControl(formKey, sectionGroup);\n\n componentRef.instance.form = sectionGroup;\n componentRef.instance.depth = {\n current: depth,\n max: this._maxStructureDepth\n };\n componentRef.instance.createSection.subscribe(() => {\n const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);\n this.createItem(null, section.containerRef, section.parentForm);\n });\n componentRef.instance.createItem.subscribe(() => {\n this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n componentRef.instance.operatorChange.subscribe(() => {\n this.createOutputQuery();\n });\n\n return {\n containerRef: componentRef.instance.sectionContainer,\n parentForm: sectionGroup\n };\n }\n\n /**\n * creates a component represents filter item (leaf element - has no childs)\n * @param current filter legacy element\n * @param containerRef parent element\n * @param parentForm parent form\n */\n createItem(current: IPepQueryItem, containerRef: ViewContainerRef, parentForm: FormGroup) {\n const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);\n const componentRef = containerRef.createComponent(factory);\n\n let counter = 1;\n Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) { counter++; } });\n const formKey = `item${counter}`;\n\n componentRef.instance.formKey = formKey;\n componentRef.instance.fields = this._smartFilterFields;\n componentRef.instance.variableFields = this._variableFields;\n const selectedField = this.getSelectedField(current);\n if (selectedField) {\n componentRef.instance.selected = selectedField;\n if (current) {\n componentRef.instance.filter = this._queryBuilderService.getFilter(current, selectedField.smart);\n }\n }\n componentRef.instance.parentForm = parentForm;\n componentRef.instance.filterChange.subscribe(() => {\n this.createOutputQuery();\n });\n componentRef.instance.remove.subscribe(() => {\n parentForm.removeControl(formKey);\n componentRef.destroy();\n this.createOutputQuery();\n });\n }\n\n /**\n * get smart filter field\n * @param current filter legacy element\n * @returns smart filter field, if not found returns the first field\n */\n private getSelectedField(current: IPepQueryItem): IPepQueryBuilderFieldContainer | null {\n if (current) {\n const item = this._smartFilterFields.find(field => field.smart.id === current.ApiName);\n return item ? item : this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n } else {\n return this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;\n }\n }\n\n private convertSmartFilterComponentType(type: string) {\n switch (type) {\n case 'int':\n case 'currency':\n case 'real':\n case 'percentage':\n return 'number';\n case 'date-time':\n return 'date';\n default:\n return type;\n }\n }\n\n /**\n * creates a legacy output query \n */\n createOutputQuery() {\n if (this._form.valid) {\n const query = this._outputQueryService.generateQuery(this._form.value);\n this._outputQuery$.next(query);\n }\n }\n\n}","import {\n Component,\n EventEmitter,\n Input,\n Output,\n OnInit,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { IPepQueryBuilderField, IPepQuerySection, IPepQueryItem } from './common/model/legacy';\nimport { PepQueryStructureService } from './common/services/query-structure.service';\nimport { PepTypeConvertorService } from './common/services/type-convertor.service';\nimport { PepOutputQueryService } from './common/services/output-query.service';\nimport { IPepQueryDepth } from './common/model/structure';\nimport { PepOperatorTypes } from './common/model/type';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'pep-query-builder',\n templateUrl: './query-builder.component.html',\n styleUrls: ['./query-builder.component.scss'],\n providers: [ PepQueryStructureService, PepTypeConvertorService, PepOutputQueryService]\n})\nexport class PepQueryBuilderComponent implements OnInit, OnDestroy {\n _query: IPepQuerySection | IPepQueryItem = null;\n @Input()\n set query(object: IPepQuerySection | IPepQueryItem) {\n this._query = object;\n this.loadQuery()\n }\n @Input()\n set fields(list: Array<IPepQueryBuilderField>) {\n this.queryStructureService.fields = list;\n this.hasFields = this.queryStructureService.hasFields;\n this.loadQuery();\n }\n @Input() \n set variableFields(list : Array<IPepQueryBuilderField>) {\n this.queryStructureService.variableFields = list;\n }\n @Input()\n set maxDepth(value: number) {\n this.queryStructureService.maxDepth = value;\n }\n\n @Output()\n queryChange: EventEmitter<IPepQuerySection | IPepQueryItem> = new EventEmitter<IPepQuerySection | IPepQueryItem>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('rootContainer', { static: true }) root: PepQueryBuilderSectionComponent;\n\n _formSubscription$: Subscription;\n _outputQuerySubscription$: Subscription;\n _lastFormValidStatus = true;\n depth: IPepQueryDepth;\n hasFields = false;\n\n constructor(\n private _fb: FormBuilder,\n public queryStructureService: PepQueryStructureService\n ) {\n this.setupForm();\n this.initDepth();\n this._formSubscription$ = this.queryStructureService.form.valueChanges.subscribe((val) => {\n if (this.queryStructureService.form.valid !== this._lastFormValidStatus) {\n this._lastFormValidStatus = this.queryStructureService.form.valid;\n this.formValidationChange.emit(this._lastFormValidStatus);\n }\n });\n this._outputQuerySubscription$ = this.queryStructureService.outputQuery$.subscribe((outputQuery) => {\n this.queryChange.emit(outputQuery);\n });\n }\n\n ngOnInit() {\n //\n }\n\n setupForm() {\n this.queryStructureService.form = this._fb.group({\n operator: this._fb.control(PepOperatorTypes.And)\n });\n }\n\n initDepth() {\n this.depth = {\n current: 0,\n max: this.queryStructureService.maxDepth\n }\n }\n\n /**\n * builds UI query structure as soon as both the fields and query loads\n */\n loadQuery() {\n if (\n this._query &&\n this.queryStructureService.hasFields &&\n this.root?.sectionContainer\n ) {\n this.queryStructureService.buildQueryStructure(this._query, this.root.sectionContainer);\n }\n }\n\n onCreateSection() {\n const section = this.queryStructureService.createSection(PepOperatorTypes.And, this.root.sectionContainer, this.queryStructureService.form, 1);\n this.queryStructureService.createItem(null, section.containerRef, section.parentForm);\n }\n\n onCreateItem() {\n this.queryStructureService.createItem(null, this.root.sectionContainer, this.queryStructureService.form);\n }\n\n onOperatorChange() {\n this.queryStructureService.createOutputQuery();\n }\n\n ngOnDestroy() {\n if (this._formSubscription$) {\n this._formSubscription$.unsubscribe();\n }\n if (this._outputQuerySubscription$) {\n this._outputQuerySubscription$.unsubscribe();\n }\n }\n\n}\n","<pep-query-builder-section #rootContainer [form]=\"queryStructureService.form\" [depth]=\"depth\" [hasFields]=\"hasFields\"\n (createSection)=\"onCreateSection()\" (createItem)=\"onCreateItem()\" (operatorChange)=\"onOperatorChange()\">\n</pep-query-builder-section>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\nimport { PepQueryBuilderComponent } from './query-builder.component';\nimport { PepQueryBuilderSectionComponent } from './query-builder-section/query-builder-section.component';\nimport { PepQueryBuilderItemComponent } from './query-builder-item/query-builder-item.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n PepSelectModule,\n PepButtonModule,\n PepGroupButtonsModule,\n PepSmartFiltersModule\n ],\n exports: [\n PepQueryBuilderComponent\n ],\n declarations: [\n PepQueryBuilderComponent,\n PepQueryBuilderSectionComponent,\n PepQueryBuilderItemComponent\n ],\n providers: [\n FormBuilder\n ]\n})\nexport class PepQueryBuilderModule { }\n","/*\n * Public API Surface of ngx-lib/query-builder\n */\nexport * from './query-builder.module';\nexport * from './query-builder.component';\nexport * from './query-builder.service';\nexport * from './common/model/legacy';\nexport * from './query-builder.service';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepTypeConvertorService","i2","i3","i2.PepTypeConvertorService","i4","i5","i6","i1.PepOutputQueryService","i2.PepQueryBuilderService","i2.PepQueryStructureService","i3.PepQueryBuilderSectionComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pepperi-addons/ngx-lib",
3
- "version": "0.4.2-beta.82",
3
+ "version": "0.4.2-beta.83",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": ">= 14.0.2",
6
6
  "@angular/cdk": ">= 14.0.2",