@tft/crispr-forms 12.2.16 → 12.2.20
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/bundles/tft-crispr-forms.umd.js +16 -11
- package/bundles/tft-crispr-forms.umd.js.map +1 -1
- package/esm2015/lib/crispr-forms.module.ngfactory.js.map +1 -1
- package/esm2015/lib/form-group-list/form-group-list.component.js +9 -7
- package/esm2015/lib/form-group-list/form-group-list.component.js.map +1 -1
- package/esm2015/lib/form-group-list/form-group-list.component.metadata.json +1 -1
- package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.js +6 -3
- package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.js.map +1 -1
- package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.metadata.json +1 -1
- package/esm2015/lib/material/material.module.ngfactory.js.map +1 -1
- package/esm2015/lib/material/option/option.component.js +1 -1
- package/esm2015/lib/material/option/option.component.js.map +1 -1
- package/esm2015/lib/material/option/option.component.metadata.json +1 -1
- package/esm2015/lib/models/autocomplete-chiplist-field.config.js.map +1 -1
- package/esm2015/lib/models/form-group-list.config.js.map +1 -1
- package/fesm2015/tft-crispr-forms.js +16 -12
- package/fesm2015/tft-crispr-forms.js.map +1 -1
- package/lib/models/autocomplete-chiplist-field.config.d.ts +2 -1
- package/lib/models/form-group-list.config.d.ts +8 -1
- package/package.json +1 -1
- package/tft-crispr-forms-12.2.20.tgz +0 -0
- package/tft-crispr-forms.metadata.json +1 -1
- package/tft-crispr-forms-12.2.16.tgz +0 -0
|
@@ -754,14 +754,16 @@
|
|
|
754
754
|
autoInputRef: [{ type: core.ViewChild, args: ['autoInput',] }]
|
|
755
755
|
};
|
|
756
756
|
|
|
757
|
+
var ɵ0 = function (chip, option) { return chip.value === option.value; };
|
|
757
758
|
var defaultConfig$7 = {
|
|
758
759
|
chipsSelectable: true,
|
|
759
760
|
areChipsRemovable: true,
|
|
760
761
|
tabToSelect: true,
|
|
761
|
-
autoActiveFirstOption:
|
|
762
|
+
autoActiveFirstOption: true,
|
|
762
763
|
imageUrlParam: 'image',
|
|
763
764
|
typeDebounceTime: 500,
|
|
764
765
|
allowDuplicates: false,
|
|
766
|
+
duplicateCompareFunction: ɵ0,
|
|
765
767
|
separatorKeyCodes: [keycodes.ENTER],
|
|
766
768
|
emptyOptionsMessage: DEFAULT_EMPTY_OPTIONS_MESSAGE,
|
|
767
769
|
};
|
|
@@ -787,7 +789,7 @@
|
|
|
787
789
|
return _this.config.allowDuplicates
|
|
788
790
|
? options
|
|
789
791
|
: options === null || options === void 0 ? void 0 : options.filter(function (option) {
|
|
790
|
-
return !chips.some(function (chip) { return chip
|
|
792
|
+
return !chips.some(function (chip) { return _this.config.duplicateCompareFunction(chip, option); });
|
|
791
793
|
});
|
|
792
794
|
}));
|
|
793
795
|
};
|
|
@@ -841,7 +843,7 @@
|
|
|
841
843
|
AutocompleteChiplistFieldComponent.decorators = [
|
|
842
844
|
{ type: core.Component, args: [{
|
|
843
845
|
selector: 'crispr-autocomplete-chiplist-field',
|
|
844
|
-
template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n </mat-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n\n </mat-form-field>\n</crispr-field-container>\n",
|
|
846
|
+
template: "<crispr-field-container\n [config]=\"config\"\n [group]=\"group\">\n\n <mat-form-field\n [color]=\"config.color\"\n [appearance]=\"config.appearance\">\n <mat-label *ngIf=\"config.label\">\n {{config.label}}\n </mat-label>\n\n <mat-chip-list\n #chipList>\n <mat-chip\n class=\"refinement-chip\"\n *ngFor=\"let chip of controlValue$ | async\"\n [selectable]=\"config.chipsSelectable\"\n [removable]=\"config.areChipsRemovable\"\n (removed)=\"removeChip(chip)\">\n <span *ngIf=\"chip.imageUrl as imageUrl\" class=\"image-container\">\n <img [src]=\"imageUrl\" alt=\"image of {{chip.label}}\">\n </span>\n {{chip.label}}\n <mat-icon\n matChipRemove\n *ngIf=\"config.areChipsRemovable\">\n cancel\n </mat-icon>\n </mat-chip>\n\n <input\n matInput\n [formControl]=\"autocompleteInputControl\"\n [placeholder]=\"config.placeholder\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n (keydown.tab)=\"handleTab($event)\"\n [matChipInputSeparatorKeyCodes]=\"config.separatorKeyCodes\"\n (matChipInputTokenEnd)=\"handleTokenEnd($event)\"\n role=\"searchbox\"\n type=\"text\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n spellcheck=\"false\"\n #autoInput/>\n <span *ngIf=\"config.fieldSuffix\" matSuffix>{{config.fieldSuffix}}</span>\n <crispr-info\n *ngIf=\"config.info\"\n matSuffix\n [info]=\"config.info \">\n </crispr-info>\n\n </mat-chip-list>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [autoActiveFirstOption]=\"this.config.autoActiveFirstOption\"\n (optionSelected)=\"handleSelect($event)\"\n [displayWith]=\"mapToLabel\">\n <ng-container *ngIf=\"remainingOptions$ | async as remainingOptions; else emptyOption\">\n <ng-container *ngIf=\"remainingOptions.length > 0; else emptyOption\">\n <mat-option\n *ngFor=\"let option of remainingOptions$ | async\"\n [value]=\"option\">\n <crispr-option [option]=\"option\"></crispr-option>\n </mat-option>\n </ng-container>\n\n </ng-container>\n <ng-template #emptyOption>\n <mat-option disabled=\"true\">\n {{config.emptyOptionsMessage}}\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n\n </mat-form-field>\n</crispr-field-container>\n",
|
|
845
847
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
846
848
|
styles: [".refinement-chip .image-container{width:26px;height:26px;border-radius:50%;overflow:hidden;margin:-2px 4px -2px -8px}.refinement-chip .image-container img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}"]
|
|
847
849
|
},] }
|
|
@@ -1300,7 +1302,7 @@
|
|
|
1300
1302
|
OptionComponent.decorators = [
|
|
1301
1303
|
{ type: core.Component, args: [{
|
|
1302
1304
|
selector: 'crispr-option',
|
|
1303
|
-
template: "<img\n *ngIf=\"option.imageUrl\"\n [src]=\"option.imageUrl\"\n style=\"vertical-align:middle;\"\n aria-hidden\n height=\"25\"/>\n{{ option.label }}\n",
|
|
1305
|
+
template: "<img\n *ngIf=\"option.imageUrl\"\n [src]=\"option.imageUrl\"\n alt=\"image of {{option.label}}\"\n style=\"vertical-align:middle;\"\n aria-hidden\n height=\"25\"/>\n{{ option.label }}\n",
|
|
1304
1306
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
1305
1307
|
styles: [""]
|
|
1306
1308
|
},] }
|
|
@@ -1460,7 +1462,7 @@
|
|
|
1460
1462
|
};
|
|
1461
1463
|
|
|
1462
1464
|
var defaultConfig = {
|
|
1463
|
-
|
|
1465
|
+
addButtonLabel: 'ADD ITEM',
|
|
1464
1466
|
minListLength: 1,
|
|
1465
1467
|
};
|
|
1466
1468
|
var FormGroupListMixin = crisprControlMixin(CrisprFieldComponent);
|
|
@@ -1478,11 +1480,13 @@
|
|
|
1478
1480
|
};
|
|
1479
1481
|
FormGroupListComponent.prototype.setControlValue = function (values) {
|
|
1480
1482
|
var _this = this;
|
|
1481
|
-
if (
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
this.
|
|
1483
|
+
if (this.control) {
|
|
1484
|
+
if ((values === null || values === void 0 ? void 0 : values.length) > 0) {
|
|
1485
|
+
values.forEach(function (value) { return _this.addGroup(value); });
|
|
1486
|
+
}
|
|
1487
|
+
else if (this.config.displayInitialItem) {
|
|
1488
|
+
this.addGroup();
|
|
1489
|
+
}
|
|
1486
1490
|
}
|
|
1487
1491
|
};
|
|
1488
1492
|
FormGroupListComponent.prototype.addGroup = function (value) {
|
|
@@ -1497,7 +1501,7 @@
|
|
|
1497
1501
|
FormGroupListComponent.decorators = [
|
|
1498
1502
|
{ type: core.Component, args: [{
|
|
1499
1503
|
selector: 'crispr-form-group-list',
|
|
1500
|
-
template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- TODO: add sortBy function -->\n <div *ngFor=\"let control of formArray?.controls; let i = index;\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\" *ngIf=\"config.itemLabelBuilder\"> {{ config.itemLabelBuilder(i) }} </span>\n <button\n mat-icon-button\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"deleteGroup(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroupName]=\"i\">\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [config]=\"field\"\n [value]=\"value[i] | initialControlValue : field\"\n [group]=\"control\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"addGroup()\">\n {{config.addItemLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n",
|
|
1504
|
+
template: "\n<crispr-field-container\n [config]=\"config\"\n [group]=\"group\"\n [formGroup]=\"group\">\n\n <div [formArrayName]=\"config.controlName\">\n <!-- TODO: add sortBy function -->\n <div *ngFor=\"let control of formArray?.controls; let i = index;\">\n <!-- TODO: use content projection to allow custom item label component -->\n <div class=\"item-header\">\n <span class=\"mat-h2\" *ngIf=\"config.itemLabelBuilder\"> {{ config.itemLabelBuilder(i) }} </span>\n <button\n mat-icon-button\n *ngIf=\"i + 1 > config.minListLength\">\n <mat-icon (click)=\"deleteGroup(i)\">delete</mat-icon>\n </button>\n </div>\n <div\n [formGroupName]=\"i\">\n <ng-container\n *ngFor=\"let field of config.itemConfig.fields;\"\n crisprField\n [config]=\"field\"\n [value]=\"value && value[i] | initialControlValue : field\"\n [group]=\"control\">\n </ng-container>\n </div>\n </div>\n </div>\n <div class=\"group-footer\">\n <button\n type=\"button\"\n class=\"add\"\n mat-raised-button\n [color]=\"config.addButtonColor\"\n (click)=\"addGroup()\">\n {{config.addItemLabel || config.addButtonLabel}}\n </button>\n </div>\n\n</crispr-field-container>\n",
|
|
1501
1505
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
1502
1506
|
styles: [".item-header{display:flex;justify-content:space-between}.group-footer{display:flex;justify-content:flex-end}.group-footer button.add{margin-bottom:16px}"]
|
|
1503
1507
|
},] }
|
|
@@ -1681,6 +1685,7 @@
|
|
|
1681
1685
|
exports.filterOptionsByLabel = filterOptionsByLabel;
|
|
1682
1686
|
exports.isControlConfig = isControlConfig;
|
|
1683
1687
|
exports.observablifyOptions = observablifyOptions;
|
|
1688
|
+
exports.ɵ0 = ɵ0;
|
|
1684
1689
|
exports.ɵa = MaterialModule;
|
|
1685
1690
|
exports.ɵb = FieldContainerComponent;
|
|
1686
1691
|
exports.ɵc = InputFieldComponent;
|