button-toggle-input 15.0.3 → 15.0.4
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/README.md +1045 -72
- package/button-toggle-input-15.0.4.tgz +0 -0
- package/fesm2022/button-toggle-input.mjs +23 -23
- package/fesm2022/button-toggle-input.mjs.map +1 -1
- package/package.json +12 -5
- package/types/button-toggle-input.d.ts +167 -0
- package/button-toggle-input-15.0.3.tgz +0 -0
- package/esm2022/button-toggle-input.mjs +0 -5
- package/esm2022/lib/button-toggle-input-demo/button-toggle-input-demo.component.mjs +0 -94
- package/esm2022/lib/button-toggle-input.component.mjs +0 -155
- package/esm2022/lib/button-toggle-input.module.mjs +0 -60
- package/esm2022/lib/models/list-item.model.mjs +0 -14
- package/esm2022/public-api.mjs +0 -8
- package/index.d.ts +0 -5
- package/lib/button-toggle-input-demo/button-toggle-input-demo.component.d.ts +0 -80
- package/lib/button-toggle-input.component.d.ts +0 -53
- package/lib/button-toggle-input.module.d.ts +0 -16
- package/lib/models/list-item.model.d.ts +0 -18
- package/public-api.d.ts +0 -4
|
Binary file
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, forwardRef,
|
|
3
|
-
import * as
|
|
2
|
+
import { inject, forwardRef, Input, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/forms';
|
|
4
4
|
import { FormBuilder, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
5
|
import * as i2$1 from '@angular/material/button';
|
|
6
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
-
import * as
|
|
7
|
+
import * as i4 from '@angular/material/button-toggle';
|
|
8
8
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
9
9
|
import * as i4$1 from '@angular/material/slide-toggle';
|
|
10
10
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
11
|
-
import * as i5
|
|
11
|
+
import * as i5 from '@angular/material/divider';
|
|
12
12
|
import { MatDividerModule } from '@angular/material/divider';
|
|
13
13
|
import { Subscription } from 'rxjs';
|
|
14
|
-
import * as
|
|
15
|
-
import { CommonModule } from '@angular/common';
|
|
16
|
-
import * as i3 from '@angular/material/icon';
|
|
14
|
+
import * as i2 from '@angular/material/icon';
|
|
17
15
|
import { MatIconModule } from '@angular/material/icon';
|
|
18
|
-
import * as
|
|
16
|
+
import * as i3 from '@angular/material/tooltip';
|
|
19
17
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
18
|
+
import * as i7 from '@angular/common';
|
|
19
|
+
import { CommonModule } from '@angular/common';
|
|
20
20
|
|
|
21
21
|
class ListItem {
|
|
22
22
|
constructor(value = '', label, icon, tootTip, selected, disabled) {
|
|
@@ -133,16 +133,16 @@ class ButtonToggleInputComponent {
|
|
|
133
133
|
ngOnDestroy() {
|
|
134
134
|
this.subscription.unsubscribe();
|
|
135
135
|
}
|
|
136
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
137
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
136
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonToggleInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
137
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ButtonToggleInputComponent, selector: "app-button-toggle-input", inputs: { multiple: "multiple", toolTips: "toolTips", toolTipPosition: "toolTipPosition", toolTipShowDelay: "toolTipShowDelay", color: "color", lightColor: "lightColor", darkColor: "darkColor", noBorder: "noBorder", iconPrefix: "iconPrefix", iconSuffix: "iconSuffix", fullWidth: "fullWidth", data: "data" }, providers: [
|
|
138
138
|
{
|
|
139
139
|
provide: NG_VALUE_ACCESSOR,
|
|
140
140
|
useExisting: forwardRef(() => ButtonToggleInputComponent),
|
|
141
141
|
multi: true
|
|
142
142
|
}
|
|
143
|
-
], ngImport: i0, template: "<mat-button-toggle-group\n style=\"height: 44px;\"\n [class.stretch]=\"fullWidth\"\n [style.background-color]=\"(noBorder) ? '' : 'white'\"\n [style.border-radius]=\"(noBorder) ? 'none' : '5rem'\"\n [style.border]=\"(noBorder) ? 'none' : ''\"\n [formControl]=\"display\"\n [multiple]=\"multiple\"\n>\n
|
|
143
|
+
], ngImport: i0, template: "<mat-button-toggle-group\n style=\"height: 44px;\"\n [class.stretch]=\"fullWidth\"\n [style.background-color]=\"(noBorder) ? '' : 'white'\"\n [style.border-radius]=\"(noBorder) ? 'none' : '5rem'\"\n [style.border]=\"(noBorder) ? 'none' : ''\"\n [formControl]=\"display\"\n [multiple]=\"multiple\"\n >\n @for (item of data; track item) {\n <mat-button-toggle\n [disableRipple]=\"true\"\n color=\"primary\"\n style=\"border-radius: 5rem;\"\n [style.flex]=\"(fullWidth) ? '1' : ''\"\n [style.opacity]=\"disabled ? '0.3' : ''\"\n [style.padding-left]=\"(hasLabels && !fullWidth) ? '.5rem' : ''\"\n [style.padding-right]=\"(hasLabels && !fullWidth)? '.5rem' : ''\"\n [value]=\"item.value\"\n [matTooltip]=\"(toolTips) ? item.tootTip : ''\"\n [matTooltipPosition]=\"toolTipPosition\"\n [matTooltipShowDelay]=\"toolTipShowDelay * 1000\"\n [disabled]=\"item.disabled\"\n >\n <div\n style=\"display: flex; gap: 0.5rem; padding-top: 0.25rem\"\n [style.padding-top]=\"iconSuffix && (hasIcons && hasLabels) ? '' : '.25rem'\">\n @if (hasIcons && iconPrefix) {\n <div class=\"icon\">\n <mat-icon>{{item.icon}}</mat-icon>\n </div>\n }\n @if (item.label !== '') {\n <div class=\"overflow-content\">{{ item.label }}</div>\n }\n @if (hasIcons && iconSuffix) {\n <div class=\"icon\">\n <mat-icon>{{item.icon}}</mat-icon>\n </div>\n }\n </div>\n </mat-button-toggle>\n }\n</mat-button-toggle-group>\n", styles: [".mat-button-toggle-checked{background-color:#333!important;color:#fff!important;transition:all .2s ease;font-weight:600}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none!important;white-space:pre-wrap!important}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{border:none!important;white-space:pre-wrap!important}.mat-button-toggle-label-content{line-height:32px!important}.mat-checkbox span.mat-checkbox-ripple{display:none}mat-button-toggle{display:flex;align-items:center;justify-content:center;text-align:center}mat-button-toggle .overflow-content{display:flex;align-items:center;justify-content:center;white-space:normal;word-wrap:break-word;line-height:1.2rem;font-size:1rem}.stretch{display:flex}.icon{display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }] }); }
|
|
144
144
|
}
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonToggleInputComponent, decorators: [{
|
|
146
146
|
type: Component,
|
|
147
147
|
args: [{ selector: 'app-button-toggle-input', providers: [
|
|
148
148
|
{
|
|
@@ -150,8 +150,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
150
150
|
useExisting: forwardRef(() => ButtonToggleInputComponent),
|
|
151
151
|
multi: true
|
|
152
152
|
}
|
|
153
|
-
], template: "<mat-button-toggle-group\n style=\"height: 44px;\"\n [class.stretch]=\"fullWidth\"\n [style.background-color]=\"(noBorder) ? '' : 'white'\"\n [style.border-radius]=\"(noBorder) ? 'none' : '5rem'\"\n [style.border]=\"(noBorder) ? 'none' : ''\"\n [formControl]=\"display\"\n [multiple]=\"multiple\"\n>\n
|
|
154
|
-
}], ctorParameters:
|
|
153
|
+
], standalone: false, template: "<mat-button-toggle-group\n style=\"height: 44px;\"\n [class.stretch]=\"fullWidth\"\n [style.background-color]=\"(noBorder) ? '' : 'white'\"\n [style.border-radius]=\"(noBorder) ? 'none' : '5rem'\"\n [style.border]=\"(noBorder) ? 'none' : ''\"\n [formControl]=\"display\"\n [multiple]=\"multiple\"\n >\n @for (item of data; track item) {\n <mat-button-toggle\n [disableRipple]=\"true\"\n color=\"primary\"\n style=\"border-radius: 5rem;\"\n [style.flex]=\"(fullWidth) ? '1' : ''\"\n [style.opacity]=\"disabled ? '0.3' : ''\"\n [style.padding-left]=\"(hasLabels && !fullWidth) ? '.5rem' : ''\"\n [style.padding-right]=\"(hasLabels && !fullWidth)? '.5rem' : ''\"\n [value]=\"item.value\"\n [matTooltip]=\"(toolTips) ? item.tootTip : ''\"\n [matTooltipPosition]=\"toolTipPosition\"\n [matTooltipShowDelay]=\"toolTipShowDelay * 1000\"\n [disabled]=\"item.disabled\"\n >\n <div\n style=\"display: flex; gap: 0.5rem; padding-top: 0.25rem\"\n [style.padding-top]=\"iconSuffix && (hasIcons && hasLabels) ? '' : '.25rem'\">\n @if (hasIcons && iconPrefix) {\n <div class=\"icon\">\n <mat-icon>{{item.icon}}</mat-icon>\n </div>\n }\n @if (item.label !== '') {\n <div class=\"overflow-content\">{{ item.label }}</div>\n }\n @if (hasIcons && iconSuffix) {\n <div class=\"icon\">\n <mat-icon>{{item.icon}}</mat-icon>\n </div>\n }\n </div>\n </mat-button-toggle>\n }\n</mat-button-toggle-group>\n", styles: [".mat-button-toggle-checked{background-color:#333!important;color:#fff!important;transition:all .2s ease;font-weight:600}.mat-button-toggle-group-appearance-standard .mat-button-toggle-appearance-standard+.mat-button-toggle-appearance-standard{border:none!important;white-space:pre-wrap!important}.mat-button-toggle-appearance-standard.mat-button-toggle-disabled{border:none!important;white-space:pre-wrap!important}.mat-button-toggle-label-content{line-height:32px!important}.mat-checkbox span.mat-checkbox-ripple{display:none}mat-button-toggle{display:flex;align-items:center;justify-content:center;text-align:center}mat-button-toggle .overflow-content{display:flex;align-items:center;justify-content:center;white-space:normal;word-wrap:break-word;line-height:1.2rem;font-size:1rem}.stretch{display:flex}.icon{display:flex;align-items:center}\n"] }]
|
|
154
|
+
}], ctorParameters: () => [], propDecorators: { multiple: [{
|
|
155
155
|
type: Input
|
|
156
156
|
}], toolTips: [{
|
|
157
157
|
type: Input
|
|
@@ -253,17 +253,17 @@ class ButtonToggleDemoComponent {
|
|
|
253
253
|
this.selectionControl_2.enable();
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
257
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
256
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonToggleDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
257
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ButtonToggleDemoComponent, selector: "app-button-toggle-demo", ngImport: i0, template: "<h1 style=\"flex: 1;\">Button Toggle Input</h1>\n\n\n<div style=\"display: flex; flex-direction: column; margin-top: 1rem;\">\n <div style=\"flex:1; text-align: right;\">\n <div style=\"display: flex; gap: 2rem; flex-direction: row-reverse;\">\n <mat-button-toggle (click)=\"onPerformPatch()\">Patch</mat-button-toggle>\n <mat-button-toggle-group #varTypes=\"matButtonToggleGroup\" (change)=\"onChangeDataType(varTypes.value)\">\n <mat-button-toggle value=\"icons\" checked=\"true\">Icons</mat-button-toggle>\n <mat-button-toggle value=\"labels\" checked=\"false\">Labels</mat-button-toggle>\n <mat-button-toggle value=\"combo\" checked=\"false\">Combo</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <!-- MAIN DEMOS -->\n <div style=\"margin: 1rem; margin-right: 0;\">\n <h3 style=\"margin-bottom: 0;\">Button Toggle Selection - {{ varTypes.value | uppercase }}</h3>\n\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_1.reset()\">Reset</button>\n </div>\n\n <div style=\"margin-top: 1rem;\">\n <app-button-toggle-input\n [formControl]=\"selectionControl_1\"\n [data]=\"data\"\n [toolTips]=\"tooltip1.checked\"\n [fullWidth]=\"width1.value\"\n [noBorder]=\"!border1.checked\"\n [iconSuffix]=\"suffix1.checked\"\n ></app-button-toggle-input>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #disable1 (change)=\"onDisabled_1(disable1.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n <mat-slide-toggle #suffix1>Icon Suffix</mat-slide-toggle>\n <mat-slide-toggle #tooltip1>ToolTip</mat-slide-toggle>\n <mat-slide-toggle #border1 checked=\"true\">Border</mat-slide-toggle>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <div>\n Single Selection<br>\n ToolTips<br>\n </div>\n <span style=\"flex:1\"></span>\n <div>\n <mat-button-toggle-group #width1=\"matButtonToggleGroup\">\n <mat-button-toggle value=\"false\" checked=\"false\">Normal Width</mat-button-toggle>\n <mat-button-toggle value=\"true\" checked=\"true\">Full Width</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n </div>\n\n\n <div style=\"margin: 1rem; margin-right: 0;\">\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_2.reset()\">Reset</button>\n </div>\n\n <div style=\"margin-top: 1rem;\">\n\n <app-button-toggle-input\n [formControl]=\"selectionControl_2\"\n [data]=\"data\"\n [toolTips]=\"tooltip2.checked\"\n toolTipPosition=\"above\"\n [multiple]=\"true\"\n [fullWidth]=\"width2.value\"\n [noBorder]=\"!border2.checked\"\n [iconSuffix]=\"suffix2.checked\"\n ></app-button-toggle-input>\n\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_2\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #disable2 (change)=\"onDisabled_2(disable2.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n <mat-slide-toggle #suffix2>Icon Suffix</mat-slide-toggle>\n <mat-slide-toggle #tooltip2>ToolTip</mat-slide-toggle>\n <mat-slide-toggle #border2 checked=\"true\">Border</mat-slide-toggle>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <div>\n Multiple Selection<br>\n ToolTips<br>\n ToolTip Position ABOVE<br>\n </div>\n <span style=\"flex:1\"></span>\n <div>\n <mat-button-toggle-group #width2=\"matButtonToggleGroup\">\n <mat-button-toggle value=\"false\" checked=\"false\">Normal Width</mat-button-toggle>\n <mat-button-toggle value=\"true\" checked=\"true\">Full Width</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i4$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: ButtonToggleInputComponent, selector: "app-button-toggle-input", inputs: ["multiple", "toolTips", "toolTipPosition", "toolTipShowDelay", "color", "lightColor", "darkColor", "noBorder", "iconPrefix", "iconSuffix", "fullWidth", "data"] }, { kind: "pipe", type: i7.UpperCasePipe, name: "uppercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
258
258
|
}
|
|
259
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
259
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonToggleDemoComponent, decorators: [{
|
|
260
260
|
type: Component,
|
|
261
|
-
args: [{ selector: 'app-button-toggle-demo', changeDetection: ChangeDetectionStrategy.OnPush, template: "<h1 style=\"flex: 1;\">Button Toggle Input</h1>\n\n\n<div style=\"display: flex; flex-direction: column; margin-top: 1rem;\">\n <div style=\"flex:1; text-align: right;\">\n <div style=\"display: flex; gap: 2rem; flex-direction: row-reverse;\">\n <mat-button-toggle (click)=\"onPerformPatch()\">Patch</mat-button-toggle>\n <mat-button-toggle-group #varTypes=\"matButtonToggleGroup\" (change)=\"onChangeDataType(varTypes.value)\">\n <mat-button-toggle value=\"icons\" checked=\"true\">Icons</mat-button-toggle>\n <mat-button-toggle value=\"labels\" checked=\"false\">Labels</mat-button-toggle>\n <mat-button-toggle value=\"combo\" checked=\"false\">Combo</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <!-- MAIN DEMOS -->\n <div style=\"margin: 1rem; margin-right: 0;\">\n <h3 style=\"margin-bottom: 0;\">Button Toggle Selection - {{ varTypes.value | uppercase }}</h3>\n\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_1.reset()\">Reset</button>\n </div>\n\n <div style=\"margin-top: 1rem;\">\n <app-button-toggle-input\n [formControl]=\"selectionControl_1\"\n [data]=\"data\"\n [toolTips]=\"tooltip1.checked\"\n [fullWidth]=\"width1.value\"\n [noBorder]=\"!border1.checked\"\n [iconSuffix]=\"suffix1.checked\"\n ></app-button-toggle-input>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #disable1 (change)=\"onDisabled_1(disable1.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n <mat-slide-toggle #suffix1>Icon Suffix</mat-slide-toggle>\n <mat-slide-toggle #tooltip1>ToolTip</mat-slide-toggle>\n <mat-slide-toggle #border1 checked=\"true\">Border</mat-slide-toggle>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <div>\n Single Selection<br>\n ToolTips<br>\n </div>\n <span style=\"flex:1\"></span>\n <div>\n <mat-button-toggle-group #width1=\"matButtonToggleGroup\">\n <mat-button-toggle value=\"false\" checked=\"false\">Normal Width</mat-button-toggle>\n <mat-button-toggle value=\"true\" checked=\"true\">Full Width</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n </div>\n\n\n <div style=\"margin: 1rem; margin-right: 0;\">\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_2.reset()\">Reset</button>\n </div>\n\n <div style=\"margin-top: 1rem;\">\n\n <app-button-toggle-input\n [formControl]=\"selectionControl_2\"\n [data]=\"data\"\n [toolTips]=\"tooltip2.checked\"\n toolTipPosition=\"above\"\n [multiple]=\"true\"\n [fullWidth]=\"width2.value\"\n [noBorder]=\"!border2.checked\"\n [iconSuffix]=\"suffix2.checked\"\n ></app-button-toggle-input>\n\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_2\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #disable2 (change)=\"onDisabled_2(disable2.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n <mat-slide-toggle #suffix2>Icon Suffix</mat-slide-toggle>\n <mat-slide-toggle #tooltip2>ToolTip</mat-slide-toggle>\n <mat-slide-toggle #border2 checked=\"true\">Border</mat-slide-toggle>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <div>\n Multiple Selection<br>\n ToolTips<br>\n ToolTip Position ABOVE<br>\n </div>\n <span style=\"flex:1\"></span>\n <div>\n <mat-button-toggle-group #width2=\"matButtonToggleGroup\">\n <mat-button-toggle value=\"false\" checked=\"false\">Normal Width</mat-button-toggle>\n <mat-button-toggle value=\"true\" checked=\"true\">Full Width</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n</div>\n" }]
|
|
262
|
-
}], ctorParameters:
|
|
261
|
+
args: [{ selector: 'app-button-toggle-demo', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<h1 style=\"flex: 1;\">Button Toggle Input</h1>\n\n\n<div style=\"display: flex; flex-direction: column; margin-top: 1rem;\">\n <div style=\"flex:1; text-align: right;\">\n <div style=\"display: flex; gap: 2rem; flex-direction: row-reverse;\">\n <mat-button-toggle (click)=\"onPerformPatch()\">Patch</mat-button-toggle>\n <mat-button-toggle-group #varTypes=\"matButtonToggleGroup\" (change)=\"onChangeDataType(varTypes.value)\">\n <mat-button-toggle value=\"icons\" checked=\"true\">Icons</mat-button-toggle>\n <mat-button-toggle value=\"labels\" checked=\"false\">Labels</mat-button-toggle>\n <mat-button-toggle value=\"combo\" checked=\"false\">Combo</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <!-- MAIN DEMOS -->\n <div style=\"margin: 1rem; margin-right: 0;\">\n <h3 style=\"margin-bottom: 0;\">Button Toggle Selection - {{ varTypes.value | uppercase }}</h3>\n\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_1.reset()\">Reset</button>\n </div>\n\n <div style=\"margin-top: 1rem;\">\n <app-button-toggle-input\n [formControl]=\"selectionControl_1\"\n [data]=\"data\"\n [toolTips]=\"tooltip1.checked\"\n [fullWidth]=\"width1.value\"\n [noBorder]=\"!border1.checked\"\n [iconSuffix]=\"suffix1.checked\"\n ></app-button-toggle-input>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #disable1 (change)=\"onDisabled_1(disable1.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n <mat-slide-toggle #suffix1>Icon Suffix</mat-slide-toggle>\n <mat-slide-toggle #tooltip1>ToolTip</mat-slide-toggle>\n <mat-slide-toggle #border1 checked=\"true\">Border</mat-slide-toggle>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <div>\n Single Selection<br>\n ToolTips<br>\n </div>\n <span style=\"flex:1\"></span>\n <div>\n <mat-button-toggle-group #width1=\"matButtonToggleGroup\">\n <mat-button-toggle value=\"false\" checked=\"false\">Normal Width</mat-button-toggle>\n <mat-button-toggle value=\"true\" checked=\"true\">Full Width</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n </div>\n\n\n <div style=\"margin: 1rem; margin-right: 0;\">\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_2.reset()\">Reset</button>\n </div>\n\n <div style=\"margin-top: 1rem;\">\n\n <app-button-toggle-input\n [formControl]=\"selectionControl_2\"\n [data]=\"data\"\n [toolTips]=\"tooltip2.checked\"\n toolTipPosition=\"above\"\n [multiple]=\"true\"\n [fullWidth]=\"width2.value\"\n [noBorder]=\"!border2.checked\"\n [iconSuffix]=\"suffix2.checked\"\n ></app-button-toggle-input>\n\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_2\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #disable2 (change)=\"onDisabled_2(disable2.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n <mat-slide-toggle #suffix2>Icon Suffix</mat-slide-toggle>\n <mat-slide-toggle #tooltip2>ToolTip</mat-slide-toggle>\n <mat-slide-toggle #border2 checked=\"true\">Border</mat-slide-toggle>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <div>\n Multiple Selection<br>\n ToolTips<br>\n ToolTip Position ABOVE<br>\n </div>\n <span style=\"flex:1\"></span>\n <div>\n <mat-button-toggle-group #width2=\"matButtonToggleGroup\">\n <mat-button-toggle value=\"false\" checked=\"false\">Normal Width</mat-button-toggle>\n <mat-button-toggle value=\"true\" checked=\"true\">Full Width</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n</div>\n" }]
|
|
262
|
+
}], ctorParameters: () => [] });
|
|
263
263
|
|
|
264
264
|
class ButtonToggleInputModule {
|
|
265
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
266
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
265
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonToggleInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
266
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ButtonToggleInputModule, declarations: [ButtonToggleInputComponent,
|
|
267
267
|
ButtonToggleDemoComponent], imports: [CommonModule,
|
|
268
268
|
FormsModule,
|
|
269
269
|
MatIconModule,
|
|
@@ -274,7 +274,7 @@ class ButtonToggleInputModule {
|
|
|
274
274
|
MatSlideToggleModule,
|
|
275
275
|
MatDividerModule], exports: [ButtonToggleInputComponent,
|
|
276
276
|
ButtonToggleDemoComponent] }); }
|
|
277
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
277
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonToggleInputModule, imports: [CommonModule,
|
|
278
278
|
FormsModule,
|
|
279
279
|
MatIconModule,
|
|
280
280
|
MatButtonModule,
|
|
@@ -284,7 +284,7 @@ class ButtonToggleInputModule {
|
|
|
284
284
|
MatSlideToggleModule,
|
|
285
285
|
MatDividerModule] }); }
|
|
286
286
|
}
|
|
287
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
287
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ButtonToggleInputModule, decorators: [{
|
|
288
288
|
type: NgModule,
|
|
289
289
|
args: [{
|
|
290
290
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-toggle-input.mjs","sources":["../../../projects/button-toggle-input/src/lib/models/list-item.model.ts","../../../projects/button-toggle-input/src/lib/button-toggle-input.component.ts","../../../projects/button-toggle-input/src/lib/button-toggle-input.component.html","../../../projects/button-toggle-input/src/lib/button-toggle-input-demo/button-toggle-input-demo.component.ts","../../../projects/button-toggle-input/src/lib/button-toggle-input-demo/button-toggle-input-demo.component.html","../../../projects/button-toggle-input/src/lib/button-toggle-input.module.ts","../../../projects/button-toggle-input/src/public-api.ts","../../../projects/button-toggle-input/src/button-toggle-input.ts"],"sourcesContent":["export interface ListItemInterface {\n value: any\n label?: string\n icon?: string\n tootTip?: string\n selected?: string\n disabled?: string\n}\n\nexport class ListItem implements ListItemInterface {\n\n constructor(\n public value = '',\n public label?: string,\n public icon?: string,\n public tootTip?: string,\n public selected?: string,\n public disabled?: string,\n ) {}\n\n static adapt(item?: any): ListItem {\n\n return new ListItem(\n item?.value,\n (item?.label) ? item.label : (item?.icon) ? '' : item?.value,\n item?.icon,\n (item?.tootTip) ? item.tootTip : (item?.label) ? item.label : item?.value,\n item?.selected,\n item?.disabled,\n )\n\n }\n\n}\n\n\n","import { Component, Input, OnDestroy, OnInit, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ListItem } from './models/list-item.model';\nimport { Subscription } from 'rxjs';\nimport { TooltipPosition } from '@angular/material/tooltip';\n\n@Component({\n selector: 'app-button-toggle-input',\n templateUrl: './button-toggle-input.component.html',\n styleUrls: ['./button-toggle-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ButtonToggleInputComponent),\n multi: true\n }\n ]\n})\nexport class ButtonToggleInputComponent implements OnInit, OnDestroy, ControlValueAccessor {\n\n @Input() multiple = false\n\n @Input() toolTips = false\n @Input() toolTipPosition: TooltipPosition = 'above'\n @Input() toolTipShowDelay = 1\n\n @Input() color = \"#333333\";\n\n @Input() lightColor = \"white\";\n @Input() darkColor = \"black\";\n\n private _noBorder: boolean = false;\n\n @Input()\n set noBorder(value: any) {\n this._noBorder = value !== null && `${value}` !== 'false';\n }\n\n get noBorder(): boolean {\n return this._noBorder;\n }\n\n private _iconPrefix: boolean = true;\n\n @Input()\n set iconPrefix(value: any) {\n this._iconPrefix = (value !== undefined) ? value : false\n }\n\n get iconPrefix(): boolean {\n return this._iconPrefix\n }\n\n private _iconSuffix: boolean = false;\n\n @Input()\n set iconSuffix(value: any) {\n this._iconSuffix = (value !== undefined) ? value : false\n this.iconPrefix = !this.iconSuffix\n }\n\n get iconSuffix(): boolean {\n return this._iconSuffix\n }\n\n private _fullWidth: boolean = false;\n\n @Input()\n set fullWidth(value: any) {\n this._fullWidth = value !== null && `${value}` !== 'false';\n }\n\n get fullWidth(): boolean {\n return this._fullWidth\n }\n\n formInitialized = false\n\n isArrayOfStrings = (arr: any[]) => {\n const isArray = Array.isArray(arr) && arr.every(item => typeof item === 'string');\n return (arr.length > 0) ? isArray : false\n }\n\n hasLabels = false\n hasIcons = false\n\n _data: ListItem[] = []\n @Input() set data(value: any[]) {\n\n const isString = this.isArrayOfStrings(value);\n this._data = (isString) ? value.map(item => ListItem.adapt({ value: item, label: item })) : value.map(item => ListItem.adapt(item))\n\n this.hasLabels = this.data.some(item => item['label'])\n this.hasIcons = this.data.some((item) => item[\"icon\"])\n\n }\n\n subscription = new Subscription()\n\n get selected() {\n return this.data.filter(item => item.selected).map(item => item.value)\n }\n\n get hasSelected() {\n return (this.selected.length > 0)\n }\n\n get data() {\n return this._data\n }\n\n sample = \"orange\"\n test = 'red'\n\n fb = inject(FormBuilder)\n\n display = this.fb.control<string|string[]|null>(null)\n\n disabled = false\n\n onChange: any = () => {}\n onTouch: any = () => {}\n\n constructor() { }\n\n ngOnInit() {\n\n this.subscription.add(\n this.display.valueChanges.subscribe(data => this.onChange(data))\n )\n\n }\n\n writeValue(value: string[]){\n\n if(!this.formInitialized) {\n this.display.patchValue(this.selected, { emitEvent: false })\n } else {\n const valuePatch = (value) ? (this.multiple) ? value : value[0] : null\n this.display.patchValue(valuePatch, { emitEvent: false })\n }\n\n this.formInitialized = true\n\n }\n\n registerOnChange(fn: any){\n this.onChange = fn\n }\n\n registerOnTouched(fn: any){\n this.onTouch = fn\n }\n\n setDisabledState(isDisabled: boolean) {\n\n this.disabled = isDisabled\n\n if(this.disabled) {\n this.display.disable()\n } else {\n this.display.enable()\n }\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe()\n }\n\n}\n","<mat-button-toggle-group\n style=\"height: 44px;\"\n [class.stretch]=\"fullWidth\"\n [style.background-color]=\"(noBorder) ? '' : 'white'\"\n [style.border-radius]=\"(noBorder) ? 'none' : '5rem'\"\n [style.border]=\"(noBorder) ? 'none' : ''\"\n [formControl]=\"display\"\n [multiple]=\"multiple\"\n>\n <ng-container *ngFor=\"let item of data;\">\n\n <mat-button-toggle\n [disableRipple]=\"true\"\n color=\"primary\"\n style=\"border-radius: 5rem;\"\n [style.flex]=\"(fullWidth) ? '1' : ''\"\n [style.opacity]=\"disabled ? '0.3' : ''\"\n [style.padding-left]=\"(hasLabels && !fullWidth) ? '.5rem' : ''\"\n [style.padding-right]=\"(hasLabels && !fullWidth)? '.5rem' : ''\"\n [value]=\"item.value\"\n [matTooltip]=\"(toolTips) ? item.tootTip : ''\"\n [matTooltipPosition]=\"toolTipPosition\"\n [matTooltipShowDelay]=\"toolTipShowDelay * 1000\"\n [disabled]=\"item.disabled\"\n >\n <div\n style=\"display: flex; gap: 0.5rem; padding-top: 0.25rem\"\n [style.padding-top]=\"iconSuffix && (hasIcons && hasLabels) ? '' : '.25rem'\">\n <div class=\"icon\" *ngIf=\"hasIcons && iconPrefix\">\n <mat-icon>{{item.icon}}</mat-icon>\n </div>\n\n <div class=\"overflow-content\" *ngIf=\"item.label !== ''\">{{ item.label }}</div>\n\n <div class=\"icon\" *ngIf=\"hasIcons && iconSuffix\">\n <mat-icon>{{item.icon}}</mat-icon>\n </div>\n </div>\n\n </mat-button-toggle>\n\n </ng-container>\n</mat-button-toggle-group>\n","import { ChangeDetectionStrategy, Component, OnInit, inject } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'app-button-toggle-demo',\n templateUrl: './button-toggle-input-demo.component.html',\n styleUrls: ['./button-toggle-input-demo.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonToggleDemoComponent implements OnInit {\n\n fb = inject(FormBuilder)\n\n type = 'icons'\n\n data_1 = [\n {id: 1, icon: 'home', value: 'option_1', disabled: true },\n {id: 2, icon: 'layers', value: 'option_2'},\n {id: 3, icon: 'add', value: 'option_3' },\n {id: 3, icon: 'build', value: 'option_4', disabled: true },\n {id: 3, icon: 'list', value: 'option_5', selected: true },\n {id: 3, icon: 'business', value: 'option_6'},\n ]\n\n data_2 = [\n {id: 1, label: 'Home', value: 'option_1', disabled: true },\n {id: 2, label: 'Samples', value: 'option_2' },\n {id: 3, label: 'Demos 1 is here', value: 'option_3' },\n {id: 3, label: 'Demos 2A', value: 'option_4', disabled: true },\n {id: 3, label: 'Demos 2B', value: 'option_5', selected: true },\n {id: 3, label: 'Demos 3', value: 'option_6' },\n ]\n\n data_3 = [\n {id: 1, label: 'Home', icon: 'home', value: 'option_1', disabled: true },\n {id: 2, label: 'Samples', icon: 'layers', value: 'option_2'},\n {id: 3, label: 'Demos 1', icon: 'add', value: 'option_3' },\n {id: 3, label: 'Demos 2A', icon: 'network', value: 'option_4', disabled: true },\n {id: 3, label: 'Demos 2B', icon: 'list', value: 'option_5', selected: true },\n {id: 3, label: 'Demos 3', icon: 'business', value: 'option_6'},\n ]\n\n data: any[] = this.data_1\n\n selectionControl_1 = this.fb.control<any>(null)\n selectionControl_2 = this.fb.control<any>(null)\n\n changeDetection_1 = this.fb.control(true)\n changeDetection_2 = this.fb.control(false)\n\n constructor() { }\n\n ngOnInit() {\n\n this.selectionControl_1.valueChanges.subscribe(data => {\n if(this.changeDetection_1.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_2.valueChanges.subscribe(data => {\n if(this.changeDetection_2.value) console.log('CHANGE:',data)\n })\n\n }\n\n onPerformPatch() {\n this.selectionControl_1.patchValue(['option_3'])\n this.selectionControl_2.patchValue(['option_3', 'option_5'])\n }\n\n onChangeDataType(type: string) {\n if(type === 'icons') {\n this.data = this.data_1\n } else if(type === 'labels') {\n this.data = this.data_2\n } else {\n this.data = this.data_3\n }\n }\n\n // DISABLE\n onDisabled_1(disable: boolean) {\n\n if(disable) {\n this.selectionControl_1.disable()\n } else {\n this.selectionControl_1.enable()\n }\n\n }\n\n onDisabled_2(disable: boolean) {\n\n if(disable) {\n this.selectionControl_2.disable()\n } else {\n this.selectionControl_2.enable()\n }\n\n }\n\n}\n","<h1 style=\"flex: 1;\">Button Toggle Input</h1>\n\n\n<div style=\"display: flex; flex-direction: column; margin-top: 1rem;\">\n <div style=\"flex:1; text-align: right;\">\n <div style=\"display: flex; gap: 2rem; flex-direction: row-reverse;\">\n <mat-button-toggle (click)=\"onPerformPatch()\">Patch</mat-button-toggle>\n <mat-button-toggle-group #varTypes=\"matButtonToggleGroup\" (change)=\"onChangeDataType(varTypes.value)\">\n <mat-button-toggle value=\"icons\" checked=\"true\">Icons</mat-button-toggle>\n <mat-button-toggle value=\"labels\" checked=\"false\">Labels</mat-button-toggle>\n <mat-button-toggle value=\"combo\" checked=\"false\">Combo</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <!-- MAIN DEMOS -->\n <div style=\"margin: 1rem; margin-right: 0;\">\n <h3 style=\"margin-bottom: 0;\">Button Toggle Selection - {{ varTypes.value | uppercase }}</h3>\n\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_1.reset()\">Reset</button>\n </div>\n\n <div style=\"margin-top: 1rem;\">\n <app-button-toggle-input\n [formControl]=\"selectionControl_1\"\n [data]=\"data\"\n [toolTips]=\"tooltip1.checked\"\n [fullWidth]=\"width1.value\"\n [noBorder]=\"!border1.checked\"\n [iconSuffix]=\"suffix1.checked\"\n ></app-button-toggle-input>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #disable1 (change)=\"onDisabled_1(disable1.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n <mat-slide-toggle #suffix1>Icon Suffix</mat-slide-toggle>\n <mat-slide-toggle #tooltip1>ToolTip</mat-slide-toggle>\n <mat-slide-toggle #border1 checked=\"true\">Border</mat-slide-toggle>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <div>\n Single Selection<br>\n ToolTips<br>\n </div>\n <span style=\"flex:1\"></span>\n <div>\n <mat-button-toggle-group #width1=\"matButtonToggleGroup\">\n <mat-button-toggle value=\"false\" checked=\"false\">Normal Width</mat-button-toggle>\n <mat-button-toggle value=\"true\" checked=\"true\">Full Width</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n </div>\n\n\n <div style=\"margin: 1rem; margin-right: 0;\">\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_2.reset()\">Reset</button>\n </div>\n\n <div style=\"margin-top: 1rem;\">\n\n <app-button-toggle-input\n [formControl]=\"selectionControl_2\"\n [data]=\"data\"\n [toolTips]=\"tooltip2.checked\"\n toolTipPosition=\"above\"\n [multiple]=\"true\"\n [fullWidth]=\"width2.value\"\n [noBorder]=\"!border2.checked\"\n [iconSuffix]=\"suffix2.checked\"\n ></app-button-toggle-input>\n\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_2\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #disable2 (change)=\"onDisabled_2(disable2.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n <mat-slide-toggle #suffix2>Icon Suffix</mat-slide-toggle>\n <mat-slide-toggle #tooltip2>ToolTip</mat-slide-toggle>\n <mat-slide-toggle #border2 checked=\"true\">Border</mat-slide-toggle>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <div>\n Multiple Selection<br>\n ToolTips<br>\n ToolTip Position ABOVE<br>\n </div>\n <span style=\"flex:1\"></span>\n <div>\n <mat-button-toggle-group #width2=\"matButtonToggleGroup\">\n <mat-button-toggle value=\"false\" checked=\"false\">Normal Width</mat-button-toggle>\n <mat-button-toggle value=\"true\" checked=\"true\">Full Width</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonToggleInputComponent } from './button-toggle-input.component';\nimport { ButtonToggleDemoComponent } from './button-toggle-input-demo/button-toggle-input-demo.component';\n\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n ReactiveFormsModule,\n MatButtonToggleModule,\n MatSlideToggleModule,\n MatDividerModule,\n ],\n declarations: [\n ButtonToggleInputComponent,\n ButtonToggleDemoComponent\n ],\n exports: [\n ButtonToggleInputComponent,\n ButtonToggleDemoComponent\n ]\n})\nexport class ButtonToggleInputModule { }\n","/*\n * Public API Surface of button-toggle-input\n */\n\nexport * from './lib/button-toggle-input-demo/button-toggle-input-demo.component';\n\nexport * from './lib/button-toggle-input.module';\nexport * from './lib/button-toggle-input.component';\n\nexport * from './lib/models/list-item.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i5","i6.ButtonToggleInputComponent","i7"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"button-toggle-input.mjs","sources":["../../../projects/button-toggle-input/src/lib/models/list-item.model.ts","../../../projects/button-toggle-input/src/lib/button-toggle-input.component.ts","../../../projects/button-toggle-input/src/lib/button-toggle-input.component.html","../../../projects/button-toggle-input/src/lib/button-toggle-input-demo/button-toggle-input-demo.component.ts","../../../projects/button-toggle-input/src/lib/button-toggle-input-demo/button-toggle-input-demo.component.html","../../../projects/button-toggle-input/src/lib/button-toggle-input.module.ts","../../../projects/button-toggle-input/src/public-api.ts","../../../projects/button-toggle-input/src/button-toggle-input.ts"],"sourcesContent":["export interface ListItemInterface {\n value: any\n label?: string\n icon?: string\n tootTip?: string\n selected?: string\n disabled?: string\n}\n\nexport class ListItem implements ListItemInterface {\n\n constructor(\n public value = '',\n public label?: string,\n public icon?: string,\n public tootTip?: string,\n public selected?: string,\n public disabled?: string,\n ) {}\n\n static adapt(item?: any): ListItem {\n\n return new ListItem(\n item?.value,\n (item?.label) ? item.label : (item?.icon) ? '' : item?.value,\n item?.icon,\n (item?.tootTip) ? item.tootTip : (item?.label) ? item.label : item?.value,\n item?.selected,\n item?.disabled,\n )\n\n }\n\n}\n\n\n","import { Component, Input, OnDestroy, OnInit, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormBuilder, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ListItem } from './models/list-item.model';\nimport { Subscription } from 'rxjs';\nimport { TooltipPosition } from '@angular/material/tooltip';\n\n@Component({\n selector: 'app-button-toggle-input',\n templateUrl: './button-toggle-input.component.html',\n styleUrls: ['./button-toggle-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ButtonToggleInputComponent),\n multi: true\n }\n ],\n standalone: false\n})\nexport class ButtonToggleInputComponent implements OnInit, OnDestroy, ControlValueAccessor {\n\n @Input() multiple = false\n\n @Input() toolTips = false\n @Input() toolTipPosition: TooltipPosition = 'above'\n @Input() toolTipShowDelay = 1\n\n @Input() color = \"#333333\";\n\n @Input() lightColor = \"white\";\n @Input() darkColor = \"black\";\n\n private _noBorder: boolean = false;\n\n @Input()\n set noBorder(value: any) {\n this._noBorder = value !== null && `${value}` !== 'false';\n }\n\n get noBorder(): boolean {\n return this._noBorder;\n }\n\n private _iconPrefix: boolean = true;\n\n @Input()\n set iconPrefix(value: any) {\n this._iconPrefix = (value !== undefined) ? value : false\n }\n\n get iconPrefix(): boolean {\n return this._iconPrefix\n }\n\n private _iconSuffix: boolean = false;\n\n @Input()\n set iconSuffix(value: any) {\n this._iconSuffix = (value !== undefined) ? value : false\n this.iconPrefix = !this.iconSuffix\n }\n\n get iconSuffix(): boolean {\n return this._iconSuffix\n }\n\n private _fullWidth: boolean = false;\n\n @Input()\n set fullWidth(value: any) {\n this._fullWidth = value !== null && `${value}` !== 'false';\n }\n\n get fullWidth(): boolean {\n return this._fullWidth\n }\n\n formInitialized = false\n\n isArrayOfStrings = (arr: any[]) => {\n const isArray = Array.isArray(arr) && arr.every(item => typeof item === 'string');\n return (arr.length > 0) ? isArray : false\n }\n\n hasLabels = false\n hasIcons = false\n\n _data: ListItem[] = []\n @Input() set data(value: any[]) {\n\n const isString = this.isArrayOfStrings(value);\n this._data = (isString) ? value.map(item => ListItem.adapt({ value: item, label: item })) : value.map(item => ListItem.adapt(item))\n\n this.hasLabels = this.data.some(item => item['label'])\n this.hasIcons = this.data.some((item) => item[\"icon\"])\n\n }\n\n subscription = new Subscription()\n\n get selected() {\n return this.data.filter(item => item.selected).map(item => item.value)\n }\n\n get hasSelected() {\n return (this.selected.length > 0)\n }\n\n get data() {\n return this._data\n }\n\n sample = \"orange\"\n test = 'red'\n\n fb = inject(FormBuilder)\n\n display = this.fb.control<string|string[]|null>(null)\n\n disabled = false\n\n onChange: any = () => {}\n onTouch: any = () => {}\n\n constructor() { }\n\n ngOnInit() {\n\n this.subscription.add(\n this.display.valueChanges.subscribe(data => this.onChange(data))\n )\n\n }\n\n writeValue(value: string[]){\n\n if(!this.formInitialized) {\n this.display.patchValue(this.selected, { emitEvent: false })\n } else {\n const valuePatch = (value) ? (this.multiple) ? value : value[0] : null\n this.display.patchValue(valuePatch, { emitEvent: false })\n }\n\n this.formInitialized = true\n\n }\n\n registerOnChange(fn: any){\n this.onChange = fn\n }\n\n registerOnTouched(fn: any){\n this.onTouch = fn\n }\n\n setDisabledState(isDisabled: boolean) {\n\n this.disabled = isDisabled\n\n if(this.disabled) {\n this.display.disable()\n } else {\n this.display.enable()\n }\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe()\n }\n\n}\n","<mat-button-toggle-group\n style=\"height: 44px;\"\n [class.stretch]=\"fullWidth\"\n [style.background-color]=\"(noBorder) ? '' : 'white'\"\n [style.border-radius]=\"(noBorder) ? 'none' : '5rem'\"\n [style.border]=\"(noBorder) ? 'none' : ''\"\n [formControl]=\"display\"\n [multiple]=\"multiple\"\n >\n @for (item of data; track item) {\n <mat-button-toggle\n [disableRipple]=\"true\"\n color=\"primary\"\n style=\"border-radius: 5rem;\"\n [style.flex]=\"(fullWidth) ? '1' : ''\"\n [style.opacity]=\"disabled ? '0.3' : ''\"\n [style.padding-left]=\"(hasLabels && !fullWidth) ? '.5rem' : ''\"\n [style.padding-right]=\"(hasLabels && !fullWidth)? '.5rem' : ''\"\n [value]=\"item.value\"\n [matTooltip]=\"(toolTips) ? item.tootTip : ''\"\n [matTooltipPosition]=\"toolTipPosition\"\n [matTooltipShowDelay]=\"toolTipShowDelay * 1000\"\n [disabled]=\"item.disabled\"\n >\n <div\n style=\"display: flex; gap: 0.5rem; padding-top: 0.25rem\"\n [style.padding-top]=\"iconSuffix && (hasIcons && hasLabels) ? '' : '.25rem'\">\n @if (hasIcons && iconPrefix) {\n <div class=\"icon\">\n <mat-icon>{{item.icon}}</mat-icon>\n </div>\n }\n @if (item.label !== '') {\n <div class=\"overflow-content\">{{ item.label }}</div>\n }\n @if (hasIcons && iconSuffix) {\n <div class=\"icon\">\n <mat-icon>{{item.icon}}</mat-icon>\n </div>\n }\n </div>\n </mat-button-toggle>\n }\n</mat-button-toggle-group>\n","import { ChangeDetectionStrategy, Component, OnInit, inject } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\n\n@Component({\n selector: 'app-button-toggle-demo',\n templateUrl: './button-toggle-input-demo.component.html',\n styleUrls: ['./button-toggle-input-demo.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ButtonToggleDemoComponent implements OnInit {\n\n fb = inject(FormBuilder)\n\n type = 'icons'\n\n data_1 = [\n {id: 1, icon: 'home', value: 'option_1', disabled: true },\n {id: 2, icon: 'layers', value: 'option_2'},\n {id: 3, icon: 'add', value: 'option_3' },\n {id: 3, icon: 'build', value: 'option_4', disabled: true },\n {id: 3, icon: 'list', value: 'option_5', selected: true },\n {id: 3, icon: 'business', value: 'option_6'},\n ]\n\n data_2 = [\n {id: 1, label: 'Home', value: 'option_1', disabled: true },\n {id: 2, label: 'Samples', value: 'option_2' },\n {id: 3, label: 'Demos 1 is here', value: 'option_3' },\n {id: 3, label: 'Demos 2A', value: 'option_4', disabled: true },\n {id: 3, label: 'Demos 2B', value: 'option_5', selected: true },\n {id: 3, label: 'Demos 3', value: 'option_6' },\n ]\n\n data_3 = [\n {id: 1, label: 'Home', icon: 'home', value: 'option_1', disabled: true },\n {id: 2, label: 'Samples', icon: 'layers', value: 'option_2'},\n {id: 3, label: 'Demos 1', icon: 'add', value: 'option_3' },\n {id: 3, label: 'Demos 2A', icon: 'network', value: 'option_4', disabled: true },\n {id: 3, label: 'Demos 2B', icon: 'list', value: 'option_5', selected: true },\n {id: 3, label: 'Demos 3', icon: 'business', value: 'option_6'},\n ]\n\n data: any[] = this.data_1\n\n selectionControl_1 = this.fb.control<any>(null)\n selectionControl_2 = this.fb.control<any>(null)\n\n changeDetection_1 = this.fb.control(true)\n changeDetection_2 = this.fb.control(false)\n\n constructor() { }\n\n ngOnInit() {\n\n this.selectionControl_1.valueChanges.subscribe(data => {\n if(this.changeDetection_1.value) console.log('CHANGE:',data)\n })\n\n this.selectionControl_2.valueChanges.subscribe(data => {\n if(this.changeDetection_2.value) console.log('CHANGE:',data)\n })\n\n }\n\n onPerformPatch() {\n this.selectionControl_1.patchValue(['option_3'])\n this.selectionControl_2.patchValue(['option_3', 'option_5'])\n }\n\n onChangeDataType(type: string) {\n if(type === 'icons') {\n this.data = this.data_1\n } else if(type === 'labels') {\n this.data = this.data_2\n } else {\n this.data = this.data_3\n }\n }\n\n // DISABLE\n onDisabled_1(disable: boolean) {\n\n if(disable) {\n this.selectionControl_1.disable()\n } else {\n this.selectionControl_1.enable()\n }\n\n }\n\n onDisabled_2(disable: boolean) {\n\n if(disable) {\n this.selectionControl_2.disable()\n } else {\n this.selectionControl_2.enable()\n }\n\n }\n\n}\n","<h1 style=\"flex: 1;\">Button Toggle Input</h1>\n\n\n<div style=\"display: flex; flex-direction: column; margin-top: 1rem;\">\n <div style=\"flex:1; text-align: right;\">\n <div style=\"display: flex; gap: 2rem; flex-direction: row-reverse;\">\n <mat-button-toggle (click)=\"onPerformPatch()\">Patch</mat-button-toggle>\n <mat-button-toggle-group #varTypes=\"matButtonToggleGroup\" (change)=\"onChangeDataType(varTypes.value)\">\n <mat-button-toggle value=\"icons\" checked=\"true\">Icons</mat-button-toggle>\n <mat-button-toggle value=\"labels\" checked=\"false\">Labels</mat-button-toggle>\n <mat-button-toggle value=\"combo\" checked=\"false\">Combo</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <!-- MAIN DEMOS -->\n <div style=\"margin: 1rem; margin-right: 0;\">\n <h3 style=\"margin-bottom: 0;\">Button Toggle Selection - {{ varTypes.value | uppercase }}</h3>\n\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_1.reset()\">Reset</button>\n </div>\n\n <div style=\"margin-top: 1rem;\">\n <app-button-toggle-input\n [formControl]=\"selectionControl_1\"\n [data]=\"data\"\n [toolTips]=\"tooltip1.checked\"\n [fullWidth]=\"width1.value\"\n [noBorder]=\"!border1.checked\"\n [iconSuffix]=\"suffix1.checked\"\n ></app-button-toggle-input>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_1\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #disable1 (change)=\"onDisabled_1(disable1.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n <mat-slide-toggle #suffix1>Icon Suffix</mat-slide-toggle>\n <mat-slide-toggle #tooltip1>ToolTip</mat-slide-toggle>\n <mat-slide-toggle #border1 checked=\"true\">Border</mat-slide-toggle>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <div>\n Single Selection<br>\n ToolTips<br>\n </div>\n <span style=\"flex:1\"></span>\n <div>\n <mat-button-toggle-group #width1=\"matButtonToggleGroup\">\n <mat-button-toggle value=\"false\" checked=\"false\">Normal Width</mat-button-toggle>\n <mat-button-toggle value=\"true\" checked=\"true\">Full Width</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n </div>\n\n\n <div style=\"margin: 1rem; margin-right: 0;\">\n <div style=\"display: flex;\">\n <span style=\"flex:1\"></span>\n <button mat-button (click)=\"selectionControl_2.reset()\">Reset</button>\n </div>\n\n <div style=\"margin-top: 1rem;\">\n\n <app-button-toggle-input\n [formControl]=\"selectionControl_2\"\n [data]=\"data\"\n [toolTips]=\"tooltip2.checked\"\n toolTipPosition=\"above\"\n [multiple]=\"true\"\n [fullWidth]=\"width2.value\"\n [noBorder]=\"!border2.checked\"\n [iconSuffix]=\"suffix2.checked\"\n ></app-button-toggle-input>\n\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <mat-slide-toggle [formControl]=\"changeDetection_2\">Change Detection</mat-slide-toggle>\n <mat-slide-toggle #disable2 (change)=\"onDisabled_2(disable2.checked)\">Disable</mat-slide-toggle>\n <span style=\"flex:1\"></span>\n <mat-slide-toggle #suffix2>Icon Suffix</mat-slide-toggle>\n <mat-slide-toggle #tooltip2>ToolTip</mat-slide-toggle>\n <mat-slide-toggle #border2 checked=\"true\">Border</mat-slide-toggle>\n </div>\n\n <div style=\"display: flex; gap: 2rem; margin-top: 2rem;\">\n <div>\n Multiple Selection<br>\n ToolTips<br>\n ToolTip Position ABOVE<br>\n </div>\n <span style=\"flex:1\"></span>\n <div>\n <mat-button-toggle-group #width2=\"matButtonToggleGroup\">\n <mat-button-toggle value=\"false\" checked=\"false\">Normal Width</mat-button-toggle>\n <mat-button-toggle value=\"true\" checked=\"true\">Full Width</mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n </div>\n\n <div style=\"margin-top: .5rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n </div>\n </div>\n\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonToggleInputComponent } from './button-toggle-input.component';\nimport { ButtonToggleDemoComponent } from './button-toggle-input-demo/button-toggle-input-demo.component';\n\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n ReactiveFormsModule,\n MatButtonToggleModule,\n MatSlideToggleModule,\n MatDividerModule,\n ],\n declarations: [\n ButtonToggleInputComponent,\n ButtonToggleDemoComponent\n ],\n exports: [\n ButtonToggleInputComponent,\n ButtonToggleDemoComponent\n ]\n})\nexport class ButtonToggleInputModule { }\n","/*\n * Public API Surface of button-toggle-input\n */\n\nexport * from './lib/button-toggle-input-demo/button-toggle-input-demo.component';\n\nexport * from './lib/button-toggle-input.module';\nexport * from './lib/button-toggle-input.component';\n\nexport * from './lib/models/list-item.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i4","i6.ButtonToggleInputComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "button-toggle-input",
|
|
3
|
-
"version": "15.0.
|
|
3
|
+
"version": "15.0.4",
|
|
4
|
+
"homepage": "https://wavecoders.ca",
|
|
5
|
+
"author": "Mike Bonifacio <wavecoders@gmail.com> (http://wavecoders@gmail.com/)",
|
|
6
|
+
"description": "This is an Angular Module containing Components/Services using Material",
|
|
7
|
+
"funding": [
|
|
8
|
+
{
|
|
9
|
+
"type": "individual",
|
|
10
|
+
"url": "http://wavecoders.ca/donate"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
4
13
|
"peerDependencies": {
|
|
5
14
|
"@angular/common": "^15.2.0",
|
|
6
15
|
"@angular/core": "^15.2.0"
|
|
@@ -15,15 +24,13 @@
|
|
|
15
24
|
"entryFile": "src/public-api.ts"
|
|
16
25
|
},
|
|
17
26
|
"module": "fesm2022/button-toggle-input.mjs",
|
|
18
|
-
"typings": "
|
|
27
|
+
"typings": "types/button-toggle-input.d.ts",
|
|
19
28
|
"exports": {
|
|
20
29
|
"./package.json": {
|
|
21
30
|
"default": "./package.json"
|
|
22
31
|
},
|
|
23
32
|
".": {
|
|
24
|
-
"types": "./
|
|
25
|
-
"esm2022": "./esm2022/button-toggle-input.mjs",
|
|
26
|
-
"esm": "./esm2022/button-toggle-input.mjs",
|
|
33
|
+
"types": "./types/button-toggle-input.d.ts",
|
|
27
34
|
"default": "./fesm2022/button-toggle-input.mjs"
|
|
28
35
|
}
|
|
29
36
|
}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import * as _angular_forms from '@angular/forms';
|
|
2
|
+
import { FormBuilder, ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { OnInit, OnDestroy } from '@angular/core';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
import * as i7 from '@angular/material/tooltip';
|
|
7
|
+
import { TooltipPosition } from '@angular/material/tooltip';
|
|
8
|
+
import * as i3 from '@angular/common';
|
|
9
|
+
import * as i5 from '@angular/material/icon';
|
|
10
|
+
import * as i6 from '@angular/material/button';
|
|
11
|
+
import * as i8 from '@angular/material/button-toggle';
|
|
12
|
+
import * as i9 from '@angular/material/slide-toggle';
|
|
13
|
+
import * as i10 from '@angular/material/divider';
|
|
14
|
+
|
|
15
|
+
declare class ButtonToggleDemoComponent implements OnInit {
|
|
16
|
+
fb: FormBuilder;
|
|
17
|
+
type: string;
|
|
18
|
+
data_1: ({
|
|
19
|
+
id: number;
|
|
20
|
+
icon: string;
|
|
21
|
+
value: string;
|
|
22
|
+
disabled: boolean;
|
|
23
|
+
selected?: undefined;
|
|
24
|
+
} | {
|
|
25
|
+
id: number;
|
|
26
|
+
icon: string;
|
|
27
|
+
value: string;
|
|
28
|
+
disabled?: undefined;
|
|
29
|
+
selected?: undefined;
|
|
30
|
+
} | {
|
|
31
|
+
id: number;
|
|
32
|
+
icon: string;
|
|
33
|
+
value: string;
|
|
34
|
+
selected: boolean;
|
|
35
|
+
disabled?: undefined;
|
|
36
|
+
})[];
|
|
37
|
+
data_2: ({
|
|
38
|
+
id: number;
|
|
39
|
+
label: string;
|
|
40
|
+
value: string;
|
|
41
|
+
disabled: boolean;
|
|
42
|
+
selected?: undefined;
|
|
43
|
+
} | {
|
|
44
|
+
id: number;
|
|
45
|
+
label: string;
|
|
46
|
+
value: string;
|
|
47
|
+
disabled?: undefined;
|
|
48
|
+
selected?: undefined;
|
|
49
|
+
} | {
|
|
50
|
+
id: number;
|
|
51
|
+
label: string;
|
|
52
|
+
value: string;
|
|
53
|
+
selected: boolean;
|
|
54
|
+
disabled?: undefined;
|
|
55
|
+
})[];
|
|
56
|
+
data_3: ({
|
|
57
|
+
id: number;
|
|
58
|
+
label: string;
|
|
59
|
+
icon: string;
|
|
60
|
+
value: string;
|
|
61
|
+
disabled: boolean;
|
|
62
|
+
selected?: undefined;
|
|
63
|
+
} | {
|
|
64
|
+
id: number;
|
|
65
|
+
label: string;
|
|
66
|
+
icon: string;
|
|
67
|
+
value: string;
|
|
68
|
+
disabled?: undefined;
|
|
69
|
+
selected?: undefined;
|
|
70
|
+
} | {
|
|
71
|
+
id: number;
|
|
72
|
+
label: string;
|
|
73
|
+
icon: string;
|
|
74
|
+
value: string;
|
|
75
|
+
selected: boolean;
|
|
76
|
+
disabled?: undefined;
|
|
77
|
+
})[];
|
|
78
|
+
data: any[];
|
|
79
|
+
selectionControl_1: _angular_forms.FormControl<any>;
|
|
80
|
+
selectionControl_2: _angular_forms.FormControl<any>;
|
|
81
|
+
changeDetection_1: _angular_forms.FormControl<boolean | null>;
|
|
82
|
+
changeDetection_2: _angular_forms.FormControl<boolean | null>;
|
|
83
|
+
constructor();
|
|
84
|
+
ngOnInit(): void;
|
|
85
|
+
onPerformPatch(): void;
|
|
86
|
+
onChangeDataType(type: string): void;
|
|
87
|
+
onDisabled_1(disable: boolean): void;
|
|
88
|
+
onDisabled_2(disable: boolean): void;
|
|
89
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonToggleDemoComponent, never>;
|
|
90
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonToggleDemoComponent, "app-button-toggle-demo", never, {}, {}, never, never, false, never>;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
interface ListItemInterface {
|
|
94
|
+
value: any;
|
|
95
|
+
label?: string;
|
|
96
|
+
icon?: string;
|
|
97
|
+
tootTip?: string;
|
|
98
|
+
selected?: string;
|
|
99
|
+
disabled?: string;
|
|
100
|
+
}
|
|
101
|
+
declare class ListItem implements ListItemInterface {
|
|
102
|
+
value: string;
|
|
103
|
+
label?: string | undefined;
|
|
104
|
+
icon?: string | undefined;
|
|
105
|
+
tootTip?: string | undefined;
|
|
106
|
+
selected?: string | undefined;
|
|
107
|
+
disabled?: string | undefined;
|
|
108
|
+
constructor(value?: string, label?: string | undefined, icon?: string | undefined, tootTip?: string | undefined, selected?: string | undefined, disabled?: string | undefined);
|
|
109
|
+
static adapt(item?: any): ListItem;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
declare class ButtonToggleInputComponent implements OnInit, OnDestroy, ControlValueAccessor {
|
|
113
|
+
multiple: boolean;
|
|
114
|
+
toolTips: boolean;
|
|
115
|
+
toolTipPosition: TooltipPosition;
|
|
116
|
+
toolTipShowDelay: number;
|
|
117
|
+
color: string;
|
|
118
|
+
lightColor: string;
|
|
119
|
+
darkColor: string;
|
|
120
|
+
private _noBorder;
|
|
121
|
+
set noBorder(value: any);
|
|
122
|
+
get noBorder(): boolean;
|
|
123
|
+
private _iconPrefix;
|
|
124
|
+
set iconPrefix(value: any);
|
|
125
|
+
get iconPrefix(): boolean;
|
|
126
|
+
private _iconSuffix;
|
|
127
|
+
set iconSuffix(value: any);
|
|
128
|
+
get iconSuffix(): boolean;
|
|
129
|
+
private _fullWidth;
|
|
130
|
+
set fullWidth(value: any);
|
|
131
|
+
get fullWidth(): boolean;
|
|
132
|
+
formInitialized: boolean;
|
|
133
|
+
isArrayOfStrings: (arr: any[]) => boolean;
|
|
134
|
+
hasLabels: boolean;
|
|
135
|
+
hasIcons: boolean;
|
|
136
|
+
_data: ListItem[];
|
|
137
|
+
set data(value: any[]);
|
|
138
|
+
subscription: Subscription;
|
|
139
|
+
get selected(): any[];
|
|
140
|
+
get hasSelected(): boolean;
|
|
141
|
+
get data(): any[];
|
|
142
|
+
sample: string;
|
|
143
|
+
test: string;
|
|
144
|
+
fb: FormBuilder;
|
|
145
|
+
display: _angular_forms.FormControl<string | string[] | null>;
|
|
146
|
+
disabled: boolean;
|
|
147
|
+
onChange: any;
|
|
148
|
+
onTouch: any;
|
|
149
|
+
constructor();
|
|
150
|
+
ngOnInit(): void;
|
|
151
|
+
writeValue(value: string[]): void;
|
|
152
|
+
registerOnChange(fn: any): void;
|
|
153
|
+
registerOnTouched(fn: any): void;
|
|
154
|
+
setDisabledState(isDisabled: boolean): void;
|
|
155
|
+
ngOnDestroy(): void;
|
|
156
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonToggleInputComponent, never>;
|
|
157
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonToggleInputComponent, "app-button-toggle-input", never, { "multiple": { "alias": "multiple"; "required": false; }; "toolTips": { "alias": "toolTips"; "required": false; }; "toolTipPosition": { "alias": "toolTipPosition"; "required": false; }; "toolTipShowDelay": { "alias": "toolTipShowDelay"; "required": false; }; "color": { "alias": "color"; "required": false; }; "lightColor": { "alias": "lightColor"; "required": false; }; "darkColor": { "alias": "darkColor"; "required": false; }; "noBorder": { "alias": "noBorder"; "required": false; }; "iconPrefix": { "alias": "iconPrefix"; "required": false; }; "iconSuffix": { "alias": "iconSuffix"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "data": { "alias": "data"; "required": false; }; }, {}, never, never, false, never>;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
declare class ButtonToggleInputModule {
|
|
161
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonToggleInputModule, never>;
|
|
162
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ButtonToggleInputModule, [typeof ButtonToggleInputComponent, typeof ButtonToggleDemoComponent], [typeof i3.CommonModule, typeof _angular_forms.FormsModule, typeof i5.MatIconModule, typeof i6.MatButtonModule, typeof i7.MatTooltipModule, typeof _angular_forms.ReactiveFormsModule, typeof i8.MatButtonToggleModule, typeof i9.MatSlideToggleModule, typeof i10.MatDividerModule], [typeof ButtonToggleInputComponent, typeof ButtonToggleDemoComponent]>;
|
|
163
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<ButtonToggleInputModule>;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export { ButtonToggleDemoComponent, ButtonToggleInputComponent, ButtonToggleInputModule, ListItem };
|
|
167
|
+
export type { ListItemInterface };
|
|
Binary file
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXRvZ2dsZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J1dHRvbi10b2dnbGUtaW5wdXQvc3JjL2J1dHRvbi10b2dnbGUtaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|