novo-elements 7.4.0 → 7.5.0-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.
- package/elements/picker/Picker.scss +8 -1
- package/elements/query-builder/condition-builder/condition-builder.component.scss +0 -1
- package/esm2020/src/elements/chips/ChipInput.mjs +2 -2
- package/esm2020/src/elements/data-table/data-table.component.mjs +14 -11
- package/esm2020/src/elements/data-table/interfaces.mjs +1 -1
- package/esm2020/src/elements/data-table/state/data-table-state.service.mjs +48 -30
- package/esm2020/src/elements/field/formats/date-format.mjs +2 -4
- package/esm2020/src/elements/field/formats/date-range-format.mjs +1 -2
- package/esm2020/src/elements/field/formats/time-format.mjs +2 -4
- package/esm2020/src/elements/picker/extras/workers-comp-codes-picker-results/WorkersCompCodesPickerResults.mjs +16 -21
- package/esm2020/src/elements/query-builder/condition-builder/condition-builder.component.mjs +1 -5
- package/esm2020/src/elements/query-builder/condition-definitions/string-condition.definition.mjs +9 -12
- package/esm2020/src/elements/query-builder/condition-group/condition-group.component.mjs +4 -4
- package/esm2020/src/elements/query-builder/criteria-builder/criteria-builder.component.mjs +2 -2
- package/fesm2015/novo-elements.mjs +89 -84
- package/fesm2015/novo-elements.mjs.map +1 -1
- package/fesm2020/novo-elements.mjs +88 -84
- package/fesm2020/novo-elements.mjs.map +1 -1
- package/package.json +1 -1
- package/src/elements/chips/ChipInput.d.ts +1 -1
- package/src/elements/data-table/interfaces.d.ts +1 -0
- package/src/elements/data-table/state/data-table-state.service.d.ts +5 -1
- package/src/elements/picker/extras/workers-comp-codes-picker-results/WorkersCompCodesPickerResults.d.ts +2 -5
- package/src/elements/query-builder/condition-definitions/string-condition.definition.d.ts +3 -4
- package/elements/picker/extras/workers-comp-codes-picker-results/WorkersCompCodesPickerResults.scss +0 -0
|
@@ -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
|
|
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: {
|
|
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 }]; }
|
|
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;
|
|
@@ -35124,7 +35114,7 @@ class NovoChipInput {
|
|
|
35124
35114
|
focus(options) {
|
|
35125
35115
|
this._inputElement.focus(options);
|
|
35126
35116
|
}
|
|
35127
|
-
/**
|
|
35117
|
+
/** Clears the input. */
|
|
35128
35118
|
clearValue() {
|
|
35129
35119
|
this._inputElement.value = '';
|
|
35130
35120
|
this.ngControl?.control.setValue('');
|
|
@@ -37195,6 +37185,8 @@ class DataTableState {
|
|
|
37195
37185
|
this.isForceRefresh = false;
|
|
37196
37186
|
this.updates = new EventEmitter();
|
|
37197
37187
|
this.retainSelected = false;
|
|
37188
|
+
this.savedSearchName = undefined;
|
|
37189
|
+
this.displayedColumns = undefined;
|
|
37198
37190
|
}
|
|
37199
37191
|
get userFiltered() {
|
|
37200
37192
|
return !!(this.filter || this.sort || this.globalSearch || this.outsideFilter || this.where);
|
|
@@ -37206,27 +37198,7 @@ class DataTableState {
|
|
|
37206
37198
|
return Array.from(this.selectedRows.values());
|
|
37207
37199
|
}
|
|
37208
37200
|
reset(fireUpdate = true, persistUserFilters) {
|
|
37209
|
-
|
|
37210
|
-
this.sort = undefined;
|
|
37211
|
-
this.globalSearch = undefined;
|
|
37212
|
-
this.filter = undefined;
|
|
37213
|
-
this.where = undefined;
|
|
37214
|
-
}
|
|
37215
|
-
this.page = 0;
|
|
37216
|
-
if (!this.retainSelected) {
|
|
37217
|
-
this.selectedRows.clear();
|
|
37218
|
-
this.resetSource.next();
|
|
37219
|
-
}
|
|
37220
|
-
this.onSortFilterChange();
|
|
37221
|
-
this.retainSelected = false;
|
|
37222
|
-
if (fireUpdate) {
|
|
37223
|
-
this.updates.emit({
|
|
37224
|
-
sort: this.sort,
|
|
37225
|
-
filter: this.filter,
|
|
37226
|
-
globalSearch: this.globalSearch,
|
|
37227
|
-
where: this.where,
|
|
37228
|
-
});
|
|
37229
|
-
}
|
|
37201
|
+
this.setState({}, fireUpdate, persistUserFilters);
|
|
37230
37202
|
}
|
|
37231
37203
|
clearSort(fireUpdate = true) {
|
|
37232
37204
|
this.sort = undefined;
|
|
@@ -37308,6 +37280,7 @@ class DataTableState {
|
|
|
37308
37280
|
filter: this.filter,
|
|
37309
37281
|
globalSearch: this.globalSearch,
|
|
37310
37282
|
where: this.where,
|
|
37283
|
+
savedSearchName: this.savedSearchName,
|
|
37311
37284
|
});
|
|
37312
37285
|
}
|
|
37313
37286
|
setInitialSortFilter(preferences) {
|
|
@@ -37319,23 +37292,58 @@ class DataTableState {
|
|
|
37319
37292
|
this.sort = preferences.sort;
|
|
37320
37293
|
}
|
|
37321
37294
|
if (preferences.filter) {
|
|
37322
|
-
|
|
37323
|
-
filters.forEach((filter) => {
|
|
37324
|
-
filter.value =
|
|
37325
|
-
filter.selectedOption && filter.type
|
|
37326
|
-
? NovoDataTableFilterUtils.constructFilter(filter.selectedOption, filter.type)
|
|
37327
|
-
: filter.value;
|
|
37328
|
-
});
|
|
37329
|
-
this.filter = filters;
|
|
37295
|
+
this.filter = this.transformFilters(preferences.filter);
|
|
37330
37296
|
}
|
|
37331
37297
|
if (preferences.globalSearch) {
|
|
37332
37298
|
this.globalSearch = preferences.globalSearch;
|
|
37333
37299
|
}
|
|
37300
|
+
if (preferences.savedSearchName) {
|
|
37301
|
+
this.savedSearchName = preferences.savedSearchName;
|
|
37302
|
+
}
|
|
37303
|
+
}
|
|
37304
|
+
}
|
|
37305
|
+
setState(preferences, fireUpdate = true, persistUserFilters = false) {
|
|
37306
|
+
if (!persistUserFilters) {
|
|
37307
|
+
this.where = preferences.where;
|
|
37308
|
+
this.sort = preferences.sort;
|
|
37309
|
+
this.filter = preferences.filter ? this.transformFilters(preferences.filter) : undefined;
|
|
37310
|
+
this.globalSearch = preferences.globalSearch;
|
|
37311
|
+
this.savedSearchName = preferences.savedSearchName;
|
|
37312
|
+
if (preferences.displayedColumns?.length) {
|
|
37313
|
+
this.displayedColumns = preferences.displayedColumns;
|
|
37314
|
+
}
|
|
37315
|
+
}
|
|
37316
|
+
this.page = 0;
|
|
37317
|
+
if (!this.retainSelected) {
|
|
37318
|
+
this.selectedRows.clear();
|
|
37319
|
+
this.resetSource.next();
|
|
37320
|
+
}
|
|
37321
|
+
this.onSortFilterChange();
|
|
37322
|
+
this.retainSelected = false;
|
|
37323
|
+
if (fireUpdate) {
|
|
37324
|
+
this.updates.emit({
|
|
37325
|
+
sort: this.sort,
|
|
37326
|
+
filter: this.filter,
|
|
37327
|
+
globalSearch: this.globalSearch,
|
|
37328
|
+
where: this.where,
|
|
37329
|
+
savedSearchName: this.savedSearchName,
|
|
37330
|
+
displayedColumns: this.displayedColumns,
|
|
37331
|
+
});
|
|
37334
37332
|
}
|
|
37335
37333
|
}
|
|
37336
37334
|
checkRetainment(caller, allMatchingSelected = false) {
|
|
37337
37335
|
this.retainSelected = this.selectionOptions?.some((option) => option.label === caller) || this.retainSelected || allMatchingSelected;
|
|
37338
37336
|
}
|
|
37337
|
+
transformFilters(filters) {
|
|
37338
|
+
const filterArray = Helpers.convertToArray(filters);
|
|
37339
|
+
filterArray.forEach((filter) => {
|
|
37340
|
+
filter.value =
|
|
37341
|
+
filter.selectedOption && filter.type
|
|
37342
|
+
? NovoDataTableFilterUtils.constructFilter(filter.selectedOption, filter.type)
|
|
37343
|
+
: filter.value;
|
|
37344
|
+
});
|
|
37345
|
+
return filterArray;
|
|
37346
|
+
}
|
|
37339
37347
|
}
|
|
37340
37348
|
DataTableState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DataTableState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37341
37349
|
DataTableState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DataTableState });
|
|
@@ -40805,6 +40813,7 @@ class NovoDataTable {
|
|
|
40805
40813
|
filter: event.filter,
|
|
40806
40814
|
globalSearch: event.globalSearch,
|
|
40807
40815
|
where: event.where,
|
|
40816
|
+
savedSearchName: event.savedSearchName,
|
|
40808
40817
|
});
|
|
40809
40818
|
this.performInteractions('change');
|
|
40810
40819
|
}
|
|
@@ -40937,17 +40946,19 @@ class NovoDataTable {
|
|
|
40937
40946
|
}
|
|
40938
40947
|
modifyCellHeaderMultiSelectFilterOptions(column, newOptions) {
|
|
40939
40948
|
const header = this.cellHeaders.find((cellHeader) => cellHeader.id === column);
|
|
40940
|
-
if (header
|
|
40941
|
-
|
|
40942
|
-
|
|
40943
|
-
|
|
40944
|
-
|
|
40945
|
-
|
|
40946
|
-
|
|
40947
|
-
|
|
40949
|
+
if (header) {
|
|
40950
|
+
if (header.config && header.config.filterConfig && header.config.filterConfig.options) {
|
|
40951
|
+
const filterOptions = header.config.filterConfig.options;
|
|
40952
|
+
const optionsToKeep = filterOptions.filter((opt) => header.isSelected(opt, header.multiSelectedOptions) &&
|
|
40953
|
+
!newOptions.find((newOpt) => opt.value && newOpt.value && newOpt.value === opt.value));
|
|
40954
|
+
header.config.filterConfig.options = [...optionsToKeep, ...newOptions];
|
|
40955
|
+
}
|
|
40956
|
+
else {
|
|
40957
|
+
header.config.filterConfig.options = newOptions;
|
|
40958
|
+
}
|
|
40959
|
+
header.setupFilterOptions();
|
|
40960
|
+
header.changeDetectorRef.markForCheck();
|
|
40948
40961
|
}
|
|
40949
|
-
header.setupFilterOptions();
|
|
40950
|
-
header.changeDetectorRef.markForCheck();
|
|
40951
40962
|
}
|
|
40952
40963
|
ngOnDestroy() {
|
|
40953
40964
|
this.outsideFilterSubscription?.unsubscribe();
|
|
@@ -56503,7 +56514,6 @@ class ConditionBuilderComponent {
|
|
|
56503
56514
|
const { fields = [] } = this.qbs.config || {};
|
|
56504
56515
|
fields.length && this.changeFieldOptions(fields[0]);
|
|
56505
56516
|
this.searches = this.searchTerm.valueChanges.pipe(debounceTime(300), distinctUntilChanged()).subscribe((term) => {
|
|
56506
|
-
// this.parentForm.get('field').setValue(null);
|
|
56507
56517
|
this.results$ = Promise.resolve(this.fieldConfig.options.filter((f) => f.name.toLowerCase().includes(term.toLowerCase()) || f.label?.toLowerCase().includes(term.toLowerCase())));
|
|
56508
56518
|
this.cdr.markForCheck();
|
|
56509
56519
|
});
|
|
@@ -56519,8 +56529,6 @@ class ConditionBuilderComponent {
|
|
|
56519
56529
|
[this._operatorOutlet.viewContainer, this._inputOutlet.viewContainer].forEach((def) => {
|
|
56520
56530
|
def.clear();
|
|
56521
56531
|
});
|
|
56522
|
-
// this._contentFieldTypeDefs = [];
|
|
56523
|
-
// this._contentFieldDefs = [];
|
|
56524
56532
|
this._onDestroy.next();
|
|
56525
56533
|
this._onDestroy.complete();
|
|
56526
56534
|
}
|
|
@@ -56529,7 +56537,6 @@ class ConditionBuilderComponent {
|
|
|
56529
56537
|
* @param fieldConfig
|
|
56530
56538
|
*/
|
|
56531
56539
|
changeFieldOptions(fieldConfig) {
|
|
56532
|
-
// this.fields = entity.filter(term);
|
|
56533
56540
|
this.fieldConfig = fieldConfig;
|
|
56534
56541
|
this.searchTerm.setValue('');
|
|
56535
56542
|
this.results$ = Promise.resolve(this.fieldConfig.options);
|
|
@@ -57119,9 +57126,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
57119
57126
|
}] });
|
|
57120
57127
|
|
|
57121
57128
|
/**
|
|
57122
|
-
*
|
|
57123
|
-
* condition can be
|
|
57124
|
-
*
|
|
57129
|
+
* Constructing filters against String fields can be complex. Each "chip" added to the
|
|
57130
|
+
* condition can be independently used to query a database. Not all systems support
|
|
57131
|
+
* querying within a text column, ie sql unless LIKE is enabled. This could result in a
|
|
57125
57132
|
* performance penalty.
|
|
57126
57133
|
*/
|
|
57127
57134
|
class NovoDefaultStringConditionDef extends AbstractConditionFieldDef {
|
|
@@ -57129,7 +57136,6 @@ class NovoDefaultStringConditionDef extends AbstractConditionFieldDef {
|
|
|
57129
57136
|
super(...arguments);
|
|
57130
57137
|
this.separatorKeysCodes = [ENTER, COMMA];
|
|
57131
57138
|
this.defaultOperator = 'includeAny';
|
|
57132
|
-
this.model = '';
|
|
57133
57139
|
}
|
|
57134
57140
|
getValue(formGroup) {
|
|
57135
57141
|
return formGroup.value?.value || [];
|
|
@@ -57169,15 +57175,14 @@ NovoDefaultStringConditionDef.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
|
|
|
57169
57175
|
<novo-option value="excludeAny">{{ labels.exclude }}</novo-option>
|
|
57170
57176
|
</novo-select>
|
|
57171
57177
|
</novo-field>
|
|
57172
|
-
<novo-field *novoConditionInputDef="let formGroup">
|
|
57173
|
-
<novo-chip-list #chipList aria-label="filter value">
|
|
57178
|
+
<novo-field *novoConditionInputDef="let formGroup" [formGroup]="formGroup">
|
|
57179
|
+
<novo-chip-list #chipList aria-label="filter value" formControlName="value">
|
|
57174
57180
|
<novo-chip *ngFor="let chip of formGroup.value?.value || []" [value]="chip" (removed)="remove(chip, formGroup)">
|
|
57175
57181
|
{{ chip }}
|
|
57176
57182
|
<novo-icon novoChipRemove>close</novo-icon>
|
|
57177
57183
|
</novo-chip>
|
|
57178
57184
|
<input
|
|
57179
57185
|
novoChipInput
|
|
57180
|
-
[(ngModel)]="model"
|
|
57181
57186
|
[placeholder]="labels.typeToAddChips"
|
|
57182
57187
|
autocomplete="off"
|
|
57183
57188
|
(novoChipInputTokenEnd)="add($event, formGroup)"
|
|
@@ -57186,7 +57191,7 @@ NovoDefaultStringConditionDef.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
|
|
|
57186
57191
|
<novo-autocomplete></novo-autocomplete>
|
|
57187
57192
|
</novo-field>
|
|
57188
57193
|
</ng-container>
|
|
57189
|
-
`, isInline: true, components: [{ type: NovoFieldElement, selector: "novo-field", inputs: ["layout", "appearance", "width"], outputs: ["valueChanges", "stateChanges"] }, { type: NovoSelectElement, selector: "novo-select", inputs: ["disabled", "required", "tabIndex", "id", "name", "options", "placeholder", "readonly", "headerConfig", "position", "overlayWidth", "overlayHeight", "displayWith", "compareWith", "value", "multiple"], outputs: ["onSelect", "selectionChange", "valueChange", "openedChange", "opened", "closed"] }, { type: NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { type: NovoChipList, selector: "novo-chip-list", inputs: ["errorStateMatcher", "multiple", "stacked", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["novoChipList"] }, { type: NovoChipElement, selector: "novo-chip, [novo-chip]", inputs: ["color", "tabIndex", "size", "type", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"] }, { type: NovoIconComponent, selector: "novo-icon", inputs: ["raised", "theme", "shape", "color", "size", "smaller", "larger", "alt", "name"] }, { type: NovoAutocompleteElement, selector: "novo-autocomplete", inputs: ["tabIndex", "triggerOn", "displayWith", "aria-label", "multiple", "disabled"], outputs: ["optionSelected", "optionActivated"], exportAs: ["novoAutocomplete"] }], directives: [{ type: NovoConditionFieldDef, selector: "[novoConditionFieldDef]" }, { type: NovoConditionOperatorsDef, selector: "[novoConditionOperatorsDef]" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: NovoConditionInputDef, selector: "[novoConditionInputDef]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: NovoChipRemove, selector: "[novoChipRemove]" }, { type: NovoChipInput, selector: "input[novoChipInput]", inputs: ["novoChipInputAddOnBlur", "novoChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["novoChipInputTokenEnd"], exportAs: ["novoChipInput", "novoChipInputFor"] }
|
|
57194
|
+
`, isInline: true, components: [{ type: NovoFieldElement, selector: "novo-field", inputs: ["layout", "appearance", "width"], outputs: ["valueChanges", "stateChanges"] }, { type: NovoSelectElement, selector: "novo-select", inputs: ["disabled", "required", "tabIndex", "id", "name", "options", "placeholder", "readonly", "headerConfig", "position", "overlayWidth", "overlayHeight", "displayWith", "compareWith", "value", "multiple"], outputs: ["onSelect", "selectionChange", "valueChange", "openedChange", "opened", "closed"] }, { type: NovoOption, selector: "novo-option", inputs: ["selected", "keepOpen", "novoInert", "value", "disabled"], exportAs: ["novoOption"] }, { type: NovoChipList, selector: "novo-chip-list", inputs: ["errorStateMatcher", "multiple", "stacked", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["novoChipList"] }, { type: NovoChipElement, selector: "novo-chip, [novo-chip]", inputs: ["color", "tabIndex", "size", "type", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"] }, { type: NovoIconComponent, selector: "novo-icon", inputs: ["raised", "theme", "shape", "color", "size", "smaller", "larger", "alt", "name"] }, { type: NovoAutocompleteElement, selector: "novo-autocomplete", inputs: ["tabIndex", "triggerOn", "displayWith", "aria-label", "multiple", "disabled"], outputs: ["optionSelected", "optionActivated"], exportAs: ["novoAutocomplete"] }], directives: [{ type: NovoConditionFieldDef, selector: "[novoConditionFieldDef]" }, { type: NovoConditionOperatorsDef, selector: "[novoConditionOperatorsDef]" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: NovoConditionInputDef, selector: "[novoConditionInputDef]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: NovoChipRemove, selector: "[novoChipRemove]" }, { type: NovoChipInput, selector: "input[novoChipInput]", inputs: ["novoChipInputAddOnBlur", "novoChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["novoChipInputTokenEnd"], exportAs: ["novoChipInput", "novoChipInputFor"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
57190
57195
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NovoDefaultStringConditionDef, decorators: [{
|
|
57191
57196
|
type: Component,
|
|
57192
57197
|
args: [{
|
|
@@ -57201,15 +57206,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
57201
57206
|
<novo-option value="excludeAny">{{ labels.exclude }}</novo-option>
|
|
57202
57207
|
</novo-select>
|
|
57203
57208
|
</novo-field>
|
|
57204
|
-
<novo-field *novoConditionInputDef="let formGroup">
|
|
57205
|
-
<novo-chip-list #chipList aria-label="filter value">
|
|
57209
|
+
<novo-field *novoConditionInputDef="let formGroup" [formGroup]="formGroup">
|
|
57210
|
+
<novo-chip-list #chipList aria-label="filter value" formControlName="value">
|
|
57206
57211
|
<novo-chip *ngFor="let chip of formGroup.value?.value || []" [value]="chip" (removed)="remove(chip, formGroup)">
|
|
57207
57212
|
{{ chip }}
|
|
57208
57213
|
<novo-icon novoChipRemove>close</novo-icon>
|
|
57209
57214
|
</novo-chip>
|
|
57210
57215
|
<input
|
|
57211
57216
|
novoChipInput
|
|
57212
|
-
[(ngModel)]="model"
|
|
57213
57217
|
[placeholder]="labels.typeToAddChips"
|
|
57214
57218
|
autocomplete="off"
|
|
57215
57219
|
(novoChipInputTokenEnd)="add($event, formGroup)"
|
|
@@ -57284,7 +57288,7 @@ class ConditionGroupComponent {
|
|
|
57284
57288
|
return this.formBuilder.group({
|
|
57285
57289
|
field: [field, Validators.required],
|
|
57286
57290
|
operator: [operator, Validators.required],
|
|
57287
|
-
value: [value
|
|
57291
|
+
value: [value],
|
|
57288
57292
|
});
|
|
57289
57293
|
}
|
|
57290
57294
|
cantRemoveRow(isFirst) {
|
|
@@ -57294,12 +57298,12 @@ class ConditionGroupComponent {
|
|
|
57294
57298
|
}
|
|
57295
57299
|
}
|
|
57296
57300
|
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
|
|
57301
|
+
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
57302
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ConditionGroupComponent, decorators: [{
|
|
57299
57303
|
type: Component,
|
|
57300
57304
|
args: [{ selector: 'novo-condition-group', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ConditionGroupComponent), multi: true }], host: {
|
|
57301
57305
|
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
|
|
57306
|
+
}, 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
57307
|
}], ctorParameters: function () { return [{ type: QueryBuilderService }, { type: NovoLabelService }, { type: i5.ControlContainer }, { type: i5.FormBuilder }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { controlName: [{
|
|
57304
57308
|
type: Input
|
|
57305
57309
|
}], groupIndex: [{
|
|
@@ -57390,7 +57394,7 @@ class CriteriaBuilderComponent {
|
|
|
57390
57394
|
return this.formBuilder.group({
|
|
57391
57395
|
field: [field, Validators.required],
|
|
57392
57396
|
operator: [operator, Validators.required],
|
|
57393
|
-
value: [value
|
|
57397
|
+
value: [value],
|
|
57394
57398
|
});
|
|
57395
57399
|
}
|
|
57396
57400
|
removeConditionGroupAt(index) {
|