@tft/crispr-forms 12.2.14 → 12.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/bundles/tft-crispr-forms.umd.js +10 -7
  2. package/bundles/tft-crispr-forms.umd.js.map +1 -1
  3. package/esm2015/lib/crispr-forms.module.ngfactory.js.map +1 -1
  4. package/esm2015/lib/form-group-list/form-group-list.component.js +2 -2
  5. package/esm2015/lib/form-group-list/form-group-list.component.js.map +1 -1
  6. package/esm2015/lib/form-group-list/form-group-list.component.metadata.json +1 -1
  7. package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.js +7 -4
  8. package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.js.map +1 -1
  9. package/esm2015/lib/material/autocomplete-chiplist-field/autocomplete-chiplist-field.component.metadata.json +1 -1
  10. package/esm2015/lib/material/material.module.ngfactory.js.map +1 -1
  11. package/esm2015/lib/material/option/option.component.js +1 -1
  12. package/esm2015/lib/material/option/option.component.js.map +1 -1
  13. package/esm2015/lib/material/option/option.component.metadata.json +1 -1
  14. package/esm2015/lib/models/autocomplete-chiplist-field.config.js.map +1 -1
  15. package/esm2015/lib/models/form-group-list.config.js.map +1 -1
  16. package/fesm2015/tft-crispr-forms.js +10 -8
  17. package/fesm2015/tft-crispr-forms.js.map +1 -1
  18. package/lib/models/autocomplete-chiplist-field.config.d.ts +2 -1
  19. package/lib/models/form-group-list.config.d.ts +2 -0
  20. package/package.json +1 -1
  21. package/tft-crispr-forms-12.2.18.tgz +0 -0
  22. package/tft-crispr-forms.metadata.json +1 -1
  23. package/tft-crispr-forms-12.2.14.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: false,
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.value === option.value; });
792
+ return !chips.some(function (chip) { return _this.config.duplicateCompareFunction(chip, option); });
791
793
  });
792
794
  }));
793
795
  };
@@ -841,9 +843,9 @@
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 {{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
- styles: [""]
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
  },] }
848
850
  ];
849
851
  AutocompleteChiplistFieldComponent.propDecorators = {
@@ -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
  },] }
@@ -1497,9 +1499,9 @@
1497
1499
  FormGroupListComponent.decorators = [
1498
1500
  { type: core.Component, args: [{
1499
1501
  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 <span class=\"mat-h3\" *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 [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\n <button\n type=\"button\"\n mat-raised-button\n (click)=\"addGroup()\">\n {{config.addItemLabel}}\n </button>\n\n</crispr-field-container>\n",
1502
+ 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}}\n </button>\n </div>\n\n</crispr-field-container>\n",
1501
1503
  changeDetection: core.ChangeDetectionStrategy.OnPush,
1502
- styles: [""]
1504
+ 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
1505
  },] }
1504
1506
  ];
1505
1507
 
@@ -1681,6 +1683,7 @@
1681
1683
  exports.filterOptionsByLabel = filterOptionsByLabel;
1682
1684
  exports.isControlConfig = isControlConfig;
1683
1685
  exports.observablifyOptions = observablifyOptions;
1686
+ exports.ɵ0 = ɵ0;
1684
1687
  exports.ɵa = MaterialModule;
1685
1688
  exports.ɵb = FieldContainerComponent;
1686
1689
  exports.ɵc = InputFieldComponent;