@agorapulse/ui-components 20.4.33 → 21.0.0
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/agorapulse-ui-components-21.0.0.tgz +0 -0
- package/fesm2022/agorapulse-ui-components-action-dropdown.mjs +17 -18
- package/fesm2022/agorapulse-ui-components-action-dropdown.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-add-comment.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-autocomplete.mjs +7 -7
- package/fesm2022/agorapulse-ui-components-autocomplete.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-avatar-group.mjs +11 -13
- package/fesm2022/agorapulse-ui-components-avatar-group.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-avatar.mjs +21 -23
- package/fesm2022/agorapulse-ui-components-avatar.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-badge.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-button.mjs +15 -15
- package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-checkbox.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-checkbox.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-close-button.mjs +7 -7
- package/fesm2022/agorapulse-ui-components-close-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-confirm-modal.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-counter.mjs +9 -9
- package/fesm2022/agorapulse-ui-components-counter.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-datepicker.mjs +50 -50
- package/fesm2022/agorapulse-ui-components-datepicker.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-directives.mjs +26 -26
- package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-dot-stepper.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-dropdown-base.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-dropdown-base.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-filter-chips-list.mjs +22 -22
- package/fesm2022/agorapulse-ui-components-filter-chips-list.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-filter-dropdown.mjs +78 -78
- package/fesm2022/agorapulse-ui-components-filter-dropdown.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-form-field.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-form-message.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-form-message.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-icon-button.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-icon-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-infobox.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-infobox.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-input-group.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-input-search.mjs +9 -9
- package/fesm2022/agorapulse-ui-components-input-search.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-input.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-labels.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-legacy-input.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-legacy-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs +16 -16
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-legacy-textarea.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-media-display-overlay.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-modal.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs +148 -148
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-neo-datepicker.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-notification.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-paginator.mjs +8 -8
- package/fesm2022/agorapulse-ui-components-paginator.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-password-input.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-phone-number-input.mjs +5 -6
- package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-popmenu.mjs +10 -10
- package/fesm2022/agorapulse-ui-components-radio-button-card.mjs +25 -25
- package/fesm2022/agorapulse-ui-components-radio-button-card.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-radio.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-range-slider.mjs +4 -4
- package/fesm2022/agorapulse-ui-components-range-slider.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-segmented-control.mjs +9 -9
- package/fesm2022/agorapulse-ui-components-segmented-control.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-select.mjs +74 -74
- package/fesm2022/agorapulse-ui-components-select.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-selection-dropdown.mjs +33 -33
- package/fesm2022/agorapulse-ui-components-selection-dropdown.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-slide-toggle.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-snackbars-thread.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-social-button.mjs +6 -6
- package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-split-button.mjs +14 -14
- package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-status-card.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-status.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-stepper.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-tabs.mjs +25 -24
- package/fesm2022/agorapulse-ui-components-tabs.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-tag.mjs +9 -9
- package/fesm2022/agorapulse-ui-components-tag.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-text-measurement.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-textarea.mjs +3 -3
- package/fesm2022/agorapulse-ui-components-toggle.mjs +5 -5
- package/fesm2022/agorapulse-ui-components-toggle.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-tooltip.mjs +34 -34
- package/fesm2022/agorapulse-ui-components-tooltip.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components.mjs +4 -4
- package/package.json +71 -70
- package/{button/index.d.ts → types/agorapulse-ui-components-button.d.ts} +1 -1
- package/{icon-button/index.d.ts → types/agorapulse-ui-components-icon-button.d.ts} +1 -1
- package/{paginator/index.d.ts → types/agorapulse-ui-components-paginator.d.ts} +1 -1
- package/{social-button/index.d.ts → types/agorapulse-ui-components-social-button.d.ts} +1 -1
- package/{split-button/index.d.ts → types/agorapulse-ui-components-split-button.d.ts} +1 -1
- package/agorapulse-ui-components-20.4.33.tgz +0 -0
- /package/{action-dropdown/index.d.ts → types/agorapulse-ui-components-action-dropdown.d.ts} +0 -0
- /package/{add-comment/index.d.ts → types/agorapulse-ui-components-add-comment.d.ts} +0 -0
- /package/{autocomplete/index.d.ts → types/agorapulse-ui-components-autocomplete.d.ts} +0 -0
- /package/{avatar-group/index.d.ts → types/agorapulse-ui-components-avatar-group.d.ts} +0 -0
- /package/{avatar/index.d.ts → types/agorapulse-ui-components-avatar.d.ts} +0 -0
- /package/{badge/index.d.ts → types/agorapulse-ui-components-badge.d.ts} +0 -0
- /package/{checkbox/index.d.ts → types/agorapulse-ui-components-checkbox.d.ts} +0 -0
- /package/{close-button/index.d.ts → types/agorapulse-ui-components-close-button.d.ts} +0 -0
- /package/{confirm-modal/index.d.ts → types/agorapulse-ui-components-confirm-modal.d.ts} +0 -0
- /package/{counter/index.d.ts → types/agorapulse-ui-components-counter.d.ts} +0 -0
- /package/{datepicker/index.d.ts → types/agorapulse-ui-components-datepicker.d.ts} +0 -0
- /package/{directives/index.d.ts → types/agorapulse-ui-components-directives.d.ts} +0 -0
- /package/{dot-stepper/index.d.ts → types/agorapulse-ui-components-dot-stepper.d.ts} +0 -0
- /package/{dropdown-base/index.d.ts → types/agorapulse-ui-components-dropdown-base.d.ts} +0 -0
- /package/{filter-chips-list/index.d.ts → types/agorapulse-ui-components-filter-chips-list.d.ts} +0 -0
- /package/{filter-dropdown/index.d.ts → types/agorapulse-ui-components-filter-dropdown.d.ts} +0 -0
- /package/{form-field/index.d.ts → types/agorapulse-ui-components-form-field.d.ts} +0 -0
- /package/{form-message/index.d.ts → types/agorapulse-ui-components-form-message.d.ts} +0 -0
- /package/{infobox/index.d.ts → types/agorapulse-ui-components-infobox.d.ts} +0 -0
- /package/{input-group/index.d.ts → types/agorapulse-ui-components-input-group.d.ts} +0 -0
- /package/{input-search/index.d.ts → types/agorapulse-ui-components-input-search.d.ts} +0 -0
- /package/{input/index.d.ts → types/agorapulse-ui-components-input.d.ts} +0 -0
- /package/{labels-selector/index.d.ts → types/agorapulse-ui-components-labels-selector.d.ts} +0 -0
- /package/{labels/index.d.ts → types/agorapulse-ui-components-labels.d.ts} +0 -0
- /package/{legacy/input/index.d.ts → types/agorapulse-ui-components-legacy-input.d.ts} +0 -0
- /package/{legacy/select/index.d.ts → types/agorapulse-ui-components-legacy-select.d.ts} +0 -0
- /package/{legacy/textarea/index.d.ts → types/agorapulse-ui-components-legacy-textarea.d.ts} +0 -0
- /package/{media-display-overlay/index.d.ts → types/agorapulse-ui-components-media-display-overlay.d.ts} +0 -0
- /package/{modal/index.d.ts → types/agorapulse-ui-components-modal.d.ts} +0 -0
- /package/{nav-selector/testing/index.d.ts → types/agorapulse-ui-components-nav-selector-testing.d.ts} +0 -0
- /package/{nav-selector/index.d.ts → types/agorapulse-ui-components-nav-selector.d.ts} +0 -0
- /package/{neo-datepicker/index.d.ts → types/agorapulse-ui-components-neo-datepicker.d.ts} +0 -0
- /package/{notification/index.d.ts → types/agorapulse-ui-components-notification.d.ts} +0 -0
- /package/{password-input/index.d.ts → types/agorapulse-ui-components-password-input.d.ts} +0 -0
- /package/{phone-number-input/index.d.ts → types/agorapulse-ui-components-phone-number-input.d.ts} +0 -0
- /package/{popmenu/index.d.ts → types/agorapulse-ui-components-popmenu.d.ts} +0 -0
- /package/{providers/index.d.ts → types/agorapulse-ui-components-providers.d.ts} +0 -0
- /package/{radio-button-card/index.d.ts → types/agorapulse-ui-components-radio-button-card.d.ts} +0 -0
- /package/{radio/index.d.ts → types/agorapulse-ui-components-radio.d.ts} +0 -0
- /package/{range-slider/index.d.ts → types/agorapulse-ui-components-range-slider.d.ts} +0 -0
- /package/{segmented-control/index.d.ts → types/agorapulse-ui-components-segmented-control.d.ts} +0 -0
- /package/{select/index.d.ts → types/agorapulse-ui-components-select.d.ts} +0 -0
- /package/{selection-dropdown/index.d.ts → types/agorapulse-ui-components-selection-dropdown.d.ts} +0 -0
- /package/{slide-toggle/index.d.ts → types/agorapulse-ui-components-slide-toggle.d.ts} +0 -0
- /package/{snackbars-thread/index.d.ts → types/agorapulse-ui-components-snackbars-thread.d.ts} +0 -0
- /package/{status-card/index.d.ts → types/agorapulse-ui-components-status-card.d.ts} +0 -0
- /package/{status/index.d.ts → types/agorapulse-ui-components-status.d.ts} +0 -0
- /package/{stepper/index.d.ts → types/agorapulse-ui-components-stepper.d.ts} +0 -0
- /package/{tabs/index.d.ts → types/agorapulse-ui-components-tabs.d.ts} +0 -0
- /package/{tag/index.d.ts → types/agorapulse-ui-components-tag.d.ts} +0 -0
- /package/{text-measurement/index.d.ts → types/agorapulse-ui-components-text-measurement.d.ts} +0 -0
- /package/{textarea/index.d.ts → types/agorapulse-ui-components-textarea.d.ts} +0 -0
- /package/{toggle/index.d.ts → types/agorapulse-ui-components-toggle.d.ts} +0 -0
- /package/{tooltip/index.d.ts → types/agorapulse-ui-components-tooltip.d.ts} +0 -0
- /package/{index.d.ts → types/agorapulse-ui-components.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-range-slider.mjs","sources":["../../../libs/ui-components/range-slider/src/range-slider.component.ts","../../../libs/ui-components/range-slider/src/range-slider.component.html","../../../libs/ui-components/range-slider/src/agorapulse-ui-components-range-slider.ts"],"sourcesContent":["import { Component, forwardRef, Input } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { MatSliderModule } from '@angular/material/slider';\n\nexport type RangeSlider = { min: number; max: number };\ntype RangeFormValue = {\n minimum: number;\n maximum: number;\n min: number;\n max: number;\n};\n\n@Component({\n selector: 'ap-range-slider',\n templateUrl: './range-slider.component.html',\n styleUrls: ['./range-slider.component.scss'],\n imports: [MatSliderModule, ReactiveFormsModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSliderComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RangeSliderComponent),\n multi: true,\n },\n ],\n})\nexport class RangeSliderComponent implements ControlValueAccessor, Validator {\n @Input()\n set min(min: number) {\n this.minimumFormControl.setValue(min);\n this.change();\n }\n\n get min(): number {\n return this.minFormControl.getRawValue();\n }\n\n @Input()\n set max(max: number) {\n this.maximumFormControl.setValue(max);\n this.change();\n }\n\n get max(): number {\n return this.maxFormControl.getRawValue();\n }\n\n rangeSliderFormGroup: FormGroup<{\n maximum: FormControl<number>;\n minimum: FormControl<number>;\n min: FormControl<number | undefined>;\n max: FormControl<number | undefined>;\n }>;\n\n constructor(private fb: FormBuilder) {\n const minimumValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.min && rangeFormValue.minimum && rangeFormValue.min < rangeFormValue.minimum) {\n errors = {\n minimumError: {\n expectedMin: rangeFormValue.minimum,\n currentMin: rangeFormValue.min,\n },\n };\n }\n return errors;\n };\n\n const minimumRequiredValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.min == undefined) {\n errors = {\n minimumRequired: true,\n };\n }\n return errors;\n };\n\n const maximumValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.max && rangeFormValue.maximum && rangeFormValue.max > rangeFormValue.maximum) {\n errors = {\n maximumError: {\n expectedMax: rangeFormValue.maximum,\n currentMax: rangeFormValue.max,\n },\n };\n }\n return errors;\n };\n\n const maximumRequiredValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.max == undefined) {\n errors = {\n maximumRequired: true,\n };\n }\n return errors;\n };\n\n this.rangeSliderFormGroup = fb.group(\n {\n maximum: fb.control(0, { nonNullable: true }),\n minimum: fb.control(100, { nonNullable: true }),\n min: fb.control<number | undefined>(undefined, { nonNullable: true }),\n max: fb.control<number | undefined>(undefined, { nonNullable: true }),\n },\n { validators: Validators.compose([minimumRequiredValidator, maximumRequiredValidator, minimumValidator, maximumValidator]) }\n );\n }\n\n propagateChange: ((v: RangeSlider) => void) | null = null;\n\n propagateOnTouch: (() => void) | null = null;\n\n registerOnChange(fn: (v: RangeSlider) => void): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.propagateOnTouch = fn;\n }\n\n get minimum(): number {\n return this.minimumFormControl.getRawValue();\n }\n\n get maximum(): number {\n return this.maximumFormControl.getRawValue();\n }\n\n get minFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.min;\n }\n\n get minimumFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.minimum;\n }\n\n get maximumFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.maximum;\n }\n\n get maxFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.max;\n }\n\n writeValue(inputRange: RangeSlider): void {\n this.minFormControl.setValue(inputRange.min);\n this.maxFormControl.setValue(inputRange.max);\n }\n\n change(): void {\n if (this.propagateChange) {\n const formValue = this.rangeSliderFormGroup.getRawValue();\n this.propagateChange({\n min: formValue.min,\n max: formValue.max,\n } as RangeSlider);\n }\n }\n\n validate(): ValidationErrors | null {\n return this.rangeSliderFormGroup.errors;\n }\n}\n","<div\n class=\"slider-wrapper\"\n [formGroup]=\"rangeSliderFormGroup\">\n <div class=\"number\">\n <span>{{ min }}</span>\n </div>\n <mat-slider\n class=\"slider\"\n [min]=\"minimum\"\n [max]=\"maximum\">\n <input\n matSliderStartThumb\n formControlName=\"min\"\n (change)=\"change()\" />\n <input\n matSliderEndThumb\n formControlName=\"max\"\n (change)=\"change()\" />\n </mat-slider>\n <div class=\"number\">\n <span>{{ max > maximum ? max + '+' : max }}</span>\n </div>\n</div>\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":"agorapulse-ui-components-range-slider.mjs","sources":["../../../libs/ui-components/range-slider/src/range-slider.component.ts","../../../libs/ui-components/range-slider/src/range-slider.component.html","../../../libs/ui-components/range-slider/src/agorapulse-ui-components-range-slider.ts"],"sourcesContent":["import { Component, forwardRef, Input } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormBuilder,\n FormControl,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { MatSliderModule } from '@angular/material/slider';\n\nexport type RangeSlider = { min: number; max: number };\ntype RangeFormValue = {\n minimum: number;\n maximum: number;\n min: number;\n max: number;\n};\n\n@Component({\n selector: 'ap-range-slider',\n templateUrl: './range-slider.component.html',\n styleUrls: ['./range-slider.component.scss'],\n imports: [MatSliderModule, ReactiveFormsModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeSliderComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => RangeSliderComponent),\n multi: true,\n },\n ],\n})\nexport class RangeSliderComponent implements ControlValueAccessor, Validator {\n @Input()\n set min(min: number) {\n this.minimumFormControl.setValue(min);\n this.change();\n }\n\n get min(): number {\n return this.minFormControl.getRawValue();\n }\n\n @Input()\n set max(max: number) {\n this.maximumFormControl.setValue(max);\n this.change();\n }\n\n get max(): number {\n return this.maxFormControl.getRawValue();\n }\n\n rangeSliderFormGroup: FormGroup<{\n maximum: FormControl<number>;\n minimum: FormControl<number>;\n min: FormControl<number | undefined>;\n max: FormControl<number | undefined>;\n }>;\n\n constructor(private fb: FormBuilder) {\n const minimumValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.min && rangeFormValue.minimum && rangeFormValue.min < rangeFormValue.minimum) {\n errors = {\n minimumError: {\n expectedMin: rangeFormValue.minimum,\n currentMin: rangeFormValue.min,\n },\n };\n }\n return errors;\n };\n\n const minimumRequiredValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.min == undefined) {\n errors = {\n minimumRequired: true,\n };\n }\n return errors;\n };\n\n const maximumValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.max && rangeFormValue.maximum && rangeFormValue.max > rangeFormValue.maximum) {\n errors = {\n maximumError: {\n expectedMax: rangeFormValue.maximum,\n currentMax: rangeFormValue.max,\n },\n };\n }\n return errors;\n };\n\n const maximumRequiredValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n let errors: ValidationErrors | null = null;\n const rangeFormValue = control.getRawValue() as RangeFormValue;\n if (rangeFormValue.max == undefined) {\n errors = {\n maximumRequired: true,\n };\n }\n return errors;\n };\n\n this.rangeSliderFormGroup = fb.group(\n {\n maximum: fb.control(0, { nonNullable: true }),\n minimum: fb.control(100, { nonNullable: true }),\n min: fb.control<number | undefined>(undefined, { nonNullable: true }),\n max: fb.control<number | undefined>(undefined, { nonNullable: true }),\n },\n { validators: Validators.compose([minimumRequiredValidator, maximumRequiredValidator, minimumValidator, maximumValidator]) }\n );\n }\n\n propagateChange: ((v: RangeSlider) => void) | null = null;\n\n propagateOnTouch: (() => void) | null = null;\n\n registerOnChange(fn: (v: RangeSlider) => void): void {\n this.propagateChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.propagateOnTouch = fn;\n }\n\n get minimum(): number {\n return this.minimumFormControl.getRawValue();\n }\n\n get maximum(): number {\n return this.maximumFormControl.getRawValue();\n }\n\n get minFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.min;\n }\n\n get minimumFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.minimum;\n }\n\n get maximumFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.maximum;\n }\n\n get maxFormControl(): FormControl {\n return this.rangeSliderFormGroup.controls.max;\n }\n\n writeValue(inputRange: RangeSlider): void {\n this.minFormControl.setValue(inputRange.min);\n this.maxFormControl.setValue(inputRange.max);\n }\n\n change(): void {\n if (this.propagateChange) {\n const formValue = this.rangeSliderFormGroup.getRawValue();\n this.propagateChange({\n min: formValue.min,\n max: formValue.max,\n } as RangeSlider);\n }\n }\n\n validate(): ValidationErrors | null {\n return this.rangeSliderFormGroup.errors;\n }\n}\n","<div\n class=\"slider-wrapper\"\n [formGroup]=\"rangeSliderFormGroup\">\n <div class=\"number\">\n <span>{{ min }}</span>\n </div>\n <mat-slider\n class=\"slider\"\n [min]=\"minimum\"\n [max]=\"maximum\">\n <input\n matSliderStartThumb\n formControlName=\"min\"\n (change)=\"change()\" />\n <input\n matSliderEndThumb\n formControlName=\"max\"\n (change)=\"change()\" />\n </mat-slider>\n <div class=\"number\">\n <span>{{ max > maximum ? max + '+' : max }}</span>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -17,22 +17,22 @@ import { inject, input, model, effect, untracked, ViewEncapsulation, ChangeDetec
|
|
|
17
17
|
*/
|
|
18
18
|
class SegmentedControlComponent {
|
|
19
19
|
symbolRegistry = inject(SymbolRegistry);
|
|
20
|
-
options = input.required(...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
20
|
+
options = input.required(...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
21
21
|
/** The currently selected value. Supports two-way binding via `[(value)]`. Defaults to the first option's value when unset. */
|
|
22
|
-
value = model('', ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
22
|
+
value = model('', ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
23
23
|
/** Disables the whole control. */
|
|
24
|
-
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
24
|
+
disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
25
25
|
/** When true, the control fills its container width and segments share it equally instead of fitting their text. */
|
|
26
|
-
fullWidth = input(false, ...(ngDevMode ? [{ debugName: "fullWidth" }] : []));
|
|
26
|
+
fullWidth = input(false, ...(ngDevMode ? [{ debugName: "fullWidth" }] : /* istanbul ignore next */ []));
|
|
27
27
|
/** Accessible name for the group of segments. */
|
|
28
|
-
ariaLabel = input('', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : []));
|
|
28
|
+
ariaLabel = input('', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
29
29
|
// Keep `value` defined: fall back to the first option whenever it is unset.
|
|
30
30
|
defaultValueEffect = effect(() => {
|
|
31
31
|
const [firstOption] = this.options();
|
|
32
32
|
if (!this.value() && firstOption) {
|
|
33
33
|
untracked(() => this.value.set(firstOption.value));
|
|
34
34
|
}
|
|
35
|
-
}, ...(ngDevMode ? [{ debugName: "defaultValueEffect" }] : []));
|
|
35
|
+
}, ...(ngDevMode ? [{ debugName: "defaultValueEffect" }] : /* istanbul ignore next */ []));
|
|
36
36
|
constructor() {
|
|
37
37
|
this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));
|
|
38
38
|
}
|
|
@@ -42,10 +42,10 @@ class SegmentedControlComponent {
|
|
|
42
42
|
}
|
|
43
43
|
this.value.set(option.value);
|
|
44
44
|
}
|
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
46
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
45
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: SegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: SegmentedControlComponent, isStandalone: true, selector: "ap-segmented-control", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange" }, host: { properties: { "class.ap-segmented-control--full-width": "fullWidth()" } }, ngImport: i0, template: "<div\n class=\"ap-segmented-control\"\n role=\"group\"\n [attr.aria-label]=\"ariaLabel() || null\">\n @for (option of options(); track option.value) {\n <button\n type=\"button\"\n class=\"ap-segmented-control__segment\"\n [class.ap-segmented-control__segment--selected]=\"value() === option.value\"\n [attr.aria-pressed]=\"value() === option.value\"\n [disabled]=\"disabled() || (option.disabled ?? false)\"\n (click)=\"select(option)\">\n @if (option.symbolId) {\n <ap-symbol\n class=\"ap-segmented-control__icon\"\n [symbolId]=\"option.symbolId\"\n [size]=\"16\"\n [color]=\"value() === option.value ? 'blue' : 'grey-blue'\" />\n }\n <span class=\"ap-segmented-control__label\">{{ option.label }}</span>\n </button>\n }\n</div>\n", styles: ["ap-segmented-control{display:inline-block}ap-segmented-control.ap-segmented-control--full-width{display:block}ap-segmented-control.ap-segmented-control--full-width .ap-segmented-control{display:flex;width:100%}ap-segmented-control.ap-segmented-control--full-width .ap-segmented-control__segment{flex:1 1 0}.ap-segmented-control{display:inline-flex;align-items:center}.ap-segmented-control .ap-segmented-control__segment{display:inline-flex;align-items:center;justify-content:center;gap:var(--ref-spacing-xxs);box-sizing:border-box;min-height:36px;margin:0;padding:var(--ref-spacing-xxs) var(--ref-spacing-sm);border:1px solid var(--ref-color-grey-20);background-color:var(--ref-color-white);color:var(--ref-color-grey-100);font-family:var(--ref-font-family);font-size:var(--ref-font-size-sm);font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-md);white-space:nowrap;cursor:pointer;transition:color .15s ease,border-color .15s ease,background-color .15s ease}.ap-segmented-control .ap-segmented-control__segment:not(:first-child){margin-left:-1px}.ap-segmented-control .ap-segmented-control__segment:first-child{border-top-left-radius:var(--ref-border-radius-sm);border-bottom-left-radius:var(--ref-border-radius-sm)}.ap-segmented-control .ap-segmented-control__segment:last-child{border-top-right-radius:var(--ref-border-radius-sm);border-bottom-right-radius:var(--ref-border-radius-sm)}.ap-segmented-control .ap-segmented-control__segment:hover:not(:disabled){z-index:1;border-color:var(--ref-color-electric-blue-100)}.ap-segmented-control .ap-segmented-control__segment:focus-visible{z-index:2;outline:none;border-color:var(--ref-color-electric-blue-100);box-shadow:0 0 0 1px var(--ref-color-white),0 0 0 3px var(--ref-color-electric-blue-100)}.ap-segmented-control .ap-segmented-control__segment.ap-segmented-control__segment--selected{z-index:1;border-color:var(--ref-color-electric-blue-100);color:var(--ref-color-electric-blue-100)}.ap-segmented-control .ap-segmented-control__segment:disabled{border-color:var(--ref-color-grey-20);background-color:var(--ref-color-grey-05);color:var(--ref-color-grey-40);cursor:not-allowed}.ap-segmented-control .ap-segmented-control__label{font:inherit;min-width:0;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: SegmentedControlComponent, decorators: [{
|
|
49
49
|
type: Component,
|
|
50
50
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'ap-segmented-control', imports: [SymbolComponent], host: {
|
|
51
51
|
'[class.ap-segmented-control--full-width]': 'fullWidth()',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-segmented-control.mjs","sources":["../../../libs/ui-components/segmented-control/src/segmented-control.component.ts","../../../libs/ui-components/segmented-control/src/segmented-control.component.html","../../../libs/ui-components/segmented-control/src/agorapulse-ui-components-segmented-control.ts"],"sourcesContent":["import { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { agorapulseSymbol, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { ChangeDetectionStrategy, Component, effect, inject, input, model, untracked, ViewEncapsulation } from '@angular/core';\n\nexport interface SegmentedControlOption {\n /** The value bound to the control when this option is selected. */\n value: string;\n /** The text shown on the segment. */\n label: string;\n /** Optional leading icon symbol id. */\n symbolId?: agorapulseSymbol;\n /** Disables this segment only. */\n disabled?: boolean;\n}\n\n/**\n * A single-select control for switching between a small set (2–4) of mutually\n * exclusive options laid out side by side.\n *\n * @example\n * ```html\n * <ap-segmented-control\n * [options]=\"[{ value: 'list', label: 'List' }, { value: 'board', label: 'Board' }]\"\n * [(value)]=\"view\"\n * ariaLabel=\"Choose a view\" />\n * ```\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-segmented-control',\n templateUrl: './segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n imports: [SymbolComponent],\n host: {\n '[class.ap-segmented-control--full-width]': 'fullWidth()',\n },\n // Emit plain, global `.ap-segmented-control*` classes (no Angular scoping) so the\n // styling stays framework-agnostic and readable/reusable outside Angular.\n encapsulation: ViewEncapsulation.None,\n})\nexport class SegmentedControlComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n\n readonly options = input.required<SegmentedControlOption[]>();\n /** The currently selected value. Supports two-way binding via `[(value)]`. Defaults to the first option's value when unset. */\n readonly value = model<string>('');\n /** Disables the whole control. */\n readonly disabled = input(false);\n /** When true, the control fills its container width and segments share it equally instead of fitting their text. */\n readonly fullWidth = input(false);\n /** Accessible name for the group of segments. */\n readonly ariaLabel = input('');\n\n // Keep `value` defined: fall back to the first option whenever it is unset.\n private readonly defaultValueEffect = effect(() => {\n const [firstOption] = this.options();\n if (!this.value() && firstOption) {\n untracked(() => this.value.set(firstOption.value));\n }\n });\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n }\n\n protected select(option: SegmentedControlOption): void {\n if (this.disabled() || option.disabled) {\n return;\n }\n this.value.set(option.value);\n }\n}\n","<div\n class=\"ap-segmented-control\"\n role=\"group\"\n [attr.aria-label]=\"ariaLabel() || null\">\n @for (option of options(); track option.value) {\n <button\n type=\"button\"\n class=\"ap-segmented-control__segment\"\n [class.ap-segmented-control__segment--selected]=\"value() === option.value\"\n [attr.aria-pressed]=\"value() === option.value\"\n [disabled]=\"disabled() || (option.disabled ?? false)\"\n (click)=\"select(option)\">\n @if (option.symbolId) {\n <ap-symbol\n class=\"ap-segmented-control__icon\"\n [symbolId]=\"option.symbolId\"\n [size]=\"16\"\n [color]=\"value() === option.value ? 'blue' : 'grey-blue'\" />\n }\n <span class=\"ap-segmented-control__label\">{{ option.label }}</span>\n </button>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;AAeA;;;;;;;;;;;AAWG;MAcU,yBAAyB,CAAA;AACjB,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAE/C,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-segmented-control.mjs","sources":["../../../libs/ui-components/segmented-control/src/segmented-control.component.ts","../../../libs/ui-components/segmented-control/src/segmented-control.component.html","../../../libs/ui-components/segmented-control/src/agorapulse-ui-components-segmented-control.ts"],"sourcesContent":["import { UI_COMPONENTS_SYMBOLS } from '@agorapulse/ui-components/providers';\nimport { agorapulseSymbol, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { ChangeDetectionStrategy, Component, effect, inject, input, model, untracked, ViewEncapsulation } from '@angular/core';\n\nexport interface SegmentedControlOption {\n /** The value bound to the control when this option is selected. */\n value: string;\n /** The text shown on the segment. */\n label: string;\n /** Optional leading icon symbol id. */\n symbolId?: agorapulseSymbol;\n /** Disables this segment only. */\n disabled?: boolean;\n}\n\n/**\n * A single-select control for switching between a small set (2–4) of mutually\n * exclusive options laid out side by side.\n *\n * @example\n * ```html\n * <ap-segmented-control\n * [options]=\"[{ value: 'list', label: 'List' }, { value: 'board', label: 'Board' }]\"\n * [(value)]=\"view\"\n * ariaLabel=\"Choose a view\" />\n * ```\n */\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-segmented-control',\n templateUrl: './segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n imports: [SymbolComponent],\n host: {\n '[class.ap-segmented-control--full-width]': 'fullWidth()',\n },\n // Emit plain, global `.ap-segmented-control*` classes (no Angular scoping) so the\n // styling stays framework-agnostic and readable/reusable outside Angular.\n encapsulation: ViewEncapsulation.None,\n})\nexport class SegmentedControlComponent {\n private readonly symbolRegistry = inject(SymbolRegistry);\n\n readonly options = input.required<SegmentedControlOption[]>();\n /** The currently selected value. Supports two-way binding via `[(value)]`. Defaults to the first option's value when unset. */\n readonly value = model<string>('');\n /** Disables the whole control. */\n readonly disabled = input(false);\n /** When true, the control fills its container width and segments share it equally instead of fitting their text. */\n readonly fullWidth = input(false);\n /** Accessible name for the group of segments. */\n readonly ariaLabel = input('');\n\n // Keep `value` defined: fall back to the first option whenever it is unset.\n private readonly defaultValueEffect = effect(() => {\n const [firstOption] = this.options();\n if (!this.value() && firstOption) {\n untracked(() => this.value.set(firstOption.value));\n }\n });\n\n constructor() {\n this.symbolRegistry.withSymbols(...(inject(UI_COMPONENTS_SYMBOLS, { optional: true })?.flat() ?? []));\n }\n\n protected select(option: SegmentedControlOption): void {\n if (this.disabled() || option.disabled) {\n return;\n }\n this.value.set(option.value);\n }\n}\n","<div\n class=\"ap-segmented-control\"\n role=\"group\"\n [attr.aria-label]=\"ariaLabel() || null\">\n @for (option of options(); track option.value) {\n <button\n type=\"button\"\n class=\"ap-segmented-control__segment\"\n [class.ap-segmented-control__segment--selected]=\"value() === option.value\"\n [attr.aria-pressed]=\"value() === option.value\"\n [disabled]=\"disabled() || (option.disabled ?? false)\"\n (click)=\"select(option)\">\n @if (option.symbolId) {\n <ap-symbol\n class=\"ap-segmented-control__icon\"\n [symbolId]=\"option.symbolId\"\n [size]=\"16\"\n [color]=\"value() === option.value ? 'blue' : 'grey-blue'\" />\n }\n <span class=\"ap-segmented-control__label\">{{ option.label }}</span>\n </button>\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|