UNPKG

novo-elements

Version:

462 lines (456 loc) 27.2 kB
import * as i1 from '@angular/cdk/a11y'; import { A11yModule } from '@angular/cdk/a11y'; import { coerceBooleanProperty } from '@angular/cdk/coercion'; import * as i0 from '@angular/core'; import { forwardRef, EventEmitter, Output, ViewChild, Input, Attribute, Component, NgModule } from '@angular/core'; import * as i2 from '@angular/forms'; import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms'; import { Helpers, BooleanInput } from 'novo-elements/utils'; import * as i1$1 from '@angular/common'; import { CommonModule } from '@angular/common'; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; // Value accessor for the component (supports ngModel) const CHECKBOX_VALUE_ACCESSOR = { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NovoCheckboxElement), multi: true, }; /** Change event object emitted by NovoCheckbox. */ class NovoCheckboxChange { } const LAYOUT_DEFAULTS = { iconStyle: 'box' }; let nextId = 0; class NovoCheckboxElement { /** Whether the checkbox is required. */ get required() { return this._required; } set required(value) { this._required = coerceBooleanProperty(value); } /** Whether the checkbox is checked. */ get checked() { return this._checked; } set checked(value) { if (value !== this.checked) { this._checked = value; this._cdr.markForCheck(); } } get indeterminate() { return this._indeterminate; } set indeterminate(value) { const changed = value !== this._indeterminate; this._indeterminate = coerceBooleanProperty(value); if (changed) { this.indeterminateChange.emit(this._indeterminate); } this._syncIndeterminate(this._indeterminate); } constructor(_cdr, _focusMonitor, tabIndex) { this._cdr = _cdr; this._focusMonitor = _focusMonitor; /** * Attached to the aria-label attribute of the host element. In most cases, aria-labelledby will * take precedence so this may be omitted. */ this.ariaLabel = ''; /** * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element */ this.ariaLabelledby = null; this._uniqueId = `novo-checkbox-${++nextId}`; this.boxIcon = true; this.id = this._uniqueId; this.name = this._uniqueId; this.disabled = false; this._checked = false; this._indeterminate = false; /** Event emitted when the checkbox's `checked` value changes. */ this.change = new EventEmitter(); /** Event emitted when the checkbox's `indeterminate` value changes. */ this.indeterminateChange = new EventEmitter(); this.onSelect = new EventEmitter(); this.onModelChange = () => { }; this.onModelTouched = () => { }; this.tabIndex = parseInt(tabIndex, 10) || 0; } ngOnInit() { this.layoutOptions = Object.assign({}, LAYOUT_DEFAULTS, this.layoutOptions); this.boxIcon = this.layoutOptions.iconStyle === 'box'; } select(event) { Helpers.swallowEvent(event); if (!this.disabled) { this.checked = !this.checked; this.onModelChange(this.checked); this.onSelect.emit({ originalEvent: event, value: this.checked }); } } // Implemented as part of ControlValueAccessor. writeValue(value) { this.checked = !!value; } registerOnChange(fn) { this.onModelChange = fn; } registerOnTouched(fn) { this.onModelTouched = fn; } setDisabledState(disabled) { this.disabled = disabled; } _getAriaChecked() { if (this.checked) { return 'true'; } return this.indeterminate ? 'mixed' : 'false'; } _emitChangeEvent() { const event = new NovoCheckboxChange(); event.source = this; event.checked = this.checked; this.onModelChange(this.checked); this.change.emit(event); // Assigning the value again here is redundant, but we have to do it in case it was // changed inside the `change` listener which will cause the input to be out of sync. if (this._inputElement) { this._inputElement.nativeElement.checked = this.checked; } } /** Toggles the `checked` state of the checkbox. */ toggle() { this.checked = !this.checked; } /** * Event handler for checkbox input element. * Toggles checked state if element is not disabled. * Do not toggle on (change) event since IE doesn't fire change event when * indeterminate checkbox is clicked. * @param event */ _onInputClick(event) { // We have to stop propagation for click events on the visual hidden input element. // By default, when a user clicks on a label element, a generated click event will be // dispatched on the associated input element. Since we are using a label element as our // root container, the click event on the `checkbox` will be executed twice. // The real click event will bubble up, and the generated click event also tries to bubble up. // This will lead to multiple click events. // Preventing bubbling for the second event will solve that issue. event.stopPropagation(); if (!this.disabled) { // When user manually click on the checkbox, `indeterminate` is set to false. if (this.indeterminate) { Promise.resolve().then(() => { this._indeterminate = false; this.indeterminateChange.emit(this._indeterminate); }); } this.toggle(); // Emit our custom change event if the native input emitted one. // It is important to only emit it, if the native input triggered one, because // we don't want to trigger a change event, when the `checked` variable changes for example. this._emitChangeEvent(); } } /** Focuses the checkbox. */ focus(origin, options) { if (origin) { this._focusMonitor.focusVia(this._inputElement, origin, options); } else { this._inputElement.nativeElement.focus(options); } } _onInteractionEvent(event) { // We always have to stop propagation on the change event. // Otherwise the change event, from the input element, will bubble up and // emit its event object to the `change` output. event.stopPropagation(); } _syncIndeterminate(value) { const nativeCheckbox = this._inputElement; if (nativeCheckbox) { nativeCheckbox.nativeElement.indeterminate = value; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoCheckboxElement, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: NovoCheckboxElement, isStandalone: false, selector: "novo-checkbox", inputs: { ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], ariaDescribedby: ["aria-describedby", "ariaDescribedby"], id: "id", name: "name", label: "label", disabled: "disabled", layoutOptions: "layoutOptions", color: "color", value: "value", tabIndex: "tabIndex", required: "required", checked: "checked", indeterminate: "indeterminate" }, outputs: { change: "change", indeterminateChange: "indeterminateChange", onSelect: "onSelect" }, host: { properties: { "class.has-label": "label" }, classAttribute: "novo-checkbox" }, providers: [CHECKBOX_VALUE_ACCESSOR], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: ` <div class="novo-checkbox-group" [class.checked]="checked" [class.disabled]="disabled"> <input #input type="checkbox" [required]="_required" [checked]="checked" [id]="id" [attr.name]="name" [attr.value]="value" [disabled]="disabled" [tabIndex]="tabIndex" [attr.aria-label]="ariaLabel || null" [attr.aria-labelledby]="ariaLabelledby" [attr.aria-checked]="_getAriaChecked()" [attr.aria-describedby]="ariaDescribedby" (change)="_onInteractionEvent($event)" (click)="_onInputClick($event)" /> <label [attr.for]="name" (click)="select($event)" [class.disabled]="disabled"> <i [class.bhi-checkbox-empty]="!checked && !indeterminate && boxIcon" [class.bhi-checkbox-filled]="checked && !indeterminate && boxIcon" [class.bhi-checkbox-indeterminate]="indeterminate && boxIcon" [class.bhi-circle-o]="!checked && !indeterminate && !boxIcon" [class.bhi-check]="checked && !indeterminate && !boxIcon" [class.bhi-circle]="indeterminate && !boxIcon" ></i> <span *ngIf="label">{{ label }}</span> <span *ngIf="!label" class="novo-checkbox-text"><ng-content></ng-content></span> </label> </div> `, isInline: true, styles: [":host{display:flex;flex-flow:row wrap}:host.has-label [class*=-group]{margin-right:15px}:host .novo-checkbox-text{margin-left:15px}:host .novo-checkbox-group{cursor:pointer;position:relative}:host .novo-checkbox-group:hover:not(.disabled) label i.bhi-checkbox-empty,:host .novo-checkbox-group:hover:not(.disabled) label i.bhi-radio-empty{color:#4a89dc}:host .novo-checkbox-group.checked label{color:#393939}:host .novo-checkbox-group.checked label i{animation:iconEnter .16s ease-in-out}:host .novo-checkbox-group.disabled{pointer-events:auto}:host .novo-checkbox-group.disabled label{cursor:not-allowed;opacity:.4}:host .novo-checkbox-group input[type=checkbox]{appearance:none!important;height:0!important;border:none!important;position:absolute}:host .novo-checkbox-group input[type=checkbox]:focus+label i.bhi-checkbox-empty,:host .novo-checkbox-group input[type=checkbox]:focus+label i.bhi-checkbox-filled{color:#4a89dc}:host .novo-checkbox-group label{color:#868686;margin-left:0;cursor:pointer;transition:all .2s ease-in-out;display:flex;align-items:baseline}:host .novo-checkbox-group label i{margin-right:5px;transition:all .2s ease-in-out}:host .novo-checkbox-group label i.bhi-checkbox-empty,:host .novo-checkbox-group label i.bhi-radio-empty,:host .novo-checkbox-group label i.bhi-circle-o{color:#d2d2d2}:host .novo-checkbox-group label i.bhi-check{background:#d2d2d2;color:#fff;padding:.15em 0 0 .3em;font-size:1em;width:20px;height:20px;border-radius:50%}:host .novo-checkbox-group label i.bhi-checkbox-filled,:host .novo-checkbox-group label i.bhi-radio-filled{color:#4a89dc}:host .novo-checkbox-group label span{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); } } __decorate([ BooleanInput(), __metadata("design:type", Boolean), __metadata("design:paramtypes", [Boolean]) ], NovoCheckboxElement.prototype, "checked", null); __decorate([ BooleanInput(), __metadata("design:type", Boolean), __metadata("design:paramtypes", [Boolean]) ], NovoCheckboxElement.prototype, "indeterminate", null); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoCheckboxElement, decorators: [{ type: Component, args: [{ selector: 'novo-checkbox', providers: [CHECKBOX_VALUE_ACCESSOR], template: ` <div class="novo-checkbox-group" [class.checked]="checked" [class.disabled]="disabled"> <input #input type="checkbox" [required]="_required" [checked]="checked" [id]="id" [attr.name]="name" [attr.value]="value" [disabled]="disabled" [tabIndex]="tabIndex" [attr.aria-label]="ariaLabel || null" [attr.aria-labelledby]="ariaLabelledby" [attr.aria-checked]="_getAriaChecked()" [attr.aria-describedby]="ariaDescribedby" (change)="_onInteractionEvent($event)" (click)="_onInputClick($event)" /> <label [attr.for]="name" (click)="select($event)" [class.disabled]="disabled"> <i [class.bhi-checkbox-empty]="!checked && !indeterminate && boxIcon" [class.bhi-checkbox-filled]="checked && !indeterminate && boxIcon" [class.bhi-checkbox-indeterminate]="indeterminate && boxIcon" [class.bhi-circle-o]="!checked && !indeterminate && !boxIcon" [class.bhi-check]="checked && !indeterminate && !boxIcon" [class.bhi-circle]="indeterminate && !boxIcon" ></i> <span *ngIf="label">{{ label }}</span> <span *ngIf="!label" class="novo-checkbox-text"><ng-content></ng-content></span> </label> </div> `, host: { class: 'novo-checkbox', '[class.has-label]': 'label', }, standalone: false, styles: [":host{display:flex;flex-flow:row wrap}:host.has-label [class*=-group]{margin-right:15px}:host .novo-checkbox-text{margin-left:15px}:host .novo-checkbox-group{cursor:pointer;position:relative}:host .novo-checkbox-group:hover:not(.disabled) label i.bhi-checkbox-empty,:host .novo-checkbox-group:hover:not(.disabled) label i.bhi-radio-empty{color:#4a89dc}:host .novo-checkbox-group.checked label{color:#393939}:host .novo-checkbox-group.checked label i{animation:iconEnter .16s ease-in-out}:host .novo-checkbox-group.disabled{pointer-events:auto}:host .novo-checkbox-group.disabled label{cursor:not-allowed;opacity:.4}:host .novo-checkbox-group input[type=checkbox]{appearance:none!important;height:0!important;border:none!important;position:absolute}:host .novo-checkbox-group input[type=checkbox]:focus+label i.bhi-checkbox-empty,:host .novo-checkbox-group input[type=checkbox]:focus+label i.bhi-checkbox-filled{color:#4a89dc}:host .novo-checkbox-group label{color:#868686;margin-left:0;cursor:pointer;transition:all .2s ease-in-out;display:flex;align-items:baseline}:host .novo-checkbox-group label i{margin-right:5px;transition:all .2s ease-in-out}:host .novo-checkbox-group label i.bhi-checkbox-empty,:host .novo-checkbox-group label i.bhi-radio-empty,:host .novo-checkbox-group label i.bhi-circle-o{color:#d2d2d2}:host .novo-checkbox-group label i.bhi-check{background:#d2d2d2;color:#fff;padding:.15em 0 0 .3em;font-size:1em;width:20px;height:20px;border-radius:50%}:host .novo-checkbox-group label i.bhi-checkbox-filled,:host .novo-checkbox-group label i.bhi-radio-filled{color:#4a89dc}:host .novo-checkbox-group label span{display:inline-block}\n"] }] }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }, { type: undefined, decorators: [{ type: Attribute, args: ['tabindex'] }] }], propDecorators: { ariaLabel: [{ type: Input, args: ['aria-label'] }], ariaLabelledby: [{ type: Input, args: ['aria-labelledby'] }], ariaDescribedby: [{ type: Input, args: ['aria-describedby'] }], id: [{ type: Input }], name: [{ type: Input }], label: [{ type: Input }], disabled: [{ type: Input }], layoutOptions: [{ type: Input }], color: [{ type: Input }], value: [{ type: Input }], tabIndex: [{ type: Input }], required: [{ type: Input }], checked: [{ type: Input }], indeterminate: [{ type: Input }], _inputElement: [{ type: ViewChild, args: ['input'] }], change: [{ type: Output }], indeterminateChange: [{ type: Output }], onSelect: [{ type: Output }] } }); // NG2 // Value accessor for the component (supports ngModel) const CHECKLIST_VALUE_ACCESSOR = { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NovoCheckListElement), multi: true, }; class NovoCheckListElement { constructor() { this.onSelect = new EventEmitter(); this.onModelChange = () => { }; this.onModelTouched = () => { }; } ngOnInit() { this.setModel(); this.setupOptions(); } select(event, item) { Helpers.swallowEvent(event); if (!this.disabled) { item.checked = !item.checked; this.model = this._options.filter((checkBox) => checkBox.checked).map((x) => x.value); this.onModelChange(this.model.length > 0 ? this.model : ''); this.onSelect.emit({ selected: this.model }); } } setupOptions() { this.options = this.options || []; this._options = []; if (this.options.length && !this.options[0].value) { this.options.forEach((option) => { const formattedOption = { value: option, label: option, checked: this.model && this.model.length && this.model.indexOf(option.value) !== -1, }; this._options.push(formattedOption); }); } else { this.options.forEach((option) => { const formattedOption = option; formattedOption.checked = this.model && this.model.length && this.model.indexOf(option.value) !== -1; this._options.push(formattedOption); }); } } setModel() { const checkedOptions = this.options.filter((checkBox) => checkBox.checked).map((x) => x.value); this.writeValue(checkedOptions); } writeValue(model) { this.model = model || []; if (model) { this.setupOptions(); } } registerOnChange(fn) { this.onModelChange = fn; } registerOnTouched(fn) { this.onModelTouched = fn; } setDisabledState(disabled) { this.disabled = disabled; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoCheckListElement, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.19", type: NovoCheckListElement, isStandalone: false, selector: "novo-check-list", inputs: { name: "name", options: "options", disabled: "disabled" }, outputs: { onSelect: "onSelect" }, providers: [CHECKLIST_VALUE_ACCESSOR], ngImport: i0, template: ` <div class="novo-checkbox-group" *ngFor="let option of _options; let i = index" [ngClass]="{ checked: option.checked }" [class.disabled]="disabled" [attr.data-automation-id]="option.label" > <input [name]="name" type="checkbox" [ngModel]="option.checked" [attr.id]="name + i" [value]="option.checked" (change)="select($event, option)" [disabled]="disabled" /> <label [attr.for]="name + i" (click)="select($event, option)"> <i [ngClass]="{ 'bhi-checkbox-empty': !option.checked, 'bhi-checkbox-filled': option.checked }"></i> <span>{{ option.label }}</span> </label> </div> `, isInline: true, styles: [":host{display:flex;flex-flow:row wrap;gap:1rem}:host.hasLabel [class*=-group]{margin-right:15px}:host .novo-checkbox-group{cursor:pointer;position:relative}:host .novo-checkbox-group:hover:not(.disabled) label i.bhi-checkbox-empty,:host .novo-checkbox-group:hover:not(.disabled) label i.bhi-radio-empty{color:#4a89dc}:host .novo-checkbox-group.checked label{color:var(--text-main)}:host .novo-checkbox-group.checked label i{animation:iconEnter .16s ease-in-out}:host .novo-checkbox-group.disabled{pointer-events:auto}:host .novo-checkbox-group.disabled label{cursor:not-allowed;opacity:.4}:host .novo-checkbox-group input[type=checkbox]{appearance:none!important;height:0!important;border:none!important;position:absolute}:host .novo-checkbox-group input[type=checkbox]:focus+label i.bhi-checkbox-empty,:host .novo-checkbox-group input[type=checkbox]:focus+label i.bhi-checkbox-filled{color:#4a89dc}:host .novo-checkbox-group label{color:#868686;margin-left:0;cursor:pointer;transition:all .2s ease-in-out;display:flex;align-items:baseline}:host .novo-checkbox-group label i{margin-right:5px;transition:all .2s ease-in-out}:host .novo-checkbox-group label i.bhi-checkbox-empty,:host .novo-checkbox-group label i.bhi-radio-empty,:host .novo-checkbox-group label i.bhi-circle-o{color:#d2d2d2}:host .novo-checkbox-group label i.bhi-check{background:#d2d2d2;color:#fff;padding:.15em 0 0 .3em;font-size:1em;width:20px;height:20px;border-radius:50%}:host .novo-checkbox-group label i.bhi-checkbox-filled,:host .novo-checkbox-group label i.bhi-radio-filled{color:#4a89dc}:host .novo-checkbox-group label span{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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"] }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoCheckListElement, decorators: [{ type: Component, args: [{ selector: 'novo-check-list', providers: [CHECKLIST_VALUE_ACCESSOR], template: ` <div class="novo-checkbox-group" *ngFor="let option of _options; let i = index" [ngClass]="{ checked: option.checked }" [class.disabled]="disabled" [attr.data-automation-id]="option.label" > <input [name]="name" type="checkbox" [ngModel]="option.checked" [attr.id]="name + i" [value]="option.checked" (change)="select($event, option)" [disabled]="disabled" /> <label [attr.for]="name + i" (click)="select($event, option)"> <i [ngClass]="{ 'bhi-checkbox-empty': !option.checked, 'bhi-checkbox-filled': option.checked }"></i> <span>{{ option.label }}</span> </label> </div> `, standalone: false, styles: [":host{display:flex;flex-flow:row wrap;gap:1rem}:host.hasLabel [class*=-group]{margin-right:15px}:host .novo-checkbox-group{cursor:pointer;position:relative}:host .novo-checkbox-group:hover:not(.disabled) label i.bhi-checkbox-empty,:host .novo-checkbox-group:hover:not(.disabled) label i.bhi-radio-empty{color:#4a89dc}:host .novo-checkbox-group.checked label{color:var(--text-main)}:host .novo-checkbox-group.checked label i{animation:iconEnter .16s ease-in-out}:host .novo-checkbox-group.disabled{pointer-events:auto}:host .novo-checkbox-group.disabled label{cursor:not-allowed;opacity:.4}:host .novo-checkbox-group input[type=checkbox]{appearance:none!important;height:0!important;border:none!important;position:absolute}:host .novo-checkbox-group input[type=checkbox]:focus+label i.bhi-checkbox-empty,:host .novo-checkbox-group input[type=checkbox]:focus+label i.bhi-checkbox-filled{color:#4a89dc}:host .novo-checkbox-group label{color:#868686;margin-left:0;cursor:pointer;transition:all .2s ease-in-out;display:flex;align-items:baseline}:host .novo-checkbox-group label i{margin-right:5px;transition:all .2s ease-in-out}:host .novo-checkbox-group label i.bhi-checkbox-empty,:host .novo-checkbox-group label i.bhi-radio-empty,:host .novo-checkbox-group label i.bhi-circle-o{color:#d2d2d2}:host .novo-checkbox-group label i.bhi-check{background:#d2d2d2;color:#fff;padding:.15em 0 0 .3em;font-size:1em;width:20px;height:20px;border-radius:50%}:host .novo-checkbox-group label i.bhi-checkbox-filled,:host .novo-checkbox-group label i.bhi-radio-filled{color:#4a89dc}:host .novo-checkbox-group label span{display:inline-block}\n"] }] }], propDecorators: { name: [{ type: Input }], options: [{ type: Input }], disabled: [{ type: Input }], onSelect: [{ type: Output }] } }); class NovoCheckboxModule { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); } static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: NovoCheckboxModule, declarations: [NovoCheckboxElement, NovoCheckListElement], imports: [CommonModule, A11yModule, FormsModule], exports: [NovoCheckboxElement, NovoCheckListElement] }); } static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoCheckboxModule, imports: [CommonModule, A11yModule, FormsModule] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: NovoCheckboxModule, decorators: [{ type: NgModule, args: [{ imports: [CommonModule, A11yModule, FormsModule], declarations: [NovoCheckboxElement, NovoCheckListElement], exports: [NovoCheckboxElement, NovoCheckListElement], }] }] }); /** * Generated bundle index. Do not edit. */ export { NovoCheckListElement, NovoCheckboxChange, NovoCheckboxElement, NovoCheckboxModule }; //# sourceMappingURL=novo-elements-elements-checkbox.mjs.map