novo-elements 7.4.0 → 7.4.1-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29679,26 +29679,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
29679
29679
  }] } });
29680
29680
 
29681
29681
  // NG2
29682
- class WorkersCompCodesPickerResults extends BasePickerResults {
29682
+ class WorkersCompCodesPickerResults extends PickerResults {
29683
29683
  constructor(element, sanitizer, labels, ref) {
29684
- super(element, ref);
29684
+ super(element, labels, ref);
29685
29685
  this.sanitizer = sanitizer;
29686
29686
  this.labels = labels;
29687
- this.active = true;
29688
- this.sanitizer = sanitizer;
29689
- }
29690
- get isHidden() {
29691
- return this.matches.length === 0;
29692
- }
29693
- getListElement() {
29694
- return this.element.nativeElement.querySelector('novo-list');
29695
29687
  }
29696
29688
  sanitizeHTML(compCode, name) {
29697
29689
  return this.sanitizer.bypassSecurityTrustHtml(`${compCode} | ${name}`);
29698
29690
  }
29699
29691
  }
29700
29692
  WorkersCompCodesPickerResults.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkersCompCodesPickerResults, deps: [{ token: i0.ElementRef }, { token: i1$2.DomSanitizer }, { token: NovoLabelService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
29701
- WorkersCompCodesPickerResults.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: WorkersCompCodesPickerResults, selector: "workers-comp-codes-picker-results", host: { properties: { "class.active": "this.active", "hidden": "this.isHidden" } }, usesInheritance: true, ngImport: i0, template: `
29693
+ WorkersCompCodesPickerResults.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: WorkersCompCodesPickerResults, selector: "workers-comp-codes-picker-results", host: { classAttribute: "active" }, usesInheritance: true, ngImport: i0, template: `
29702
29694
  <section class="picker-loading" *ngIf="isLoading && !matches?.length">
29703
29695
  <novo-loading theme="line"></novo-loading>
29704
29696
  </section>
@@ -29736,11 +29728,17 @@ WorkersCompCodesPickerResults.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
29736
29728
  </novo-list-item>
29737
29729
  <novo-loading theme="line" *ngIf="isLoading && matches?.length > 0"></novo-loading>
29738
29730
  </novo-list>
29731
+ <div class="picker-loader" *ngIf="isLoading && matches.length === 0"><novo-loading theme="line"></novo-loading></div>
29732
+ <p class="picker-error" *ngIf="hasError">{{ labels.pickerError }}</p>
29733
+ <p class="picker-null-results" *ngIf="hasNonErrorMessage">{{ getEmptyMessage() }}</p>
29739
29734
  `, isInline: true, components: [{ type: NovoLoadingElement, selector: "novo-loading", inputs: ["theme", "color", "size"] }, { type: NovoListElement, selector: "novo-list", inputs: ["theme", "direction"] }, { type: NovoListItemElement, selector: "novo-list-item, a[list-item], button[list-item]" }, { type: NovoItemHeaderElement, selector: "item-header, novo-item-header" }, { type: NovoItemTitleElement, selector: "item-title, novo-item-title" }, { type: NovoItemContentElement, selector: "item-content, novo-item-content", inputs: ["direction"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ThemeColorDirective, selector: "[theme]", inputs: ["theme"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
29740
29735
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: WorkersCompCodesPickerResults, decorators: [{
29741
29736
  type: Component,
29742
29737
  args: [{
29743
29738
  selector: 'workers-comp-codes-picker-results',
29739
+ host: {
29740
+ class: 'active',
29741
+ },
29744
29742
  template: `
29745
29743
  <section class="picker-loading" *ngIf="isLoading && !matches?.length">
29746
29744
  <novo-loading theme="line"></novo-loading>
@@ -29779,15 +29777,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
29779
29777
  </novo-list-item>
29780
29778
  <novo-loading theme="line" *ngIf="isLoading && matches?.length > 0"></novo-loading>
29781
29779
  </novo-list>
29780
+ <div class="picker-loader" *ngIf="isLoading && matches.length === 0"><novo-loading theme="line"></novo-loading></div>
29781
+ <p class="picker-error" *ngIf="hasError">{{ labels.pickerError }}</p>
29782
+ <p class="picker-null-results" *ngIf="hasNonErrorMessage">{{ getEmptyMessage() }}</p>
29782
29783
  `,
29783
29784
  }]
29784
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$2.DomSanitizer }, { type: NovoLabelService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { active: [{
29785
- type: HostBinding,
29786
- args: ['class.active']
29787
- }], isHidden: [{
29788
- type: HostBinding,
29789
- args: ['hidden']
29790
- }] } });
29785
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$2.DomSanitizer }, { type: NovoLabelService }, { type: i0.ChangeDetectorRef }]; } });
29791
29786
 
29792
29787
  // NG2
29793
29788
  // Value accessor for the component (supports ngModel)
@@ -33225,9 +33220,7 @@ const DATEFORMAT_VALUE_ACCESSOR = {
33225
33220
  multi: true,
33226
33221
  };
33227
33222
  class NovoDateFormatDirective extends IMaskDirective {
33228
- constructor(_element, _renderer, _factory,
33229
- // @Optional() @Inject(PLATFORM_ID) _platformId: string,
33230
- _compositionMode, labels) {
33223
+ constructor(_element, _renderer, _factory, _compositionMode, labels) {
33231
33224
  super(_element, _renderer, _factory, _compositionMode);
33232
33225
  this._element = _element;
33233
33226
  this.labels = labels;
@@ -33351,7 +33344,6 @@ class NovoDateRangeFormatDirective extends IMaskDirective {
33351
33344
  this.unmask = false;
33352
33345
  this.imask = {
33353
33346
  mask: 'm{/}`d{/}`Y - m{/}`d{/}`Y',
33354
- // pattern: 'm{/}`d{/}`Y - m{/}`d{/}`Y',
33355
33347
  overwrite: true,
33356
33348
  autofix: true,
33357
33349
  lazy: false,
@@ -33479,9 +33471,7 @@ var TIME_FORMATS;
33479
33471
  TIME_FORMATS["STRING"] = "string";
33480
33472
  })(TIME_FORMATS || (TIME_FORMATS = {}));
33481
33473
  class NovoTimeFormatDirective extends IMaskDirective {
33482
- constructor(_element, _renderer, _factory,
33483
- // @Optional() @Inject(PLATFORM_ID) _platformId: string,
33484
- _compositionMode, labels, cdr) {
33474
+ constructor(_element, _renderer, _factory, _compositionMode, labels, cdr) {
33485
33475
  super(_element, _renderer, _factory, _compositionMode);
33486
33476
  this._element = _element;
33487
33477
  this.labels = labels;
@@ -56503,7 +56493,6 @@ class ConditionBuilderComponent {
56503
56493
  const { fields = [] } = this.qbs.config || {};
56504
56494
  fields.length && this.changeFieldOptions(fields[0]);
56505
56495
  this.searches = this.searchTerm.valueChanges.pipe(debounceTime(300), distinctUntilChanged()).subscribe((term) => {
56506
- // this.parentForm.get('field').setValue(null);
56507
56496
  this.results$ = Promise.resolve(this.fieldConfig.options.filter((f) => f.name.toLowerCase().includes(term.toLowerCase()) || f.label?.toLowerCase().includes(term.toLowerCase())));
56508
56497
  this.cdr.markForCheck();
56509
56498
  });
@@ -56519,8 +56508,6 @@ class ConditionBuilderComponent {
56519
56508
  [this._operatorOutlet.viewContainer, this._inputOutlet.viewContainer].forEach((def) => {
56520
56509
  def.clear();
56521
56510
  });
56522
- // this._contentFieldTypeDefs = [];
56523
- // this._contentFieldDefs = [];
56524
56511
  this._onDestroy.next();
56525
56512
  this._onDestroy.complete();
56526
56513
  }
@@ -56529,7 +56516,6 @@ class ConditionBuilderComponent {
56529
56516
  * @param fieldConfig
56530
56517
  */
56531
56518
  changeFieldOptions(fieldConfig) {
56532
- // this.fields = entity.filter(term);
56533
56519
  this.fieldConfig = fieldConfig;
56534
56520
  this.searchTerm.setValue('');
56535
56521
  this.results$ = Promise.resolve(this.fieldConfig.options);
@@ -57119,9 +57105,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
57119
57105
  }] });
57120
57106
 
57121
57107
  /**
57122
- * Contruction filters against String fields can be complex. Each "chip" added to the
57123
- * condition can be used to indendantly used to query a database. Not all systems support
57124
- * quering within a text column, ie sql unless LIKE is enabled. This could result in a
57108
+ * Constructing filters against String fields can be complex. Each "chip" added to the
57109
+ * condition can be independently used to query a database. Not all systems support
57110
+ * querying within a text column, ie sql unless LIKE is enabled. This could result in a
57125
57111
  * performance penalty.
57126
57112
  */
57127
57113
  class NovoDefaultStringConditionDef extends AbstractConditionFieldDef {
@@ -57294,12 +57280,12 @@ class ConditionGroupComponent {
57294
57280
  }
57295
57281
  }
57296
57282
  ConditionGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ConditionGroupComponent, deps: [{ token: QueryBuilderService }, { token: NovoLabelService }, { token: i5.ControlContainer }, { token: i5.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
57297
- ConditionGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ConditionGroupComponent, selector: "novo-condition-group", inputs: { controlName: "controlName", groupIndex: "groupIndex" }, host: { classAttribute: "novo-condition-group" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ConditionGroupComponent), multi: true }], ngImport: i0, template: "<div [formGroup]=\"parentForm\" class=\"condition-group-container\">\n <novo-stack [formArrayName]=\"controlName\" gap=\"md\">\n <ng-container\n *ngFor=\"let andGroup of root.controls; let andIndex = index; let isFirst = first;let isLast = last;\">\n <ng-container [formGroupName]=\"andIndex\">\n <novo-flex class=\"condition-row\" align=\"end\" gap=\"sm\">\n <novo-dropdown *ngIf=\"!isFirst && qbs.allowedGroupings.length > 1; else labeledGroup\">\n <button theme=\"dialogue\" icon=\"collapse\" size=\"sm\">{{qbs.getConjunctionLabel(controlName)}}</button>\n <novo-optgroup>\n <novo-option *ngFor=\"let c of qbs.allowedGroupings\" (click)=\"updateControlName(c)\">\n {{qbs.getConjunctionLabel(c)}}</novo-option>\n </novo-optgroup>\n </novo-dropdown>\n <ng-template #labeledGroup>\n <novo-label *ngIf=\"!isFirst\" color=\"ash\" size=\"xs\" uppercase padding=\"sm\">\n {{qbs.getConjunctionLabel(controlName)}}</novo-label>\n </ng-template>\n <novo-condition-builder [groupIndex]=\"groupIndex\" [andIndex]=\"andIndex\" [isFirst]=\"isFirst\"></novo-condition-builder>\n <novo-button theme=\"icon\" icon=\"delete-o\" color=\"negative\" (click)=\"removeCondition(andIndex)\"\n [disabled]=\"cantRemoveRow(isFirst)\">\n </novo-button>\n </novo-flex>\n </ng-container>\n </ng-container>\n <button theme=\"dialogue\" data-automation-id=\"add-advanced-search-condition\" icon=\"add-thin\" side=\"left\" size=\"sm\" uppercase padding=\"sm\" (click)=\"addCondition()\">\n {{ labels.addCondition }}</button>\n </novo-stack>\n\n\n <!-- <button class=\"and-or-button\" theme=\"secondary\" size=\"sm\" (click)=\"addRootCondition()\">{{ addCriteriaLabel }}</button> -->\n</div>", styles: [":host{position:relative;display:block;border:1px solid var(--border);border-radius:var(--border-radius-round);padding:var(--spacing-md);width:100%}:host .condition-row{width:100%}\n"], components: [{ type: NovoStackElement, selector: "novo-stack,novo-column", inputs: ["direction", "align"] }, { type: NovoFlexElement, selector: "novo-flex,novo-row", inputs: ["direction", "align", "justify", "wrap", "gap"] }, { type: NovoDropdownElement, selector: "novo-dropdown", inputs: ["parentScrollSelector", "parentScrollAction", "containerClass", "side", "scrollStrategy", "keepOpen", "height", "width", "appendToBody", "multiple"], outputs: ["toggled"] }, { type: NovoButtonElement, selector: "novo-button,button[theme]", inputs: ["color", "side", "size", "theme", "loading", "icon", "disabled"] }, { type: NovoOptgroup, selector: "novo-optgroup", inputs: ["disabled", "label"], exportAs: ["novoOptgroup"] }, { type: NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { type: NovoLabel, selector: "novo-label,[novo-label]" }, { type: ConditionBuilderComponent, selector: "novo-condition-builder", inputs: ["label", "isFirst", "andIndex", "groupIndex"] }], directives: [{ type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: GapDirective, selector: "[gap]", inputs: ["gap"] }, { type: i5.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ThemeColorDirective, selector: "[theme]", inputs: ["theme"] }, { type: PaddingDirective, selector: "[p],[padding],[paddingTop],[paddingRight],[paddingBottom],[paddingLeft],[paddingX],[paddingY],[pt],[pr],[pb],[pl],[px],[py]", inputs: ["padding", "p", "paddingLeft", "pl", "paddingRight", "pr", "paddingTop", "pt", "paddingBottom", "pb", "paddingX", "px", "paddingY", "py"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57283
+ ConditionGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ConditionGroupComponent, selector: "novo-condition-group", inputs: { controlName: "controlName", groupIndex: "groupIndex" }, host: { classAttribute: "novo-condition-group" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ConditionGroupComponent), multi: true }], ngImport: i0, template: "<div [formGroup]=\"parentForm\" class=\"condition-group-container\">\n <novo-stack [formArrayName]=\"controlName\" gap=\"md\">\n <ng-container\n *ngFor=\"let andGroup of root.controls; let andIndex = index; let isFirst = first;let isLast = last;\">\n <ng-container [formGroupName]=\"andIndex\">\n <novo-flex class=\"condition-row\" align=\"end\" gap=\"sm\">\n <novo-dropdown *ngIf=\"!isFirst && qbs.allowedGroupings.length > 1; else labeledGroup\">\n <button theme=\"dialogue\" icon=\"collapse\" size=\"sm\">{{qbs.getConjunctionLabel(controlName)}}</button>\n <novo-optgroup>\n <novo-option *ngFor=\"let c of qbs.allowedGroupings\" (click)=\"updateControlName(c)\">\n {{qbs.getConjunctionLabel(c)}}</novo-option>\n </novo-optgroup>\n </novo-dropdown>\n <ng-template #labeledGroup>\n <novo-label *ngIf=\"!isFirst\" color=\"ash\" size=\"xs\" uppercase padding=\"sm\">\n {{qbs.getConjunctionLabel(controlName)}}</novo-label>\n </ng-template>\n <novo-condition-builder [groupIndex]=\"groupIndex\" [andIndex]=\"andIndex\" [isFirst]=\"isFirst\"></novo-condition-builder>\n <novo-button theme=\"icon\" icon=\"delete-o\" color=\"negative\" (click)=\"removeCondition(andIndex)\"\n [disabled]=\"cantRemoveRow(isFirst)\">\n </novo-button>\n </novo-flex>\n </ng-container>\n </ng-container>\n <button theme=\"dialogue\" data-automation-id=\"add-advanced-search-condition\" icon=\"add-thin\" side=\"left\" size=\"sm\" uppercase padding=\"sm\" (click)=\"addCondition()\">\n {{ labels.addCondition }}</button>\n </novo-stack>\n <!-- <button class=\"and-or-button\" theme=\"secondary\" size=\"sm\" (click)=\"addRootCondition()\">{{ addCriteriaLabel }}</button> -->\n</div>", styles: [":host{position:relative;display:block;border:1px solid var(--border);border-radius:var(--border-radius-round);padding:var(--spacing-md);width:100%}:host .condition-row{width:100%}\n"], components: [{ type: NovoStackElement, selector: "novo-stack,novo-column", inputs: ["direction", "align"] }, { type: NovoFlexElement, selector: "novo-flex,novo-row", inputs: ["direction", "align", "justify", "wrap", "gap"] }, { type: NovoDropdownElement, selector: "novo-dropdown", inputs: ["parentScrollSelector", "parentScrollAction", "containerClass", "side", "scrollStrategy", "keepOpen", "height", "width", "appendToBody", "multiple"], outputs: ["toggled"] }, { type: NovoButtonElement, selector: "novo-button,button[theme]", inputs: ["color", "side", "size", "theme", "loading", "icon", "disabled"] }, { type: NovoOptgroup, selector: "novo-optgroup", inputs: ["disabled", "label"], exportAs: ["novoOptgroup"] }, { type: NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { type: NovoLabel, selector: "novo-label,[novo-label]" }, { type: ConditionBuilderComponent, selector: "novo-condition-builder", inputs: ["label", "isFirst", "andIndex", "groupIndex"] }], directives: [{ type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: GapDirective, selector: "[gap]", inputs: ["gap"] }, { type: i5.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ThemeColorDirective, selector: "[theme]", inputs: ["theme"] }, { type: PaddingDirective, selector: "[p],[padding],[paddingTop],[paddingRight],[paddingBottom],[paddingLeft],[paddingX],[paddingY],[pt],[pr],[pb],[pl],[px],[py]", inputs: ["padding", "p", "paddingLeft", "pl", "paddingRight", "pr", "paddingTop", "pt", "paddingBottom", "pb", "paddingX", "px", "paddingY", "py"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
57298
57284
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ConditionGroupComponent, decorators: [{
57299
57285
  type: Component,
57300
57286
  args: [{ selector: 'novo-condition-group', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ConditionGroupComponent), multi: true }], host: {
57301
57287
  class: 'novo-condition-group',
57302
- }, template: "<div [formGroup]=\"parentForm\" class=\"condition-group-container\">\n <novo-stack [formArrayName]=\"controlName\" gap=\"md\">\n <ng-container\n *ngFor=\"let andGroup of root.controls; let andIndex = index; let isFirst = first;let isLast = last;\">\n <ng-container [formGroupName]=\"andIndex\">\n <novo-flex class=\"condition-row\" align=\"end\" gap=\"sm\">\n <novo-dropdown *ngIf=\"!isFirst && qbs.allowedGroupings.length > 1; else labeledGroup\">\n <button theme=\"dialogue\" icon=\"collapse\" size=\"sm\">{{qbs.getConjunctionLabel(controlName)}}</button>\n <novo-optgroup>\n <novo-option *ngFor=\"let c of qbs.allowedGroupings\" (click)=\"updateControlName(c)\">\n {{qbs.getConjunctionLabel(c)}}</novo-option>\n </novo-optgroup>\n </novo-dropdown>\n <ng-template #labeledGroup>\n <novo-label *ngIf=\"!isFirst\" color=\"ash\" size=\"xs\" uppercase padding=\"sm\">\n {{qbs.getConjunctionLabel(controlName)}}</novo-label>\n </ng-template>\n <novo-condition-builder [groupIndex]=\"groupIndex\" [andIndex]=\"andIndex\" [isFirst]=\"isFirst\"></novo-condition-builder>\n <novo-button theme=\"icon\" icon=\"delete-o\" color=\"negative\" (click)=\"removeCondition(andIndex)\"\n [disabled]=\"cantRemoveRow(isFirst)\">\n </novo-button>\n </novo-flex>\n </ng-container>\n </ng-container>\n <button theme=\"dialogue\" data-automation-id=\"add-advanced-search-condition\" icon=\"add-thin\" side=\"left\" size=\"sm\" uppercase padding=\"sm\" (click)=\"addCondition()\">\n {{ labels.addCondition }}</button>\n </novo-stack>\n\n\n <!-- <button class=\"and-or-button\" theme=\"secondary\" size=\"sm\" (click)=\"addRootCondition()\">{{ addCriteriaLabel }}</button> -->\n</div>", styles: [":host{position:relative;display:block;border:1px solid var(--border);border-radius:var(--border-radius-round);padding:var(--spacing-md);width:100%}:host .condition-row{width:100%}\n"] }]
57288
+ }, template: "<div [formGroup]=\"parentForm\" class=\"condition-group-container\">\n <novo-stack [formArrayName]=\"controlName\" gap=\"md\">\n <ng-container\n *ngFor=\"let andGroup of root.controls; let andIndex = index; let isFirst = first;let isLast = last;\">\n <ng-container [formGroupName]=\"andIndex\">\n <novo-flex class=\"condition-row\" align=\"end\" gap=\"sm\">\n <novo-dropdown *ngIf=\"!isFirst && qbs.allowedGroupings.length > 1; else labeledGroup\">\n <button theme=\"dialogue\" icon=\"collapse\" size=\"sm\">{{qbs.getConjunctionLabel(controlName)}}</button>\n <novo-optgroup>\n <novo-option *ngFor=\"let c of qbs.allowedGroupings\" (click)=\"updateControlName(c)\">\n {{qbs.getConjunctionLabel(c)}}</novo-option>\n </novo-optgroup>\n </novo-dropdown>\n <ng-template #labeledGroup>\n <novo-label *ngIf=\"!isFirst\" color=\"ash\" size=\"xs\" uppercase padding=\"sm\">\n {{qbs.getConjunctionLabel(controlName)}}</novo-label>\n </ng-template>\n <novo-condition-builder [groupIndex]=\"groupIndex\" [andIndex]=\"andIndex\" [isFirst]=\"isFirst\"></novo-condition-builder>\n <novo-button theme=\"icon\" icon=\"delete-o\" color=\"negative\" (click)=\"removeCondition(andIndex)\"\n [disabled]=\"cantRemoveRow(isFirst)\">\n </novo-button>\n </novo-flex>\n </ng-container>\n </ng-container>\n <button theme=\"dialogue\" data-automation-id=\"add-advanced-search-condition\" icon=\"add-thin\" side=\"left\" size=\"sm\" uppercase padding=\"sm\" (click)=\"addCondition()\">\n {{ labels.addCondition }}</button>\n </novo-stack>\n <!-- <button class=\"and-or-button\" theme=\"secondary\" size=\"sm\" (click)=\"addRootCondition()\">{{ addCriteriaLabel }}</button> -->\n</div>", styles: [":host{position:relative;display:block;border:1px solid var(--border);border-radius:var(--border-radius-round);padding:var(--spacing-md);width:100%}:host .condition-row{width:100%}\n"] }]
57303
57289
  }], ctorParameters: function () { return [{ type: QueryBuilderService }, { type: NovoLabelService }, { type: i5.ControlContainer }, { type: i5.FormBuilder }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { controlName: [{
57304
57290
  type: Input
57305
57291
  }], groupIndex: [{