@spartan-ng/brain 0.0.1-alpha.563 → 0.0.1-alpha.565
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/accordion/index.d.ts +125 -10
- package/alert-dialog/index.d.ts +40 -13
- package/autocomplete/index.d.ts +113 -15
- package/avatar/index.d.ts +40 -8
- package/button/index.d.ts +15 -3
- package/calendar/index.d.ts +465 -29
- package/checkbox/index.d.ts +156 -3
- package/collapsible/index.d.ts +70 -8
- package/command/index.d.ts +147 -16
- package/core/index.d.ts +153 -11
- package/date-time/index.d.ts +321 -3
- package/date-time-luxon/index.d.ts +32 -1
- package/dialog/index.d.ts +225 -21
- package/fesm2022/spartan-ng-brain-accordion.mjs +12 -12
- package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-alert-dialog.mjs +18 -18
- package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-autocomplete.mjs +18 -18
- package/fesm2022/spartan-ng-brain-autocomplete.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-avatar.mjs +12 -12
- package/fesm2022/spartan-ng-brain-avatar.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-button.mjs +3 -3
- package/fesm2022/spartan-ng-brain-button.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-calendar.mjs +42 -42
- package/fesm2022/spartan-ng-brain-calendar.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-checkbox.mjs +5 -5
- package/fesm2022/spartan-ng-brain-checkbox.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-collapsible.mjs +9 -9
- package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-command.mjs +29 -34
- package/fesm2022/spartan-ng-brain-command.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-core.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-date-time-luxon.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-date-time.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-dialog.mjs +24 -24
- package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-form-field.mjs +3 -3
- package/fesm2022/spartan-ng-brain-form-field.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-forms.mjs +6 -6
- package/fesm2022/spartan-ng-brain-forms.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-hover-card.mjs +12 -12
- package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-input-otp.mjs +6 -6
- package/fesm2022/spartan-ng-brain-input-otp.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-label.mjs +3 -3
- package/fesm2022/spartan-ng-brain-label.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-menu.mjs +24 -24
- package/fesm2022/spartan-ng-brain-menu.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-navigation-menu.mjs +21 -21
- package/fesm2022/spartan-ng-brain-navigation-menu.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-popover.mjs +12 -12
- package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-progress.mjs +6 -6
- package/fesm2022/spartan-ng-brain-progress.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-radio-group.mjs +6 -6
- package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-resizable.mjs +10 -11
- package/fesm2022/spartan-ng-brain-resizable.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-select.mjs +33 -33
- package/fesm2022/spartan-ng-brain-select.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-separator.mjs +3 -3
- package/fesm2022/spartan-ng-brain-separator.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-sheet.mjs +21 -21
- package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-slider.mjs +17 -17
- package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-switch.mjs +8 -8
- package/fesm2022/spartan-ng-brain-switch.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-tabs.mjs +15 -15
- package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-toggle-group.mjs +6 -6
- package/fesm2022/spartan-ng-brain-toggle-group.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-toggle.mjs +3 -3
- package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-tooltip.mjs +14 -14
- package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain.mjs.map +1 -1
- package/form-field/index.d.ts +14 -1
- package/forms/index.d.ts +35 -3
- package/hover-card/index.d.ts +86 -5
- package/index.d.ts +2 -2
- package/input-otp/index.d.ts +82 -5
- package/label/index.d.ts +20 -3
- package/menu/index.d.ts +79 -17
- package/navigation-menu/index.d.ts +185 -13
- package/package.json +9 -9
- package/popover/index.d.ts +39 -9
- package/progress/index.d.ts +39 -6
- package/radio-group/index.d.ts +124 -6
- package/resizable/index.d.ts +103 -3
- package/select/index.d.ts +217 -21
- package/separator/index.d.ts +27 -4
- package/sheet/index.d.ts +51 -15
- package/slider/index.d.ts +100 -12
- package/switch/index.d.ts +141 -5
- package/tabs/index.d.ts +276 -10
- package/toggle/index.d.ts +30 -3
- package/toggle-group/index.d.ts +108 -6
- package/tooltip/index.d.ts +261 -10
- package/accordion/lib/brn-accordion-content.d.ts +0 -20
- package/accordion/lib/brn-accordion-item.d.ts +0 -28
- package/accordion/lib/brn-accordion-token.d.ts +0 -19
- package/accordion/lib/brn-accordion-trigger.d.ts +0 -16
- package/accordion/lib/brn-accordion.d.ts +0 -39
- package/alert-dialog/lib/brn-alert-dialog-content.d.ts +0 -6
- package/alert-dialog/lib/brn-alert-dialog-description.d.ts +0 -6
- package/alert-dialog/lib/brn-alert-dialog-overlay.d.ts +0 -6
- package/alert-dialog/lib/brn-alert-dialog-title.d.ts +0 -6
- package/alert-dialog/lib/brn-alert-dialog-trigger.d.ts +0 -10
- package/alert-dialog/lib/brn-alert-dialog.d.ts +0 -7
- package/autocomplete/lib/brn-autocomplete-empty.d.ts +0 -11
- package/autocomplete/lib/brn-autocomplete-group.d.ts +0 -8
- package/autocomplete/lib/brn-autocomplete-item.d.ts +0 -32
- package/autocomplete/lib/brn-autocomplete-item.token.d.ts +0 -4
- package/autocomplete/lib/brn-autocomplete-list.d.ts +0 -8
- package/autocomplete/lib/brn-autocomplete-search-input.d.ts +0 -13
- package/autocomplete/lib/brn-autocomplete.d.ts +0 -30
- package/autocomplete/lib/brn-autocomplete.token.d.ts +0 -5
- package/avatar/lib/brn-avatar.d.ts +0 -7
- package/avatar/lib/fallback/brn-avatar-fallback.d.ts +0 -9
- package/avatar/lib/fallback/index.d.ts +0 -1
- package/avatar/lib/image/brn-avatar-image.d.ts +0 -9
- package/avatar/lib/image/index.d.ts +0 -1
- package/avatar/lib/util/hex-color-for.d.ts +0 -1
- package/avatar/lib/util/index.d.ts +0 -3
- package/avatar/lib/util/initials.pipe.d.ts +0 -7
- package/avatar/lib/util/is-bright.d.ts +0 -1
- package/button/lib/brn-button.d.ts +0 -10
- package/calendar/lib/brn-calendar-cell-button.d.ts +0 -62
- package/calendar/lib/brn-calendar-cell.d.ts +0 -5
- package/calendar/lib/brn-calendar-grid.d.ts +0 -7
- package/calendar/lib/brn-calendar-header.d.ts +0 -7
- package/calendar/lib/brn-calendar-month-select.d.ts +0 -17
- package/calendar/lib/brn-calendar-next-button.d.ts +0 -13
- package/calendar/lib/brn-calendar-previous-button.d.ts +0 -13
- package/calendar/lib/brn-calendar-week.d.ts +0 -25
- package/calendar/lib/brn-calendar-weekday.d.ts +0 -28
- package/calendar/lib/brn-calendar-year-select.d.ts +0 -16
- package/calendar/lib/brn-calendar.d.ts +0 -74
- package/calendar/lib/brn-calendar.token.d.ts +0 -22
- package/calendar/lib/i18n/calendar-i18n.d.ts +0 -32
- package/calendar/lib/mode/brn-calendar-multiple.d.ts +0 -77
- package/calendar/lib/mode/brn-calendar-range.d.ts +0 -79
- package/checkbox/lib/brn-checkbox.d.ts +0 -151
- package/collapsible/lib/brn-collapsible-content.d.ts +0 -15
- package/collapsible/lib/brn-collapsible-token.d.ts +0 -16
- package/collapsible/lib/brn-collapsible-trigger.d.ts +0 -9
- package/collapsible/lib/brn-collapsible.d.ts +0 -24
- package/command/lib/brn-command-empty.d.ts +0 -11
- package/command/lib/brn-command-group.d.ts +0 -12
- package/command/lib/brn-command-item.d.ts +0 -42
- package/command/lib/brn-command-item.token.d.ts +0 -4
- package/command/lib/brn-command-list.d.ts +0 -8
- package/command/lib/brn-command-search-input.d.ts +0 -24
- package/command/lib/brn-command-search-input.token.d.ts +0 -4
- package/command/lib/brn-command.d.ts +0 -29
- package/command/lib/brn-command.token.d.ts +0 -11
- package/core/helpers/computed-previous.d.ts +0 -36
- package/core/helpers/create-hover-observable.d.ts +0 -7
- package/core/helpers/create-injection-token.d.ts +0 -20
- package/core/helpers/custom-element-class-settable.d.ts +0 -12
- package/core/helpers/debounced-signal.d.ts +0 -9
- package/core/helpers/dev-mode.d.ts +0 -5
- package/core/helpers/exposes-side.d.ts +0 -13
- package/core/helpers/exposes-state.d.ts +0 -13
- package/core/helpers/measure-dimensions.d.ts +0 -5
- package/core/helpers/table-classes-settable.d.ts +0 -16
- package/core/helpers/wait-for-element-animations.d.ts +0 -5
- package/core/helpers/zone-free.d.ts +0 -10
- package/date-time/lib/date-adapter.d.ts +0 -186
- package/date-time/lib/native-date-adapter.d.ts +0 -103
- package/date-time/lib/utc-date-adapter.d.ts +0 -28
- package/date-time-luxon/lib/date-adapter.d.ts +0 -29
- package/dialog/lib/brn-dialog-close.d.ts +0 -8
- package/dialog/lib/brn-dialog-content.d.ts +0 -12
- package/dialog/lib/brn-dialog-description.d.ts +0 -8
- package/dialog/lib/brn-dialog-options.d.ts +0 -26
- package/dialog/lib/brn-dialog-overlay.d.ts +0 -9
- package/dialog/lib/brn-dialog-ref.d.ts +0 -24
- package/dialog/lib/brn-dialog-state.d.ts +0 -1
- package/dialog/lib/brn-dialog-title.d.ts +0 -8
- package/dialog/lib/brn-dialog-token.d.ts +0 -29
- package/dialog/lib/brn-dialog-trigger.d.ts +0 -18
- package/dialog/lib/brn-dialog-utils.d.ts +0 -1
- package/dialog/lib/brn-dialog.d.ts +0 -61
- package/dialog/lib/brn-dialog.service.d.ts +0 -23
- package/form-field/lib/brn-form-field-control.d.ts +0 -11
- package/forms/lib/control-value-accessor.d.ts +0 -2
- package/forms/lib/error-options.d.ts +0 -14
- package/forms/lib/error-state-tracker.d.ts +0 -15
- package/hover-card/lib/brn-hover-card-content.service.d.ts +0 -72
- package/hover-card/lib/brn-hover-card.d.ts +0 -9
- package/input-otp/lib/brn-input-otp-slot.d.ts +0 -15
- package/input-otp/lib/brn-input-otp.d.ts +0 -61
- package/input-otp/lib/brn-input-otp.token.d.ts +0 -5
- package/label/lib/brn-label.d.ts +0 -15
- package/menu/lib/brn-context-menu-trigger.d.ts +0 -14
- package/menu/lib/brn-menu-align.d.ts +0 -4
- package/menu/lib/brn-menu-bar.d.ts +0 -6
- package/menu/lib/brn-menu-group.d.ts +0 -6
- package/menu/lib/brn-menu-item-checkbox.d.ts +0 -11
- package/menu/lib/brn-menu-item-radio.d.ts +0 -11
- package/menu/lib/brn-menu-item.d.ts +0 -10
- package/menu/lib/brn-menu-trigger.d.ts +0 -11
- package/menu/lib/brn-menu.d.ts +0 -11
- package/navigation-menu/lib/brn-navigation-menu-content.d.ts +0 -22
- package/navigation-menu/lib/brn-navigation-menu-content.service.d.ts +0 -44
- package/navigation-menu/lib/brn-navigation-menu-item-focusable.token.d.ts +0 -4
- package/navigation-menu/lib/brn-navigation-menu-item.d.ts +0 -23
- package/navigation-menu/lib/brn-navigation-menu-item.token.d.ts +0 -5
- package/navigation-menu/lib/brn-navigation-menu-link.d.ts +0 -22
- package/navigation-menu/lib/brn-navigation-menu-list.d.ts +0 -7
- package/navigation-menu/lib/brn-navigation-menu-trigger.d.ts +0 -44
- package/navigation-menu/lib/brn-navigation-menu.d.ts +0 -61
- package/navigation-menu/lib/brn-navigation-menu.token.d.ts +0 -5
- package/navigation-menu/lib/brn-parent-nav-menu.token.d.ts +0 -8
- package/popover/lib/brn-popover-close.d.ts +0 -6
- package/popover/lib/brn-popover-content.d.ts +0 -6
- package/popover/lib/brn-popover-trigger.d.ts +0 -10
- package/popover/lib/brn-popover.d.ts +0 -15
- package/progress/lib/brn-progress-indicator.d.ts +0 -6
- package/progress/lib/brn-progress.d.ts +0 -24
- package/progress/lib/brn-progress.token.d.ts +0 -4
- package/radio-group/lib/brn-radio-group.d.ts +0 -59
- package/radio-group/lib/brn-radio-group.token.d.ts +0 -4
- package/radio-group/lib/brn-radio.d.ts +0 -58
- package/resizable/lib/brn-resizable-group.d.ts +0 -37
- package/resizable/lib/brn-resizable-handle.d.ts +0 -26
- package/resizable/lib/brn-resizable-panel.d.ts +0 -39
- package/select/lib/brn-select-content.d.ts +0 -48
- package/select/lib/brn-select-content.token.d.ts +0 -4
- package/select/lib/brn-select-group.d.ts +0 -6
- package/select/lib/brn-select-label.d.ts +0 -9
- package/select/lib/brn-select-option.d.ts +0 -25
- package/select/lib/brn-select-placeholder.d.ts +0 -8
- package/select/lib/brn-select-trigger.d.ts +0 -24
- package/select/lib/brn-select-value-template.d.ts +0 -11
- package/select/lib/brn-select-value.d.ts +0 -18
- package/select/lib/brn-select.d.ts +0 -69
- package/select/lib/brn-select.token.d.ts +0 -4
- package/separator/lib/brn-separator.d.ts +0 -14
- package/separator/lib/brn-separator.token.d.ts +0 -7
- package/sheet/lib/brn-sheet-close.d.ts +0 -6
- package/sheet/lib/brn-sheet-content.d.ts +0 -8
- package/sheet/lib/brn-sheet-description.d.ts +0 -6
- package/sheet/lib/brn-sheet-overlay.d.ts +0 -6
- package/sheet/lib/brn-sheet-title.d.ts +0 -6
- package/sheet/lib/brn-sheet-trigger.d.ts +0 -10
- package/sheet/lib/brn-sheet.d.ts +0 -10
- package/slider/lib/brn-slider-range.d.ts +0 -7
- package/slider/lib/brn-slider-thumb.d.ts +0 -24
- package/slider/lib/brn-slider-tick.d.ts +0 -12
- package/slider/lib/brn-slider-track.d.ts +0 -12
- package/slider/lib/brn-slider-track.token.d.ts +0 -5
- package/slider/lib/brn-slider.d.ts +0 -39
- package/slider/lib/brn-slider.token.d.ts +0 -4
- package/switch/lib/brn-switch-thumb.d.ts +0 -5
- package/switch/lib/brn-switch.d.ts +0 -131
- package/tabs/lib/brn-tabs-content.d.ts +0 -15
- package/tabs/lib/brn-tabs-list.d.ts +0 -17
- package/tabs/lib/brn-tabs-paginated-list.d.ts +0 -196
- package/tabs/lib/brn-tabs-trigger.d.ts +0 -21
- package/tabs/lib/brn-tabs.d.ts +0 -38
- package/toggle/lib/brn-toggle.d.ts +0 -25
- package/toggle-group/lib/brn-toggle-group.d.ts +0 -68
- package/toggle-group/lib/brn-toggle-group.token.d.ts +0 -4
- package/toggle-group/lib/brn-toggle-item.d.ts +0 -31
- package/tooltip/lib/brn-tooltip-content-template.d.ts +0 -8
- package/tooltip/lib/brn-tooltip-content.d.ts +0 -73
- package/tooltip/lib/brn-tooltip-trigger.d.ts +0 -141
- package/tooltip/lib/brn-tooltip.d.ts +0 -7
- package/tooltip/lib/brn-tooltip.token.d.ts +0 -28
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
2
|
-
import {
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { forwardRef, inject, DestroyRef, Renderer2, ElementRef, ChangeDetectorRef, PLATFORM_ID, signal, model, output, computed, input, linkedSignal, booleanAttribute, viewChild, effect, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
|
+
import { forwardRef, inject, DestroyRef, Renderer2, ElementRef, ChangeDetectorRef, DOCUMENT, PLATFORM_ID, signal, model, output, computed, input, linkedSignal, booleanAttribute, viewChild, effect, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
6
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
7
7
|
|
|
@@ -236,8 +236,8 @@ class BrnCheckbox {
|
|
|
236
236
|
this._state().disabled.set(isDisabled);
|
|
237
237
|
this._cdr.markForCheck();
|
|
238
238
|
}
|
|
239
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
240
|
-
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
239
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
240
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.7", type: BrnCheckbox, isStandalone: true, selector: "brn-checkbox", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: "ariaDescribedby", publicName: "aria-describedby", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: "checkedChange", checkedChange: "checkedChange", indeterminate: "indeterminateChange", touched: "touched" }, host: { properties: { "style": "{display: \"contents\"}", "attr.id": "_state().id", "attr.name": "_state().name", "attr.aria-labelledby": "null", "attr.aria-label": "null", "attr.aria-describedby": "null", "attr.data-state": "_dataState()", "attr.data-focus-visible": "_focusVisible()", "attr.data-focus": "_focused()", "attr.data-disabled": "_state().disabled()" } }, providers: [BRN_CHECKBOX_VALUE_ACCESSOR], viewQueries: [{ propertyName: "checkbox", first: true, predicate: ["checkBox"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
241
241
|
<button
|
|
242
242
|
#checkBox
|
|
243
243
|
role="checkbox"
|
|
@@ -261,7 +261,7 @@ class BrnCheckbox {
|
|
|
261
261
|
</button>
|
|
262
262
|
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
263
263
|
}
|
|
264
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
264
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCheckbox, decorators: [{
|
|
265
265
|
type: Component,
|
|
266
266
|
args: [{
|
|
267
267
|
selector: 'brn-checkbox',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-checkbox.mjs","sources":["../../../../libs/brain/checkbox/src/lib/brn-checkbox.ts","../../../../libs/brain/checkbox/src/index.ts","../../../../libs/brain/checkbox/src/spartan-ng-brain-checkbox.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport type { BooleanInput } from '@angular/cdk/coercion';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n\ttype AfterContentInit,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tcomputed,\n\tDestroyRef,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tinject,\n\tinput,\n\tlinkedSignal,\n\tmodel,\n\ttype OnDestroy,\n\toutput,\n\tPLATFORM_ID,\n\tRenderer2,\n\tsignal,\n\tviewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { type ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { ChangeFn, TouchFn } from '@spartan-ng/brain/forms';\n\nexport const BRN_CHECKBOX_VALUE_ACCESSOR = {\n\tprovide: NG_VALUE_ACCESSOR,\n\tuseExisting: forwardRef(() => BrnCheckbox),\n\tmulti: true,\n};\n\nlet uniqueIdCounter = 0;\n\nconst CONTAINER_POST_FIX = '-checkbox';\n\n@Component({\n\tselector: 'brn-checkbox',\n\tproviders: [BRN_CHECKBOX_VALUE_ACCESSOR],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\t'[style]': '{display: \"contents\"}',\n\t\t'[attr.id]': '_state().id',\n\t\t'[attr.name]': '_state().name',\n\t\t'[attr.aria-labelledby]': 'null',\n\t\t'[attr.aria-label]': 'null',\n\t\t'[attr.aria-describedby]': 'null',\n\t\t'[attr.data-state]': '_dataState()',\n\t\t'[attr.data-focus-visible]': '_focusVisible()',\n\t\t'[attr.data-focus]': '_focused()',\n\t\t'[attr.data-disabled]': '_state().disabled()',\n\t},\n\ttemplate: `\n\t\t<button\n\t\t\t#checkBox\n\t\t\trole=\"checkbox\"\n\t\t\ttype=\"button\"\n\t\t\t[id]=\"_getCheckboxButtonId(_state().id) ?? ''\"\n\t\t\t[name]=\"_getCheckboxButtonId(_state().name) ?? ''\"\n\t\t\t[class]=\"class()\"\n\t\t\t[attr.aria-checked]=\"_ariaChecked()\"\n\t\t\t[attr.aria-label]=\"ariaLabel() || null\"\n\t\t\t[attr.aria-labelledby]=\"mutableAriaLabelledby() || null\"\n\t\t\t[attr.aria-describedby]=\"ariaDescribedby() || null\"\n\t\t\t[attr.data-state]=\"_dataState()\"\n\t\t\t[attr.data-focus-visible]=\"_focusVisible()\"\n\t\t\t[attr.data-focus]=\"_focused()\"\n\t\t\t[attr.data-disabled]=\"_state().disabled()\"\n\t\t\t[disabled]=\"_state().disabled()\"\n\t\t\t[tabIndex]=\"_state().disabled() ? -1 : 0\"\n\t\t\t(click)=\"$event.preventDefault(); toggle()\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</button>\n\t`,\n})\nexport class BrnCheckbox implements ControlValueAccessor, AfterContentInit, OnDestroy {\n\tprivate readonly _destroyRef = inject(DestroyRef);\n\tprivate readonly _renderer = inject(Renderer2);\n\tprivate readonly _elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprivate readonly _focusMonitor = inject(FocusMonitor);\n\tprivate readonly _cdr = inject(ChangeDetectorRef);\n\tprivate readonly _document = inject(DOCUMENT);\n\tprivate readonly _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n\tprotected readonly _focusVisible = signal(false);\n\tprotected readonly _focused = signal(false);\n\n\t/**\n\t * The checked state of the checkbox.\n\t * Can be bound with [(checked)] for two-way binding.\n\t */\n\tpublic readonly checked = model<boolean>(false);\n\n\t/** Emits when checked state changes. */\n\tpublic readonly checkedChange = output<boolean>();\n\n\t/**\n\t * Read-only signal of current checkbox state.\n\t * Use this when you only need to read state without changing it.\n\t */\n\tpublic readonly isChecked = this.checked.asReadonly();\n\n\t/*\n\t * The indeterminate state of the checkbox.\n\t * For example, a \"select all/deselect all\" checkbox may be in the indeterminate state when some but not all of its sub-controls are checked.\n\t */\n\tpublic readonly indeterminate = model<boolean>(false);\n\n\t/**\n\t * Computed data-state attribute value based on checked state.\n\t * Returns 'checked', 'unchecked', or 'indeterminate'.\n\t */\n\tprotected readonly _dataState = computed(() => {\n\t\tif (this.indeterminate()) return 'indeterminate';\n\t\treturn this.checked() ? 'checked' : 'unchecked';\n\t});\n\n\t/**\n\t * Computed aria-checked attribute value for accessibility.\n\t * Returns 'true', 'false', or 'mixed' (for indeterminate).\n\t */\n\tprotected readonly _ariaChecked = computed(() => {\n\t\tif (this.indeterminate()) return 'mixed';\n\t\treturn this.checked() ? 'true' : 'false';\n\t});\n\n\t/**\n\t * Unique identifier for checkbox component.\n\t * When provided, inner button gets ID without '-checkbox' suffix.\n\t * Auto-generates ID if not provided.\n\t */\n\tpublic readonly id = input<string | null>(++uniqueIdCounter + '');\n\n\t/**\n\t * Form control name for checkbox.\n\t * When provided, inner button gets name without '-checkbox' suffix.\n\t */\n\tpublic readonly name = input<string | null>(null);\n\n\t/**\n\t * CSS classes applied to inner button element.\n\t */\n\tpublic readonly class = input<string | null>(null);\n\n\t/**\n\t * Accessibility label for screen readers.\n\t * Use when no visible label exists.\n\t */\n\tpublic readonly ariaLabel = input<string | null>(null, { alias: 'aria-label' });\n\n\t/**\n\t * ID of element that labels this checkbox for accessibility.\n\t * Auto-set when checkbox is inside label element.\n\t */\n\tpublic readonly ariaLabelledby = input<string | null>(null, { alias: 'aria-labelledby' });\n\tpublic readonly mutableAriaLabelledby = linkedSignal(() => this.ariaLabelledby());\n\n\t/**\n\t * ID of element that describes this checkbox for accessibility.\n\t */\n\tpublic readonly ariaDescribedby = input<string | null>(null, { alias: 'aria-describedby' });\n\n\t/**\n\t * Whether checkbox is required in a form.\n\t */\n\tpublic readonly required = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Whether checkbox is disabled.\n\t * Disabled checkboxes cannot be toggled and indicate disabled state through data-disabled attribute.\n\t */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Computed state for checkbox container and accessibility.\n\t * Manages ID, name, and disabled state.\n\t */\n\tprotected readonly _state = computed(() => {\n\t\tconst name = this.name();\n\t\tconst id = this.id();\n\t\treturn {\n\t\t\tdisabled: signal(this.disabled()),\n\t\t\tname: name ? name + CONTAINER_POST_FIX : null,\n\t\t\tid: id ? id + CONTAINER_POST_FIX : null,\n\t\t};\n\t});\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprotected _onChange: ChangeFn<boolean> = () => {};\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tprivate _onTouched: TouchFn = () => {};\n\n\t/**\n\t * Reference to the checkbox button element in the template.\n\t */\n\tpublic readonly checkbox = viewChild.required<ElementRef<HTMLButtonElement>>('checkBox');\n\n\t/**\n\t * Event emitted when checkbox is blurred (loses focus).\n\t * Used for form validation.\n\t */\n\tpublic readonly touched = output<void>();\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst state = this._state();\n\t\t\tconst isDisabled = state.disabled();\n\n\t\t\tif (!this._elementRef.nativeElement || !this._isBrowser) return;\n\n\t\t\tconst newLabelId = state.id + '-label';\n\t\t\tconst checkboxButtonId = this._getCheckboxButtonId(state.id);\n\t\t\tconst labelElement =\n\t\t\t\tthis._elementRef.nativeElement.closest('label') ??\n\t\t\t\tthis._document.querySelector(`label[for=\"${checkboxButtonId}\"]`);\n\n\t\t\tif (!labelElement) return;\n\t\t\tconst existingLabelId = labelElement.id;\n\n\t\t\tthis._renderer.setAttribute(labelElement, 'data-disabled', isDisabled ? 'true' : 'false');\n\t\t\tthis.mutableAriaLabelledby.set(existingLabelId || newLabelId);\n\n\t\t\tif (!existingLabelId || existingLabelId.length === 0) {\n\t\t\t\tthis._renderer.setAttribute(labelElement, 'id', newLabelId);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Toggles checkbox between checked/unchecked states.\n\t * If checkbox is indeterminate, sets to checked.\n\t * Does nothing if checkbox is disabled.\n\t */\n\ttoggle() {\n\t\tif (this._state().disabled()) return;\n\n\t\tthis._onTouched();\n\t\tthis.touched.emit();\n\n\t\tconst newChecked = this.indeterminate() ? true : !this.checked();\n\t\tthis.indeterminate.set(false);\n\t\tthis.checkedChange.emit(newChecked);\n\t\tthis.checked.set(newChecked);\n\t\tthis._onChange(newChecked);\n\t}\n\n\tngAfterContentInit() {\n\t\tthis._focusMonitor\n\t\t\t.monitor(this._elementRef, true)\n\t\t\t.pipe(takeUntilDestroyed(this._destroyRef))\n\t\t\t.subscribe((focusOrigin) => {\n\t\t\t\tif (focusOrigin) this._focused.set(true);\n\t\t\t\tif (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n\t\t\t\t\tthis._focusVisible.set(true);\n\t\t\t\t\tthis._cdr.markForCheck();\n\t\t\t\t}\n\t\t\t\tif (!focusOrigin) {\n\t\t\t\t\t// When a focused element becomes disabled, the browser *immediately* fires a blur event.\n\t\t\t\t\t// Angular does not expect events to be raised during change detection, so any state\n\t\t\t\t\t// change (such as a form control's ng-touched) will cause a changed-after-checked error.\n\t\t\t\t\t// See https://github.com/angular/angular/issues/17793. To work around this, we defer\n\t\t\t\t\t// telling the form control it has been touched until the next tick.\n\t\t\t\t\tPromise.resolve().then(() => {\n\t\t\t\t\t\tthis._focusVisible.set(false);\n\t\t\t\t\t\tthis._focused.set(false);\n\t\t\t\t\t\tthis._onTouched();\n\t\t\t\t\t\tthis.touched.emit();\n\t\t\t\t\t\tthis._cdr.markForCheck();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis._focusMonitor.stopMonitoring(this._elementRef);\n\t}\n\n\t/**\n\t * Gets proper ID for inner button element.\n\t * Removes '-checkbox' suffix if present in container ID.\n\t *\n\t * @param idPassedToContainer - ID applied to container element\n\t * @returns ID to use for inner button or null\n\t */\n\tprotected _getCheckboxButtonId(idPassedToContainer: string | null | undefined): string | null {\n\t\treturn idPassedToContainer ? idPassedToContainer.replace(CONTAINER_POST_FIX, '') : null;\n\t}\n\n\t/**\n\t * Updates internal state when control value changes from outside.\n\t * Handles boolean and 'indeterminate' values.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param value - New checkbox state (true/false/'indeterminate')\n\t */\n\twriteValue(value: boolean): void {\n\t\tthis.checked.set(value);\n\t}\n\n\t/**\n\t * Registers callback for value changes.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param fn - Function to call when value changes\n\t */\n\tregisterOnChange(fn: ChangeFn<boolean>): void {\n\t\tthis._onChange = fn;\n\t}\n\n\t/**\n\t * Registers callback for touched events.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param fn - Function to call when control is touched\n\t */\n\tregisterOnTouched(fn: TouchFn): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\t/**\n\t * Updates disabled state from form control.\n\t * Part of ControlValueAccessor interface.\n\t *\n\t * @param isDisabled - Whether checkbox should be disabled\n\t */\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis._state().disabled.set(isDisabled);\n\t\tthis._cdr.markForCheck();\n\t}\n}\n","import { BrnCheckbox } from './lib/brn-checkbox';\n\nexport * from './lib/brn-checkbox';\n\nexport const BrnCheckboxImports = [BrnCheckbox] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spartan-ng-brain-checkbox.mjs","sources":["../tmp-esm2022/checkbox/lib/brn-checkbox.js","../tmp-esm2022/checkbox/index.js","../tmp-esm2022/checkbox/spartan-ng-brain-checkbox.js"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { isPlatformBrowser } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, DestroyRef, DOCUMENT, effect, ElementRef, forwardRef, inject, input, linkedSignal, model, output, PLATFORM_ID, Renderer2, signal, viewChild, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nexport const BRN_CHECKBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BrnCheckbox),\n multi: true,\n};\nlet uniqueIdCounter = 0;\nconst CONTAINER_POST_FIX = '-checkbox';\nexport class BrnCheckbox {\n _destroyRef = inject(DestroyRef);\n _renderer = inject(Renderer2);\n _elementRef = inject(ElementRef);\n _focusMonitor = inject(FocusMonitor);\n _cdr = inject(ChangeDetectorRef);\n _document = inject(DOCUMENT);\n _isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n _focusVisible = signal(false);\n _focused = signal(false);\n /**\n * The checked state of the checkbox.\n * Can be bound with [(checked)] for two-way binding.\n */\n checked = model(false);\n /** Emits when checked state changes. */\n checkedChange = output();\n /**\n * Read-only signal of current checkbox state.\n * Use this when you only need to read state without changing it.\n */\n isChecked = this.checked.asReadonly();\n /*\n * The indeterminate state of the checkbox.\n * For example, a \"select all/deselect all\" checkbox may be in the indeterminate state when some but not all of its sub-controls are checked.\n */\n indeterminate = model(false);\n /**\n * Computed data-state attribute value based on checked state.\n * Returns 'checked', 'unchecked', or 'indeterminate'.\n */\n _dataState = computed(() => {\n if (this.indeterminate())\n return 'indeterminate';\n return this.checked() ? 'checked' : 'unchecked';\n });\n /**\n * Computed aria-checked attribute value for accessibility.\n * Returns 'true', 'false', or 'mixed' (for indeterminate).\n */\n _ariaChecked = computed(() => {\n if (this.indeterminate())\n return 'mixed';\n return this.checked() ? 'true' : 'false';\n });\n /**\n * Unique identifier for checkbox component.\n * When provided, inner button gets ID without '-checkbox' suffix.\n * Auto-generates ID if not provided.\n */\n id = input(++uniqueIdCounter + '');\n /**\n * Form control name for checkbox.\n * When provided, inner button gets name without '-checkbox' suffix.\n */\n name = input(null);\n /**\n * CSS classes applied to inner button element.\n */\n class = input(null);\n /**\n * Accessibility label for screen readers.\n * Use when no visible label exists.\n */\n ariaLabel = input(null, { alias: 'aria-label' });\n /**\n * ID of element that labels this checkbox for accessibility.\n * Auto-set when checkbox is inside label element.\n */\n ariaLabelledby = input(null, { alias: 'aria-labelledby' });\n mutableAriaLabelledby = linkedSignal(() => this.ariaLabelledby());\n /**\n * ID of element that describes this checkbox for accessibility.\n */\n ariaDescribedby = input(null, { alias: 'aria-describedby' });\n /**\n * Whether checkbox is required in a form.\n */\n required = input(false, { transform: booleanAttribute });\n /**\n * Whether checkbox is disabled.\n * Disabled checkboxes cannot be toggled and indicate disabled state through data-disabled attribute.\n */\n disabled = input(false, { transform: booleanAttribute });\n /**\n * Computed state for checkbox container and accessibility.\n * Manages ID, name, and disabled state.\n */\n _state = computed(() => {\n const name = this.name();\n const id = this.id();\n return {\n disabled: signal(this.disabled()),\n name: name ? name + CONTAINER_POST_FIX : null,\n id: id ? id + CONTAINER_POST_FIX : null,\n };\n });\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onChange = () => { };\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n _onTouched = () => { };\n /**\n * Reference to the checkbox button element in the template.\n */\n checkbox = viewChild.required('checkBox');\n /**\n * Event emitted when checkbox is blurred (loses focus).\n * Used for form validation.\n */\n touched = output();\n constructor() {\n effect(() => {\n const state = this._state();\n const isDisabled = state.disabled();\n if (!this._elementRef.nativeElement || !this._isBrowser)\n return;\n const newLabelId = state.id + '-label';\n const checkboxButtonId = this._getCheckboxButtonId(state.id);\n const labelElement = this._elementRef.nativeElement.closest('label') ??\n this._document.querySelector(`label[for=\"${checkboxButtonId}\"]`);\n if (!labelElement)\n return;\n const existingLabelId = labelElement.id;\n this._renderer.setAttribute(labelElement, 'data-disabled', isDisabled ? 'true' : 'false');\n this.mutableAriaLabelledby.set(existingLabelId || newLabelId);\n if (!existingLabelId || existingLabelId.length === 0) {\n this._renderer.setAttribute(labelElement, 'id', newLabelId);\n }\n });\n }\n /**\n * Toggles checkbox between checked/unchecked states.\n * If checkbox is indeterminate, sets to checked.\n * Does nothing if checkbox is disabled.\n */\n toggle() {\n if (this._state().disabled())\n return;\n this._onTouched();\n this.touched.emit();\n const newChecked = this.indeterminate() ? true : !this.checked();\n this.indeterminate.set(false);\n this.checkedChange.emit(newChecked);\n this.checked.set(newChecked);\n this._onChange(newChecked);\n }\n ngAfterContentInit() {\n this._focusMonitor\n .monitor(this._elementRef, true)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((focusOrigin) => {\n if (focusOrigin)\n this._focused.set(true);\n if (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n this._focusVisible.set(true);\n this._cdr.markForCheck();\n }\n if (!focusOrigin) {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state\n // change (such as a form control's ng-touched) will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this._focusVisible.set(false);\n this._focused.set(false);\n this._onTouched();\n this.touched.emit();\n this._cdr.markForCheck();\n });\n }\n });\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n /**\n * Gets proper ID for inner button element.\n * Removes '-checkbox' suffix if present in container ID.\n *\n * @param idPassedToContainer - ID applied to container element\n * @returns ID to use for inner button or null\n */\n _getCheckboxButtonId(idPassedToContainer) {\n return idPassedToContainer ? idPassedToContainer.replace(CONTAINER_POST_FIX, '') : null;\n }\n /**\n * Updates internal state when control value changes from outside.\n * Handles boolean and 'indeterminate' values.\n * Part of ControlValueAccessor interface.\n *\n * @param value - New checkbox state (true/false/'indeterminate')\n */\n writeValue(value) {\n this.checked.set(value);\n }\n /**\n * Registers callback for value changes.\n * Part of ControlValueAccessor interface.\n *\n * @param fn - Function to call when value changes\n */\n registerOnChange(fn) {\n this._onChange = fn;\n }\n /**\n * Registers callback for touched events.\n * Part of ControlValueAccessor interface.\n *\n * @param fn - Function to call when control is touched\n */\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /**\n * Updates disabled state from form control.\n * Part of ControlValueAccessor interface.\n *\n * @param isDisabled - Whether checkbox should be disabled\n */\n setDisabledState(isDisabled) {\n this._state().disabled.set(isDisabled);\n this._cdr.markForCheck();\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component });\n /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.7\", type: BrnCheckbox, isStandalone: true, selector: \"brn-checkbox\", inputs: { checked: { classPropertyName: \"checked\", publicName: \"checked\", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: \"indeterminate\", publicName: \"indeterminate\", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: \"class\", publicName: \"class\", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: \"ariaLabel\", publicName: \"aria-label\", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: \"ariaLabelledby\", publicName: \"aria-labelledby\", isSignal: true, isRequired: false, transformFunction: null }, ariaDescribedby: { classPropertyName: \"ariaDescribedby\", publicName: \"aria-describedby\", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: \"required\", publicName: \"required\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { checked: \"checkedChange\", checkedChange: \"checkedChange\", indeterminate: \"indeterminateChange\", touched: \"touched\" }, host: { properties: { \"style\": \"{display: \\\"contents\\\"}\", \"attr.id\": \"_state().id\", \"attr.name\": \"_state().name\", \"attr.aria-labelledby\": \"null\", \"attr.aria-label\": \"null\", \"attr.aria-describedby\": \"null\", \"attr.data-state\": \"_dataState()\", \"attr.data-focus-visible\": \"_focusVisible()\", \"attr.data-focus\": \"_focused()\", \"attr.data-disabled\": \"_state().disabled()\" } }, providers: [BRN_CHECKBOX_VALUE_ACCESSOR], viewQueries: [{ propertyName: \"checkbox\", first: true, predicate: [\"checkBox\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n\t\t<button\n\t\t\t#checkBox\n\t\t\trole=\"checkbox\"\n\t\t\ttype=\"button\"\n\t\t\t[id]=\"_getCheckboxButtonId(_state().id) ?? ''\"\n\t\t\t[name]=\"_getCheckboxButtonId(_state().name) ?? ''\"\n\t\t\t[class]=\"class()\"\n\t\t\t[attr.aria-checked]=\"_ariaChecked()\"\n\t\t\t[attr.aria-label]=\"ariaLabel() || null\"\n\t\t\t[attr.aria-labelledby]=\"mutableAriaLabelledby() || null\"\n\t\t\t[attr.aria-describedby]=\"ariaDescribedby() || null\"\n\t\t\t[attr.data-state]=\"_dataState()\"\n\t\t\t[attr.data-focus-visible]=\"_focusVisible()\"\n\t\t\t[attr.data-focus]=\"_focused()\"\n\t\t\t[attr.data-disabled]=\"_state().disabled()\"\n\t\t\t[disabled]=\"_state().disabled()\"\n\t\t\t[tabIndex]=\"_state().disabled() ? -1 : 0\"\n\t\t\t(click)=\"$event.preventDefault(); toggle()\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</button>\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnCheckbox, decorators: [{\n type: Component,\n args: [{\n selector: 'brn-checkbox',\n providers: [BRN_CHECKBOX_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[style]': '{display: \"contents\"}',\n '[attr.id]': '_state().id',\n '[attr.name]': '_state().name',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-describedby]': 'null',\n '[attr.data-state]': '_dataState()',\n '[attr.data-focus-visible]': '_focusVisible()',\n '[attr.data-focus]': '_focused()',\n '[attr.data-disabled]': '_state().disabled()',\n },\n template: `\n\t\t<button\n\t\t\t#checkBox\n\t\t\trole=\"checkbox\"\n\t\t\ttype=\"button\"\n\t\t\t[id]=\"_getCheckboxButtonId(_state().id) ?? ''\"\n\t\t\t[name]=\"_getCheckboxButtonId(_state().name) ?? ''\"\n\t\t\t[class]=\"class()\"\n\t\t\t[attr.aria-checked]=\"_ariaChecked()\"\n\t\t\t[attr.aria-label]=\"ariaLabel() || null\"\n\t\t\t[attr.aria-labelledby]=\"mutableAriaLabelledby() || null\"\n\t\t\t[attr.aria-describedby]=\"ariaDescribedby() || null\"\n\t\t\t[attr.data-state]=\"_dataState()\"\n\t\t\t[attr.data-focus-visible]=\"_focusVisible()\"\n\t\t\t[attr.data-focus]=\"_focused()\"\n\t\t\t[attr.data-disabled]=\"_state().disabled()\"\n\t\t\t[disabled]=\"_state().disabled()\"\n\t\t\t[tabIndex]=\"_state().disabled() ? -1 : 0\"\n\t\t\t(click)=\"$event.preventDefault(); toggle()\"\n\t\t>\n\t\t\t<ng-content />\n\t\t</button>\n\t`,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNoZWNrYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9jaGVja2JveC9zcmMvbGliL2Jybi1jaGVja2JveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUVOLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQTZCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRzlFLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHO0lBQzFDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDMUMsS0FBSyxFQUFFLElBQUk7Q0FDWCxDQUFDO0FBRUYsSUFBSSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0FBRXhCLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxDQUFDO0FBMEN2QyxNQUFNLE9BQU8sV0FBVztJQUNOLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixXQUFXLEdBQUcsTUFBTSxDQUEwQixVQUFVLENB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QkFDakMsc0JBQXNCLEVBQUUscUJBQXFCO3FCQUM3QztvQkFDRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFzQlQ7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgdHlwZSB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHR0eXBlIEFmdGVyQ29udGVudEluaXQsXG5cdGJvb2xlYW5BdHRyaWJ1dGUsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRjb21wdXRlZCxcblx0RGVzdHJveVJlZixcblx0RE9DVU1FTlQsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0Zm9yd2FyZFJlZixcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0bGlua2VkU2lnbmFsLFxuXHRtb2RlbCxcblx0dHlwZSBPbkRlc3Ryb3ksXG5cdG91dHB1dCxcblx0UExBVEZPUk1fSUQsXG5cdFJlbmRlcmVyMixcblx0c2lnbmFsLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgdHlwZSBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IENoYW5nZUZuLCBUb3VjaEZuIH0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgQlJOX0NIRUNLQk9YX1ZBTFVFX0FDQ0VTU09SID0ge1xuXHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQnJuQ2hlY2tib3gpLFxuXHRtdWx0aTogdHJ1ZSxcbn07XG5cbmxldCB1bmlxdWVJZENvdW50ZXIgPSAwO1xuXG5jb25zdCBDT05UQUlORVJfUE9TVF9GSVggPSAnLWNoZWNrYm94JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnYnJuLWNoZWNrYm94Jyxcblx0cHJvdmlkZXJzOiBbQlJOX0NIRUNLQk9YX1ZBTFVFX0FDQ0VTU09SXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3Q6IHtcblx0XHQnW3N0eWxlXSc6ICd7ZGlzcGxheTogXCJjb250ZW50c1wifScsXG5cdFx0J1thdHRyLmlkXSc6ICdfc3RhdGUoKS5pZCcsXG5cdFx0J1thdHRyLm5hbWVdJzogJ19zdGF0ZSgpLm5hbWUnLFxuXHRcdCdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ251bGwnLFxuXHRcdCdbYXR0ci5hcmlhLWxhYmVsXSc6ICdudWxsJyxcblx0XHQnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnbnVsbCcsXG5cdFx0J1thdHRyLmRhdGEtc3RhdGVdJzogJ19kYXRhU3RhdGUoKScsXG5cdFx0J1thdHRyLmRhdGEtZm9jdXMtdmlzaWJsZV0nOiAnX2ZvY3VzVmlzaWJsZSgpJyxcblx0XHQnW2F0dHIuZGF0YS1mb2N1c10nOiAnX2ZvY3VzZWQoKScsXG5cdFx0J1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ19zdGF0ZSgpLmRpc2FibGVkKCknLFxuXHR9LFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxidXR0b25cblx0XHRcdCNjaGVja0JveFxuXHRcdFx0cm9sZT1cImNoZWNrYm94XCJcblx0XHRcdHR5cGU9XCJidXR0b25cIlxuXHRcdFx0W2lkXT1cIl9nZXRDaGVja2JveEJ1dHRvbklkKF9zdGF0ZSgpLmlkKSA/PyAnJ1wiXG5cdFx0XHRbbmFtZV09XCJfZ2V0Q2hlY2tib3hCdXR0b25JZChfc3RhdGUoKS5uYW1lKSA/PyAnJ1wiXG5cdFx0XHRbY2xhc3NdPVwiY2xhc3MoKVwiXG5cdFx0XHRbYXR0ci5hcmlhLWNoZWNrZWRdPVwiX2FyaWFDaGVja2VkKClcIlxuXHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKSB8fCBudWxsXCJcblx0XHRcdFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJtdXRhYmxlQXJpYUxhYmVsbGVkYnkoKSB8fCBudWxsXCJcblx0XHRcdFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5KCkgfHwgbnVsbFwiXG5cdFx0XHRbYXR0ci5kYXRhLXN0YXRlXT1cIl9kYXRhU3RhdGUoKVwiXG5cdFx0XHRbYXR0ci5kYXRhLWZvY3VzLXZpc2libGVdPVwiX2ZvY3VzVmlzaWJsZSgpXCJcblx0XHRcdFthdHRyLmRhdGEtZm9jdXNdPVwiX2ZvY3VzZWQoKVwiXG5cdFx0XHRbYXR0ci5kYXRhLWRpc2FibGVkXT1cIl9zdGF0ZSgpLmRpc2FibGVkKClcIlxuXHRcdFx0W2Rpc2FibGVkXT1cIl9zdGF0ZSgpLmRpc2FibGVkKClcIlxuXHRcdFx0W3RhYkluZGV4XT1cIl9zdGF0ZSgpLmRpc2FibGVkKCkgPyAtMSA6IDBcIlxuXHRcdFx0KGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyB0b2dnbGUoKVwiXG5cdFx0PlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L2J1dHRvbj5cblx0YCxcbn0pXG5leHBvcnQgY2xhc3MgQnJuQ2hlY2tib3ggaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcblx0cHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblx0cHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvciA9IGluamVjdChGb2N1c01vbml0b3IpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2lzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKGluamVjdChQTEFURk9STV9JRCkpO1xuXG5cdHByb3RlY3RlZCByZWFkb25seSBfZm9jdXNWaXNpYmxlID0gc2lnbmFsKGZhbHNlKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9mb2N1c2VkID0gc2lnbmFsKGZhbHNlKTtcblxuXHQvKipcblx0ICogVGhlIGNoZWNrZWQgc3RhdGUgb2YgdGhlIGNoZWNrYm94LlxuXHQgKiBDYW4gYmUgYm91bmQgd2l0aCBbKGNoZWNrZWQpXSBmb3IgdHdvLXdheSBiaW5kaW5nLlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGNoZWNrZWQgPSBtb2RlbDxib29sZWFuPihmYWxzZSk7XG5cblx0LyoqIEVtaXRzIHdoZW4gY2hlY2tlZCBzdGF0ZSBjaGFuZ2VzLiAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgY2hlY2tlZENoYW5nZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG5cdC8qKlxuXHQgKiBSZWFkLW9ubHkgc2lnbmFsIG9mIGN1cnJlbnQgY2hlY2tib3ggc3RhdGUuXG5cdCAqIFVzZSB0aGlzIHdoZW4geW91IG9ubHkgbmVlZCB0byByZWFkIHN0YXRlIHdpdGhvdXQgY2hhbmdpbmcgaXQuXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgaXNDaGVja2VkID0gdGhpcy5jaGVja2VkLmFzUmVhZG9ubHkoKTtcblxuXHQvKlxuXHQgKiBUaGUgaW5kZXRlcm1pbmF0ZSBzdGF0ZSBvZiB0aGUgY2hlY2tib3guXG5cdCAqIEZvciBleGFtcGxlLCBhIFwic2VsZWN0IGFsbC9kZXNlbGVjdCBhbGxcIiBjaGVja2JveCBtYXkgYmUgaW4gdGhlIGluZGV0ZXJtaW5hdGUgc3RhdGUgd2hlbiBzb21lIGJ1dCBub3QgYWxsIG9mIGl0cyBzdWItY29udHJvbHMgYXJlIGNoZWNrZWQuXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgaW5kZXRlcm1pbmF0ZSA9IG1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuXHQvKipcblx0ICogQ29tcHV0ZWQgZGF0YS1zdGF0ZSBhdHRyaWJ1dGUgdmFsdWUgYmFzZWQgb24gY2hlY2tlZCBzdGF0ZS5cblx0ICogUmV0dXJucyAnY2hlY2tlZCcsICd1bmNoZWNrZWQnLCBvciAnaW5kZXRlcm1pbmF0ZScuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAodGhpcy5pbmRldGVybWluYXRlKCkpIHJldHVybiAnaW5kZXRlcm1pbmF0ZSc7XG5cdFx0cmV0dXJuIHRoaXMuY2hlY2tlZCgpID8gJ2NoZWNrZWQnIDogJ3VuY2hlY2tlZCc7XG5cdH0pO1xuXG5cdC8qKlxuXHQgKiBDb21wdXRlZCBhcmlhLWNoZWNrZWQgYXR0cmlidXRlIHZhbHVlIGZvciBhY2Nlc3NpYmlsaXR5LlxuXHQgKiBSZXR1cm5zICd0cnVlJywgJ2ZhbHNlJywgb3IgJ21peGVkJyAoZm9yIGluZGV0ZXJtaW5hdGUpLlxuXHQgKi9cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9hcmlhQ2hlY2tlZCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRpZiAodGhpcy5pbmRldGVybWluYXRlKCkpIHJldHVybiAnbWl4ZWQnO1xuXHRcdHJldHVybiB0aGlzLmNoZWNrZWQoKSA/ICd0cnVlJyA6ICdmYWxzZSc7XG5cdH0pO1xuXG5cdC8qKlxuXHQgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgY2hlY2tib3ggY29tcG9uZW50LlxuXHQgKiBXaGVuIHByb3ZpZGVkLCBpbm5lciBidXR0b24gZ2V0cyBJRCB3aXRob3V0ICctY2hlY2tib3gnIHN1ZmZpeC5cblx0ICogQXV0by1nZW5lcmF0ZXMgSUQgaWYgbm90IHByb3ZpZGVkLlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4oKyt1bmlxdWVJZENvdW50ZXIgKyAnJyk7XG5cblx0LyoqXG5cdCAqIEZvcm0gY29udHJvbCBuYW1lIGZvciBjaGVja2JveC5cblx0ICogV2hlbiBwcm92aWRlZCwgaW5uZXIgYnV0dG9uIGdldHMgbmFtZSB3aXRob3V0ICctY2hlY2tib3gnIHN1ZmZpeC5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBuYW1lID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cblx0LyoqXG5cdCAqIENTUyBjbGFzc2VzIGFwcGxpZWQgdG8gaW5uZXIgYnV0dG9uIGVsZW1lbnQuXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgY2xhc3MgPSBpbnB1dDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuXHQvKipcblx0ICogQWNjZXNzaWJpbGl0eSBsYWJlbCBmb3Igc2NyZWVuIHJlYWRlcnMuXG5cdCAqIFVzZSB3aGVuIG5vIHZpc2libGUgbGFiZWwgZXhpc3RzLlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGFyaWFMYWJlbCA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwsIHsgYWxpYXM6ICdhcmlhLWxhYmVsJyB9KTtcblxuXHQvKipcblx0ICogSUQgb2YgZWxlbWVudCB0aGF0IGxhYmVscyB0aGlzIGNoZWNrYm94IGZvciBhY2Nlc3NpYmlsaXR5LlxuXHQgKiBBdXRvLXNldCB3aGVuIGNoZWNrYm94IGlzIGluc2lkZSBsYWJlbCBlbGVtZW50LlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGFyaWFMYWJlbGxlZGJ5ID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCwgeyBhbGlhczogJ2FyaWEtbGFiZWxsZWRieScgfSk7XG5cdHB1YmxpYyByZWFkb25seSBtdXRhYmxlQXJpYUxhYmVsbGVkYnkgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5hcmlhTGFiZWxsZWRieSgpKTtcblxuXHQvKipcblx0ICogSUQgb2YgZWxlbWVudCB0aGF0IGRlc2NyaWJlcyB0aGlzIGNoZWNrYm94IGZvciBhY2Nlc3NpYmlsaXR5LlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGFyaWFEZXNjcmliZWRieSA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwsIHsgYWxpYXM6ICdhcmlhLWRlc2NyaWJlZGJ5JyB9KTtcblxuXHQvKipcblx0ICogV2hldGhlciBjaGVja2JveCBpcyByZXF1aXJlZCBpbiBhIGZvcm0uXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuXHQvKipcblx0ICogV2hldGhlciBjaGVja2JveCBpcyBkaXNhYmxlZC5cblx0ICogRGlzYWJsZWQgY2hlY2tib3hlcyBjYW5ub3QgYmUgdG9nZ2xlZCBhbmQgaW5kaWNhdGUgZGlzYWJsZWQgc3RhdGUgdGhyb3VnaCBkYXRhLWRpc2FibGVkIGF0dHJpYnV0ZS5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdC8qKlxuXHQgKiBDb21wdXRlZCBzdGF0ZSBmb3IgY2hlY2tib3ggY29udGFpbmVyIGFuZCBhY2Nlc3NpYmlsaXR5LlxuXHQgKiBNYW5hZ2VzIElELCBuYW1lLCBhbmQgZGlzYWJsZWQgc3RhdGUuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX3N0YXRlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IG5hbWUgPSB0aGlzLm5hbWUoKTtcblx0XHRjb25zdCBpZCA9IHRoaXMuaWQoKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZGlzYWJsZWQ6IHNpZ25hbCh0aGlzLmRpc2FibGVkKCkpLFxuXHRcdFx0bmFtZTogbmFtZSA/IG5hbWUgKyBDT05UQUlORVJfUE9TVF9GSVggOiBudWxsLFxuXHRcdFx0aWQ6IGlkID8gaWQgKyBDT05UQUlORVJfUE9TVF9GSVggOiBudWxsLFxuXHRcdH07XG5cdH0pO1xuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cblx0cHJvdGVjdGVkIF9vbkNoYW5nZTogQ2hhbmdlRm48Ym9vbGVhbj4gPSAoKSA9PiB7fTtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuXHRwcml2YXRlIF9vblRvdWNoZWQ6IFRvdWNoRm4gPSAoKSA9PiB7fTtcblxuXHQvKipcblx0ICogUmVmZXJlbmNlIHRvIHRoZSBjaGVja2JveCBidXR0b24gZWxlbWVudCBpbiB0aGUgdGVtcGxhdGUuXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgY2hlY2tib3ggPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD4+KCdjaGVja0JveCcpO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBlbWl0dGVkIHdoZW4gY2hlY2tib3ggaXMgYmx1cnJlZCAobG9zZXMgZm9jdXMpLlxuXHQgKiBVc2VkIGZvciBmb3JtIHZhbGlkYXRpb24uXG5cdCAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgdG91Y2hlZCA9IG91dHB1dDx2b2lkPigpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBzdGF0ZSA9IHRoaXMuX3N0YXRlKCk7XG5cdFx0XHRjb25zdCBpc0Rpc2FibGVkID0gc3RhdGUuZGlzYWJsZWQoKTtcblxuXHRcdFx0aWYgKCF0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgfHwgIXRoaXMuX2lzQnJvd3NlcikgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBuZXdMYWJlbElkID0gc3RhdGUuaWQgKyAnLWxhYmVsJztcblx0XHRcdGNvbnN0IGNoZWNrYm94QnV0dG9uSWQgPSB0aGlzLl9nZXRDaGVja2JveEJ1dHRvbklkKHN0YXRlLmlkKTtcblx0XHRcdGNvbnN0IGxhYmVsRWxlbWVudCA9XG5cdFx0XHRcdHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCdsYWJlbCcpID8/XG5cdFx0XHRcdHRoaXMuX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxhYmVsW2Zvcj1cIiR7Y2hlY2tib3hCdXR0b25JZH1cIl1gKTtcblxuXHRcdFx0aWYgKCFsYWJlbEVsZW1lbnQpIHJldHVybjtcblx0XHRcdGNvbnN0IGV4aXN0aW5nTGFiZWxJZCA9IGxhYmVsRWxlbWVudC5pZDtcblxuXHRcdFx0dGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKGxhYmVsRWxlbWVudCwgJ2RhdGEtZGlzYWJsZWQnLCBpc0Rpc2FibGVkID8gJ3RydWUnIDogJ2ZhbHNlJyk7XG5cdFx0XHR0aGlzLm11dGFibGVBcmlhTGFiZWxsZWRieS5zZXQoZXhpc3RpbmdMYWJlbElkIHx8IG5ld0xhYmVsSWQpO1xuXG5cdFx0XHRpZiAoIWV4aXN0aW5nTGFiZWxJZCB8fCBleGlzdGluZ0xhYmVsSWQubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRcdHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShsYWJlbEVsZW1lbnQsICdpZCcsIG5ld0xhYmVsSWQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRvZ2dsZXMgY2hlY2tib3ggYmV0d2VlbiBjaGVja2VkL3VuY2hlY2tlZCBzdGF0ZXMuXG5cdCAqIElmIGNoZWNrYm94IGlzIGluZGV0ZXJtaW5hdGUsIHNldHMgdG8gY2hlY2tlZC5cblx0ICogRG9lcyBub3RoaW5nIGlmIGNoZWNrYm94IGlzIGRpc2FibGVkLlxuXHQgKi9cblx0dG9nZ2xlKCkge1xuXHRcdGlmICh0aGlzLl9zdGF0ZSgpLmRpc2FibGVkKCkpIHJldHVybjtcblxuXHRcdHRoaXMuX29uVG91Y2hlZCgpO1xuXHRcdHRoaXMudG91Y2hlZC5lbWl0KCk7XG5cblx0XHRjb25zdCBuZXdDaGVja2VkID0gdGhpcy5pbmRldGVybWluYXRlKCkgPyB0cnVlIDogIXRoaXMuY2hlY2tlZCgpO1xuXHRcdHRoaXMuaW5kZXRlcm1pbmF0ZS5zZXQoZmFsc2UpO1xuXHRcdHRoaXMuY2hlY2tlZENoYW5nZS5lbWl0KG5ld0NoZWNrZWQpO1xuXHRcdHRoaXMuY2hlY2tlZC5zZXQobmV3Q2hlY2tlZCk7XG5cdFx0dGhpcy5fb25DaGFuZ2UobmV3Q2hlY2tlZCk7XG5cdH1cblxuXHRuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cdFx0dGhpcy5fZm9jdXNNb25pdG9yXG5cdFx0XHQubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCB0cnVlKVxuXHRcdFx0LnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuXHRcdFx0LnN1YnNjcmliZSgoZm9jdXNPcmlnaW4pID0+IHtcblx0XHRcdFx0aWYgKGZvY3VzT3JpZ2luKSB0aGlzLl9mb2N1c2VkLnNldCh0cnVlKTtcblx0XHRcdFx0aWYgKGZvY3VzT3JpZ2luID09PSAna2V5Ym9hcmQnIHx8IGZvY3VzT3JpZ2luID09PSAncHJvZ3JhbScpIHtcblx0XHRcdFx0XHR0aGlzLl9mb2N1c1Zpc2libGUuc2V0KHRydWUpO1xuXHRcdFx0XHRcdHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoIWZvY3VzT3JpZ2luKSB7XG5cdFx0XHRcdFx0Ly8gV2hlbiBhIGZvY3VzZWQgZWxlbWVudCBiZWNvbWVzIGRpc2FibGVkLCB0aGUgYnJvd3NlciAqaW1tZWRpYXRlbHkqIGZpcmVzIGEgYmx1ciBldmVudC5cblx0XHRcdFx0XHQvLyBBbmd1bGFyIGRvZXMgbm90IGV4cGVjdCBldmVudHMgdG8gYmUgcmFpc2VkIGR1cmluZyBjaGFuZ2UgZGV0ZWN0aW9uLCBzbyBhbnkgc3RhdGVcblx0XHRcdFx0XHQvLyBjaGFuZ2UgKHN1Y2ggYXMgYSBmb3JtIGNvbnRyb2wncyBuZy10b3VjaGVkKSB3aWxsIGNhdXNlIGEgY2hhbmdlZC1hZnRlci1jaGVja2VkIGVycm9yLlxuXHRcdFx0XHRcdC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNzc5My4gVG8gd29yayBhcm91bmQgdGhpcywgd2UgZGVmZXJcblx0XHRcdFx0XHQvLyB0ZWxsaW5nIHRoZSBmb3JtIGNvbnRyb2wgaXQgaGFzIGJlZW4gdG91Y2hlZCB1bnRpbCB0aGUgbmV4dCB0aWNrLlxuXHRcdFx0XHRcdFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5fZm9jdXNWaXNpYmxlLnNldChmYWxzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9mb2N1c2VkLnNldChmYWxzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9vblRvdWNoZWQoKTtcblx0XHRcdFx0XHRcdHRoaXMudG91Y2hlZC5lbWl0KCk7XG5cdFx0XHRcdFx0XHR0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgcHJvcGVyIElEIGZvciBpbm5lciBidXR0b24gZWxlbWVudC5cblx0ICogUmVtb3ZlcyAnLWNoZWNrYm94JyBzdWZmaXggaWYgcHJlc2VudCBpbiBjb250YWluZXIgSUQuXG5cdCAqXG5cdCAqIEBwYXJhbSBpZFBhc3NlZFRvQ29udGFpbmVyIC0gSUQgYXBwbGllZCB0byBjb250YWluZXIgZWxlbWVudFxuXHQgKiBAcmV0dXJucyBJRCB0byB1c2UgZm9yIGlubmVyIGJ1dHRvbiBvciBudWxsXG5cdCAqL1xuXHRwcm90ZWN0ZWQgX2dldENoZWNrYm94QnV0dG9uSWQoaWRQYXNzZWRUb0NvbnRhaW5lcjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xuXHRcdHJldHVybiBpZFBhc3NlZFRvQ29udGFpbmVyID8gaWRQYXNzZWRUb0NvbnRhaW5lci5yZXBsYWNlKENPTlRBSU5FUl9QT1NUX0ZJWCwgJycpIDogbnVsbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGVzIGludGVybmFsIHN0YXRlIHdoZW4gY29udHJvbCB2YWx1ZSBjaGFuZ2VzIGZyb20gb3V0c2lkZS5cblx0ICogSGFuZGxlcyBib29sZWFuIGFuZCAnaW5kZXRlcm1pbmF0ZScgdmFsdWVzLlxuXHQgKiBQYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZS5cblx0ICpcblx0ICogQHBhcmFtIHZhbHVlIC0gTmV3IGNoZWNrYm94IHN0YXRlICh0cnVlL2ZhbHNlLydpbmRldGVybWluYXRlJylcblx0ICovXG5cdHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHR0aGlzLmNoZWNrZWQuc2V0KHZhbHVlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWdpc3RlcnMgY2FsbGJhY2sgZm9yIHZhbHVlIGNoYW5nZXMuXG5cdCAqIFBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlLlxuXHQgKlxuXHQgKiBAcGFyYW0gZm4gLSBGdW5jdGlvbiB0byBjYWxsIHdoZW4gdmFsdWUgY2hhbmdlc1xuXHQgKi9cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogQ2hhbmdlRm48Ym9vbGVhbj4pOiB2b2lkIHtcblx0XHR0aGlzLl9vbkNoYW5nZSA9IGZuO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBjYWxsYmFjayBmb3IgdG91Y2hlZCBldmVudHMuXG5cdCAqIFBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlLlxuXHQgKlxuXHQgKiBAcGFyYW0gZm4gLSBGdW5jdGlvbiB0byBjYWxsIHdoZW4gY29udHJvbCBpcyB0b3VjaGVkXG5cdCAqL1xuXHRyZWdpc3Rlck9uVG91Y2hlZChmbjogVG91Y2hGbik6IHZvaWQge1xuXHRcdHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgZGlzYWJsZWQgc3RhdGUgZnJvbSBmb3JtIGNvbnRyb2wuXG5cdCAqIFBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlLlxuXHQgKlxuXHQgKiBAcGFyYW0gaXNEaXNhYmxlZCAtIFdoZXRoZXIgY2hlY2tib3ggc2hvdWxkIGJlIGRpc2FibGVkXG5cdCAqL1xuXHRzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHR0aGlzLl9zdGF0ZSgpLmRpc2FibGVkLnNldChpc0Rpc2FibGVkKTtcblx0XHR0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cbn1cbiJdfQ==","import { BrnCheckbox } from './lib/brn-checkbox';\nexport * from './lib/brn-checkbox';\nexport const BrnCheckboxImports = [BrnCheckbox];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2NoZWNrYm94L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFdBQVcsQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJuQ2hlY2tib3ggfSBmcm9tICcuL2xpYi9icm4tY2hlY2tib3gnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4tY2hlY2tib3gnO1xuXG5leHBvcnQgY29uc3QgQnJuQ2hlY2tib3hJbXBvcnRzID0gW0JybkNoZWNrYm94XSBhcyBjb25zdDtcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnRhbi1uZy1icmFpbi1jaGVja2JveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vY2hlY2tib3gvc3JjL3NwYXJ0YW4tbmctYnJhaW4tY2hlY2tib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
@@ -44,10 +44,10 @@ class BrnCollapsible {
|
|
|
44
44
|
}
|
|
45
45
|
this.expanded.update((expanded) => !expanded);
|
|
46
46
|
}
|
|
47
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
48
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
47
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCollapsible, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
48
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: BrnCollapsible, isStandalone: true, selector: "[brnCollapsible],brn-collapsible", inputs: { expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: "expandedChange" }, host: { properties: { "attr.data-state": "state()", "attr.disabled": "disabled() ? true : undefined" } }, providers: [provideBrnCollapsible(BrnCollapsible)], ngImport: i0 });
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCollapsible, decorators: [{
|
|
51
51
|
type: Directive,
|
|
52
52
|
args: [{
|
|
53
53
|
selector: '[brnCollapsible],brn-collapsible',
|
|
@@ -86,10 +86,10 @@ class BrnCollapsibleContent {
|
|
|
86
86
|
this._height.set(height);
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
90
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
89
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCollapsibleContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
90
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: BrnCollapsibleContent, isStandalone: true, selector: "[brnCollapsibleContent],brn-collapsible-content", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.inert": "_collapsible?.state() === 'closed' ? true : undefined", "attr.data-state": "_collapsible?.state()", "id": "_collapsible?.contentId()", "style.--brn-collapsible-content-width.px": "_width()", "style.--brn-collapsible-content-height.px": "_height()" } }, ngImport: i0 });
|
|
91
91
|
}
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCollapsibleContent, decorators: [{
|
|
93
93
|
type: Directive,
|
|
94
94
|
args: [{
|
|
95
95
|
selector: '[brnCollapsibleContent],brn-collapsible-content',
|
|
@@ -114,10 +114,10 @@ class BrnCollapsibleTrigger {
|
|
|
114
114
|
toggle() {
|
|
115
115
|
this._collapsible?.toggle();
|
|
116
116
|
}
|
|
117
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
118
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
117
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCollapsibleTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
118
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: BrnCollapsibleTrigger, isStandalone: true, selector: "button[brnCollapsibleTrigger]", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "toggle()" }, properties: { "attr.data-state": "_collapsible?.state()", "attr.disabled": "_collapsible?.disabled() ? true : undefined", "attr.aria-expanded": "_collapsible?.expanded()", "attr.aria-controls": "_collapsible?.contentId()", "type": "type()" } }, ngImport: i0 });
|
|
119
119
|
}
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCollapsibleTrigger, decorators: [{
|
|
121
121
|
type: Directive,
|
|
122
122
|
args: [{
|
|
123
123
|
selector: 'button[brnCollapsibleTrigger]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spartan-ng-brain-collapsible.mjs","sources":["../../../../libs/brain/collapsible/src/lib/brn-collapsible-token.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-content.ts","../../../../libs/brain/collapsible/src/lib/brn-collapsible-trigger.ts","../../../../libs/brain/collapsible/src/index.ts","../../../../libs/brain/collapsible/src/spartan-ng-brain-collapsible.ts"],"sourcesContent":["import type { ValueProvider } from '@angular/core';\nimport { type ExistingProvider, inject, InjectionToken, type Type } from '@angular/core';\nimport type { MeasurementDisplay } from '@spartan-ng/brain/core';\nimport type { BrnCollapsible } from './brn-collapsible';\n\nexport const BrnCollapsibleToken = new InjectionToken<BrnCollapsible>('BrnCollapsibleToken');\n\nexport function injectBrnCollapsible() {\n\treturn inject(BrnCollapsibleToken, { optional: true });\n}\n\nexport function provideBrnCollapsible(collapsible: Type<BrnCollapsible>): ExistingProvider {\n\treturn { provide: BrnCollapsibleToken, useExisting: collapsible };\n}\n\nexport interface BrCollapsibleConfig {\n\t/**\n\t * The display style to use when measuring element dimensions.\n\t * @default 'block'\n\t */\n\tmeasurementDisplay: MeasurementDisplay;\n}\n\nconst defaultConfig: BrCollapsibleConfig = {\n\tmeasurementDisplay: 'block',\n};\n\nconst BrnCollapsibleConfigToken = new InjectionToken<BrCollapsibleConfig>('BrnCollapsibleConfig');\n\nexport function provideBrnCollapsibleConfig(config: Partial<BrCollapsibleConfig>): ValueProvider {\n\treturn { provide: BrnCollapsibleConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectBrnCollapsibleConfig(): BrCollapsibleConfig {\n\treturn inject(BrnCollapsibleConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import type { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, computed, input, model, signal } from '@angular/core';\nimport { provideBrnCollapsible } from './brn-collapsible-token';\n\nlet collapsibleContentIdSequence = 0;\n\nexport type BrnCollapsibleState = 'open' | 'closed';\n\n@Directive({\n\tselector: '[brnCollapsible],brn-collapsible',\n\tproviders: [provideBrnCollapsible(BrnCollapsible)],\n\thost: {\n\t\t'[attr.data-state]': 'state()',\n\t\t'[attr.disabled]': 'disabled() ? true : undefined',\n\t},\n})\nexport class BrnCollapsible {\n\tpublic readonly contentId = signal(`brn-collapsible-content-${++collapsibleContentIdSequence}`);\n\n\t/**\n\t * The expanded or collapsed state of the collapsible component.\n\t */\n\tpublic readonly expanded = model<boolean>(false);\n\n\t/**\n\t * The current state of the collapsible component as 'open' or 'closed'.\n\t */\n\tpublic readonly state = computed<BrnCollapsibleState>(() => (this.expanded() ? 'open' : 'closed'));\n\n\t/**\n\t * The disabled state of the collapsible component.\n\t */\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\t/**\n\t * Toggles the expanded state of the collapsible component.\n\t */\n\tpublic toggle(): void {\n\t\tif (this.disabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.expanded.update((expanded) => !expanded);\n\t}\n}\n","import { Directive, ElementRef, afterNextRender, effect, inject, input, signal, untracked } from '@angular/core';\nimport { measureDimensions } from '@spartan-ng/brain/core';\nimport { injectBrnCollapsible, injectBrnCollapsibleConfig } from './brn-collapsible-token';\n\n@Directive({\n\tselector: '[brnCollapsibleContent],brn-collapsible-content',\n\thost: {\n\t\t'[attr.inert]': \"_collapsible?.state() === 'closed' ? true : undefined\",\n\t\t'[attr.data-state]': '_collapsible?.state()',\n\t\t'[id]': '_collapsible?.contentId()',\n\t\t'[style.--brn-collapsible-content-width.px]': '_width()',\n\t\t'[style.--brn-collapsible-content-height.px]': '_height()',\n\t},\n})\nexport class BrnCollapsibleContent {\n\tprivate readonly _config = injectBrnCollapsibleConfig();\n\tprivate readonly _elementRef = inject<ElementRef>(ElementRef);\n\tprotected readonly _collapsible = injectBrnCollapsible();\n\n\tprotected readonly _width = signal<number | null>(null);\n\tprotected readonly _height = signal<number | null>(null);\n\n\t/**\n\t * The id of the collapsible content element.\n\t */\n\tpublic readonly id = input<string | null | undefined>();\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\n\t\teffect(() => {\n\t\t\tconst id = this.id();\n\t\t\tconst collapsible = this._collapsible;\n\t\t\tif (!id || !collapsible) return;\n\t\t\tuntracked(() => collapsible.contentId.set(id));\n\t\t});\n\n\t\tafterNextRender(() => {\n\t\t\tconst { width, height } = measureDimensions(this._elementRef.nativeElement, this._config.measurementDisplay);\n\t\t\tthis._width.set(width);\n\t\t\tthis._height.set(height);\n\t\t});\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { injectBrnCollapsible } from './brn-collapsible-token';\n\n@Directive({\n\tselector: 'button[brnCollapsibleTrigger]',\n\thost: {\n\t\t'[attr.data-state]': '_collapsible?.state()',\n\t\t'[attr.disabled]': '_collapsible?.disabled() ? true : undefined',\n\t\t'[attr.aria-expanded]': '_collapsible?.expanded()',\n\t\t'[attr.aria-controls]': '_collapsible?.contentId()',\n\t\t'[type]': 'type()',\n\t\t'(click)': 'toggle()',\n\t},\n})\nexport class BrnCollapsibleTrigger {\n\tprotected readonly _collapsible = injectBrnCollapsible();\n\n\tpublic readonly type = input<'button' | 'submit' | 'reset'>('button');\n\n\tconstructor() {\n\t\tif (!this._collapsible) {\n\t\t\tthrow Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n\t\t}\n\t}\n\n\ttoggle(): void {\n\t\tthis._collapsible?.toggle();\n\t}\n}\n","import { BrnCollapsible } from './lib/brn-collapsible';\nimport { BrnCollapsibleContent } from './lib/brn-collapsible-content';\nimport { BrnCollapsibleTrigger } from './lib/brn-collapsible-trigger';\n\nexport * from './lib/brn-collapsible';\nexport * from './lib/brn-collapsible-content';\nexport * from './lib/brn-collapsible-token';\nexport * from './lib/brn-collapsible-trigger';\n\nexport const BrnCollapsibleImports = [BrnCollapsible, BrnCollapsibleTrigger, BrnCollapsibleContent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spartan-ng-brain-collapsible.mjs","sources":["../tmp-esm2022/collapsible/lib/brn-collapsible-token.js","../tmp-esm2022/collapsible/lib/brn-collapsible.js","../tmp-esm2022/collapsible/lib/brn-collapsible-content.js","../tmp-esm2022/collapsible/lib/brn-collapsible-trigger.js","../tmp-esm2022/collapsible/index.js","../tmp-esm2022/collapsible/spartan-ng-brain-collapsible.js"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nexport const BrnCollapsibleToken = new InjectionToken('BrnCollapsibleToken');\nexport function injectBrnCollapsible() {\n return inject(BrnCollapsibleToken, { optional: true });\n}\nexport function provideBrnCollapsible(collapsible) {\n return { provide: BrnCollapsibleToken, useExisting: collapsible };\n}\nconst defaultConfig = {\n measurementDisplay: 'block',\n};\nconst BrnCollapsibleConfigToken = new InjectionToken('BrnCollapsibleConfig');\nexport function provideBrnCollapsibleConfig(config) {\n return { provide: BrnCollapsibleConfigToken, useValue: { ...defaultConfig, ...config } };\n}\nexport function injectBrnCollapsibleConfig() {\n return inject(BrnCollapsibleConfigToken, { optional: true }) ?? defaultConfig;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbGxhcHNpYmxlLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9jb2xsYXBzaWJsZS9zcmMvbGliL2Jybi1jb2xsYXBzaWJsZS10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXlCLE1BQU0sRUFBRSxjQUFjLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFJekYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQWlCLHFCQUFxQixDQUFDLENBQUM7QUFFN0YsTUFBTSxVQUFVLG9CQUFvQjtJQUNuQyxPQUFPLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsV0FBaUM7SUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFDbkUsQ0FBQztBQVVELE1BQU0sYUFBYSxHQUF3QjtJQUMxQyxrQkFBa0IsRUFBRSxPQUFPO0NBQzNCLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFzQixzQkFBc0IsQ0FBQyxDQUFDO0FBRWxHLE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxNQUFvQztJQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUMxRixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQjtJQUN6QyxPQUFPLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQztBQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIEV4aXN0aW5nUHJvdmlkZXIsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIHR5cGUgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBNZWFzdXJlbWVudERpc3BsYXkgfSBmcm9tICdAc3BhcnRhbi1uZy9icmFpbi9jb3JlJztcbmltcG9ydCB0eXBlIHsgQnJuQ29sbGFwc2libGUgfSBmcm9tICcuL2Jybi1jb2xsYXBzaWJsZSc7XG5cbmV4cG9ydCBjb25zdCBCcm5Db2xsYXBzaWJsZVRva2VuID0gbmV3IEluamVjdGlvblRva2VuPEJybkNvbGxhcHNpYmxlPignQnJuQ29sbGFwc2libGVUb2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QnJuQ29sbGFwc2libGUoKSB7XG5cdHJldHVybiBpbmplY3QoQnJuQ29sbGFwc2libGVUb2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVCcm5Db2xsYXBzaWJsZShjb2xsYXBzaWJsZTogVHlwZTxCcm5Db2xsYXBzaWJsZT4pOiBFeGlzdGluZ1Byb3ZpZGVyIHtcblx0cmV0dXJuIHsgcHJvdmlkZTogQnJuQ29sbGFwc2libGVUb2tlbiwgdXNlRXhpc3Rpbmc6IGNvbGxhcHNpYmxlIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJDb2xsYXBzaWJsZUNvbmZpZyB7XG5cdC8qKlxuXHQgKiBUaGUgZGlzcGxheSBzdHlsZSB0byB1c2Ugd2hlbiBtZWFzdXJpbmcgZWxlbWVudCBkaW1lbnNpb25zLlxuXHQgKiBAZGVmYXVsdCAnYmxvY2snXG5cdCAqL1xuXHRtZWFzdXJlbWVudERpc3BsYXk6IE1lYXN1cmVtZW50RGlzcGxheTtcbn1cblxuY29uc3QgZGVmYXVsdENvbmZpZzogQnJDb2xsYXBzaWJsZUNvbmZpZyA9IHtcblx0bWVhc3VyZW1lbnREaXNwbGF5OiAnYmxvY2snLFxufTtcblxuY29uc3QgQnJuQ29sbGFwc2libGVDb25maWdUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxCckNvbGxhcHNpYmxlQ29uZmlnPignQnJuQ29sbGFwc2libGVDb25maWcnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVCcm5Db2xsYXBzaWJsZUNvbmZpZyhjb25maWc6IFBhcnRpYWw8QnJDb2xsYXBzaWJsZUNvbmZpZz4pOiBWYWx1ZVByb3ZpZGVyIHtcblx0cmV0dXJuIHsgcHJvdmlkZTogQnJuQ29sbGFwc2libGVDb25maWdUb2tlbiwgdXNlVmFsdWU6IHsgLi4uZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH0gfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEJybkNvbGxhcHNpYmxlQ29uZmlnKCk6IEJyQ29sbGFwc2libGVDb25maWcge1xuXHRyZXR1cm4gaW5qZWN0KEJybkNvbGxhcHNpYmxlQ29uZmlnVG9rZW4sIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gZGVmYXVsdENvbmZpZztcbn1cbiJdfQ==","import { Directive, booleanAttribute, computed, input, model, signal } from '@angular/core';\nimport { provideBrnCollapsible } from './brn-collapsible-token';\nimport * as i0 from \"@angular/core\";\nlet collapsibleContentIdSequence = 0;\nexport class BrnCollapsible {\n contentId = signal(`brn-collapsible-content-${++collapsibleContentIdSequence}`);\n /**\n * The expanded or collapsed state of the collapsible component.\n */\n expanded = model(false);\n /**\n * The current state of the collapsible component as 'open' or 'closed'.\n */\n state = computed(() => (this.expanded() ? 'open' : 'closed'));\n /**\n * The disabled state of the collapsible component.\n */\n disabled = input(false, { transform: booleanAttribute });\n /**\n * Toggles the expanded state of the collapsible component.\n */\n toggle() {\n if (this.disabled()) {\n return;\n }\n this.expanded.update((expanded) => !expanded);\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnCollapsible, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnCollapsible, isStandalone: true, selector: \"[brnCollapsible],brn-collapsible\", inputs: { expanded: { classPropertyName: \"expanded\", publicName: \"expanded\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expanded: \"expandedChange\" }, host: { properties: { \"attr.data-state\": \"state()\", \"attr.disabled\": \"disabled() ? true : undefined\" } }, providers: [provideBrnCollapsible(BrnCollapsible)], ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnCollapsible, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnCollapsible],brn-collapsible',\n providers: [provideBrnCollapsible(BrnCollapsible)],\n host: {\n '[attr.data-state]': 'state()',\n '[attr.disabled]': 'disabled() ? true : undefined',\n },\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbGxhcHNpYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9jb2xsYXBzaWJsZS9zcmMvbGliL2Jybi1jb2xsYXBzaWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFaEUsSUFBSSw0QkFBNEIsR0FBRyxDQUFDLENBQUM7QUFZckMsTUFBTSxPQUFPLGNBQWM7SUFDVixTQUFTLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFLDRCQUE0QixFQUFFLENBQUMsQ0FBQztJQUVoRzs7T0FFRztJQUNhLFFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFakQ7O09BRUc7SUFDYSxLQUFLLEdBQUcsUUFBUSxDQUFzQixHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBRW5HOztPQUVHO0lBQ2EsUUFBUSxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUVoRzs7T0FFRztJQUNJLE1BQU07UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDUixDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsQ0FBQzswSEEzQlcsY0FBYzs4R0FBZCxjQUFjLGdmQU5mLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUFDLENBQUM7OzJGQU10QyxjQUFjO2tCQVIxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrQ0FBa0M7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLHFCQUFxQixnQkFBZ0IsQ0FBQztvQkFDbEQsSUFBSSxFQUFFO3dCQUNMLG1CQUFtQixFQUFFLFNBQVM7d0JBQzlCLGlCQUFpQixFQUFFLCtCQUErQjtxQkFDbEQ7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIGJvb2xlYW5BdHRyaWJ1dGUsIGNvbXB1dGVkLCBpbnB1dCwgbW9kZWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZUJybkNvbGxhcHNpYmxlIH0gZnJvbSAnLi9icm4tY29sbGFwc2libGUtdG9rZW4nO1xuXG5sZXQgY29sbGFwc2libGVDb250ZW50SWRTZXF1ZW5jZSA9IDA7XG5cbmV4cG9ydCB0eXBlIEJybkNvbGxhcHNpYmxlU3RhdGUgPSAnb3BlbicgfCAnY2xvc2VkJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JybkNvbGxhcHNpYmxlXSxicm4tY29sbGFwc2libGUnLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlQnJuQ29sbGFwc2libGUoQnJuQ29sbGFwc2libGUpXSxcblx0aG9zdDoge1xuXHRcdCdbYXR0ci5kYXRhLXN0YXRlXSc6ICdzdGF0ZSgpJyxcblx0XHQnW2F0dHIuZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCkgPyB0cnVlIDogdW5kZWZpbmVkJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuQ29sbGFwc2libGUge1xuXHRwdWJsaWMgcmVhZG9ubHkgY29udGVudElkID0gc2lnbmFsKGBicm4tY29sbGFwc2libGUtY29udGVudC0keysrY29sbGFwc2libGVDb250ZW50SWRTZXF1ZW5jZX1gKTtcblxuXHQvKipcblx0ICogVGhlIGV4cGFuZGVkIG9yIGNvbGxhcHNlZCBzdGF0ZSBvZiB0aGUgY29sbGFwc2libGUgY29tcG9uZW50LlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGV4cGFuZGVkID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG5cdC8qKlxuXHQgKiBUaGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgY29sbGFwc2libGUgY29tcG9uZW50IGFzICdvcGVuJyBvciAnY2xvc2VkJy5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBzdGF0ZSA9IGNvbXB1dGVkPEJybkNvbGxhcHNpYmxlU3RhdGU+KCgpID0+ICh0aGlzLmV4cGFuZGVkKCkgPyAnb3BlbicgOiAnY2xvc2VkJykpO1xuXG5cdC8qKlxuXHQgKiBUaGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIGNvbGxhcHNpYmxlIGNvbXBvbmVudC5cblx0ICovXG5cdHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIEJvb2xlYW5JbnB1dD4oZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG5cdC8qKlxuXHQgKiBUb2dnbGVzIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgY29sbGFwc2libGUgY29tcG9uZW50LlxuXHQgKi9cblx0cHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5leHBhbmRlZC51cGRhdGUoKGV4cGFuZGVkKSA9PiAhZXhwYW5kZWQpO1xuXHR9XG59XG4iXX0=","import { Directive, ElementRef, afterNextRender, effect, inject, input, signal, untracked } from '@angular/core';\nimport { measureDimensions } from '@spartan-ng/brain/core';\nimport { injectBrnCollapsible, injectBrnCollapsibleConfig } from './brn-collapsible-token';\nimport * as i0 from \"@angular/core\";\nexport class BrnCollapsibleContent {\n _config = injectBrnCollapsibleConfig();\n _elementRef = inject(ElementRef);\n _collapsible = injectBrnCollapsible();\n _width = signal(null);\n _height = signal(null);\n /**\n * The id of the collapsible content element.\n */\n id = input();\n constructor() {\n if (!this._collapsible) {\n throw Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n }\n effect(() => {\n const id = this.id();\n const collapsible = this._collapsible;\n if (!id || !collapsible)\n return;\n untracked(() => collapsible.contentId.set(id));\n });\n afterNextRender(() => {\n const { width, height } = measureDimensions(this._elementRef.nativeElement, this._config.measurementDisplay);\n this._width.set(width);\n this._height.set(height);\n });\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnCollapsibleContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnCollapsibleContent, isStandalone: true, selector: \"[brnCollapsibleContent],brn-collapsible-content\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"attr.inert\": \"_collapsible?.state() === 'closed' ? true : undefined\", \"attr.data-state\": \"_collapsible?.state()\", \"id\": \"_collapsible?.contentId()\", \"style.--brn-collapsible-content-width.px\": \"_width()\", \"style.--brn-collapsible-content-height.px\": \"_height()\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnCollapsibleContent, decorators: [{\n type: Directive,\n args: [{\n selector: '[brnCollapsibleContent],brn-collapsible-content',\n host: {\n '[attr.inert]': \"_collapsible?.state() === 'closed' ? true : undefined\",\n '[attr.data-state]': '_collapsible?.state()',\n '[id]': '_collapsible?.contentId()',\n '[style.--brn-collapsible-content-width.px]': '_width()',\n '[style.--brn-collapsible-content-height.px]': '_height()',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbGxhcHNpYmxlLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2NvbGxhcHNpYmxlL3NyYy9saWIvYnJuLWNvbGxhcHNpYmxlLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBWTNGLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEIsT0FBTyxHQUFHLDBCQUEwQixFQUFFLENBQUM7SUFDdkMsV0FBVyxHQUFHLE1BQU0sQ0FBYSxVQUFVLENBQUMsQ0FBQztJQUMzQyxZQUFZLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztJQUV0QyxNQUFNLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUNyQyxPQUFPLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztJQUV6RDs7T0FFRztJQUNhLEVBQUUsR0FBRyxLQUFLLEVBQTZCLENBQUM7SUFFeEQ7UUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE1BQU0sS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7UUFDakcsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUN0QyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFBRSxPQUFPO1lBQ2hDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO1FBRUgsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUM3RyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7MEhBOUJXLHFCQUFxQjs4R0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQVZqQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpREFBaUQ7b0JBQzNELElBQUksRUFBRTt3QkFDTCxjQUFjLEVBQUUsdURBQXVEO3dCQUN2RSxtQkFBbUIsRUFBRSx1QkFBdUI7d0JBQzVDLE1BQU0sRUFBRSwyQkFBMkI7d0JBQ25DLDRDQUE0QyxFQUFFLFVBQVU7d0JBQ3hELDZDQUE2QyxFQUFFLFdBQVc7cUJBQzFEO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBhZnRlck5leHRSZW5kZXIsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lYXN1cmVEaW1lbnNpb25zIH0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vY29yZSc7XG5pbXBvcnQgeyBpbmplY3RCcm5Db2xsYXBzaWJsZSwgaW5qZWN0QnJuQ29sbGFwc2libGVDb25maWcgfSBmcm9tICcuL2Jybi1jb2xsYXBzaWJsZS10b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1ticm5Db2xsYXBzaWJsZUNvbnRlbnRdLGJybi1jb2xsYXBzaWJsZS1jb250ZW50Jyxcblx0aG9zdDoge1xuXHRcdCdbYXR0ci5pbmVydF0nOiBcIl9jb2xsYXBzaWJsZT8uc3RhdGUoKSA9PT0gJ2Nsb3NlZCcgPyB0cnVlIDogdW5kZWZpbmVkXCIsXG5cdFx0J1thdHRyLmRhdGEtc3RhdGVdJzogJ19jb2xsYXBzaWJsZT8uc3RhdGUoKScsXG5cdFx0J1tpZF0nOiAnX2NvbGxhcHNpYmxlPy5jb250ZW50SWQoKScsXG5cdFx0J1tzdHlsZS4tLWJybi1jb2xsYXBzaWJsZS1jb250ZW50LXdpZHRoLnB4XSc6ICdfd2lkdGgoKScsXG5cdFx0J1tzdHlsZS4tLWJybi1jb2xsYXBzaWJsZS1jb250ZW50LWhlaWdodC5weF0nOiAnX2hlaWdodCgpJyxcblx0fSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuQ29sbGFwc2libGVDb250ZW50IHtcblx0cHJpdmF0ZSByZWFkb25seSBfY29uZmlnID0gaW5qZWN0QnJuQ29sbGFwc2libGVDb25maWcoKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPihFbGVtZW50UmVmKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9jb2xsYXBzaWJsZSA9IGluamVjdEJybkNvbGxhcHNpYmxlKCk7XG5cblx0cHJvdGVjdGVkIHJlYWRvbmx5IF93aWR0aCA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcblx0cHJvdGVjdGVkIHJlYWRvbmx5IF9oZWlnaHQgPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG5cblx0LyoqXG5cdCAqIFRoZSBpZCBvZiB0aGUgY29sbGFwc2libGUgY29udGVudCBlbGVtZW50LlxuXHQgKi9cblx0cHVibGljIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpZiAoIXRoaXMuX2NvbGxhcHNpYmxlKSB7XG5cdFx0XHR0aHJvdyBFcnJvcignQ29sbGFwc2libGUgdHJpZ2dlciBkaXJlY3RpdmUgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgYSBicm4tY29sbGFwc2libGUgZWxlbWVudC4nKTtcblx0XHR9XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgaWQgPSB0aGlzLmlkKCk7XG5cdFx0XHRjb25zdCBjb2xsYXBzaWJsZSA9IHRoaXMuX2NvbGxhcHNpYmxlO1xuXHRcdFx0aWYgKCFpZCB8fCAhY29sbGFwc2libGUpIHJldHVybjtcblx0XHRcdHVudHJhY2tlZCgoKSA9PiBjb2xsYXBzaWJsZS5jb250ZW50SWQuc2V0KGlkKSk7XG5cdFx0fSk7XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0Y29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBtZWFzdXJlRGltZW5zaW9ucyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuX2NvbmZpZy5tZWFzdXJlbWVudERpc3BsYXkpO1xuXHRcdFx0dGhpcy5fd2lkdGguc2V0KHdpZHRoKTtcblx0XHRcdHRoaXMuX2hlaWdodC5zZXQoaGVpZ2h0KTtcblx0XHR9KTtcblx0fVxufVxuIl19","import { Directive, input } from '@angular/core';\nimport { injectBrnCollapsible } from './brn-collapsible-token';\nimport * as i0 from \"@angular/core\";\nexport class BrnCollapsibleTrigger {\n _collapsible = injectBrnCollapsible();\n type = input('button');\n constructor() {\n if (!this._collapsible) {\n throw Error('Collapsible trigger directive can only be used inside a brn-collapsible element.');\n }\n }\n toggle() {\n this._collapsible?.toggle();\n }\n /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnCollapsibleTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.7\", type: BrnCollapsibleTrigger, isStandalone: true, selector: \"button[brnCollapsibleTrigger]\", inputs: { type: { classPropertyName: \"type\", publicName: \"type\", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { \"click\": \"toggle()\" }, properties: { \"attr.data-state\": \"_collapsible?.state()\", \"attr.disabled\": \"_collapsible?.disabled() ? true : undefined\", \"attr.aria-expanded\": \"_collapsible?.expanded()\", \"attr.aria-controls\": \"_collapsible?.contentId()\", \"type\": \"type()\" } }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BrnCollapsibleTrigger, decorators: [{\n type: Directive,\n args: [{\n selector: 'button[brnCollapsibleTrigger]',\n host: {\n '[attr.data-state]': '_collapsible?.state()',\n '[attr.disabled]': '_collapsible?.disabled() ? true : undefined',\n '[attr.aria-expanded]': '_collapsible?.expanded()',\n '[attr.aria-controls]': '_collapsible?.contentId()',\n '[type]': 'type()',\n '(click)': 'toggle()',\n },\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLWNvbGxhcHNpYmxlLXRyaWdnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2NvbGxhcHNpYmxlL3NyYy9saWIvYnJuLWNvbGxhcHNpYmxlLXRyaWdnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBYS9ELE1BQU0sT0FBTyxxQkFBcUI7SUFDZCxZQUFZLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztJQUV6QyxJQUFJLEdBQUcsS0FBSyxDQUFnQyxRQUFRLENBQUMsQ0FBQztJQUV0RTtRQUNDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsTUFBTSxLQUFLLENBQUMsa0ZBQWtGLENBQUMsQ0FBQztRQUNqRyxDQUFDO0lBQ0YsQ0FBQztJQUVELE1BQU07UUFDTCxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7MEhBYlcscUJBQXFCOzhHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBWGpDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsSUFBSSxFQUFFO3dCQUNMLG1CQUFtQixFQUFFLHVCQUF1Qjt3QkFDNUMsaUJBQWlCLEVBQUUsNkNBQTZDO3dCQUNoRSxzQkFBc0IsRUFBRSwwQkFBMEI7d0JBQ2xELHNCQUFzQixFQUFFLDJCQUEyQjt3QkFDbkQsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLFNBQVMsRUFBRSxVQUFVO3FCQUNyQjtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEJybkNvbGxhcHNpYmxlIH0gZnJvbSAnLi9icm4tY29sbGFwc2libGUtdG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdidXR0b25bYnJuQ29sbGFwc2libGVUcmlnZ2VyXScsXG5cdGhvc3Q6IHtcblx0XHQnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnX2NvbGxhcHNpYmxlPy5zdGF0ZSgpJyxcblx0XHQnW2F0dHIuZGlzYWJsZWRdJzogJ19jb2xsYXBzaWJsZT8uZGlzYWJsZWQoKSA/IHRydWUgOiB1bmRlZmluZWQnLFxuXHRcdCdbYXR0ci5hcmlhLWV4cGFuZGVkXSc6ICdfY29sbGFwc2libGU/LmV4cGFuZGVkKCknLFxuXHRcdCdbYXR0ci5hcmlhLWNvbnRyb2xzXSc6ICdfY29sbGFwc2libGU/LmNvbnRlbnRJZCgpJyxcblx0XHQnW3R5cGVdJzogJ3R5cGUoKScsXG5cdFx0JyhjbGljayknOiAndG9nZ2xlKCknLFxuXHR9LFxufSlcbmV4cG9ydCBjbGFzcyBCcm5Db2xsYXBzaWJsZVRyaWdnZXIge1xuXHRwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbGxhcHNpYmxlID0gaW5qZWN0QnJuQ29sbGFwc2libGUoKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgdHlwZSA9IGlucHV0PCdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnPignYnV0dG9uJyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0aWYgKCF0aGlzLl9jb2xsYXBzaWJsZSkge1xuXHRcdFx0dGhyb3cgRXJyb3IoJ0NvbGxhcHNpYmxlIHRyaWdnZXIgZGlyZWN0aXZlIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIGEgYnJuLWNvbGxhcHNpYmxlIGVsZW1lbnQuJyk7XG5cdFx0fVxuXHR9XG5cblx0dG9nZ2xlKCk6IHZvaWQge1xuXHRcdHRoaXMuX2NvbGxhcHNpYmxlPy50b2dnbGUoKTtcblx0fVxufVxuIl19","import { BrnCollapsible } from './lib/brn-collapsible';\nimport { BrnCollapsibleContent } from './lib/brn-collapsible-content';\nimport { BrnCollapsibleTrigger } from './lib/brn-collapsible-trigger';\nexport * from './lib/brn-collapsible';\nexport * from './lib/brn-collapsible-content';\nexport * from './lib/brn-collapsible-token';\nexport * from './lib/brn-collapsible-trigger';\nexport const BrnCollapsibleImports = [BrnCollapsible, BrnCollapsibleTrigger, BrnCollapsibleContent];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL2NvbGxhcHNpYmxlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFdEUsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJuQ29sbGFwc2libGUgfSBmcm9tICcuL2xpYi9icm4tY29sbGFwc2libGUnO1xuaW1wb3J0IHsgQnJuQ29sbGFwc2libGVDb250ZW50IH0gZnJvbSAnLi9saWIvYnJuLWNvbGxhcHNpYmxlLWNvbnRlbnQnO1xuaW1wb3J0IHsgQnJuQ29sbGFwc2libGVUcmlnZ2VyIH0gZnJvbSAnLi9saWIvYnJuLWNvbGxhcHNpYmxlLXRyaWdnZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9icm4tY29sbGFwc2libGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJuLWNvbGxhcHNpYmxlLWNvbnRlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYnJuLWNvbGxhcHNpYmxlLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1jb2xsYXBzaWJsZS10cmlnZ2VyJztcblxuZXhwb3J0IGNvbnN0IEJybkNvbGxhcHNpYmxlSW1wb3J0cyA9IFtCcm5Db2xsYXBzaWJsZSwgQnJuQ29sbGFwc2libGVUcmlnZ2VyLCBCcm5Db2xsYXBzaWJsZUNvbnRlbnRdIGFzIGNvbnN0O1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnRhbi1uZy1icmFpbi1jb2xsYXBzaWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYnJhaW4vY29sbGFwc2libGUvc3JjL3NwYXJ0YW4tbmctYnJhaW4tY29sbGFwc2libGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
2
2
|
import { isPlatformBrowser } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, inject, input, computed, signal, effect, forwardRef,
|
|
4
|
+
import { InjectionToken, inject, DestroyRef, ElementRef, Injector, input, computed, signal, effect, forwardRef, Directive, PLATFORM_ID, output, contentChild, contentChildren, untracked, TemplateRef, ViewContainerRef, booleanAttribute } from '@angular/core';
|
|
5
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
-
import { DefaultValueAccessor,
|
|
6
|
+
import { DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
7
7
|
import { startWith } from 'rxjs/operators';
|
|
8
8
|
|
|
9
9
|
const BrnCommandItemToken = new InjectionToken('BrnCommandItemToken');
|
|
@@ -35,7 +35,9 @@ function injectBrnCommandConfig() {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
class BrnCommandSearchInput extends DefaultValueAccessor {
|
|
38
|
-
|
|
38
|
+
_destroyRef = inject(DestroyRef);
|
|
39
|
+
_el = inject(ElementRef);
|
|
40
|
+
_injector = inject(Injector);
|
|
39
41
|
_command = injectBrnCommand();
|
|
40
42
|
/** The initial value of the search input */
|
|
41
43
|
value = input('');
|
|
@@ -45,19 +47,17 @@ class BrnCommandSearchInput extends DefaultValueAccessor {
|
|
|
45
47
|
valueState = computed(() => this.mutableValue()());
|
|
46
48
|
/** The id of the active option */
|
|
47
49
|
_activeDescendant = signal(undefined);
|
|
48
|
-
|
|
49
|
-
super(renderer, elementRef, compositionMode);
|
|
50
|
-
this.elementRef = elementRef;
|
|
50
|
+
ngOnInit() {
|
|
51
51
|
this._command.keyManager.change
|
|
52
|
-
.pipe(startWith(this._command.keyManager.activeItemIndex), takeUntilDestroyed())
|
|
52
|
+
.pipe(startWith(this._command.keyManager.activeItemIndex), takeUntilDestroyed(this._destroyRef))
|
|
53
53
|
.subscribe(() => this._activeDescendant.set(this._command.keyManager.activeItem?.id()));
|
|
54
54
|
effect(() => {
|
|
55
|
-
this.
|
|
56
|
-
});
|
|
55
|
+
this._el.nativeElement.value = this.valueState();
|
|
56
|
+
}, { injector: this._injector });
|
|
57
57
|
}
|
|
58
58
|
/** Listen for changes to the input value */
|
|
59
59
|
onInput() {
|
|
60
|
-
this.mutableValue().set(this.
|
|
60
|
+
this.mutableValue().set(this._el.nativeElement.value);
|
|
61
61
|
}
|
|
62
62
|
/** Listen for keydown events */
|
|
63
63
|
onKeyDown(event) {
|
|
@@ -70,8 +70,8 @@ class BrnCommandSearchInput extends DefaultValueAccessor {
|
|
|
70
70
|
this.mutableValue().set(value);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
74
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
73
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommandSearchInput, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
74
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: BrnCommandSearchInput, isStandalone: true, selector: "input[brnCommandSearchInput]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "combobox", "aria-autocomplete": "list" }, listeners: { "keydown": "onKeyDown($event)", "input": "onInput()" }, properties: { "attr.aria-activedescendant": "_activeDescendant()" } }, providers: [
|
|
75
75
|
provideBrnCommandSearchInput(BrnCommandSearchInput),
|
|
76
76
|
{
|
|
77
77
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -80,7 +80,7 @@ class BrnCommandSearchInput extends DefaultValueAccessor {
|
|
|
80
80
|
},
|
|
81
81
|
], usesInheritance: true, ngImport: i0 });
|
|
82
82
|
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommandSearchInput, decorators: [{
|
|
84
84
|
type: Directive,
|
|
85
85
|
args: [{
|
|
86
86
|
selector: 'input[brnCommandSearchInput]',
|
|
@@ -100,12 +100,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
100
100
|
'(input)': 'onInput()',
|
|
101
101
|
},
|
|
102
102
|
}]
|
|
103
|
-
}]
|
|
104
|
-
type: Optional
|
|
105
|
-
}, {
|
|
106
|
-
type: Inject,
|
|
107
|
-
args: [COMPOSITION_BUFFER_MODE]
|
|
108
|
-
}] }] });
|
|
103
|
+
}] });
|
|
109
104
|
|
|
110
105
|
class BrnCommand {
|
|
111
106
|
static _id = 0;
|
|
@@ -161,10 +156,10 @@ class BrnCommand {
|
|
|
161
156
|
selectActiveItem() {
|
|
162
157
|
this.keyManager.activeItem?.selected.emit();
|
|
163
158
|
}
|
|
164
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
165
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "
|
|
159
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommand, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
160
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.0.7", type: BrnCommand, isStandalone: true, selector: "[brnCommand]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { listeners: { "keydown.enter": "selectActiveItem()" }, properties: { "id": "id()" } }, providers: [provideBrnCommand(BrnCommand)], queries: [{ propertyName: "_searchInput", first: true, predicate: BrnCommandSearchInput, descendants: true, isSignal: true }, { propertyName: "items", predicate: BrnCommandItemToken, descendants: true, isSignal: true }], ngImport: i0 });
|
|
166
161
|
}
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommand, decorators: [{
|
|
168
163
|
type: Directive,
|
|
169
164
|
args: [{
|
|
170
165
|
selector: '[brnCommand]',
|
|
@@ -192,10 +187,10 @@ class BrnCommandEmpty {
|
|
|
192
187
|
}
|
|
193
188
|
});
|
|
194
189
|
}
|
|
195
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
196
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
190
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommandEmpty, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
191
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.7", type: BrnCommandEmpty, isStandalone: true, selector: "[brnCommandEmpty]", ngImport: i0 });
|
|
197
192
|
}
|
|
198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommandEmpty, decorators: [{
|
|
199
194
|
type: Directive,
|
|
200
195
|
args: [{
|
|
201
196
|
selector: '[brnCommandEmpty]',
|
|
@@ -212,10 +207,10 @@ class BrnCommandGroup {
|
|
|
212
207
|
});
|
|
213
208
|
/** Determine if there are any visible items in the group */
|
|
214
209
|
_visible = computed(() => this._items().some((item) => item.visible()));
|
|
215
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
216
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "
|
|
210
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommandGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
211
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.0.7", type: BrnCommandGroup, isStandalone: true, selector: "[brnCommandGroup]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "group" }, properties: { "attr.data-hidden": "!_visible() ? \"\" : null", "id": "id()" } }, queries: [{ propertyName: "_items", predicate: BrnCommandItemToken, descendants: true, isSignal: true }], ngImport: i0 });
|
|
217
212
|
}
|
|
218
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommandGroup, decorators: [{
|
|
219
214
|
type: Directive,
|
|
220
215
|
args: [{
|
|
221
216
|
selector: '[brnCommandGroup]',
|
|
@@ -295,10 +290,10 @@ class BrnCommandItem {
|
|
|
295
290
|
ngOnInit() {
|
|
296
291
|
this._initialized.set(true);
|
|
297
292
|
}
|
|
298
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
299
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
293
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommandItem, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
294
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: BrnCommandItem, isStandalone: true, selector: "button[brnCommandItem]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, _disabled: { classPropertyName: "_disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected" }, host: { attributes: { "type": "button", "role": "option", "tabIndex": "-1" }, listeners: { "click": "onClick()", "mouseenter": "activate()" }, properties: { "id": "id()", "attr.disabled": "_disabled() ? true : null", "attr.data-disabled": "_disabled() ? \"\" : null", "attr.data-value": "value()", "attr.data-hidden": "!visible() ? '' : null", "attr.aria-selected": "_active()", "attr.data-selected": "_active() ? '' : null" } }, providers: [provideBrnCommandItem(BrnCommandItem)], ngImport: i0 });
|
|
300
295
|
}
|
|
301
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
296
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommandItem, decorators: [{
|
|
302
297
|
type: Directive,
|
|
303
298
|
args: [{
|
|
304
299
|
selector: 'button[brnCommandItem]',
|
|
@@ -324,10 +319,10 @@ class BrnCommandList {
|
|
|
324
319
|
static _id = 0;
|
|
325
320
|
/** The id of the command list */
|
|
326
321
|
id = input(`brn-command-list-${++BrnCommandList._id}`);
|
|
327
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
328
|
-
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
322
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommandList, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
323
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.7", type: BrnCommandList, isStandalone: true, selector: "[brnCommandList]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listbox" }, properties: { "id": "id()" } }, ngImport: i0 });
|
|
329
324
|
}
|
|
330
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.7", ngImport: i0, type: BrnCommandList, decorators: [{
|
|
331
326
|
type: Directive,
|
|
332
327
|
args: [{
|
|
333
328
|
selector: '[brnCommandList]',
|