novo-elements
Version:
1 lines • 23.6 kB
Source Map (JSON)
{"version":3,"file":"novo-elements-elements-radio.mjs","sources":["../../../projects/novo-elements/src/elements/radio/tokens.ts","../../../projects/novo-elements/src/elements/radio/Radio.ts","../../../projects/novo-elements/src/elements/radio/RadioGroup.ts","../../../projects/novo-elements/src/elements/radio/Radio.module.ts","../../../projects/novo-elements/src/elements/radio/novo-elements-elements-radio.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface RadioGroup<T = any> {\n name: string;\n value: T;\n disabled: boolean;\n appearance: 'vertical' | 'horizontal';\n}\n\nexport type ComponentType<T> = new (...args: any[]) => T;\n\nexport const NOVO_RADIO_GROUP = new InjectionToken<ComponentType<RadioGroup>>('RadioGroupComponent');\n","// NG2\nimport {\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NOVO_RADIO_GROUP, RadioGroup } from './tokens';\n\n// make radio-buttons ids unique\nlet nextId = 0;\n\n// Value accessor for the component (supports ngModel)\nconst RADIO_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoRadioElement),\n multi: true,\n};\n\n@Component({\n selector: 'novo-radio',\n providers: [RADIO_VALUE_ACCESSOR],\n template: `\n <input\n type=\"radio\"\n [id]=\"id\"\n [name]=\"name\"\n [checked]=\"_checked\"\n [tabIndex]=\"tabindex\"\n [disabled]=\"disabled\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\"\n (change)=\"_onInputChange($event)\"\n />\n <label [attr.for]=\"id\" [class.disabled]=\"disabled\">\n <novo-button\n *ngIf=\"button\"\n [ngClass]=\"{ unchecked: !_checked, checked: _checked, 'has-icon': !!icon }\"\n [theme]=\"theme\"\n [color]=\"_checked ? color : null\"\n [icon]=\"icon\"\n [size]=\"size\"\n >\n {{ label }}\n </novo-button>\n <div *ngIf=\"!button\" class=\"novo-radio-button-label\">\n <i [ngClass]=\"{ 'bhi-radio-empty': !_checked, 'bhi-radio-filled': _checked }\"></i>\n {{ label }}\n <ng-content></ng-content>\n </div>\n </label>\n `,\n styleUrls: ['./Radio.scss'],\n host: {\n '[class.vertical]': 'vertical',\n },\n standalone: false,\n})\nexport class NovoRadioElement implements ControlValueAccessor, OnInit {\n private _uniqueId: string = `novo-radio-${++nextId}`;\n private _value: boolean | string = false;\n _checked: boolean = false;\n\n @Input() id: string = this._uniqueId;\n @Input() name: string = this._uniqueId;\n @Input() tabindex: number = 0;\n @Input() vertical: boolean = false;\n @Input() label: string;\n @Input() button: boolean = false;\n @Input() theme: string = 'secondary';\n @Input() size: string;\n @Input() icon: string;\n @Input() color: string;\n @Input() disabled: boolean;\n\n @Output() change = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() focus = new EventEmitter();\n\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n set checked(value: boolean) {\n value = !!value;\n if (this._checked !== value) {\n this._checked = value;\n if (this._checked && this.radioGroup && this.radioGroup.value !== this.value) {\n this.radioGroup.value = this.value;\n }\n this.onChangeCallback(this._value);\n }\n }\n\n @Input()\n get value(): boolean | string {\n return this._value;\n }\n set value(value) {\n if (this.value !== value) {\n this._value = value;\n if (this.radioGroup) {\n this._checked = this.radioGroup.value === this.value;\n }\n this.onChangeCallback(this._value);\n }\n }\n\n constructor(@Inject(NOVO_RADIO_GROUP) @Optional() public radioGroup: RadioGroup, private ref: ChangeDetectorRef) {\n this.radioGroup = radioGroup;\n }\n\n ngOnInit() {\n if (this.radioGroup) {\n this.checked = this.radioGroup.value === this._value;\n this.vertical = this.radioGroup.appearance === 'vertical';\n this.name = this.radioGroup.name;\n this.disabled = this.disabled || this.radioGroup.disabled;\n }\n }\n\n _onInputChange(event: Event) {\n event.stopPropagation();\n this.change.emit(event);\n\n this.checked = true;\n\n if (this.radioGroup) {\n this.radioGroup.value = this.value;\n }\n }\n\n writeValue(value: any): void {\n this.value = value;\n this.ref.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n private onChangeCallback = (_: any) => {\n // placeholder\n };\n\n private onTouchedCallback = () => {\n // placeholder\n };\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n }\n}\n","// NG2\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n Output,\n QueryList,\n} from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CanUpdateErrorStateCtor, ErrorStateMatcher, mixinErrorState } from 'novo-elements/elements/common';\nimport { NovoFieldControl } from 'novo-elements/elements/field';\nimport { NovoRadioElement } from './Radio';\nimport { NOVO_RADIO_GROUP } from './tokens';\n\n// make radio-button-group ids unique\nlet nextId = 0;\n// Value accessor for the component (supports ngModel)\nconst RADIOGROUP_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoRadioGroup),\n multi: true,\n};\n\n// Boilerplate for applying mixins\nclass NovoRadioGroupBase {\n constructor(\n public _defaultErrorStateMatcher: ErrorStateMatcher,\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n public ngControl: NgControl,\n ) {}\n}\nconst NovoRadioGroupMixins: CanUpdateErrorStateCtor & typeof NovoRadioGroupBase = mixinErrorState(NovoRadioGroupBase);\n\n@Component({\n selector: 'novo-radio-group',\n providers: [\n RADIOGROUP_VALUE_ACCESSOR,\n { provide: NOVO_RADIO_GROUP, useExisting: NovoRadioGroup },\n { provide: NovoFieldControl, useExisting: NovoRadioGroup },\n ],\n template: '<ng-content></ng-content>',\n styleUrls: ['./radio-group.scss'],\n host: {\n class: 'novo-radio-group',\n '[class.novo-radio-group-appearance-horizontal]': 'appearance==\"horizontal\"',\n '[class.novo-radio-group-appearance-vertical]': 'appearance==\"vertical\"',\n },\n standalone: false,\n})\nexport class NovoRadioGroup extends NovoRadioGroupMixins implements NovoFieldControl<any>, ControlValueAccessor, AfterContentInit {\n private _uniqueId: string = `novo-radio-group-${++nextId}`;\n /** The aria-describedby attribute on the chip list for improved a11y. */\n _ariaDescribedby: string;\n /** Tab index for the chip list. */\n _tabIndex = 0;\n /** User defined tab index. */\n _userTabIndex: number | null = null;\n /** The FocusKeyManager which handles focus. */\n _keyManager: FocusKeyManager<NovoRadioElement>;\n\n readonly controlType: string = 'radio-group';\n /** @docs-private Implemented as part of NovoFieldControl. */\n lastKeyValue: string = null;\n /** @docs-private Implemented as part of NovoFieldControl.*/\n lastCaretPosition: number | null;\n\n @Input() id: string = this._uniqueId;\n @Input() tabindex: number = 0;\n /** An object used to control when error messages are shown. */\n @Input() errorStateMatcher: ErrorStateMatcher;\n\n @Output() change = new EventEmitter();\n @Output() blur = new EventEmitter();\n\n @ContentChildren(forwardRef(() => NovoRadioElement), { descendants: true })\n _radios: QueryList<NovoRadioElement>;\n\n @Input()\n get appearance(): any {\n return this._appearance;\n }\n\n set appearance(value) {\n if (this._appearance !== value) {\n this._appearance = value;\n this._updateRadioButtonAppearance();\n }\n }\n\n @Input() get value(): any {\n return this._value;\n }\n\n set value(value) {\n if (this._value !== value) {\n this._value = value;\n this._updateSelectedRadioFromValue();\n this.onChangeCallback(this._value);\n }\n }\n\n @Input()\n get name(): string {\n return this._name;\n }\n\n set name(value: string) {\n if (this._name !== value) {\n this._updateRadioButtonNames();\n }\n }\n\n @HostBinding('class.disabled')\n @Input()\n get disabled(): boolean {\n return this.ngControl ? !!this.ngControl.disabled : this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n this._updateRadioButtonDisabled();\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n\n /** Implemented as part of NovoFieldControl. */\n @Input()\n get placeholder(): string {\n return this._placeholder;\n }\n set placeholder(value: string) {\n this._placeholder = value;\n }\n\n get selected(): NovoRadioElement {\n return this._selected;\n }\n\n protected _name: string = this._uniqueId;\n protected _value: boolean = false;\n protected _selected: NovoRadioElement;\n protected _required: boolean = false;\n protected _disabled: boolean = false;\n protected _placeholder: string;\n protected _appearance: 'horizontal' | 'vertical' = 'horizontal';\n\n ngAfterContentInit() {\n this._updateRadioButtonAppearance();\n this._updateRadioButtonNames();\n this._updateSelectedRadioFromValue();\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n private onChangeCallback = (_: any) => {\n // placeholder\n };\n\n private onTouchedCallback = () => {\n // placeholder\n };\n\n private _updateRadioButtonAppearance(): void {\n if (this._radios) {\n this._radios.forEach((radio) => {\n radio.vertical = this.appearance === 'vertical';\n });\n }\n }\n\n private _updateRadioButtonNames(): void {\n if (this._radios) {\n this._radios.forEach((radio) => {\n radio.name = this.name;\n });\n }\n }\n\n private _updateRadioButtonDisabled(): void {\n if (this._radios) {\n this._radios.forEach((radio) => {\n radio.disabled = this.disabled;\n });\n }\n }\n\n private _updateSelectedRadioFromValue(): void {\n if (this._radios) {\n this._radios.forEach((radio) => {\n radio.checked = this.value === radio.value;\n if (radio.checked) {\n this._selected = radio;\n }\n });\n }\n }\n\n /** Whether any radio buttons has focus. */\n get focused(): boolean {\n // todo: implement this.\n return false;\n }\n\n /** Implemented as part of NovoFieldControl. */\n get empty(): boolean {\n return this.value === null;\n }\n\n /** Implemented as part of NovoFieldControl. */\n get shouldLabelFloat(): boolean {\n return !this.empty || this.focused;\n }\n\n /** Implemented as part of NovoFieldControl. */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /** Implemented as part of NovoFieldControl. */\n onContainerClick(event: MouseEvent) {\n this.focus();\n }\n\n /**\n * Focuses the first non-disabled chip in this chip list, or the associated input when there\n * are no eligible chips.\n */\n focus(options?: FocusOptions): void {\n if (this.disabled) {\n return;\n }\n // TODO\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoRadioElement } from './Radio';\nimport { NovoRadioGroup } from './RadioGroup';\n\n@NgModule({\n imports: [CommonModule, NovoButtonModule],\n declarations: [NovoRadioElement, NovoRadioGroup],\n exports: [NovoRadioElement, NovoRadioGroup],\n})\nexport class NovoRadioModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}