@seniorsistemas/angular-components 17.27.1-feature-sds-110-35ee9b4f → 17.27.1-feature-sds-110-c2d4f9d4
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/button/lib/button/button.component.d.ts +1 -1
- package/checkbox/lib/checkbox/checkbox.component.d.ts +11 -13
- package/checkbox/public-api.d.ts +1 -4
- package/checkbox-list/index.d.ts +5 -0
- package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +21 -0
- package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +9 -0
- package/checkbox-list/lib/checkbox-list/models/checkbox-list-data.d.ts +5 -0
- package/checkbox-list/lib/checkbox-list/models/checkbox-list-state.d.ts +7 -0
- package/checkbox-list/package.json +3 -0
- package/checkbox-list/public-api.d.ts +4 -0
- package/dynamic-form/lib/dynamic-form/dynamic-form.module.d.ts +35 -36
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/checkbox-field.d.ts +3 -3
- package/dynamic-form/lib/dynamic-form/form-field/configurations/fields/select-field.d.ts +2 -0
- package/fesm2022/seniorsistemas-angular-components-button.mjs +4 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +151 -0
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +33 -110
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +19 -22
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +7 -7
- package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs +65 -0
- package/fesm2022/seniorsistemas-angular-components-interactive-content.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +145 -0
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-select.mjs +741 -0
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -0
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +4 -5
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +8 -8
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +7 -7
- package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
- package/fieldset/lib/fieldset/fieldset.component.d.ts +1 -1
- package/fieldset/lib/fieldset/fieldset.module.d.ts +2 -2
- package/package.json +41 -21
- package/paginator/index.d.ts +5 -0
- package/paginator/lib/models/paginator.models.d.ts +14 -0
- package/paginator/lib/paginator/paginator.component.d.ts +30 -0
- package/paginator/package.json +3 -0
- package/paginator/public-api.d.ts +2 -0
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +3 -3
- package/table-header/lib/table-header/table-header-checkox.module.d.ts +2 -2
- package/tailwind.css +263 -0
- package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +2 -2
- package/accessibility-events/index.d.ts +0 -5
- package/accessibility-events/lib/accessibility-events/accessibility-events.module.d.ts +0 -8
- package/accessibility-events/lib/accessibility-events/directives/accessibility-event.directive.d.ts +0 -15
- package/accessibility-events/package.json +0 -3
- package/accessibility-events/public-api.d.ts +0 -2
- package/checkbox/lib/checkbox/checkbox.module.d.ts +0 -9
- package/checkbox/lib/checkbox/models/checkbox-data.d.ts +0 -5
- package/checkbox/lib/checkbox/models/checkbox-state.d.ts +0 -7
- package/fesm2022/seniorsistemas-angular-components-accessibility-events.mjs +0 -77
- package/fesm2022/seniorsistemas-angular-components-accessibility-events.mjs.map +0 -1
|
@@ -21,7 +21,7 @@ export declare class ButtonComponent implements OnChanges {
|
|
|
21
21
|
type?: string | undefined;
|
|
22
22
|
priority?: ButtonPriority;
|
|
23
23
|
menuOptions: TieredMenuItemData[];
|
|
24
|
-
size?:
|
|
24
|
+
size?: 'default' | 'small';
|
|
25
25
|
slide: boolean;
|
|
26
26
|
animation?: ButtonAnimations;
|
|
27
27
|
badge?: ButtonBadgeConfig;
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import { ControlValueAccessor } from '@angular/forms';
|
|
2
|
-
import { CheckboxData } from './models/checkbox-data';
|
|
3
|
-
import { CheckboxChildren, CheckboxState } from './models/checkbox-state';
|
|
4
2
|
import * as i0 from "@angular/core";
|
|
5
3
|
export declare class CheckboxComponent implements ControlValueAccessor {
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
disabled: import("@angular/core").ModelSignal<boolean>;
|
|
5
|
+
checked: import("@angular/core").ModelSignal<boolean>;
|
|
6
|
+
indeterminate: import("@angular/core").ModelSignal<boolean>;
|
|
7
|
+
label: import("@angular/core").InputSignal<string>;
|
|
8
8
|
private _onChange;
|
|
9
9
|
private _onTouched;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
toggle(): void;
|
|
11
|
+
emit(value: boolean): void;
|
|
12
|
+
writeValue(value: any): void;
|
|
13
|
+
registerOnChange(onChange: (value: boolean) => void): void;
|
|
13
14
|
registerOnTouched(onTouched: () => void): void;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
updateParent(): void;
|
|
17
|
-
onCheckboxChange(): void;
|
|
18
|
-
private _toggleChildrenCheck;
|
|
15
|
+
setDisabledState(disabled: boolean): void;
|
|
16
|
+
onBlur(): void;
|
|
19
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "s-checkbox", never, { "
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "s-checkbox", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "checked": "checkedChange"; "indeterminate": "indeterminateChange"; }, never, never, true, never>;
|
|
21
19
|
}
|
package/checkbox/public-api.d.ts
CHANGED
|
@@ -1,4 +1 @@
|
|
|
1
|
-
export { CheckboxComponent } from
|
|
2
|
-
export { CheckboxModule } from './lib/checkbox/checkbox.module';
|
|
3
|
-
export type { CheckboxData } from './lib/checkbox/models/checkbox-data';
|
|
4
|
-
export type { CheckboxChildren, CheckboxState } from './lib/checkbox/models/checkbox-state';
|
|
1
|
+
export { CheckboxComponent } from "./lib/checkbox/checkbox.component";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
2
|
+
import { CheckboxListData } from './models/checkbox-list-data';
|
|
3
|
+
import { CheckboxListChildren, CheckboxListState } from './models/checkbox-list-state';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class CheckboxListComponent implements ControlValueAccessor {
|
|
6
|
+
data: CheckboxListData;
|
|
7
|
+
state: CheckboxListState;
|
|
8
|
+
private _onChange;
|
|
9
|
+
private _onTouched;
|
|
10
|
+
writeValue(value: CheckboxListState): void;
|
|
11
|
+
get renderType(): "inline" | "block";
|
|
12
|
+
registerOnChange(onChange: (value: CheckboxListState) => void): void;
|
|
13
|
+
registerOnTouched(onTouched: () => void): void;
|
|
14
|
+
private _initializeChildren;
|
|
15
|
+
getCheckboxState(item: CheckboxListChildren | undefined, label: string): {};
|
|
16
|
+
updateParent(): void;
|
|
17
|
+
onCheckboxChange(): void;
|
|
18
|
+
private _toggleChildrenCheck;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxListComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxListComponent, "s-checkbox-list", never, { "data": { "alias": "data"; "required": true; }; }, {}, never, never, false, never>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./checkbox-list.component";
|
|
3
|
+
import * as i2 from "@angular/common";
|
|
4
|
+
import * as i3 from "@angular/forms";
|
|
5
|
+
export declare class CheckboxListModule {
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxListModule, never>;
|
|
7
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CheckboxListModule, [typeof i1.CheckboxListComponent], [typeof i2.CommonModule, typeof i3.FormsModule], [typeof i1.CheckboxListComponent]>;
|
|
8
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CheckboxListModule>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { CheckboxListComponent } from './lib/checkbox-list/checkbox-list.component';
|
|
2
|
+
export { CheckboxListModule } from './lib/checkbox-list/checkbox-list.module';
|
|
3
|
+
export type { CheckboxListData } from './lib/checkbox-list/models/checkbox-list-data';
|
|
4
|
+
export type { CheckboxListChildren, CheckboxListState } from './lib/checkbox-list/models/checkbox-list-state';
|
|
@@ -40,44 +40,43 @@ import * as i37 from "@angular/common";
|
|
|
40
40
|
import * as i38 from "@seniorsistemas/angular-components/control-errors";
|
|
41
41
|
import * as i39 from "@seniorsistemas/angular-components/country-phone-picker";
|
|
42
42
|
import * as i40 from "primeng/dialog";
|
|
43
|
-
import * as i41 from "
|
|
44
|
-
import * as i42 from "@
|
|
45
|
-
import * as i43 from "
|
|
46
|
-
import * as i44 from "
|
|
47
|
-
import * as i45 from "primeng/
|
|
48
|
-
import * as i46 from "primeng/
|
|
49
|
-
import * as i47 from "
|
|
50
|
-
import * as i48 from "@seniorsistemas/angular-components/
|
|
51
|
-
import * as i49 from "@seniorsistemas/angular-components/
|
|
52
|
-
import * as i50 from "
|
|
53
|
-
import * as i51 from "primeng/
|
|
54
|
-
import * as i52 from "primeng/
|
|
55
|
-
import * as i53 from "primeng/
|
|
56
|
-
import * as i54 from "
|
|
57
|
-
import * as i55 from "@seniorsistemas/angular-components/
|
|
58
|
-
import * as i56 from "@seniorsistemas/angular-components/
|
|
59
|
-
import * as i57 from "@seniorsistemas/angular-components/
|
|
60
|
-
import * as i58 from "@seniorsistemas/angular-components/
|
|
61
|
-
import * as i59 from "@seniorsistemas/angular-components/
|
|
62
|
-
import * as i60 from "@seniorsistemas/angular-components/
|
|
63
|
-
import * as i61 from "@seniorsistemas/angular-components/
|
|
64
|
-
import * as i62 from "@seniorsistemas/angular-components/
|
|
65
|
-
import * as i63 from "@seniorsistemas/angular-components/
|
|
66
|
-
import * as i64 from "
|
|
67
|
-
import * as i65 from "
|
|
68
|
-
import * as i66 from "
|
|
69
|
-
import * as i67 from "
|
|
70
|
-
import * as i68 from "
|
|
71
|
-
import * as i69 from "
|
|
72
|
-
import * as i70 from "@seniorsistemas/angular-components/
|
|
73
|
-
import * as i71 from "
|
|
74
|
-
import * as i72 from "@seniorsistemas/angular-components/
|
|
75
|
-
import * as i73 from "@seniorsistemas/angular-components/
|
|
76
|
-
import * as i74 from "@seniorsistemas/angular-components/
|
|
77
|
-
import * as i75 from "@seniorsistemas/angular-components/star-rating";
|
|
43
|
+
import * as i41 from "@seniorsistemas/angular-components/empty-state";
|
|
44
|
+
import * as i42 from "@angular/forms";
|
|
45
|
+
import * as i43 from "angular2-hotkeys";
|
|
46
|
+
import * as i44 from "primeng/inputmask";
|
|
47
|
+
import * as i45 from "primeng/inputtext";
|
|
48
|
+
import * as i46 from "primeng/keyfilter";
|
|
49
|
+
import * as i47 from "@seniorsistemas/angular-components/loading-state";
|
|
50
|
+
import * as i48 from "@seniorsistemas/angular-components/locale";
|
|
51
|
+
import * as i49 from "@seniorsistemas/angular-components/localized-number-input";
|
|
52
|
+
import * as i50 from "primeng/panel";
|
|
53
|
+
import * as i51 from "primeng/button";
|
|
54
|
+
import * as i52 from "primeng/table";
|
|
55
|
+
import * as i53 from "primeng/radiobutton";
|
|
56
|
+
import * as i54 from "@seniorsistemas/angular-components/tooltip";
|
|
57
|
+
import * as i55 from "@seniorsistemas/angular-components/fieldset";
|
|
58
|
+
import * as i56 from "@seniorsistemas/angular-components/table-header";
|
|
59
|
+
import * as i57 from "@seniorsistemas/angular-components/file-upload";
|
|
60
|
+
import * as i58 from "@seniorsistemas/angular-components/info-sign";
|
|
61
|
+
import * as i59 from "@seniorsistemas/angular-components/mask";
|
|
62
|
+
import * as i60 from "@seniorsistemas/angular-components/mouse-events";
|
|
63
|
+
import * as i61 from "@seniorsistemas/angular-components/switch";
|
|
64
|
+
import * as i62 from "@seniorsistemas/angular-components/password-strength";
|
|
65
|
+
import * as i63 from "@seniorsistemas/angular-components/slider";
|
|
66
|
+
import * as i64 from "primeng/datepicker";
|
|
67
|
+
import * as i65 from "@ngx-translate/core";
|
|
68
|
+
import * as i66 from "primeng/multiselect";
|
|
69
|
+
import * as i67 from "@seniorsistemas/angular-components/profile-picture-picker";
|
|
70
|
+
import * as i68 from "@seniorsistemas/angular-components/number-input";
|
|
71
|
+
import * as i69 from "primeng/editor";
|
|
72
|
+
import * as i70 from "@seniorsistemas/angular-components/checkbox-list";
|
|
73
|
+
import * as i71 from "@seniorsistemas/angular-components/text-area-ia";
|
|
74
|
+
import * as i72 from "@seniorsistemas/angular-components/text-area";
|
|
75
|
+
import * as i73 from "@seniorsistemas/angular-components/star-rating";
|
|
76
|
+
import * as i74 from "@seniorsistemas/angular-components/select";
|
|
78
77
|
export declare class DynamicFormModule {
|
|
79
78
|
constructor(dynamicFormCache: DynamicFormCacheService);
|
|
80
79
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormModule, never>;
|
|
81
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<DynamicFormModule, [typeof i1.FieldLabelComponent, typeof i2.FileUploadFieldComponent, typeof i3.AutocompleteFieldComponent, typeof i4.BooleanFieldComponent, typeof i5.BooleanSwitchFieldComponent, typeof i6.CalendarFieldComponent, typeof i7.ChipsFieldComponent, typeof i8.CountryPhonePickerFieldComponent, typeof i9.DynamicFormComponent, typeof i10.DynamicFormDirective, typeof i11.FieldsetComponent, typeof i12.LookupComponent, typeof i13.LookupFieldComponent, typeof i14.RadioButtonComponent, typeof i15.RowComponent, typeof i16.SectionComponent, typeof i17.SelectFieldComponent, typeof i18.SliderFieldComponent, typeof i19.TextAreaFieldComponent, typeof i20.TextAreaIAFieldComponent, typeof i21.ButtonFieldComponent, typeof i22.TextFieldComponent, typeof i23.BignumberFieldComponent, typeof i24.ProfilePictureFieldComponent, typeof i25.PasswordFieldComponent, typeof i26.NumberFieldComponent, typeof i27.CurrencyFieldComponent, typeof i28.EditorFieldComponent, typeof i29.CheckboxFieldComponent, typeof i30.StarRatingFieldComponent], [typeof i31.AutoCompleteModule, typeof i32.BadgeModule, typeof i33.BignumberInputModule, typeof i34.ButtonModule, typeof i35.CalendarMaskModule, typeof i36.ChipsModule, typeof i37.CommonModule, typeof i38.ControlErrorsModule, typeof i39.CountryPhonePickerModule, typeof i40.DialogModule, typeof i41.
|
|
80
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<DynamicFormModule, [typeof i1.FieldLabelComponent, typeof i2.FileUploadFieldComponent, typeof i3.AutocompleteFieldComponent, typeof i4.BooleanFieldComponent, typeof i5.BooleanSwitchFieldComponent, typeof i6.CalendarFieldComponent, typeof i7.ChipsFieldComponent, typeof i8.CountryPhonePickerFieldComponent, typeof i9.DynamicFormComponent, typeof i10.DynamicFormDirective, typeof i11.FieldsetComponent, typeof i12.LookupComponent, typeof i13.LookupFieldComponent, typeof i14.RadioButtonComponent, typeof i15.RowComponent, typeof i16.SectionComponent, typeof i17.SelectFieldComponent, typeof i18.SliderFieldComponent, typeof i19.TextAreaFieldComponent, typeof i20.TextAreaIAFieldComponent, typeof i21.ButtonFieldComponent, typeof i22.TextFieldComponent, typeof i23.BignumberFieldComponent, typeof i24.ProfilePictureFieldComponent, typeof i25.PasswordFieldComponent, typeof i26.NumberFieldComponent, typeof i27.CurrencyFieldComponent, typeof i28.EditorFieldComponent, typeof i29.CheckboxFieldComponent, typeof i30.StarRatingFieldComponent], [typeof i31.AutoCompleteModule, typeof i32.BadgeModule, typeof i33.BignumberInputModule, typeof i34.ButtonModule, typeof i35.CalendarMaskModule, typeof i36.ChipsModule, typeof i37.CommonModule, typeof i38.ControlErrorsModule, typeof i39.CountryPhonePickerModule, typeof i40.DialogModule, typeof i41.EmptyStateModule, typeof i42.FormsModule, typeof i43.HotkeyModule, typeof i44.InputMaskModule, typeof i45.InputTextModule, typeof i46.KeyFilterModule, typeof i47.LoadingStateModule, typeof i48.LocaleModule, typeof i49.LocalizedNumberInputModule, typeof i50.PanelModule, typeof i51.ButtonModule, typeof i52.TableModule, typeof i53.RadioButtonModule, typeof i42.ReactiveFormsModule, typeof i54.TooltipModule, typeof i55.FieldsetModule, typeof i56.TableHeaderCheckboxModule, typeof i57.FileUploadModule, typeof i58.InfoSignModule, typeof i59.MaskFormatterModule, typeof i43.HotkeyModule, typeof i60.MouseEventsModule, typeof i61.SwitchModule, typeof i62.PasswordStrengthModule, typeof i63.SliderModule, typeof i64.DatePickerModule, typeof i65.TranslateModule, typeof i66.MultiSelectModule, typeof i67.ProfilePicturePickerModule, typeof i68.NumberInputModule, typeof i69.EditorModule, typeof i70.CheckboxListModule, typeof i71.TextAreaIAModule, typeof i72.TextAreaModule, typeof i73.StarRatingComponent, typeof i74.SelectComponent], [typeof i9.DynamicFormComponent, typeof i10.DynamicFormDirective, typeof i12.LookupComponent]>;
|
|
82
81
|
static ɵinj: i0.ɵɵInjectorDeclaration<DynamicFormModule>;
|
|
83
82
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CheckboxListData } from "@seniorsistemas/angular-components/checkbox-list";
|
|
2
2
|
import { Field, FieldConfig } from "./field";
|
|
3
3
|
export interface CheckboxFieldConfig extends FieldConfig {
|
|
4
|
-
data:
|
|
4
|
+
data: CheckboxListData;
|
|
5
5
|
}
|
|
6
6
|
export declare class CheckboxField extends Field {
|
|
7
|
-
data:
|
|
7
|
+
data: CheckboxListData;
|
|
8
8
|
constructor(config: CheckboxFieldConfig);
|
|
9
9
|
}
|
|
@@ -3,6 +3,7 @@ type selectOptionFn = () => SelectOption[];
|
|
|
3
3
|
export interface SelectFieldConfig extends FieldConfig {
|
|
4
4
|
appendTo?: string;
|
|
5
5
|
optionLabel?: string;
|
|
6
|
+
optionValue?: string;
|
|
6
7
|
dataKey?: string;
|
|
7
8
|
autoDisplayFirst?: boolean;
|
|
8
9
|
options: selectOptionFn | any[];
|
|
@@ -18,6 +19,7 @@ export interface SelectFieldConfig extends FieldConfig {
|
|
|
18
19
|
export declare class SelectField extends Field implements SelectFieldConfig {
|
|
19
20
|
appendTo?: string;
|
|
20
21
|
optionLabel?: string;
|
|
22
|
+
optionValue?: string;
|
|
21
23
|
dataKey?: string;
|
|
22
24
|
autoDisplayFirst?: boolean;
|
|
23
25
|
options: selectOptionFn | any[];
|
|
@@ -49,11 +49,13 @@ class ButtonComponent {
|
|
|
49
49
|
return this.animation === 'rotate';
|
|
50
50
|
}
|
|
51
51
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ButtonComponent, selector: "s-button", inputs: { id: "id", label: "label", tooltip: "tooltip", tooltipPosition: "tooltipPosition", iconClass: "iconClass", rightIconClass: "rightIconClass", caret: "caret", styleClass: "styleClass", baseZIndex: "baseZIndex", disabled: "disabled", auxiliary: "auxiliary", type: "type", priority: "priority", menuOptions: "menuOptions", size: "size", slide: "slide", animation: "animation", badge: "badge", iconColor: "iconColor" }, outputs: { clicked: "clicked" }, host: { properties: { "style.min-width": "this.minWidth" } }, usesOnChanges: true, ngImport: i0, template: "<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n [ngClass]=\"{\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': iconClass,\n 's-button-with-text': label,\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (click)=\"clicked.emit($event)\"\n>\n <div\n *ngIf=\"badge\"\n class=\"badge\"\n >\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon': true,\n 's-button-icon-margin-right': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text\"\n [ngClass]=\"{\n 's-button-icon-margin-right': !!rightIconClass || menuOptions.length,\n 's-button-icon-margin-left': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n", styles: [":host{display:inline-block}button{align-items:center;display:inline-flex;justify-content:center;border:1px solid;border-radius:4px;color:#fff;cursor:pointer;font-family:Open Sans,sans-serif;font-size:14px;height:35px;max-width:100%;min-width:40px;outline:none;overflow:visible;padding:5px 10px;position:relative;text-decoration:none;text-transform:none;transition:background-color .2s ease-out,border-color .2s ease-out,color .2s ease-out}button:disabled{background-image:none;cursor:text;filter:Alpha(Opacity=50);opacity:.5}button.s-button-auxiliary{border-radius:20px}button.s-button-size-small{height:25px;padding:0 20px}button.s-button-size-default{height:35px}button.s-button-with-text,button.s-button-with-icon.s-button-multiple{min-width:80px}button.s-button-with-icon.s-button-with-text.s-button-multiple{min-width:100px}button .s-button-icon,button .s-button-right-icon,button .s-button-menu-icon,button.s-button-with-icon.s-button-multiple:not(.s-button-with-text) .s-button-icon{align-items:center;display:inline-flex;justify-content:center}button.s-button-multiple .s-button-text{align-items:left;display:inline-flex;justify-content:left}button.s-button-with-icon .s-button-text{align-items:right;display:inline-flex;justify-content:right}button.s-button-priority-primary{background-color:#428bca;border-color:#428bca}button.s-button-priority-primary .s-button-icon,button.s-button-priority-primary .s-button-right-icon,button.s-button-priority-primary .s-button-text,button.s-button-priority-primary .s-button-menu-icon{color:#fff}button.s-button-priority-primary:hover{background-color:#2a6496}button.s-button-priority-primary:focus{background-color:#2a6496;border-color:#22dce6}button.s-button-priority-primary:active:not(:disabled),button.s-button-priority-primary.s-button-active:not(:disabled){background-color:#245682;border-color:#245682}button.s-button-priority-primary .menu-options-icon{color:#fff}button.s-button-priority-secondary{background-color:#7892a1;border-color:#7892a1}button.s-button-priority-secondary .s-button-icon,button.s-button-priority-secondary .s-button-right-icon,button.s-button-priority-secondary .s-button-text,button.s-button-priority-secondary .s-button-menu-icon{color:#fff}button.s-button-priority-secondary:hover{background-color:#546b79}button.s-button-priority-secondary:focus{background-color:#546b79;border-color:#22dce6}button.s-button-priority-secondary:active:not(:disabled),button.s-button-priority-secondary.s-button-active:not(:disabled){background-color:#495e6a;border-color:#495e6a}button.s-button-priority-secondary .menu-options-icon{color:#fff}button.s-button-priority-default{background-color:#fff;border-color:#ccc}button.s-button-priority-default .s-button-icon,button.s-button-priority-default .s-button-right-icon,button.s-button-priority-default .s-button-text,button.s-button-priority-default .s-button-menu-icon{color:#333}button.s-button-priority-default:hover{background-color:#d9d9d9}button.s-button-priority-default:focus{background-color:#d9d9d9;border-color:#22dce6}button.s-button-priority-default:active:not(:disabled),button.s-button-priority-default.s-button-active:not(:disabled){background-color:#ccc;border-color:#ccc}button.s-button-priority-default .menu-options-icon{color:#333}button.s-button-priority-link{background-color:transparent;border-color:transparent}button.s-button-priority-link .s-button-icon,button.s-button-priority-link .s-button-right-icon,button.s-button-priority-link .s-button-text,button.s-button-priority-link .s-button-menu-icon{color:#428bca}button.s-button-priority-link:hover{background-color:transparent}button.s-button-priority-link:hover .s-button-icon,button.s-button-priority-link:hover .s-button-right-icon,button.s-button-priority-link:hover .s-button-text,button.s-button-priority-link:hover .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:focus{background-color:transparent;border-color:#22dce6}button.s-button-priority-link:focus .s-button-icon,button.s-button-priority-link:focus .s-button-right-icon,button.s-button-priority-link:focus .s-button-text,button.s-button-priority-link:focus .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:active:not(:disabled),button.s-button-priority-link.s-button-active:not(:disabled){background-color:transparent;border-color:transparent}button.s-button-priority-link:active:not(:disabled) .s-button-icon,button.s-button-priority-link:active:not(:disabled) .s-button-right-icon,button.s-button-priority-link:active:not(:disabled) .s-button-text,button.s-button-priority-link:active:not(:disabled) .s-button-menu-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-right-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-text,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-menu-icon{color:#245682}.s-button-priority-danger{background-color:#9c3a3a;border-color:#9c3a3a}.s-button-priority-danger .s-button-icon,.s-button-priority-danger .s-button-right-icon,.s-button-priority-danger .s-button-text,.s-button-priority-danger .s-button-menu-icon{color:#fff}.s-button-priority-danger:hover{background-color:#642525}.s-button-priority-danger:focus{background-color:#642525;border-color:#22dce6}.s-button-priority-danger:active:not(:disabled),.s-button-priority-danger.s-button-active:not(:disabled){background-color:#521e1e;border-color:#521e1e}.s-button-priority-danger .menu-options-icon{color:#fff}.s-button-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-button-menu-icon{right:10px;transition:transform .2s ease-out}.s-button-icon-margin-left{margin-left:10px}.s-button-icon-margin-right{margin-right:10px}.s-button-active .s-button-menu-icon{transform:rotateX(180deg)}.s-button--slide.s-button-with-text,.s-button--slide.s-button-with-icon.s-button-multiple{min-width:40px}.s-button--slide .s-button-text{opacity:0;position:absolute;width:0}.s-button--slide:hover .s-button-text{opacity:1;position:relative;transition:1s ease;width:auto}.s-button--slide:hover.s-button--rotate-animation .s-button-icon,.s-button--slide:hover.s-button--rotate-animation .s-button-right-icon{transform:rotate(360deg);transition:1.5s ease}.badge{position:absolute;right:-10px;top:-10px;z-index:99}.menu-options-icon{color:#212533}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign"], outputs: ["selected"] }, { kind: "directive", type: i3.TieredMenuDirective, selector: "[sTieredMenu]", inputs: ["items", "focusedItem", "triggerEvent"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef"] }] });
|
|
52
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ButtonComponent, selector: "s-button", inputs: { id: "id", label: "label", tooltip: "tooltip", tooltipPosition: "tooltipPosition", iconClass: "iconClass", rightIconClass: "rightIconClass", caret: "caret", styleClass: "styleClass", baseZIndex: "baseZIndex", disabled: "disabled", auxiliary: "auxiliary", type: "type", priority: "priority", menuOptions: "menuOptions", size: "size", slide: "slide", animation: "animation", badge: "badge", iconColor: "iconColor" }, outputs: { clicked: "clicked" }, host: { properties: { "class.s-button-with-badge": "!!badge", "style.min-width": "this.minWidth" } }, usesOnChanges: true, ngImport: i0, template: "<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n [ngClass]=\"{\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': iconClass,\n 's-button-with-text': label,\n 's-button-only-icon': iconClass && !label,\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon': true,\n 's-button-icon-margin-right': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text\"\n [ngClass]=\"{\n 's-button-icon-margin-right': !!rightIconClass || menuOptions.length,\n 's-button-icon-margin-left': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"badge\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n", styles: [":host{display:inline-flex;position:relative}:host.s-button-with-badge{margin-right:-15px}button{align-items:center;display:inline-flex;justify-content:center;border:1px solid;border-radius:4px;color:#fff;cursor:pointer;font-family:Open Sans,sans-serif;font-size:14px;height:35px;max-width:100%;min-width:40px;outline:none;overflow:visible;padding:5px 10px;position:relative;text-decoration:none;text-transform:none;transition:background-color .2s ease-out,border-color .2s ease-out,color .2s ease-out}button:disabled{background-image:none;cursor:text;filter:Alpha(Opacity=50);opacity:.5}button.s-button-auxiliary{border-radius:20px}button.s-button-size-small{height:25px}button.s-button-size-small.s-button-only-icon{max-width:24px;max-height:24px;min-width:24px}button.s-button-size-default{height:35px}button.s-button-with-text,button.s-button-with-icon.s-button-multiple{min-width:80px}button.s-button-with-icon.s-button-with-text.s-button-multiple{min-width:100px}button.s-button-multiple.s-button-size-small.s-button-empty{width:25px;min-width:25px}button .s-button-icon,button .s-button-right-icon,button .s-button-menu-icon,button.s-button-with-icon.s-button-multiple:not(.s-button-with-text) .s-button-icon{align-items:center;display:inline-flex;justify-content:center}button.s-button-multiple .s-button-text{align-items:left;display:inline-flex;justify-content:left}button.s-button-with-icon .s-button-text{align-items:right;display:inline-flex;justify-content:right}button.s-button-priority-primary{background-color:#428bca;border-color:#428bca}button.s-button-priority-primary .s-button-icon,button.s-button-priority-primary .s-button-right-icon,button.s-button-priority-primary .s-button-text,button.s-button-priority-primary .s-button-menu-icon{color:#fff}button.s-button-priority-primary:hover{background-color:#2a6496}button.s-button-priority-primary:focus{background-color:#2a6496;border-color:#22dce6}button.s-button-priority-primary:active:not(:disabled),button.s-button-priority-primary.s-button-active:not(:disabled){background-color:#245682;border-color:#245682}button.s-button-priority-primary .menu-options-icon{color:#fff}button.s-button-priority-secondary{background-color:#7892a1;border-color:#7892a1}button.s-button-priority-secondary .s-button-icon,button.s-button-priority-secondary .s-button-right-icon,button.s-button-priority-secondary .s-button-text,button.s-button-priority-secondary .s-button-menu-icon{color:#fff}button.s-button-priority-secondary:hover{background-color:#546b79}button.s-button-priority-secondary:focus{background-color:#546b79;border-color:#22dce6}button.s-button-priority-secondary:active:not(:disabled),button.s-button-priority-secondary.s-button-active:not(:disabled){background-color:#495e6a;border-color:#495e6a}button.s-button-priority-secondary .menu-options-icon{color:#fff}button.s-button-priority-default{background-color:#fff;border-color:#ccc}button.s-button-priority-default .s-button-icon,button.s-button-priority-default .s-button-right-icon,button.s-button-priority-default .s-button-text,button.s-button-priority-default .s-button-menu-icon{color:#333}button.s-button-priority-default:hover{background-color:#d9d9d9}button.s-button-priority-default:focus{background-color:#d9d9d9;border-color:#22dce6}button.s-button-priority-default:active:not(:disabled),button.s-button-priority-default.s-button-active:not(:disabled){background-color:#ccc;border-color:#ccc}button.s-button-priority-default .menu-options-icon{color:#333}button.s-button-auxiliary.s-button-only-icon{border-radius:50%}button.s-button-priority-link{background-color:transparent;border-color:transparent}button.s-button-priority-link .s-button-icon,button.s-button-priority-link .s-button-right-icon,button.s-button-priority-link .s-button-text,button.s-button-priority-link .s-button-menu-icon{color:#428bca}button.s-button-priority-link:hover{background-color:transparent}button.s-button-priority-link:hover .s-button-icon,button.s-button-priority-link:hover .s-button-right-icon,button.s-button-priority-link:hover .s-button-text,button.s-button-priority-link:hover .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:focus{background-color:transparent;border-color:#22dce6}button.s-button-priority-link:focus .s-button-icon,button.s-button-priority-link:focus .s-button-right-icon,button.s-button-priority-link:focus .s-button-text,button.s-button-priority-link:focus .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:active:not(:disabled),button.s-button-priority-link.s-button-active:not(:disabled){background-color:transparent;border-color:transparent}button.s-button-priority-link:active:not(:disabled) .s-button-icon,button.s-button-priority-link:active:not(:disabled) .s-button-right-icon,button.s-button-priority-link:active:not(:disabled) .s-button-text,button.s-button-priority-link:active:not(:disabled) .s-button-menu-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-right-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-text,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-menu-icon{color:#245682}.s-button-priority-danger{background-color:#9c3a3a;border-color:#9c3a3a}.s-button-priority-danger .s-button-icon,.s-button-priority-danger .s-button-right-icon,.s-button-priority-danger .s-button-text,.s-button-priority-danger .s-button-menu-icon{color:#fff}.s-button-priority-danger:hover{background-color:#642525}.s-button-priority-danger:focus{background-color:#642525;border-color:#22dce6}.s-button-priority-danger:active:not(:disabled),.s-button-priority-danger.s-button-active:not(:disabled){background-color:#521e1e;border-color:#521e1e}.s-button-priority-danger .menu-options-icon{color:#fff}.s-button-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-button-menu-icon{right:10px;transition:transform .2s ease-out}.s-button-icon-margin-left{margin-left:10px}.s-button-icon-margin-right{margin-right:10px}.s-button-active .s-button-menu-icon{transform:rotateX(180deg)}.s-button--slide.s-button-with-text,.s-button--slide.s-button-with-icon.s-button-multiple{min-width:40px}.s-button--slide .s-button-text{opacity:0;position:absolute;width:0}.s-button--slide:hover .s-button-text{opacity:1;position:relative;transition:1s ease;width:auto}.s-button--slide:hover.s-button--rotate-animation .s-button-icon,.s-button--slide:hover.s-button--rotate-animation .s-button-right-icon{transform:rotate(360deg);transition:1.5s ease}.badge{z-index:99;position:relative;right:15px;bottom:16px}.menu-options-icon{color:#212533}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.BadgeComponent, selector: "s-badge", inputs: ["type", "color", "title", "text", "selectable", "iconClass", "iconPosition", "infoSign"], outputs: ["selected"] }, { kind: "directive", type: i3.TieredMenuDirective, selector: "[sTieredMenu]", inputs: ["items", "focusedItem", "triggerEvent"] }, { kind: "directive", type: i4.TooltipDirective, selector: "[sTooltip]", inputs: ["sTooltip", "tooltipPosition", "showDelay", "displayTime", "tooltipEvent", "escape", "visible", "mobileBehavior", "focusedInputRef"] }] });
|
|
53
53
|
}
|
|
54
54
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
55
55
|
type: Component,
|
|
56
|
-
args: [{ selector: 's-button',
|
|
56
|
+
args: [{ selector: 's-button', host: {
|
|
57
|
+
'[class.s-button-with-badge]': '!!badge'
|
|
58
|
+
}, template: "<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n [ngClass]=\"{\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': iconClass,\n 's-button-with-text': label,\n 's-button-only-icon': iconClass && !label,\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon': true,\n 's-button-icon-margin-right': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text\"\n [ngClass]=\"{\n 's-button-icon-margin-right': !!rightIconClass || menuOptions.length,\n 's-button-icon-margin-left': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"badge\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n", styles: [":host{display:inline-flex;position:relative}:host.s-button-with-badge{margin-right:-15px}button{align-items:center;display:inline-flex;justify-content:center;border:1px solid;border-radius:4px;color:#fff;cursor:pointer;font-family:Open Sans,sans-serif;font-size:14px;height:35px;max-width:100%;min-width:40px;outline:none;overflow:visible;padding:5px 10px;position:relative;text-decoration:none;text-transform:none;transition:background-color .2s ease-out,border-color .2s ease-out,color .2s ease-out}button:disabled{background-image:none;cursor:text;filter:Alpha(Opacity=50);opacity:.5}button.s-button-auxiliary{border-radius:20px}button.s-button-size-small{height:25px}button.s-button-size-small.s-button-only-icon{max-width:24px;max-height:24px;min-width:24px}button.s-button-size-default{height:35px}button.s-button-with-text,button.s-button-with-icon.s-button-multiple{min-width:80px}button.s-button-with-icon.s-button-with-text.s-button-multiple{min-width:100px}button.s-button-multiple.s-button-size-small.s-button-empty{width:25px;min-width:25px}button .s-button-icon,button .s-button-right-icon,button .s-button-menu-icon,button.s-button-with-icon.s-button-multiple:not(.s-button-with-text) .s-button-icon{align-items:center;display:inline-flex;justify-content:center}button.s-button-multiple .s-button-text{align-items:left;display:inline-flex;justify-content:left}button.s-button-with-icon .s-button-text{align-items:right;display:inline-flex;justify-content:right}button.s-button-priority-primary{background-color:#428bca;border-color:#428bca}button.s-button-priority-primary .s-button-icon,button.s-button-priority-primary .s-button-right-icon,button.s-button-priority-primary .s-button-text,button.s-button-priority-primary .s-button-menu-icon{color:#fff}button.s-button-priority-primary:hover{background-color:#2a6496}button.s-button-priority-primary:focus{background-color:#2a6496;border-color:#22dce6}button.s-button-priority-primary:active:not(:disabled),button.s-button-priority-primary.s-button-active:not(:disabled){background-color:#245682;border-color:#245682}button.s-button-priority-primary .menu-options-icon{color:#fff}button.s-button-priority-secondary{background-color:#7892a1;border-color:#7892a1}button.s-button-priority-secondary .s-button-icon,button.s-button-priority-secondary .s-button-right-icon,button.s-button-priority-secondary .s-button-text,button.s-button-priority-secondary .s-button-menu-icon{color:#fff}button.s-button-priority-secondary:hover{background-color:#546b79}button.s-button-priority-secondary:focus{background-color:#546b79;border-color:#22dce6}button.s-button-priority-secondary:active:not(:disabled),button.s-button-priority-secondary.s-button-active:not(:disabled){background-color:#495e6a;border-color:#495e6a}button.s-button-priority-secondary .menu-options-icon{color:#fff}button.s-button-priority-default{background-color:#fff;border-color:#ccc}button.s-button-priority-default .s-button-icon,button.s-button-priority-default .s-button-right-icon,button.s-button-priority-default .s-button-text,button.s-button-priority-default .s-button-menu-icon{color:#333}button.s-button-priority-default:hover{background-color:#d9d9d9}button.s-button-priority-default:focus{background-color:#d9d9d9;border-color:#22dce6}button.s-button-priority-default:active:not(:disabled),button.s-button-priority-default.s-button-active:not(:disabled){background-color:#ccc;border-color:#ccc}button.s-button-priority-default .menu-options-icon{color:#333}button.s-button-auxiliary.s-button-only-icon{border-radius:50%}button.s-button-priority-link{background-color:transparent;border-color:transparent}button.s-button-priority-link .s-button-icon,button.s-button-priority-link .s-button-right-icon,button.s-button-priority-link .s-button-text,button.s-button-priority-link .s-button-menu-icon{color:#428bca}button.s-button-priority-link:hover{background-color:transparent}button.s-button-priority-link:hover .s-button-icon,button.s-button-priority-link:hover .s-button-right-icon,button.s-button-priority-link:hover .s-button-text,button.s-button-priority-link:hover .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:focus{background-color:transparent;border-color:#22dce6}button.s-button-priority-link:focus .s-button-icon,button.s-button-priority-link:focus .s-button-right-icon,button.s-button-priority-link:focus .s-button-text,button.s-button-priority-link:focus .s-button-menu-icon{color:#2a6496}button.s-button-priority-link:active:not(:disabled),button.s-button-priority-link.s-button-active:not(:disabled){background-color:transparent;border-color:transparent}button.s-button-priority-link:active:not(:disabled) .s-button-icon,button.s-button-priority-link:active:not(:disabled) .s-button-right-icon,button.s-button-priority-link:active:not(:disabled) .s-button-text,button.s-button-priority-link:active:not(:disabled) .s-button-menu-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-right-icon,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-text,button.s-button-priority-link.s-button-active:not(:disabled) .s-button-menu-icon{color:#245682}.s-button-priority-danger{background-color:#9c3a3a;border-color:#9c3a3a}.s-button-priority-danger .s-button-icon,.s-button-priority-danger .s-button-right-icon,.s-button-priority-danger .s-button-text,.s-button-priority-danger .s-button-menu-icon{color:#fff}.s-button-priority-danger:hover{background-color:#642525}.s-button-priority-danger:focus{background-color:#642525;border-color:#22dce6}.s-button-priority-danger:active:not(:disabled),.s-button-priority-danger.s-button-active:not(:disabled){background-color:#521e1e;border-color:#521e1e}.s-button-priority-danger .menu-options-icon{color:#fff}.s-button-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.s-button-menu-icon{right:10px;transition:transform .2s ease-out}.s-button-icon-margin-left{margin-left:10px}.s-button-icon-margin-right{margin-right:10px}.s-button-active .s-button-menu-icon{transform:rotateX(180deg)}.s-button--slide.s-button-with-text,.s-button--slide.s-button-with-icon.s-button-multiple{min-width:40px}.s-button--slide .s-button-text{opacity:0;position:absolute;width:0}.s-button--slide:hover .s-button-text{opacity:1;position:relative;transition:1s ease;width:auto}.s-button--slide:hover.s-button--rotate-animation .s-button-icon,.s-button--slide:hover.s-button--rotate-animation .s-button-right-icon{transform:rotate(360deg);transition:1.5s ease}.badge{z-index:99;position:relative;right:15px;bottom:16px}.menu-options-icon{color:#212533}\n"] }]
|
|
57
59
|
}], propDecorators: { minWidth: [{
|
|
58
60
|
type: HostBinding,
|
|
59
61
|
args: ['style.min-width']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-button.mjs","sources":["../../projects/angular-components/button/src/lib/button/button.component.ts","../../projects/angular-components/button/src/lib/button/button.component.html","../../projects/angular-components/button/src/lib/button/button.module.ts","../../projects/angular-components/button/src/seniorsistemas-angular-components-button.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\n\nimport { ButtonAnimations } from './models/button-animations';\nimport { ButtonBadgeConfig } from './models/button-badge-config';\nimport { ButtonPriority } from './models/button-priority';\nimport { TooltipPositions } from '@seniorsistemas/angular-components/tooltip';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\nimport { randomHash } from '@seniorsistemas/angular-components/utils';\n\n@Component({\n selector: 's-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent implements OnChanges {\n @HostBinding('style.min-width')\n public minWidth = '40px';\n\n @Input()\n public id? = `s-button-${randomHash()}`;\n\n @Input()\n public label?: string;\n\n @Input()\n public tooltip?: string;\n\n @Input()\n public tooltipPosition: TooltipPositions = 'top';\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public rightIconClass?: string;\n\n @Input()\n public caret = true;\n\n @Input()\n public styleClass = '';\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public disabled = false;\n\n @Input()\n public auxiliary = false;\n\n @Input()\n public type? = 'button';\n\n @Input()\n public priority?: ButtonPriority = 'primary';\n\n @Input()\n public menuOptions: TieredMenuItemData[] = [];\n\n @Input()\n public size? = 'default';\n\n @Input()\n public slide = false;\n\n @Input()\n public animation?: ButtonAnimations;\n\n @Input()\n public badge?: ButtonBadgeConfig;\n\n @Input()\n public iconColor? = \"#212533\";\n\n @Output()\n public clicked: EventEmitter<any> = new EventEmitter();\n\n public validateSlideButton(): boolean {\n return !!(this.slide && (this.priority === 'default' || this.priority === 'link') && this.label?.length);\n }\n\n public ngOnChanges(_: SimpleChanges): void {\n const hasIcon = this.iconClass;\n const hasText = this.label;\n\n const isMultiple = this.menuOptions?.length;\n\n if (hasText || (hasIcon && isMultiple)) this.minWidth = '80px';\n if (hasText && hasIcon && isMultiple) this.minWidth = '100px';\n }\n\n public isRotateAnimation(): boolean {\n return this.animation === 'rotate';\n }\n}\n","<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n [ngClass]=\"{\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': iconClass,\n 's-button-with-text': label,\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (click)=\"clicked.emit($event)\"\n>\n <div\n *ngIf=\"badge\"\n class=\"badge\"\n >\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon': true,\n 's-button-icon-margin-right': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text\"\n [ngClass]=\"{\n 's-button-icon-margin-right': !!rightIconClass || menuOptions.length,\n 's-button-icon-margin-left': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { ButtonComponent } from './button.component';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { TieredMenuModule } from '@seniorsistemas/angular-components/tiered-menu';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n BadgeModule,\n TieredMenuModule,\n TooltipModule,\n ],\n declarations: [ButtonComponent],\n exports: [ButtonComponent],\n})\nexport class ButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-button.mjs","sources":["../../projects/angular-components/button/src/lib/button/button.component.ts","../../projects/angular-components/button/src/lib/button/button.component.html","../../projects/angular-components/button/src/lib/button/button.module.ts","../../projects/angular-components/button/src/seniorsistemas-angular-components-button.ts"],"sourcesContent":["import { Component, EventEmitter, HostBinding, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\n\nimport { ButtonAnimations } from './models/button-animations';\nimport { ButtonBadgeConfig } from './models/button-badge-config';\nimport { ButtonPriority } from './models/button-priority';\nimport { TooltipPositions } from '@seniorsistemas/angular-components/tooltip';\nimport { TieredMenuItemData } from '@seniorsistemas/angular-components/tiered-menu';\nimport { randomHash } from '@seniorsistemas/angular-components/utils';\n\n@Component({\n selector: 's-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n host: {\n '[class.s-button-with-badge]': '!!badge'\n }\n})\nexport class ButtonComponent implements OnChanges {\n @HostBinding('style.min-width')\n public minWidth = '40px';\n\n @Input()\n public id? = `s-button-${randomHash()}`;\n\n @Input()\n public label?: string;\n\n @Input()\n public tooltip?: string;\n\n @Input()\n public tooltipPosition: TooltipPositions = 'top';\n\n @Input()\n public iconClass?: string;\n\n @Input()\n public rightIconClass?: string;\n\n @Input()\n public caret = true;\n\n @Input()\n public styleClass = '';\n\n @Input()\n public baseZIndex = 0;\n\n @Input()\n public disabled = false;\n\n @Input()\n public auxiliary = false;\n\n @Input()\n public type? = 'button';\n\n @Input()\n public priority?: ButtonPriority = 'primary';\n\n @Input()\n public menuOptions: TieredMenuItemData[] = [];\n\n @Input()\n public size?: 'default' | 'small' = 'default';\n\n @Input()\n public slide = false;\n\n @Input()\n public animation?: ButtonAnimations;\n\n @Input()\n public badge?: ButtonBadgeConfig;\n\n @Input()\n public iconColor? = \"#212533\";\n\n @Output()\n public clicked: EventEmitter<any> = new EventEmitter();\n\n public validateSlideButton(): boolean {\n return !!(this.slide && (this.priority === 'default' || this.priority === 'link') && this.label?.length);\n }\n\n public ngOnChanges(_: SimpleChanges): void {\n const hasIcon = this.iconClass;\n const hasText = this.label;\n\n const isMultiple = this.menuOptions?.length;\n\n if (hasText || (hasIcon && isMultiple)) this.minWidth = '80px';\n if (hasText && hasIcon && isMultiple) this.minWidth = '100px';\n }\n\n public isRotateAnimation(): boolean {\n return this.animation === 'rotate';\n }\n}\n","<button\n [id]=\"id\"\n [type]=\"type\"\n [class]=\"styleClass\"\n [ngClass]=\"{\n 's-button-auxiliary': auxiliary,\n 's-button-with-icon': iconClass,\n 's-button-with-text': label,\n 's-button-only-icon': iconClass && !label,\n 's-button-empty': !iconClass && !label,\n 's-button-size-default': size === 'default',\n 's-button-size-small': size === 'small',\n 's-button-priority-default': priority === 'default',\n 's-button-priority-primary': priority === 'primary',\n 's-button-priority-secondary': priority === 'secondary',\n 's-button-priority-link': priority === 'link',\n 's-button-priority-danger': priority === 'danger',\n 's-button-multiple': (caret && menuOptions.length) || rightIconClass,\n 's-button--slide': validateSlideButton(),\n 's-button--rotate-animation': isRotateAnimation(),\n }\"\n sTieredMenu\n [items]=\"menuOptions\"\n [disabled]=\"disabled\"\n [sTooltip]=\"tooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n (click)=\"clicked.emit($event)\"\n>\n @if (iconClass) {\n <span\n [class]=\"iconClass\"\n [ngClass]=\"{\n 's-button-icon': true,\n 's-button-icon-margin-right': !label && menuOptions.length,\n }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if (label) {\n <span\n class=\"s-button-text\"\n [ngClass]=\"{\n 's-button-icon-margin-right': !!rightIconClass || menuOptions.length,\n 's-button-icon-margin-left': !!iconClass,\n }\"\n >\n {{ label }}\n </span>\n }\n <ng-content></ng-content>\n @if (rightIconClass) {\n <span\n [class]=\"rightIconClass\"\n [ngClass]=\"{ 's-button-right-icon': true }\"\n [ngStyle]=\"{ color: iconColor }\"\n aria-hidden=\"true\"\n >\n </span>\n }\n @if ((caret && menuOptions.length) || (menuOptions && menuOptions.length)) {\n <span\n class=\"menu-options-icon fa fa-fw fa-caret-down\"\n aria-hidden=\"true\"\n >\n </span>\n }\n</button>\n@if (badge) {\n <div class=\"badge\">\n <s-badge\n [color]=\"badge.color\"\n [text]=\"badge.text\"\n [iconClass]=\"badge.iconClass\"\n >\n </s-badge>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { ButtonComponent } from './button.component';\nimport { BadgeModule } from '@seniorsistemas/angular-components/badge';\nimport { TooltipModule } from '@seniorsistemas/angular-components/tooltip';\nimport { TieredMenuModule } from '@seniorsistemas/angular-components/tiered-menu';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n BadgeModule,\n TieredMenuModule,\n TooltipModule,\n ],\n declarations: [ButtonComponent],\n exports: [ButtonComponent],\n})\nexport class ButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { forwardRef, Component, Input, NgModule } from '@angular/core';
|
|
3
|
+
import * as i2 from '@angular/forms';
|
|
4
|
+
import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
|
|
5
|
+
import * as i1 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
7
|
+
|
|
8
|
+
class CheckboxListComponent {
|
|
9
|
+
data;
|
|
10
|
+
state = {
|
|
11
|
+
checked: false,
|
|
12
|
+
indeterminate: false,
|
|
13
|
+
children: {},
|
|
14
|
+
};
|
|
15
|
+
_onChange = () => { };
|
|
16
|
+
_onTouched = () => { };
|
|
17
|
+
writeValue(value) {
|
|
18
|
+
if (value) {
|
|
19
|
+
this.state = value;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.state = {
|
|
23
|
+
checked: false,
|
|
24
|
+
indeterminate: false,
|
|
25
|
+
disabled: false,
|
|
26
|
+
children: this._initializeChildren(this.data),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
get renderType() {
|
|
31
|
+
return this.data.renderType ?? "inline";
|
|
32
|
+
}
|
|
33
|
+
registerOnChange(onChange) {
|
|
34
|
+
this._onChange = onChange;
|
|
35
|
+
}
|
|
36
|
+
registerOnTouched(onTouched) {
|
|
37
|
+
this._onTouched = onTouched;
|
|
38
|
+
}
|
|
39
|
+
_initializeChildren(item) {
|
|
40
|
+
const childrenState = {};
|
|
41
|
+
if (item.children) {
|
|
42
|
+
item.children.forEach((child) => {
|
|
43
|
+
childrenState[child.label] = {
|
|
44
|
+
checked: false,
|
|
45
|
+
indeterminate: false,
|
|
46
|
+
children: this._initializeChildren(child),
|
|
47
|
+
};
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return childrenState;
|
|
51
|
+
}
|
|
52
|
+
getCheckboxState(item, label) {
|
|
53
|
+
if (item) {
|
|
54
|
+
return item[label];
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
updateParent() {
|
|
61
|
+
const _getProperty = (obj, field) => {
|
|
62
|
+
if (obj) {
|
|
63
|
+
return obj[field];
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
if (this.data.children && this.data.children.length > 0) {
|
|
70
|
+
const allChecked = this.data.children.every((child) => _getProperty(this.state.children, child.label)?.checked);
|
|
71
|
+
const someChecked = this.data.children.some((child) => _getProperty(this.state.children, child.label)?.checked ||
|
|
72
|
+
_getProperty(this.state.children, child.label)?.indeterminate);
|
|
73
|
+
this.state.checked = allChecked;
|
|
74
|
+
this.state.indeterminate = !allChecked && someChecked;
|
|
75
|
+
}
|
|
76
|
+
this._onChange(this.state);
|
|
77
|
+
this._onTouched();
|
|
78
|
+
}
|
|
79
|
+
onCheckboxChange() {
|
|
80
|
+
if (this.state.disabled) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this.state.checked = !this.state.checked;
|
|
84
|
+
this.state.indeterminate = false;
|
|
85
|
+
this._toggleChildrenCheck(this.data, this.state, this.state.checked);
|
|
86
|
+
this._onChange(this.state);
|
|
87
|
+
this._onTouched();
|
|
88
|
+
}
|
|
89
|
+
_toggleChildrenCheck(item, state, checked) {
|
|
90
|
+
if (item.children?.length) {
|
|
91
|
+
item.children.forEach((child) => {
|
|
92
|
+
if (state.children && !state.children[child.label]) {
|
|
93
|
+
state.children[child.label] = {
|
|
94
|
+
checked: false,
|
|
95
|
+
indeterminate: false,
|
|
96
|
+
children: this._initializeChildren(child),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
if (state.children) {
|
|
100
|
+
state.children[child.label].checked = checked;
|
|
101
|
+
state.children[child.label].indeterminate = false;
|
|
102
|
+
}
|
|
103
|
+
if (child.children && state.children) {
|
|
104
|
+
this._toggleChildrenCheck(child, state.children[child.label], checked);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CheckboxListComponent, selector: "s-checkbox-list", inputs: { data: "data" }, providers: [
|
|
111
|
+
{
|
|
112
|
+
provide: NG_VALUE_ACCESSOR,
|
|
113
|
+
useExisting: forwardRef(() => CheckboxListComponent),
|
|
114
|
+
multi: true,
|
|
115
|
+
},
|
|
116
|
+
], ngImport: i0, template: "<div class=\"checkbox\">\n <label>\n <div\n class=\"checkbox-wrapper\"\n [class.checkbox-wrapper--disabled]=\"state.disabled\"\n [class.checkbox-wrapper-inline]=\"renderType === 'inline'\"\n [class.checkbox-wrapper-block]=\"renderType === 'block'\"\n >\n <input\n type=\"checkbox\"\n class=\"checkbox-input\"\n [disabled]=\"state.disabled\"\n [ngClass]=\"{\n 'checkbox-input--checked': state.checked,\n 'checkbox-input--indeterminate': state.indeterminate,\n }\"\n (change)=\"onCheckboxChange()\"\n [attr.aria-checked]=\"state.indeterminate ? 'mixed' : state.checked\"\n [attr.aria-disabled]=\"state.disabled\"\n />\n {{ data.label }}\n </div>\n </label>\n <div\n *ngIf=\"data.children && data.children.length\"\n class=\"checkbox-children\"\n >\n <s-checkbox-list\n *ngFor=\"let child of data.children\"\n [data]=\"child\"\n [ngModel]=\"getCheckboxState(state.children, child.label)\"\n (ngModelChange)=\"updateParent()\"\n >\n </s-checkbox-list>\n </div>\n</div>\n", styles: [".checkbox{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.checkbox .checkbox-wrapper{color:#212533;display:flex;font-family:\"Open Sans\" sans-serif;font-size:14px;gap:12px}.checkbox .checkbox-wrapper-inline{align-items:center}.checkbox .checkbox-wrapper-block{flex-direction:column-reverse}.checkbox .checkbox-wrapper .checkbox-input{appearance:none;background-color:#fff;border:1px solid #c1c1cc;border-radius:4px;cursor:pointer;flex-shrink:0;height:20px;width:20px;position:relative}.checkbox .checkbox-wrapper .checkbox-input--checked{background-color:#428bca;border-color:#428bca}.checkbox .checkbox-wrapper .checkbox-input--checked:after{border:solid white;border-width:0 2px 2px 0;content:\"\";height:12px;left:6px;position:absolute;top:2px;transform:rotate(45deg);width:6px}.checkbox .checkbox-wrapper .checkbox-input--indeterminate{background-color:#428bca;border-color:#428bca}.checkbox .checkbox-wrapper .checkbox-input--indeterminate:after{background-color:#fff;content:\"\";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:10px}.checkbox .checkbox-wrapper:not(.checkbox-wrapper--disabled) .checkbox-input:not(.checkbox-input--checked):hover{background-color:#e5eaea;border-color:#ccc}.checkbox .checkbox-wrapper--disabled{opacity:.5;cursor:auto}.checkbox .checkbox-children{margin-left:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CheckboxListComponent, selector: "s-checkbox-list", inputs: ["data"] }] });
|
|
117
|
+
}
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxListComponent, decorators: [{
|
|
119
|
+
type: Component,
|
|
120
|
+
args: [{ selector: 's-checkbox-list', providers: [
|
|
121
|
+
{
|
|
122
|
+
provide: NG_VALUE_ACCESSOR,
|
|
123
|
+
useExisting: forwardRef(() => CheckboxListComponent),
|
|
124
|
+
multi: true,
|
|
125
|
+
},
|
|
126
|
+
], template: "<div class=\"checkbox\">\n <label>\n <div\n class=\"checkbox-wrapper\"\n [class.checkbox-wrapper--disabled]=\"state.disabled\"\n [class.checkbox-wrapper-inline]=\"renderType === 'inline'\"\n [class.checkbox-wrapper-block]=\"renderType === 'block'\"\n >\n <input\n type=\"checkbox\"\n class=\"checkbox-input\"\n [disabled]=\"state.disabled\"\n [ngClass]=\"{\n 'checkbox-input--checked': state.checked,\n 'checkbox-input--indeterminate': state.indeterminate,\n }\"\n (change)=\"onCheckboxChange()\"\n [attr.aria-checked]=\"state.indeterminate ? 'mixed' : state.checked\"\n [attr.aria-disabled]=\"state.disabled\"\n />\n {{ data.label }}\n </div>\n </label>\n <div\n *ngIf=\"data.children && data.children.length\"\n class=\"checkbox-children\"\n >\n <s-checkbox-list\n *ngFor=\"let child of data.children\"\n [data]=\"child\"\n [ngModel]=\"getCheckboxState(state.children, child.label)\"\n (ngModelChange)=\"updateParent()\"\n >\n </s-checkbox-list>\n </div>\n</div>\n", styles: [".checkbox{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.checkbox .checkbox-wrapper{color:#212533;display:flex;font-family:\"Open Sans\" sans-serif;font-size:14px;gap:12px}.checkbox .checkbox-wrapper-inline{align-items:center}.checkbox .checkbox-wrapper-block{flex-direction:column-reverse}.checkbox .checkbox-wrapper .checkbox-input{appearance:none;background-color:#fff;border:1px solid #c1c1cc;border-radius:4px;cursor:pointer;flex-shrink:0;height:20px;width:20px;position:relative}.checkbox .checkbox-wrapper .checkbox-input--checked{background-color:#428bca;border-color:#428bca}.checkbox .checkbox-wrapper .checkbox-input--checked:after{border:solid white;border-width:0 2px 2px 0;content:\"\";height:12px;left:6px;position:absolute;top:2px;transform:rotate(45deg);width:6px}.checkbox .checkbox-wrapper .checkbox-input--indeterminate{background-color:#428bca;border-color:#428bca}.checkbox .checkbox-wrapper .checkbox-input--indeterminate:after{background-color:#fff;content:\"\";height:2px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:10px}.checkbox .checkbox-wrapper:not(.checkbox-wrapper--disabled) .checkbox-input:not(.checkbox-input--checked):hover{background-color:#e5eaea;border-color:#ccc}.checkbox .checkbox-wrapper--disabled{opacity:.5;cursor:auto}.checkbox .checkbox-children{margin-left:20px}\n"] }]
|
|
127
|
+
}], propDecorators: { data: [{
|
|
128
|
+
type: Input,
|
|
129
|
+
args: [{ required: true }]
|
|
130
|
+
}] } });
|
|
131
|
+
|
|
132
|
+
class CheckboxListModule {
|
|
133
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
134
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: CheckboxListModule, declarations: [CheckboxListComponent], imports: [CommonModule, FormsModule], exports: [CheckboxListComponent] });
|
|
135
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxListModule, imports: [CommonModule, FormsModule] });
|
|
136
|
+
}
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CheckboxListModule, decorators: [{
|
|
138
|
+
type: NgModule,
|
|
139
|
+
args: [{
|
|
140
|
+
imports: [CommonModule, FormsModule],
|
|
141
|
+
declarations: [CheckboxListComponent],
|
|
142
|
+
exports: [CheckboxListComponent],
|
|
143
|
+
}]
|
|
144
|
+
}] });
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Generated bundle index. Do not edit.
|
|
148
|
+
*/
|
|
149
|
+
|
|
150
|
+
export { CheckboxListComponent, CheckboxListModule };
|
|
151
|
+
//# sourceMappingURL=seniorsistemas-angular-components-checkbox-list.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-checkbox-list.mjs","sources":["../../projects/angular-components/checkbox-list/src/lib/checkbox-list/checkbox-list.component.ts","../../projects/angular-components/checkbox-list/src/lib/checkbox-list/checkbox-list.component.html","../../projects/angular-components/checkbox-list/src/lib/checkbox-list/checkbox-list.module.ts","../../projects/angular-components/checkbox-list/src/seniorsistemas-angular-components-checkbox-list.ts"],"sourcesContent":["import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { CheckboxListData } from './models/checkbox-list-data';\nimport { CheckboxListChildren, CheckboxListState } from './models/checkbox-list-state';\n\n@Component({\n selector: 's-checkbox-list',\n templateUrl: './checkbox-list.component.html',\n styleUrls: ['./checkbox-list.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxListComponent),\n multi: true,\n },\n ],\n})\nexport class CheckboxListComponent implements ControlValueAccessor {\n @Input({ required: true })\n public data!: CheckboxListData;\n\n public state: CheckboxListState = {\n checked: false,\n indeterminate: false,\n children: {},\n };\n\n private _onChange: (value: CheckboxListState) => void = () => { };\n private _onTouched: () => void = () => { };\n\n public writeValue(value: CheckboxListState): void {\n if (value) {\n this.state = value;\n } else {\n this.state = {\n checked: false,\n indeterminate: false,\n disabled: false,\n children: this._initializeChildren(this.data),\n };\n }\n }\n\n public get renderType() {\n return this.data.renderType ?? \"inline\";\n }\n\n public registerOnChange(onChange: (value: CheckboxListState) => void): void {\n this._onChange = onChange;\n }\n\n public registerOnTouched(onTouched: () => void): void {\n this._onTouched = onTouched;\n }\n\n private _initializeChildren(item: CheckboxListData): CheckboxListChildren {\n const childrenState: CheckboxListChildren = {};\n if (item.children) {\n item.children.forEach((child) => {\n childrenState[child.label] = {\n checked: false,\n indeterminate: false,\n children: this._initializeChildren(child),\n };\n });\n }\n return childrenState;\n }\n\n public getCheckboxState(item: CheckboxListChildren | undefined, label: string) {\n if (item) {\n return item[label];\n } else {\n return {};\n }\n }\n\n public updateParent(): void {\n const _getProperty = (obj: CheckboxListChildren | undefined, field: string) => {\n if (obj) {\n return obj[field];\n } else {\n return null;\n }\n };\n if (this.data.children && this.data.children.length > 0) {\n const allChecked = this.data.children.every(\n (child) => _getProperty(this.state.children, child.label)?.checked,\n );\n const someChecked = this.data.children.some(\n (child) =>\n _getProperty(this.state.children, child.label)?.checked ||\n _getProperty(this.state.children, child.label)?.indeterminate,\n );\n this.state.checked = allChecked;\n this.state.indeterminate = !allChecked && someChecked;\n }\n this._onChange(this.state);\n this._onTouched();\n }\n\n public onCheckboxChange(): void {\n if (this.state.disabled) {\n return;\n }\n\n this.state.checked = !this.state.checked;\n this.state.indeterminate = false;\n this._toggleChildrenCheck(this.data, this.state, this.state.checked);\n this._onChange(this.state);\n this._onTouched();\n }\n\n private _toggleChildrenCheck(item: CheckboxListData, state: CheckboxListState, checked: boolean): void {\n if (item.children?.length) {\n item.children.forEach((child) => {\n if (state.children && !state.children[child.label]) {\n state.children[child.label] = {\n checked: false,\n indeterminate: false,\n children: this._initializeChildren(child),\n };\n }\n if (state.children) {\n state.children[child.label].checked = checked;\n state.children[child.label].indeterminate = false;\n }\n if (child.children && state.children) {\n this._toggleChildrenCheck(child, state.children[child.label], checked);\n }\n });\n }\n }\n}\n","<div class=\"checkbox\">\n <label>\n <div\n class=\"checkbox-wrapper\"\n [class.checkbox-wrapper--disabled]=\"state.disabled\"\n [class.checkbox-wrapper-inline]=\"renderType === 'inline'\"\n [class.checkbox-wrapper-block]=\"renderType === 'block'\"\n >\n <input\n type=\"checkbox\"\n class=\"checkbox-input\"\n [disabled]=\"state.disabled\"\n [ngClass]=\"{\n 'checkbox-input--checked': state.checked,\n 'checkbox-input--indeterminate': state.indeterminate,\n }\"\n (change)=\"onCheckboxChange()\"\n [attr.aria-checked]=\"state.indeterminate ? 'mixed' : state.checked\"\n [attr.aria-disabled]=\"state.disabled\"\n />\n {{ data.label }}\n </div>\n </label>\n <div\n *ngIf=\"data.children && data.children.length\"\n class=\"checkbox-children\"\n >\n <s-checkbox-list\n *ngFor=\"let child of data.children\"\n [data]=\"child\"\n [ngModel]=\"getCheckboxState(state.children, child.label)\"\n (ngModelChange)=\"updateParent()\"\n >\n </s-checkbox-list>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CheckboxListComponent } from './checkbox-list.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [CheckboxListComponent],\n exports: [CheckboxListComponent],\n})\nexport class CheckboxListModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|