@flywheel-io/vision 2.0.0-beta.8 → 2.0.0-beta.9
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/components/select-menu/multi-select-menu/multi-select-menu.component.d.ts +5 -4
- package/components/text-input/text-input.component.d.ts +2 -1
- package/esm2020/components/menu/menu-container/menu-container.component.mjs +1 -1
- package/esm2020/components/select-menu/multi-select-menu/multi-select-menu.component.mjs +81 -62
- package/esm2020/components/select-menu/select-menu.component.mjs +1 -1
- package/esm2020/components/text-input/text-input.component.mjs +8 -2
- package/fesm2015/flywheel-io-vision.mjs +89 -64
- package/fesm2015/flywheel-io-vision.mjs.map +1 -1
- package/fesm2020/flywheel-io-vision.mjs +89 -64
- package/fesm2020/flywheel-io-vision.mjs.map +1 -1
- package/flywheel-io-vision-2.0.0-beta.9.tgz +0 -0
- package/package.json +1 -1
- package/flywheel-io-vision-2.0.0-beta.8.tgz +0 -0
|
@@ -3798,6 +3798,7 @@ class FwTextInputComponent {
|
|
|
3798
3798
|
this.maxLength = 255;
|
|
3799
3799
|
// we bind this to host because that's where angular form apis put the error classes
|
|
3800
3800
|
this.error = false;
|
|
3801
|
+
this.width = '100%';
|
|
3801
3802
|
this.value = '';
|
|
3802
3803
|
this.externalControl = null;
|
|
3803
3804
|
this.onTouch = () => {
|
|
@@ -3836,7 +3837,7 @@ class FwTextInputComponent {
|
|
|
3836
3837
|
}
|
|
3837
3838
|
}
|
|
3838
3839
|
FwTextInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FwTextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3839
|
-
FwTextInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FwTextInputComponent, selector: "fw-text-input", inputs: { disabled: "disabled", useActionableIcons: "useActionableIcons", leftIcon: "leftIcon", rightIcon: "rightIcon", prefix: "prefix", context: "context", helperText: "helperText", errorText: "errorText", placeholder: "placeholder", readOnly: "readOnly", size: "size", type: "type", maxLength: "maxLength", autofocus: "autofocus", autocomplete: "autocomplete", error: "error", value: "value" }, outputs: { leftIconAction: "leftIconAction", rightIconAction: "rightIconAction" }, host: { properties: { "class.errored": "this.error" } }, providers: [{
|
|
3840
|
+
FwTextInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FwTextInputComponent, selector: "fw-text-input", inputs: { disabled: "disabled", useActionableIcons: "useActionableIcons", leftIcon: "leftIcon", rightIcon: "rightIcon", prefix: "prefix", context: "context", helperText: "helperText", errorText: "errorText", placeholder: "placeholder", readOnly: "readOnly", size: "size", type: "type", maxLength: "maxLength", autofocus: "autofocus", autocomplete: "autocomplete", error: "error", width: "width", value: "value" }, outputs: { leftIconAction: "leftIconAction", rightIconAction: "rightIconAction" }, host: { properties: { "class.errored": "this.error", "style.width": "this.width" } }, providers: [{
|
|
3840
3841
|
provide: NG_VALUE_ACCESSOR,
|
|
3841
3842
|
useExisting: FwTextInputComponent,
|
|
3842
3843
|
multi: true,
|
|
@@ -3890,6 +3891,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
3890
3891
|
}], textInput: [{
|
|
3891
3892
|
type: ContentChild,
|
|
3892
3893
|
args: ['textInput', { static: false }]
|
|
3894
|
+
}], width: [{
|
|
3895
|
+
type: HostBinding,
|
|
3896
|
+
args: ['style.width']
|
|
3897
|
+
}, {
|
|
3898
|
+
type: Input
|
|
3893
3899
|
}], value: [{
|
|
3894
3900
|
type: Input
|
|
3895
3901
|
}] } });
|
|
@@ -4251,7 +4257,7 @@ class FwMenuContainerComponent {
|
|
|
4251
4257
|
}
|
|
4252
4258
|
}
|
|
4253
4259
|
FwMenuContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FwMenuContainerComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
4254
|
-
FwMenuContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FwMenuContainerComponent, selector: "fw-menu-container", inputs: { width: "width", maxHeight: "maxHeight", minHeight: "minHeight", border: "border", shadow: "shadow", showFilter: "showFilter", filterText: "filterText", offset: "offset", collapsed: "collapsed" }, outputs: { filterChanged: "filterChanged" }, host: { properties: { "attr.class": "this.classes", "style": "this.style" } }, queries: [{ propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }], ngImport: i0, template: "<div *ngIf=\"showFilter\" class=\"filter-box\" cdkMenuBar>\n <fw-text-input\n placeholder=\"Search\" leftIcon=\"search\" autofocus\n [value]=\"filterText\" (input)=\"filterTextChange($event)\">\n </fw-text-input>\n</div>\n<div class=\"menu-wrapper\" [ngClass]=\"[showFilter?'filtered':'', collapsed?'collapsed':'']\">\n <ng-content></ng-content>\n</div>\n", styles: [".fw-menu-container{display:flex;border-radius:8px;background:var(--card-background);position:relative}.fw-menu-container.border-default{border:1px solid var(--separations-border)}.fw-menu-container .filter-box{border-top-left-radius:8px;border-top-right-radius:8px;padding:8px;border-bottom:1px solid var(--separations-base);background-color:var(--card-background);position:absolute;left:0;right:0;z-index:1}.fw-menu-container .menu-wrapper{flex:1;padding:6px 4px;scroll-padding:17px;overflow:hidden auto}.fw-menu-container .menu-wrapper.collapsed{scrollbar-width:none}.fw-menu-container .menu-wrapper.filtered{margin-top:54px}.fw-menu-container fw-menu-separator{margin:6px -8px}\n"], dependencies: [{ kind: "directive", type: i1$4.CdkMenuBar, selector: "[cdkMenuBar]", exportAs: ["cdkMenuBar"] }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwTextInputComponent, selector: "fw-text-input", inputs: ["disabled", "useActionableIcons", "leftIcon", "rightIcon", "prefix", "context", "helperText", "errorText", "placeholder", "readOnly", "size", "type", "maxLength", "autofocus", "autocomplete", "error", "value"], outputs: ["leftIconAction", "rightIconAction"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
4260
|
+
FwMenuContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FwMenuContainerComponent, selector: "fw-menu-container", inputs: { width: "width", maxHeight: "maxHeight", minHeight: "minHeight", border: "border", shadow: "shadow", showFilter: "showFilter", filterText: "filterText", offset: "offset", collapsed: "collapsed" }, outputs: { filterChanged: "filterChanged" }, host: { properties: { "attr.class": "this.classes", "style": "this.style" } }, queries: [{ propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }], ngImport: i0, template: "<div *ngIf=\"showFilter\" class=\"filter-box\" cdkMenuBar>\n <fw-text-input\n placeholder=\"Search\" leftIcon=\"search\" autofocus\n [value]=\"filterText\" (input)=\"filterTextChange($event)\">\n </fw-text-input>\n</div>\n<div class=\"menu-wrapper\" [ngClass]=\"[showFilter?'filtered':'', collapsed?'collapsed':'']\">\n <ng-content></ng-content>\n</div>\n", styles: [".fw-menu-container{display:flex;border-radius:8px;background:var(--card-background);position:relative}.fw-menu-container.border-default{border:1px solid var(--separations-border)}.fw-menu-container .filter-box{border-top-left-radius:8px;border-top-right-radius:8px;padding:8px;border-bottom:1px solid var(--separations-base);background-color:var(--card-background);position:absolute;left:0;right:0;z-index:1}.fw-menu-container .menu-wrapper{flex:1;padding:6px 4px;scroll-padding:17px;overflow:hidden auto}.fw-menu-container .menu-wrapper.collapsed{scrollbar-width:none}.fw-menu-container .menu-wrapper.filtered{margin-top:54px}.fw-menu-container fw-menu-separator{margin:6px -8px}\n"], dependencies: [{ kind: "directive", type: i1$4.CdkMenuBar, selector: "[cdkMenuBar]", exportAs: ["cdkMenuBar"] }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FwTextInputComponent, selector: "fw-text-input", inputs: ["disabled", "useActionableIcons", "leftIcon", "rightIcon", "prefix", "context", "helperText", "errorText", "placeholder", "readOnly", "size", "type", "maxLength", "autofocus", "autocomplete", "error", "width", "value"], outputs: ["leftIconAction", "rightIconAction"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
4255
4261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FwMenuContainerComponent, decorators: [{
|
|
4256
4262
|
type: Component,
|
|
4257
4263
|
args: [{ selector: 'fw-menu-container', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"showFilter\" class=\"filter-box\" cdkMenuBar>\n <fw-text-input\n placeholder=\"Search\" leftIcon=\"search\" autofocus\n [value]=\"filterText\" (input)=\"filterTextChange($event)\">\n </fw-text-input>\n</div>\n<div class=\"menu-wrapper\" [ngClass]=\"[showFilter?'filtered':'', collapsed?'collapsed':'']\">\n <ng-content></ng-content>\n</div>\n", styles: [".fw-menu-container{display:flex;border-radius:8px;background:var(--card-background);position:relative}.fw-menu-container.border-default{border:1px solid var(--separations-border)}.fw-menu-container .filter-box{border-top-left-radius:8px;border-top-right-radius:8px;padding:8px;border-bottom:1px solid var(--separations-base);background-color:var(--card-background);position:absolute;left:0;right:0;z-index:1}.fw-menu-container .menu-wrapper{flex:1;padding:6px 4px;scroll-padding:17px;overflow:hidden auto}.fw-menu-container .menu-wrapper.collapsed{scrollbar-width:none}.fw-menu-container .menu-wrapper.filtered{margin-top:54px}.fw-menu-container fw-menu-separator{margin:6px -8px}\n"] }]
|
|
@@ -5100,32 +5106,37 @@ class FwMultiSelectMenuComponent {
|
|
|
5100
5106
|
}
|
|
5101
5107
|
}
|
|
5102
5108
|
ngAfterContentInit() {
|
|
5103
|
-
|
|
5104
|
-
|
|
5105
|
-
|
|
5106
|
-
|
|
5107
|
-
|
|
5108
|
-
|
|
5109
|
-
|
|
5110
|
-
|
|
5111
|
-
|
|
5112
|
-
|
|
5113
|
-
|
|
5114
|
-
|
|
5115
|
-
|
|
5116
|
-
|
|
5117
|
-
|
|
5118
|
-
|
|
5119
|
-
this.
|
|
5120
|
-
|
|
5121
|
-
|
|
5109
|
+
this.registerCustomMenuItems();
|
|
5110
|
+
this.customMenuItems.changes.subscribe(() => {
|
|
5111
|
+
this.registerCustomMenuItems();
|
|
5112
|
+
});
|
|
5113
|
+
}
|
|
5114
|
+
registerCustomMenuItems() {
|
|
5115
|
+
// first filter any menuItems we've already registered as options
|
|
5116
|
+
const newMenuItems = this.customMenuItems.filter(menuItem => !this.options.find(option => menuItem.value === option.value));
|
|
5117
|
+
newMenuItems.forEach((newMenuItem) => {
|
|
5118
|
+
const newOption = {
|
|
5119
|
+
value: newMenuItem.value,
|
|
5120
|
+
title: newMenuItem.title,
|
|
5121
|
+
icon: newMenuItem.icon,
|
|
5122
|
+
};
|
|
5123
|
+
this.options.push(newOption);
|
|
5124
|
+
const sub = newMenuItem.click.subscribe(value => {
|
|
5125
|
+
this.updateValue([value], true);
|
|
5126
|
+
if (this.closeOnSelect) {
|
|
5127
|
+
this.trigger.close();
|
|
5128
|
+
}
|
|
5129
|
+
});
|
|
5130
|
+
this.subscriptions.push(sub);
|
|
5131
|
+
});
|
|
5132
|
+
this.updateFilteredItems();
|
|
5122
5133
|
}
|
|
5123
5134
|
handleTouched() {
|
|
5124
5135
|
this.touched = true;
|
|
5125
5136
|
}
|
|
5126
5137
|
handleClose(chip) {
|
|
5127
|
-
this.value.
|
|
5128
|
-
this.updateValue(
|
|
5138
|
+
const newValues = this.value.filter(val => val !== chip[this.valueProperty]);
|
|
5139
|
+
this.updateValue(newValues);
|
|
5129
5140
|
this.trigger.close();
|
|
5130
5141
|
}
|
|
5131
5142
|
handleChange(e) {
|
|
@@ -5142,6 +5153,16 @@ class FwMultiSelectMenuComponent {
|
|
|
5142
5153
|
if (this.filterItemsOnSelect && this.options && this.value) {
|
|
5143
5154
|
this.filteredOptions = this.options.filter(i => !this.value.includes(i[this.valueProperty]));
|
|
5144
5155
|
}
|
|
5156
|
+
if (this.customMenuItems && this.filterItemsOnSelect) {
|
|
5157
|
+
this.customMenuItems.forEach(item => {
|
|
5158
|
+
if (this.value.includes(item.value)) {
|
|
5159
|
+
item.hidden = true;
|
|
5160
|
+
}
|
|
5161
|
+
else {
|
|
5162
|
+
item.hidden = false;
|
|
5163
|
+
}
|
|
5164
|
+
});
|
|
5165
|
+
}
|
|
5145
5166
|
if (this.value) {
|
|
5146
5167
|
if (this.value.length === 0) {
|
|
5147
5168
|
setTimeout(() => {
|
|
@@ -5163,34 +5184,31 @@ class FwMultiSelectMenuComponent {
|
|
|
5163
5184
|
}
|
|
5164
5185
|
}
|
|
5165
5186
|
}
|
|
5166
|
-
updateValue(
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
|
|
5171
|
-
|
|
5172
|
-
|
|
5173
|
-
this.selectedOptions.push(val);
|
|
5174
|
-
}
|
|
5175
|
-
else {
|
|
5176
|
-
this.selectedValues.push(val);
|
|
5177
|
-
if (this.options && this.options.length) {
|
|
5178
|
-
this.selectedOptions = [];
|
|
5179
|
-
this.options.forEach(opt => {
|
|
5180
|
-
if (value.indexOf(opt[this.valueProperty]) >= 0) {
|
|
5181
|
-
this.selectedOptions.push(opt);
|
|
5182
|
-
}
|
|
5183
|
-
});
|
|
5184
|
-
}
|
|
5185
|
-
}
|
|
5186
|
-
});
|
|
5187
|
+
updateValue(incomingValues, additive = false) {
|
|
5188
|
+
if (!incomingValues) {
|
|
5189
|
+
return;
|
|
5190
|
+
}
|
|
5191
|
+
if (!additive) {
|
|
5192
|
+
this.selectedValues = [];
|
|
5193
|
+
this.selectedOptions = [];
|
|
5187
5194
|
}
|
|
5195
|
+
incomingValues.forEach(incoming => {
|
|
5196
|
+
if (typeof incoming === 'object') {
|
|
5197
|
+
this.selectedValues.push(incoming[this.valueProperty]);
|
|
5198
|
+
this.selectedOptions.push(incoming);
|
|
5199
|
+
}
|
|
5200
|
+
else {
|
|
5201
|
+
this.selectedValues.push(incoming);
|
|
5202
|
+
const incomingMappedToOption = this.options.find(opt => opt[this.valueProperty] === incoming);
|
|
5203
|
+
this.selectedOptions.push(incomingMappedToOption);
|
|
5204
|
+
}
|
|
5205
|
+
});
|
|
5188
5206
|
this._value = this.selectedValues;
|
|
5189
5207
|
this.updateFilteredItems();
|
|
5190
5208
|
if (this.onChange) {
|
|
5191
|
-
this.onChange(
|
|
5209
|
+
this.onChange(this._value);
|
|
5192
5210
|
}
|
|
5193
|
-
this.change.emit(
|
|
5211
|
+
this.change.emit(this._value);
|
|
5194
5212
|
if (this.textInput && this.textInput.nativeElement) {
|
|
5195
5213
|
this.textInput.nativeElement.value = '';
|
|
5196
5214
|
}
|
|
@@ -5271,24 +5289,31 @@ class FwMultiSelectMenuComponent {
|
|
|
5271
5289
|
}
|
|
5272
5290
|
}
|
|
5273
5291
|
}
|
|
5274
|
-
|
|
5275
|
-
if (
|
|
5276
|
-
this.
|
|
5277
|
-
if (option[this.titleProperty].toLowerCase().includes(event.target['value'].toLowerCase())) {
|
|
5278
|
-
return !this.value.includes(option);
|
|
5279
|
-
}
|
|
5280
|
-
else {
|
|
5281
|
-
return false;
|
|
5282
|
-
}
|
|
5283
|
-
});
|
|
5292
|
+
handleFilterChange(event) {
|
|
5293
|
+
if (!this.trigger.isOpen()) {
|
|
5294
|
+
this.trigger.open();
|
|
5284
5295
|
}
|
|
5285
|
-
|
|
5296
|
+
const newFilterValue = event.target['value'];
|
|
5297
|
+
// empty filter guard
|
|
5298
|
+
if (!newFilterValue) {
|
|
5286
5299
|
this.filteredOptions = this.options;
|
|
5287
5300
|
this.updateFilteredItems();
|
|
5301
|
+
return;
|
|
5288
5302
|
}
|
|
5289
|
-
|
|
5290
|
-
|
|
5303
|
+
// hide custom items
|
|
5304
|
+
if (this.customMenuItems) {
|
|
5305
|
+
const filteredCustomItems = this.customMenuItems.filter(item => !item.title.toLowerCase().includes(newFilterValue.toLowerCase()));
|
|
5306
|
+
filteredCustomItems.forEach(item => item.hidden = true);
|
|
5291
5307
|
}
|
|
5308
|
+
// decide what to render if we're using options
|
|
5309
|
+
this.filteredOptions = this.options.filter(option => {
|
|
5310
|
+
if (option[this.titleProperty].toLowerCase().includes(event.target['value'].toLowerCase())) {
|
|
5311
|
+
return !this.value.includes(option);
|
|
5312
|
+
}
|
|
5313
|
+
else {
|
|
5314
|
+
return false;
|
|
5315
|
+
}
|
|
5316
|
+
});
|
|
5292
5317
|
this.moveFocused('zero');
|
|
5293
5318
|
}
|
|
5294
5319
|
}
|
|
@@ -5299,7 +5324,7 @@ FwMultiSelectMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
|
|
|
5299
5324
|
useExisting: forwardRef(() => FwMultiSelectMenuComponent),
|
|
5300
5325
|
multi: true,
|
|
5301
5326
|
},
|
|
5302
|
-
], queries: [{ propertyName: "
|
|
5327
|
+
], queries: [{ propertyName: "customMenuItems", predicate: FwMenuItemComponent, descendants: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }, { propertyName: "textInput", first: true, predicate: ["textInput"], descendants: true }, { propertyName: "textInitialInput", first: true, predicate: ["textInitialInput"], descendants: true }, { propertyName: "renderedMenuItems", predicate: FwMenuItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngStyle]=\"{width: width}\" #wrapper>\n <div\n fwMenuRegister\n [ngClass]=\"['chip-grid', size]\"\n [ngStyle]=\"{minHeight: minHeight, maxHeight: maxHeight}\"\n [cdkMenuTriggerFor]=\"selectMenu\">\n <div class=\"inner-chip-grid\" *ngIf=\"value && value.length>0\">\n <fw-chip\n *ngFor=\"let chip of selectedOptions | slice:0:maxSelectedShown\"\n [title]=\"chip[titleProperty]\"\n [value]=\"chip[valueProperty]\"\n [icon]=\"chip[iconProperty]\"\n color=\"primary\"\n [showClose]=\"true\"\n (close)=\"handleClose(chip)\"\n [selectable]=\"false\">\n </fw-chip>\n <span *ngIf=\"value.length>maxSelectedShown\" class=\"max-exceeded\">+{{ value.length - maxSelectedShown }}\n more</span>\n <input\n type=\"text\" #textInput\n class=\"placeholder\"\n (keydown)=\"handleKeyDown($event)\" (input)=\"handleFilterChange($event)\">\n </div>\n <input\n type=\"text\" #textInitialInput\n *ngIf=\"!value || value.length===0\"\n class=\"placeholder\" [placeholder]=\"placeholder\"\n (focus)=\"handleTouched()\"\n (keydown)=\"handleKeyDown($event)\" (input)=\"handleFilterChange($event)\">\n <fw-icon>chevron-down</fw-icon>\n </div>\n <ng-template #selectMenu>\n <fw-menu-container\n [width]=\"optionsWidth || wrapper.offsetWidth + 'px'\" [maxHeight]=\"maxOptionsHeight\" [minHeight]=\"minOptionsHeight\"\n *ngIf=\"emptyText.length > 0 || (filteredOptions && filteredOptions.length > 0)\">\n <fw-menu\n [multiSelect]=\"true\"\n [disabled]=\"disabled || (filteredOptions && filteredOptions.length===0)\"\n [value]=\"selectedValues\"\n (change)=\"handleChange($event)\">\n <ng-container *ngIf=\"customMenuItems.length === 0\">\n <fw-menu-item\n *ngFor=\"let item of filteredOptions; index as $index\"\n [title]=\"item[titleProperty]\"\n [value]=\"item[valueProperty]\"\n [icon]=\"item[iconProperty]\"\n [multiSelect]=\"true\"\n [showCheckbox]=\"useCheckbox\"\n [focused]=\"focused===$index\"\n (mouseover)=\"focused=$index\"\n >\n </fw-menu-item>\n </ng-container>\n <fw-menu-item\n *ngIf=\"filteredOptions.length === 0 && emptyText\" [showCheckbox]=\"false\"\n [disabled]=\"true\" [title]=\"emptyText\">\n </fw-menu-item>\n <ng-content select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group, fw-menu-header]\"></ng-content>\n </fw-menu>\n </fw-menu-container>\n </ng-template>\n</div>\n", styles: [":host .chip-grid{min-height:36px;box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;padding:4px;align-items:center;border-radius:6px;border:1px solid var(--separations-input);cursor:pointer;font-family:Inter,sans-serif}:host .chip-grid.small{min-height:30px;padding:2px}:host .chip-grid.large{min-height:40px;padding:6px}:host .chip-grid:focus-within{border-color:var(--primary-base)}:host .chip-grid .inner-chip-grid{display:flex;flex-wrap:wrap;gap:4px;overflow:hidden auto;align-items:center;flex:1}:host .chip-grid .inner-chip-grid input{display:inline-flex;width:10px;flex-grow:1}:host .chip-grid .placeholder{padding:0 2px 0 4px;font-size:14px;color:var(--typography-base);background:var(--page-light);border:0;outline:0;display:inline-flex;width:10px;flex-grow:1}:host .chip-grid .placeholder:focus{outline:none!important}:host .chip-grid .placeholder::placeholder{color:var(--typography-light)}:host .chip-grid fw-icon{font-size:20px}:host .chip-grid fw-icon:hover{color:var(--primary-base)}:host .chip-grid .max-exceeded{font-size:12px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$4.CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: FwChipComponent, selector: "fw-chip", inputs: ["value", "variant", "color", "icon", "title", "description", "showClose", "disabled", "selected", "selectable"], outputs: ["close", "select"] }, { kind: "component", type: FwIconComponent, selector: "fw-icon", inputs: ["size", "color"] }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value", "variant", "collapsed", "collapsedWidth", "openWidth"], outputs: ["change", "filteredItemsChange"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "offset", "collapsed"], outputs: ["filterChanged"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "focused", "selected", "variant"], outputs: ["click"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }, { kind: "pipe", type: i1$1.SlicePipe, name: "slice" }] });
|
|
5303
5328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FwMultiSelectMenuComponent, decorators: [{
|
|
5304
5329
|
type: Component,
|
|
5305
5330
|
args: [{ selector: 'fw-multi-select', providers: [
|
|
@@ -5308,7 +5333,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5308
5333
|
useExisting: forwardRef(() => FwMultiSelectMenuComponent),
|
|
5309
5334
|
multi: true,
|
|
5310
5335
|
},
|
|
5311
|
-
], template: "<div [ngStyle]=\"{width: width}\">\n <div\n fwMenuRegister\n [ngClass]=\"['chip-grid', size]\"\n [ngStyle]=\"{minHeight: minHeight, maxHeight: maxHeight}\"\n [cdkMenuTriggerFor]=\"selectMenu\">\n <div class=\"inner-chip-grid\" *ngIf=\"value && value.length>0\">\n <fw-chip\n *ngFor=\"let chip of selectedOptions | slice:0:maxSelectedShown\"\n [title]=\"chip[titleProperty]\"\n [value]=\"chip[valueProperty]\"\n [icon]=\"chip[iconProperty]\"\n color=\"primary\"\n [showClose]=\"true\"\n (close)=\"handleClose(chip)\"\n [selectable]=\"false\">\n </fw-chip>\n <span *ngIf=\"value.length>maxSelectedShown\" class=\"max-exceeded\">+{{ value.length - maxSelectedShown }}\n more</span>\n <input\n type=\"text\" #textInput\n class=\"placeholder\"\n (keydown)=\"handleKeyDown($event)\" (input)=\"
|
|
5336
|
+
], template: "<div [ngStyle]=\"{width: width}\" #wrapper>\n <div\n fwMenuRegister\n [ngClass]=\"['chip-grid', size]\"\n [ngStyle]=\"{minHeight: minHeight, maxHeight: maxHeight}\"\n [cdkMenuTriggerFor]=\"selectMenu\">\n <div class=\"inner-chip-grid\" *ngIf=\"value && value.length>0\">\n <fw-chip\n *ngFor=\"let chip of selectedOptions | slice:0:maxSelectedShown\"\n [title]=\"chip[titleProperty]\"\n [value]=\"chip[valueProperty]\"\n [icon]=\"chip[iconProperty]\"\n color=\"primary\"\n [showClose]=\"true\"\n (close)=\"handleClose(chip)\"\n [selectable]=\"false\">\n </fw-chip>\n <span *ngIf=\"value.length>maxSelectedShown\" class=\"max-exceeded\">+{{ value.length - maxSelectedShown }}\n more</span>\n <input\n type=\"text\" #textInput\n class=\"placeholder\"\n (keydown)=\"handleKeyDown($event)\" (input)=\"handleFilterChange($event)\">\n </div>\n <input\n type=\"text\" #textInitialInput\n *ngIf=\"!value || value.length===0\"\n class=\"placeholder\" [placeholder]=\"placeholder\"\n (focus)=\"handleTouched()\"\n (keydown)=\"handleKeyDown($event)\" (input)=\"handleFilterChange($event)\">\n <fw-icon>chevron-down</fw-icon>\n </div>\n <ng-template #selectMenu>\n <fw-menu-container\n [width]=\"optionsWidth || wrapper.offsetWidth + 'px'\" [maxHeight]=\"maxOptionsHeight\" [minHeight]=\"minOptionsHeight\"\n *ngIf=\"emptyText.length > 0 || (filteredOptions && filteredOptions.length > 0)\">\n <fw-menu\n [multiSelect]=\"true\"\n [disabled]=\"disabled || (filteredOptions && filteredOptions.length===0)\"\n [value]=\"selectedValues\"\n (change)=\"handleChange($event)\">\n <ng-container *ngIf=\"customMenuItems.length === 0\">\n <fw-menu-item\n *ngFor=\"let item of filteredOptions; index as $index\"\n [title]=\"item[titleProperty]\"\n [value]=\"item[valueProperty]\"\n [icon]=\"item[iconProperty]\"\n [multiSelect]=\"true\"\n [showCheckbox]=\"useCheckbox\"\n [focused]=\"focused===$index\"\n (mouseover)=\"focused=$index\"\n >\n </fw-menu-item>\n </ng-container>\n <fw-menu-item\n *ngIf=\"filteredOptions.length === 0 && emptyText\" [showCheckbox]=\"false\"\n [disabled]=\"true\" [title]=\"emptyText\">\n </fw-menu-item>\n <ng-content select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group, fw-menu-header]\"></ng-content>\n </fw-menu>\n </fw-menu-container>\n </ng-template>\n</div>\n", styles: [":host .chip-grid{min-height:36px;box-sizing:border-box;color:var(--typography-light);background:var(--page-light);display:flex;padding:4px;align-items:center;border-radius:6px;border:1px solid var(--separations-input);cursor:pointer;font-family:Inter,sans-serif}:host .chip-grid.small{min-height:30px;padding:2px}:host .chip-grid.large{min-height:40px;padding:6px}:host .chip-grid:focus-within{border-color:var(--primary-base)}:host .chip-grid .inner-chip-grid{display:flex;flex-wrap:wrap;gap:4px;overflow:hidden auto;align-items:center;flex:1}:host .chip-grid .inner-chip-grid input{display:inline-flex;width:10px;flex-grow:1}:host .chip-grid .placeholder{padding:0 2px 0 4px;font-size:14px;color:var(--typography-base);background:var(--page-light);border:0;outline:0;display:inline-flex;width:10px;flex-grow:1}:host .chip-grid .placeholder:focus{outline:none!important}:host .chip-grid .placeholder::placeholder{color:var(--typography-light)}:host .chip-grid fw-icon{font-size:20px}:host .chip-grid fw-icon:hover{color:var(--primary-base)}:host .chip-grid .max-exceeded{font-size:12px}\n"] }]
|
|
5312
5337
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { outsideClick: [{
|
|
5313
5338
|
type: HostListener,
|
|
5314
5339
|
args: ['document:click']
|
|
@@ -5357,9 +5382,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
5357
5382
|
}], renderedMenuItems: [{
|
|
5358
5383
|
type: ViewChildren,
|
|
5359
5384
|
args: [FwMenuItemComponent]
|
|
5360
|
-
}],
|
|
5385
|
+
}], customMenuItems: [{
|
|
5361
5386
|
type: ContentChildren,
|
|
5362
|
-
args: [FwMenuItemComponent]
|
|
5387
|
+
args: [FwMenuItemComponent, { descendants: true }]
|
|
5363
5388
|
}], textInput: [{
|
|
5364
5389
|
type: ViewChild,
|
|
5365
5390
|
args: ['textInput']
|
|
@@ -5629,7 +5654,7 @@ class FwSelectMenuComponent {
|
|
|
5629
5654
|
}
|
|
5630
5655
|
}
|
|
5631
5656
|
FwSelectMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FwSelectMenuComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i8.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
5632
|
-
FwSelectMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FwSelectMenuComponent, selector: "fw-select", inputs: { options: "options", valueProperty: "valueProperty", useFullOptionAsValue: "useFullOptionAsValue", titleProperty: "titleProperty", iconProperty: "iconProperty", staticIcon: "staticIcon", descriptionProperty: "descriptionProperty", showFilter: "showFilter", showReset: "showReset", disabled: "disabled", errored: "errored", width: "width", optionsWidth: "optionsWidth", minOptionsHeight: "minOptionsHeight", maxOptionsHeight: "maxOptionsHeight", size: "size", placeholder: "placeholder", value: "value" }, outputs: { change: "change", filterChanged: "filterChanged" }, host: { listeners: { "document:click": "outsideClick($event.target)" } }, queries: [{ propertyName: "menuItems", predicate: FwMenuItemComponent, descendants: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #wrapper [ngStyle]=\"{width: width, cursor: 'pointer'}\">\n <fw-text-input\n fwMenuRegister\n [cdkMenuTriggerFor]=\"selectMenu\"\n [value]=\"selectTitle\"\n [leftIcon]=\"staticIcon || selectIcon\"\n [rightIcon]=\"(selectTitle&&showReset)?'close-circled':'chevron-down'\"\n (rightIconAction)=\"handleReset()\"\n [useActionableIcons]=\"true\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [error]=\"errored || (invalid && touched)\"\n (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\"\n readOnly=\"true\">\n </fw-text-input>\n <ng-template #selectMenu>\n <fw-menu-container\n [filterText]=\"filterValue\"\n *ngIf=\"!disabled\" [showFilter]=\"showFilter\" [width]=\"optionsWidth || wrapper.offsetWidth + 'px'\"\n [maxHeight]=\"maxOptionsHeight\" [minHeight]=\"minOptionsHeight\" (filterChanged)=\"onFilterChanged($event)\">\n <fw-menu [disabled]=\"disabled\" [value]=\"selectValue\" (change)=\"handleClick($event)\">\n <ng-container *ngIf=\"menuItems.length===0\">\n <fw-menu-item\n *ngFor=\"let item of options\"\n [title]=\"item[titleProperty]?.toString()\"\n [description]=\"item[descriptionProperty]\"\n [value]=\"useFullOptionAsValue ? JSON.stringify(item) : item?.[valueProperty]?.toString()\"\n [icon]=\"item[iconProperty]\"\n >\n </fw-menu-item>\n </ng-container>\n <div #menuContentWrapper>\n <ng-content select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group]\"></ng-content>\n </div>\n </fw-menu>\n </fw-menu-container>\n </ng-template>\n</div>\n", styles: [":host{box-sizing:border-box;max-width:100%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$4.CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value", "variant", "collapsed", "collapsedWidth", "openWidth"], outputs: ["change", "filteredItemsChange"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "offset", "collapsed"], outputs: ["filterChanged"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "focused", "selected", "variant"], outputs: ["click"] }, { kind: "component", type: FwTextInputComponent, selector: "fw-text-input", inputs: ["disabled", "useActionableIcons", "leftIcon", "rightIcon", "prefix", "context", "helperText", "errorText", "placeholder", "readOnly", "size", "type", "maxLength", "autofocus", "autocomplete", "error", "value"], outputs: ["leftIconAction", "rightIconAction"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }] });
|
|
5657
|
+
FwSelectMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FwSelectMenuComponent, selector: "fw-select", inputs: { options: "options", valueProperty: "valueProperty", useFullOptionAsValue: "useFullOptionAsValue", titleProperty: "titleProperty", iconProperty: "iconProperty", staticIcon: "staticIcon", descriptionProperty: "descriptionProperty", showFilter: "showFilter", showReset: "showReset", disabled: "disabled", errored: "errored", width: "width", optionsWidth: "optionsWidth", minOptionsHeight: "minOptionsHeight", maxOptionsHeight: "maxOptionsHeight", size: "size", placeholder: "placeholder", value: "value" }, outputs: { change: "change", filterChanged: "filterChanged" }, host: { listeners: { "document:click": "outsideClick($event.target)" } }, queries: [{ propertyName: "menuItems", predicate: FwMenuItemComponent, descendants: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkMenuTrigger, descendants: true }, { propertyName: "menu", first: true, predicate: FwMenuComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #wrapper [ngStyle]=\"{width: width, cursor: 'pointer'}\">\n <fw-text-input\n fwMenuRegister\n [cdkMenuTriggerFor]=\"selectMenu\"\n [value]=\"selectTitle\"\n [leftIcon]=\"staticIcon || selectIcon\"\n [rightIcon]=\"(selectTitle&&showReset)?'close-circled':'chevron-down'\"\n (rightIconAction)=\"handleReset()\"\n [useActionableIcons]=\"true\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [error]=\"errored || (invalid && touched)\"\n (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\"\n readOnly=\"true\">\n </fw-text-input>\n <ng-template #selectMenu>\n <fw-menu-container\n [filterText]=\"filterValue\"\n *ngIf=\"!disabled\" [showFilter]=\"showFilter\" [width]=\"optionsWidth || wrapper.offsetWidth + 'px'\"\n [maxHeight]=\"maxOptionsHeight\" [minHeight]=\"minOptionsHeight\" (filterChanged)=\"onFilterChanged($event)\">\n <fw-menu [disabled]=\"disabled\" [value]=\"selectValue\" (change)=\"handleClick($event)\">\n <ng-container *ngIf=\"menuItems.length===0\">\n <fw-menu-item\n *ngFor=\"let item of options\"\n [title]=\"item[titleProperty]?.toString()\"\n [description]=\"item[descriptionProperty]\"\n [value]=\"useFullOptionAsValue ? JSON.stringify(item) : item?.[valueProperty]?.toString()\"\n [icon]=\"item[iconProperty]\"\n >\n </fw-menu-item>\n </ng-container>\n <div #menuContentWrapper>\n <ng-content select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group]\"></ng-content>\n </div>\n </fw-menu>\n </fw-menu-container>\n </ng-template>\n</div>\n", styles: [":host{box-sizing:border-box;max-width:100%}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$4.CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "component", type: FwMenuComponent, selector: "fw-menu", inputs: ["disabled", "size", "multiSelect", "useCheckbox", "value", "variant", "collapsed", "collapsedWidth", "openWidth"], outputs: ["change", "filteredItemsChange"] }, { kind: "component", type: FwMenuContainerComponent, selector: "fw-menu-container", inputs: ["width", "maxHeight", "minHeight", "border", "shadow", "showFilter", "filterText", "offset", "collapsed"], outputs: ["filterChanged"] }, { kind: "component", type: FwMenuItemComponent, selector: "fw-menu-item", inputs: ["value", "size", "title", "description", "icon", "iconColor", "disabled", "showCheckbox", "checkboxColor", "multiSelect", "hidden", "collapsed", "href", "target", "subItemsOpen", "focused", "selected", "variant"], outputs: ["click"] }, { kind: "component", type: FwTextInputComponent, selector: "fw-text-input", inputs: ["disabled", "useActionableIcons", "leftIcon", "rightIcon", "prefix", "context", "helperText", "errorText", "placeholder", "readOnly", "size", "type", "maxLength", "autofocus", "autocomplete", "error", "width", "value"], outputs: ["leftIconAction", "rightIconAction"] }, { kind: "directive", type: MenuRegisterDirective, selector: "[fwMenuRegister]" }] });
|
|
5633
5658
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FwSelectMenuComponent, decorators: [{
|
|
5634
5659
|
type: Component,
|
|
5635
5660
|
args: [{ selector: 'fw-select', template: "<div #wrapper [ngStyle]=\"{width: width, cursor: 'pointer'}\">\n <fw-text-input\n fwMenuRegister\n [cdkMenuTriggerFor]=\"selectMenu\"\n [value]=\"selectTitle\"\n [leftIcon]=\"staticIcon || selectIcon\"\n [rightIcon]=\"(selectTitle&&showReset)?'close-circled':'chevron-down'\"\n (rightIconAction)=\"handleReset()\"\n [useActionableIcons]=\"true\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [size]=\"size\"\n [error]=\"errored || (invalid && touched)\"\n (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\"\n readOnly=\"true\">\n </fw-text-input>\n <ng-template #selectMenu>\n <fw-menu-container\n [filterText]=\"filterValue\"\n *ngIf=\"!disabled\" [showFilter]=\"showFilter\" [width]=\"optionsWidth || wrapper.offsetWidth + 'px'\"\n [maxHeight]=\"maxOptionsHeight\" [minHeight]=\"minOptionsHeight\" (filterChanged)=\"onFilterChanged($event)\">\n <fw-menu [disabled]=\"disabled\" [value]=\"selectValue\" (change)=\"handleClick($event)\">\n <ng-container *ngIf=\"menuItems.length===0\">\n <fw-menu-item\n *ngFor=\"let item of options\"\n [title]=\"item[titleProperty]?.toString()\"\n [description]=\"item[descriptionProperty]\"\n [value]=\"useFullOptionAsValue ? JSON.stringify(item) : item?.[valueProperty]?.toString()\"\n [icon]=\"item[iconProperty]\"\n >\n </fw-menu-item>\n </ng-container>\n <div #menuContentWrapper>\n <ng-content select=\"[fw-menu-item, fw-menu-separator, fw-menu-item-group]\"></ng-content>\n </div>\n </fw-menu>\n </fw-menu-container>\n </ng-template>\n</div>\n", styles: [":host{box-sizing:border-box;max-width:100%}\n"] }]
|