@spartan-ng/brain 0.0.1-alpha.374 → 0.0.1-alpha.380
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/README.md +3 -0
- package/accordion/index.d.ts +13 -0
- package/accordion/lib/brn-accordion-content.component.d.ts +15 -0
- package/accordion/lib/brn-accordion.directive.d.ts +47 -0
- package/alert-dialog/README.md +3 -0
- package/alert-dialog/index.d.ts +25 -0
- package/alert-dialog/lib/brn-alert-dialog-content.directive.d.ts +6 -0
- package/alert-dialog/lib/brn-alert-dialog-description.directive.d.ts +6 -0
- package/alert-dialog/lib/brn-alert-dialog-overlay.component.d.ts +6 -0
- package/alert-dialog/lib/brn-alert-dialog-title.directive.d.ts +6 -0
- package/alert-dialog/lib/brn-alert-dialog-trigger.directive.d.ts +8 -0
- package/alert-dialog/lib/brn-alert-dialog.component.d.ts +7 -0
- package/avatar/README.md +3 -0
- package/avatar/index.d.ts +17 -0
- package/avatar/lib/brn-avatar.component.d.ts +7 -0
- package/avatar/lib/fallback/brn-avatar-fallback.directive.d.ts +11 -0
- package/avatar/lib/fallback/index.d.ts +1 -0
- package/avatar/lib/image/brn-avatar-image.directive.d.ts +9 -0
- package/avatar/lib/image/index.d.ts +1 -0
- package/avatar/lib/util/hex-color-for.d.ts +1 -0
- package/avatar/lib/util/index.d.ts +3 -0
- package/avatar/lib/util/initials.pipe.d.ts +7 -0
- package/avatar/lib/util/is-bright.d.ts +1 -0
- package/calendar/README.md +3 -0
- package/calendar/index.d.ts +36 -0
- package/calendar/lib/brn-calendar-cell-button.directive.d.ts +59 -0
- package/calendar/lib/brn-calendar-cell.directive.d.ts +5 -0
- package/calendar/lib/brn-calendar-grid.directive.d.ts +7 -0
- package/calendar/lib/brn-calendar-header.directive.d.ts +7 -0
- package/calendar/lib/brn-calendar-next-button.directive.d.ts +13 -0
- package/calendar/lib/brn-calendar-previous-button.directive.d.ts +13 -0
- package/calendar/lib/brn-calendar-week.directive.d.ts +25 -0
- package/calendar/lib/brn-calendar-weekday.directive.d.ts +25 -0
- package/calendar/lib/brn-calendar.directive.d.ts +55 -0
- package/calendar/lib/brn-calendar.token.d.ts +8 -0
- package/calendar/lib/i18n/calendar-i18n.d.ts +17 -0
- package/checkbox/lib/brn-checkbox.component.d.ts +1 -1
- package/collapsible/README.md +3 -0
- package/collapsible/index.d.ts +16 -0
- package/collapsible/lib/brn-collapsible-content.component.d.ts +19 -0
- package/collapsible/lib/brn-collapsible-trigger.directive.d.ts +12 -0
- package/collapsible/lib/brn-collapsible.component.d.ts +11 -0
- package/command/README.md +3 -0
- package/command/index.d.ts +33 -0
- package/command/lib/brn-command-empty.directive.d.ts +6 -0
- package/command/lib/brn-command-group.component.d.ts +6 -0
- package/command/lib/brn-command-input.directive.d.ts +6 -0
- package/command/lib/brn-command-item.directive.d.ts +6 -0
- package/command/lib/brn-command-list.component.d.ts +6 -0
- package/command/lib/brn-command-loader.directive.d.ts +6 -0
- package/command/lib/brn-command-separator.component.d.ts +6 -0
- package/command/lib/brn-command.component.d.ts +6 -0
- package/date-time/README.md +3 -0
- package/date-time/index.d.ts +2 -0
- package/date-time/lib/date-adapter.d.ts +176 -0
- package/date-time/lib/native-date-adapter.d.ts +103 -0
- package/date-time-luxon/README.md +3 -0
- package/date-time-luxon/index.d.ts +1 -0
- package/date-time-luxon/lib/date-adapter.d.ts +29 -0
- package/dialog/README.md +3 -0
- package/dialog/index.d.ts +33 -0
- package/dialog/lib/brn-dialog-close.directive.d.ts +10 -0
- package/dialog/lib/brn-dialog-content.directive.d.ts +12 -0
- package/dialog/lib/brn-dialog-description.directive.d.ts +8 -0
- package/dialog/lib/brn-dialog-options.d.ts +26 -0
- package/dialog/lib/brn-dialog-overlay.component.d.ts +8 -0
- package/dialog/lib/brn-dialog-ref.d.ts +24 -0
- package/dialog/lib/brn-dialog-state.d.ts +1 -0
- package/dialog/lib/brn-dialog-title.directive.d.ts +8 -0
- package/dialog/lib/brn-dialog-trigger.directive.d.ts +16 -0
- package/dialog/lib/brn-dialog-utils.d.ts +1 -0
- package/dialog/lib/brn-dialog.component.d.ts +56 -0
- package/dialog/lib/brn-dialog.service.d.ts +22 -0
- package/esm2022/accordion/index.mjs +31 -0
- package/esm2022/accordion/lib/brn-accordion-content.component.mjs +50 -0
- package/esm2022/accordion/lib/brn-accordion.directive.mjs +180 -0
- package/esm2022/accordion/spartan-ng-brain-accordion.mjs +5 -0
- package/esm2022/alert-dialog/index.mjs +45 -0
- package/esm2022/alert-dialog/lib/brn-alert-dialog-content.directive.mjs +17 -0
- package/esm2022/alert-dialog/lib/brn-alert-dialog-description.directive.mjs +18 -0
- package/esm2022/alert-dialog/lib/brn-alert-dialog-overlay.component.mjs +20 -0
- package/esm2022/alert-dialog/lib/brn-alert-dialog-title.directive.mjs +18 -0
- package/esm2022/alert-dialog/lib/brn-alert-dialog-trigger.directive.mjs +27 -0
- package/esm2022/alert-dialog/lib/brn-alert-dialog.component.mjs +40 -0
- package/esm2022/alert-dialog/spartan-ng-brain-alert-dialog.mjs +5 -0
- package/esm2022/avatar/index.mjs +23 -0
- package/esm2022/avatar/lib/brn-avatar.component.mjs +31 -0
- package/esm2022/avatar/lib/fallback/brn-avatar-fallback.directive.mjs +21 -0
- package/esm2022/avatar/lib/fallback/index.mjs +2 -0
- package/esm2022/avatar/lib/image/brn-avatar-image.directive.mjs +29 -0
- package/esm2022/avatar/lib/image/index.mjs +2 -0
- package/esm2022/avatar/lib/util/hex-color-for.mjs +22 -0
- package/esm2022/avatar/lib/util/index.mjs +4 -0
- package/esm2022/avatar/lib/util/initials.pipe.mjs +27 -0
- package/esm2022/avatar/lib/util/is-bright.mjs +12 -0
- package/esm2022/avatar/spartan-ng-brain-avatar.mjs +5 -0
- package/esm2022/calendar/index.mjs +62 -0
- package/esm2022/calendar/lib/brn-calendar-cell-button.directive.mjs +160 -0
- package/esm2022/calendar/lib/brn-calendar-cell.directive.mjs +17 -0
- package/esm2022/calendar/lib/brn-calendar-grid.directive.mjs +21 -0
- package/esm2022/calendar/lib/brn-calendar-header.directive.mjs +22 -0
- package/esm2022/calendar/lib/brn-calendar-next-button.directive.mjs +42 -0
- package/esm2022/calendar/lib/brn-calendar-previous-button.directive.mjs +42 -0
- package/esm2022/calendar/lib/brn-calendar-week.directive.mjs +64 -0
- package/esm2022/calendar/lib/brn-calendar-weekday.directive.mjs +48 -0
- package/esm2022/calendar/lib/brn-calendar.directive.mjs +154 -0
- package/esm2022/calendar/lib/brn-calendar.token.mjs +12 -0
- package/esm2022/calendar/lib/i18n/calendar-i18n.mjs +33 -0
- package/esm2022/calendar/spartan-ng-brain-calendar.mjs +5 -0
- package/esm2022/checkbox/lib/brn-checkbox.component.mjs +1 -1
- package/esm2022/collapsible/index.mjs +30 -0
- package/esm2022/collapsible/lib/brn-collapsible-content.component.mjs +61 -0
- package/esm2022/collapsible/lib/brn-collapsible-trigger.directive.mjs +35 -0
- package/esm2022/collapsible/lib/brn-collapsible.component.mjs +33 -0
- package/esm2022/collapsible/spartan-ng-brain-collapsible.mjs +5 -0
- package/esm2022/command/index.mjs +64 -0
- package/esm2022/command/lib/brn-command-empty.directive.mjs +29 -0
- package/esm2022/command/lib/brn-command-group.component.mjs +45 -0
- package/esm2022/command/lib/brn-command-input.directive.mjs +29 -0
- package/esm2022/command/lib/brn-command-item.directive.mjs +36 -0
- package/esm2022/command/lib/brn-command-list.component.mjs +35 -0
- package/esm2022/command/lib/brn-command-loader.directive.mjs +29 -0
- package/esm2022/command/lib/brn-command-separator.component.mjs +30 -0
- package/esm2022/command/lib/brn-command.component.mjs +21 -0
- package/esm2022/command/spartan-ng-brain-command.mjs +5 -0
- package/esm2022/date-time/index.mjs +3 -0
- package/esm2022/date-time/lib/date-adapter.mjs +16 -0
- package/esm2022/date-time/lib/native-date-adapter.mjs +155 -0
- package/esm2022/date-time/spartan-ng-brain-date-time.mjs +5 -0
- package/esm2022/date-time-luxon/index.mjs +2 -0
- package/esm2022/date-time-luxon/lib/date-adapter.mjs +85 -0
- package/esm2022/date-time-luxon/spartan-ng-brain-date-time-luxon.mjs +5 -0
- package/esm2022/dialog/index.mjs +55 -0
- package/esm2022/dialog/lib/brn-dialog-close.directive.mjs +29 -0
- package/esm2022/dialog/lib/brn-dialog-content.directive.mjs +41 -0
- package/esm2022/dialog/lib/brn-dialog-description.directive.mjs +25 -0
- package/esm2022/dialog/lib/brn-dialog-options.mjs +19 -0
- package/esm2022/dialog/lib/brn-dialog-overlay.component.mjs +29 -0
- package/esm2022/dialog/lib/brn-dialog-ref.mjs +53 -0
- package/esm2022/dialog/lib/brn-dialog-state.mjs +2 -0
- package/esm2022/dialog/lib/brn-dialog-title.directive.mjs +25 -0
- package/esm2022/dialog/lib/brn-dialog-trigger.directive.mjs +39 -0
- package/esm2022/dialog/lib/brn-dialog-utils.mjs +12 -0
- package/esm2022/dialog/lib/brn-dialog.component.mjs +208 -0
- package/esm2022/dialog/lib/brn-dialog.service.mjs +127 -0
- package/esm2022/dialog/spartan-ng-brain-dialog.mjs +5 -0
- package/esm2022/form-field/index.mjs +2 -0
- package/esm2022/form-field/lib/brn-form-field-control.mjs +14 -0
- package/esm2022/form-field/spartan-ng-brain-form-field.mjs +5 -0
- package/esm2022/forms/index.mjs +4 -0
- package/esm2022/forms/lib/control-value-accessor.mjs +2 -0
- package/esm2022/forms/lib/error-options.mjs +26 -0
- package/esm2022/forms/lib/error-state-tracker.mjs +29 -0
- package/esm2022/forms/spartan-ng-brain-forms.mjs +5 -0
- package/esm2022/hover-card/index.mjs +29 -0
- package/esm2022/hover-card/lib/brn-hover-card-content.service.mjs +205 -0
- package/esm2022/hover-card/lib/brn-hover-card.component.mjs +34 -0
- package/esm2022/hover-card/lib/createHoverObservable.mjs +19 -0
- package/esm2022/hover-card/spartan-ng-brain-hover-card.mjs +5 -0
- package/esm2022/label/index.mjs +17 -0
- package/esm2022/label/lib/brn-label.directive.mjs +49 -0
- package/esm2022/label/spartan-ng-brain-label.mjs +5 -0
- package/esm2022/menu/index.mjs +100 -0
- package/esm2022/menu/lib/brn-context-menu-trigger.directive.mjs +40 -0
- package/esm2022/menu/lib/brn-menu-align.mjs +15 -0
- package/esm2022/menu/lib/brn-menu-bar.directive.mjs +17 -0
- package/esm2022/menu/lib/brn-menu-group.directive.mjs +17 -0
- package/esm2022/menu/lib/brn-menu-item-checkbox.directive.mjs +30 -0
- package/esm2022/menu/lib/brn-menu-item-radio.directive.mjs +30 -0
- package/esm2022/menu/lib/brn-menu-item.directive.mjs +27 -0
- package/esm2022/menu/lib/brn-menu-trigger.directive.mjs +36 -0
- package/esm2022/menu/lib/brn-menu.directive.mjs +50 -0
- package/esm2022/menu/spartan-ng-brain-menu.mjs +5 -0
- package/esm2022/popover/index.mjs +35 -0
- package/esm2022/popover/lib/brn-popover-close.directive.mjs +15 -0
- package/esm2022/popover/lib/brn-popover-content.directive.mjs +17 -0
- package/esm2022/popover/lib/brn-popover-trigger.directive.mjs +37 -0
- package/esm2022/popover/lib/brn-popover.component.mjs +81 -0
- package/esm2022/popover/spartan-ng-brain-popover.mjs +5 -0
- package/esm2022/progress/index.mjs +21 -0
- package/esm2022/progress/lib/brn-progress-indicator.component.mjs +22 -0
- package/esm2022/progress/lib/brn-progress.component.mjs +61 -0
- package/esm2022/progress/lib/brn-progress.token.mjs +9 -0
- package/esm2022/progress/spartan-ng-brain-progress.mjs +5 -0
- package/esm2022/radio-group/index.mjs +20 -0
- package/esm2022/radio-group/lib/brn-radio-group.component.mjs +90 -0
- package/esm2022/radio-group/lib/brn-radio-group.token.mjs +9 -0
- package/esm2022/radio-group/lib/brn-radio.component.mjs +185 -0
- package/esm2022/radio-group/spartan-ng-brain-radio-group.mjs +5 -0
- package/esm2022/select/index.mjs +56 -0
- package/esm2022/select/lib/brn-select-content.component.mjs +204 -0
- package/esm2022/select/lib/brn-select-group.directive.mjs +19 -0
- package/esm2022/select/lib/brn-select-label.directive.mjs +23 -0
- package/esm2022/select/lib/brn-select-option.directive.mjs +65 -0
- package/esm2022/select/lib/brn-select-value.component.mjs +46 -0
- package/esm2022/select/lib/brn-select.component.mjs +358 -0
- package/esm2022/select/lib/brn-select.service.mjs +197 -0
- package/esm2022/select/spartan-ng-brain-select.mjs +5 -0
- package/esm2022/separator/index.mjs +17 -0
- package/esm2022/separator/lib/brn-separator.component.mjs +24 -0
- package/esm2022/separator/spartan-ng-brain-separator.mjs +5 -0
- package/esm2022/sheet/index.mjs +50 -0
- package/esm2022/sheet/lib/brn-sheet-close.directive.mjs +15 -0
- package/esm2022/sheet/lib/brn-sheet-content.directive.mjs +25 -0
- package/esm2022/sheet/lib/brn-sheet-description.directive.mjs +18 -0
- package/esm2022/sheet/lib/brn-sheet-overlay.component.mjs +20 -0
- package/esm2022/sheet/lib/brn-sheet-title.directive.mjs +18 -0
- package/esm2022/sheet/lib/brn-sheet-trigger.directive.mjs +26 -0
- package/esm2022/sheet/lib/brn-sheet.component.mjs +55 -0
- package/esm2022/sheet/spartan-ng-brain-sheet.mjs +5 -0
- package/esm2022/slider/index.mjs +13 -0
- package/esm2022/slider/lib/brn-slider-thumb.directive.mjs +41 -0
- package/esm2022/slider/lib/brn-slider-tick-mark.directive.mjs +37 -0
- package/esm2022/slider/lib/brn-slider-track-active-fill.directive.mjs +29 -0
- package/esm2022/slider/lib/brn-slider-track.directive.mjs +290 -0
- package/esm2022/slider/spartan-ng-brain-slider.mjs +5 -0
- package/esm2022/switch/index.mjs +20 -0
- package/esm2022/switch/lib/brn-switch-thumb.component.mjs +16 -0
- package/esm2022/switch/lib/brn-switch.component.mjs +236 -0
- package/esm2022/switch/spartan-ng-brain-switch.mjs +5 -0
- package/esm2022/table/index.mjs +47 -0
- package/esm2022/table/lib/brn-cell-def.directive.mjs +22 -0
- package/esm2022/table/lib/brn-column-def.component.mjs +82 -0
- package/esm2022/table/lib/brn-column-manager.mjs +61 -0
- package/esm2022/table/lib/brn-footer-def.directive.mjs +22 -0
- package/esm2022/table/lib/brn-header-def.directive.mjs +22 -0
- package/esm2022/table/lib/brn-paginator.directive.mjs +109 -0
- package/esm2022/table/lib/brn-table.component.mjs +169 -0
- package/esm2022/table/spartan-ng-brain-table.mjs +5 -0
- package/esm2022/tabs/index.mjs +32 -0
- package/esm2022/tabs/lib/brn-tabs-list.directive.mjs +65 -0
- package/esm2022/tabs/lib/brn-tabs-paginated-list.directive.mjs +525 -0
- package/esm2022/tabs/lib/brn-tabs-trigger.directive.mjs +134 -0
- package/esm2022/tabs/spartan-ng-brain-tabs.mjs +5 -0
- package/esm2022/toggle/index.mjs +31 -0
- package/esm2022/toggle/lib/brn-toggle-group.component.mjs +159 -0
- package/esm2022/toggle/lib/brn-toggle-group.token.mjs +9 -0
- package/esm2022/toggle/lib/brn-toggle.directive.mjs +65 -0
- package/esm2022/toggle/spartan-ng-brain-toggle.mjs +5 -0
- package/esm2022/tooltip/index.mjs +35 -0
- package/esm2022/tooltip/lib/brn-tooltip-content.component.mjs +228 -0
- package/esm2022/tooltip/lib/brn-tooltip-content.directive.mjs +22 -0
- package/esm2022/tooltip/lib/brn-tooltip-trigger.directive.mjs +689 -0
- package/esm2022/tooltip/lib/brn-tooltip.directive.mjs +15 -0
- package/esm2022/tooltip/spartan-ng-brain-tooltip.mjs +5 -0
- package/fesm2022/spartan-ng-brain-accordion.mjs +259 -0
- package/fesm2022/spartan-ng-brain-accordion.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-alert-dialog.mjs +162 -0
- package/fesm2022/spartan-ng-brain-alert-dialog.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-avatar.mjs +156 -0
- package/fesm2022/spartan-ng-brain-avatar.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-calendar.mjs +629 -0
- package/fesm2022/spartan-ng-brain-calendar.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-checkbox.mjs.map +1 -1
- package/fesm2022/spartan-ng-brain-collapsible.mjs +152 -0
- package/fesm2022/spartan-ng-brain-collapsible.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-command.mjs +284 -0
- package/fesm2022/spartan-ng-brain-command.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-date-time-luxon.mjs +92 -0
- package/fesm2022/spartan-ng-brain-date-time-luxon.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-date-time.mjs +177 -0
- package/fesm2022/spartan-ng-brain-date-time.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-dialog.mjs +617 -0
- package/fesm2022/spartan-ng-brain-dialog.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-form-field.mjs +21 -0
- package/fesm2022/spartan-ng-brain-form-field.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-forms.mjs +61 -0
- package/fesm2022/spartan-ng-brain-forms.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-hover-card.mjs +274 -0
- package/fesm2022/spartan-ng-brain-hover-card.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-label.mjs +69 -0
- package/fesm2022/spartan-ng-brain-label.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-menu.mjs +316 -0
- package/fesm2022/spartan-ng-brain-menu.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-popover.mjs +173 -0
- package/fesm2022/spartan-ng-brain-popover.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-progress.mjs +108 -0
- package/fesm2022/spartan-ng-brain-progress.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-radio-group.mjs +299 -0
- package/fesm2022/spartan-ng-brain-radio-group.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-select.mjs +928 -0
- package/fesm2022/spartan-ng-brain-select.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-separator.mjs +44 -0
- package/fesm2022/spartan-ng-brain-separator.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-sheet.mjs +197 -0
- package/fesm2022/spartan-ng-brain-sheet.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-slider.mjs +399 -0
- package/fesm2022/spartan-ng-brain-slider.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-switch.mjs +271 -0
- package/fesm2022/spartan-ng-brain-switch.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-table.mjs +506 -0
- package/fesm2022/spartan-ng-brain-table.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-tabs.mjs +748 -0
- package/fesm2022/spartan-ng-brain-tabs.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-toggle.mjs +260 -0
- package/fesm2022/spartan-ng-brain-toggle.mjs.map +1 -0
- package/fesm2022/spartan-ng-brain-tooltip.mjs +975 -0
- package/fesm2022/spartan-ng-brain-tooltip.mjs.map +1 -0
- package/form-field/README.md +3 -0
- package/form-field/index.d.ts +1 -0
- package/form-field/lib/brn-form-field-control.d.ts +11 -0
- package/forms/README.md +3 -0
- package/forms/index.d.ts +3 -0
- package/forms/lib/control-value-accessor.d.ts +2 -0
- package/forms/lib/error-options.d.ts +14 -0
- package/forms/lib/error-state-tracker.d.ts +15 -0
- package/hover-card/README.md +3 -0
- package/hover-card/index.d.ts +14 -0
- package/hover-card/lib/brn-hover-card-content.service.d.ts +65 -0
- package/hover-card/lib/brn-hover-card.component.d.ts +9 -0
- package/hover-card/lib/createHoverObservable.d.ts +4 -0
- package/label/README.md +3 -0
- package/label/index.d.ts +8 -0
- package/label/lib/brn-label.directive.d.ts +15 -0
- package/menu/README.md +3 -0
- package/menu/index.d.ts +49 -0
- package/menu/lib/brn-context-menu-trigger.directive.d.ts +13 -0
- package/menu/lib/brn-menu-align.d.ts +3 -0
- package/menu/lib/brn-menu-bar.directive.d.ts +6 -0
- package/menu/lib/brn-menu-group.directive.d.ts +6 -0
- package/menu/lib/brn-menu-item-checkbox.directive.d.ts +11 -0
- package/menu/lib/brn-menu-item-radio.directive.d.ts +11 -0
- package/menu/lib/brn-menu-item.directive.d.ts +10 -0
- package/menu/lib/brn-menu-trigger.directive.d.ts +10 -0
- package/menu/lib/brn-menu.directive.d.ts +11 -0
- package/package.json +182 -9
- package/popover/README.md +3 -0
- package/popover/index.d.ts +19 -0
- package/popover/lib/brn-popover-close.directive.d.ts +6 -0
- package/popover/lib/brn-popover-content.directive.d.ts +6 -0
- package/popover/lib/brn-popover-trigger.directive.d.ts +10 -0
- package/popover/lib/brn-popover.component.d.ts +14 -0
- package/progress/README.md +3 -0
- package/progress/index.d.ts +14 -0
- package/progress/lib/brn-progress-indicator.component.d.ts +6 -0
- package/progress/lib/brn-progress.component.d.ts +15 -0
- package/progress/lib/brn-progress.token.d.ts +4 -0
- package/radio-group/README.md +3 -0
- package/radio-group/index.d.ts +13 -0
- package/radio-group/lib/brn-radio-group.component.d.ts +57 -0
- package/radio-group/lib/brn-radio-group.token.d.ts +4 -0
- package/radio-group/lib/brn-radio.component.d.ts +58 -0
- package/select/README.md +3 -0
- package/select/index.d.ts +28 -0
- package/select/lib/brn-select-content.component.d.ts +50 -0
- package/select/lib/brn-select-group.directive.d.ts +6 -0
- package/select/lib/brn-select-label.directive.d.ts +9 -0
- package/select/lib/brn-select-option.directive.d.ts +25 -0
- package/select/lib/brn-select-value.component.d.ts +11 -0
- package/select/lib/brn-select.component.d.ts +82 -0
- package/select/lib/brn-select.service.d.ts +67 -0
- package/separator/README.md +3 -0
- package/separator/index.d.ts +8 -0
- package/separator/lib/brn-separator.component.d.ts +11 -0
- package/sheet/README.md +3 -0
- package/sheet/index.d.ts +28 -0
- package/sheet/lib/brn-sheet-close.directive.d.ts +6 -0
- package/sheet/lib/brn-sheet-content.directive.d.ts +8 -0
- package/sheet/lib/brn-sheet-description.directive.d.ts +6 -0
- package/sheet/lib/brn-sheet-overlay.component.d.ts +6 -0
- package/sheet/lib/brn-sheet-title.directive.d.ts +6 -0
- package/sheet/lib/brn-sheet-trigger.directive.d.ts +9 -0
- package/sheet/lib/brn-sheet.component.d.ts +9 -0
- package/slider/README.md +3 -0
- package/slider/index.d.ts +7 -0
- package/slider/lib/brn-slider-thumb.directive.d.ts +17 -0
- package/slider/lib/brn-slider-tick-mark.directive.d.ts +15 -0
- package/slider/lib/brn-slider-track-active-fill.directive.d.ts +10 -0
- package/slider/lib/brn-slider-track.directive.d.ts +139 -0
- package/switch/README.md +3 -0
- package/switch/index.d.ts +13 -0
- package/switch/lib/brn-switch-thumb.component.d.ts +5 -0
- package/switch/lib/brn-switch.component.d.ts +58 -0
- package/table/README.md +3 -0
- package/table/index.d.ts +26 -0
- package/table/lib/brn-cell-def.directive.d.ts +9 -0
- package/table/lib/brn-column-def.component.d.ts +18 -0
- package/table/lib/brn-column-manager.d.ts +26 -0
- package/table/lib/brn-footer-def.directive.d.ts +9 -0
- package/table/lib/brn-header-def.directive.d.ts +9 -0
- package/table/lib/brn-paginator.directive.d.ts +41 -0
- package/table/lib/brn-table.component.d.ts +37 -0
- package/tabs/README.md +3 -0
- package/tabs/index.d.ts +14 -0
- package/tabs/lib/brn-tabs-list.directive.d.ts +17 -0
- package/tabs/lib/brn-tabs-paginated-list.directive.d.ts +196 -0
- package/tabs/lib/brn-tabs-trigger.directive.d.ts +61 -0
- package/toggle/README.md +3 -0
- package/toggle/index.d.ts +15 -0
- package/toggle/lib/brn-toggle-group.component.d.ts +68 -0
- package/toggle/lib/brn-toggle-group.token.d.ts +4 -0
- package/toggle/lib/brn-toggle.directive.d.ts +25 -0
- package/tooltip/README.md +3 -0
- package/tooltip/index.d.ts +19 -0
- package/tooltip/lib/brn-tooltip-content.component.d.ts +73 -0
- package/tooltip/lib/brn-tooltip-content.directive.d.ts +8 -0
- package/tooltip/lib/brn-tooltip-trigger.directive.d.ts +177 -0
- package/tooltip/lib/brn-tooltip.directive.d.ts +7 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { Directive, ElementRef, PLATFORM_ID, computed, effect, inject } from '@angular/core';
|
|
3
|
+
import { BRN_SLIDER } from './brn-slider-track.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BrnSliderThumbDirective {
|
|
6
|
+
_platformId = inject(PLATFORM_ID);
|
|
7
|
+
_elementRef = inject((ElementRef));
|
|
8
|
+
_slider = inject(BRN_SLIDER);
|
|
9
|
+
translateX = computed(() => this._calcTranslateX());
|
|
10
|
+
constructor() {
|
|
11
|
+
effect(() => {
|
|
12
|
+
if (isPlatformBrowser(this._platformId)) {
|
|
13
|
+
this._updateTranslateX(this.translateX());
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
_calcTranslateX() {
|
|
18
|
+
const activeTrackPercentage = this._slider.brnSliderTrack()?.activeTrackPercentage();
|
|
19
|
+
const trackHostElementWidth = this._slider.brnSliderTrack()?.hostElementWidth();
|
|
20
|
+
if (!activeTrackPercentage || !trackHostElementWidth) {
|
|
21
|
+
return 0;
|
|
22
|
+
}
|
|
23
|
+
if (this._slider.direction() === 'rtl') {
|
|
24
|
+
return -(activeTrackPercentage * trackHostElementWidth);
|
|
25
|
+
}
|
|
26
|
+
return activeTrackPercentage * trackHostElementWidth;
|
|
27
|
+
}
|
|
28
|
+
_updateTranslateX(value) {
|
|
29
|
+
this._elementRef.nativeElement.style.transform = `translate(${value}px, -50%)`;
|
|
30
|
+
}
|
|
31
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderThumbDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
32
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSliderThumbDirective, isStandalone: true, selector: "[brnSliderThumb]", ngImport: i0 });
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderThumbDirective, decorators: [{
|
|
35
|
+
type: Directive,
|
|
36
|
+
args: [{
|
|
37
|
+
selector: '[brnSliderThumb]',
|
|
38
|
+
standalone: true,
|
|
39
|
+
}]
|
|
40
|
+
}], ctorParameters: () => [] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNsaWRlci10aHVtYi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NsaWRlci9zcmMvbGliL2Jybi1zbGlkZXItdGh1bWIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBZSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBVzFELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxXQUFXLEdBQUcsTUFBTSxDQUEwQixDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO0lBQ3ZFLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFOUIsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUVwRTtRQUNDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWU7UUFDdEIsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFDckYsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUM7UUFFaEYsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUN0RCxPQUFPLENBQUMsQ0FBQztRQUNWLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUFDLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBRUQsT0FBTyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztJQUN0RCxDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBYTtRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGFBQWEsS0FBSyxXQUFXLENBQUM7SUFDaEYsQ0FBQzswSEFoQ1csdUJBQXVCOzhHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBQTEFURk9STV9JRCwgdHlwZSBTaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQlJOX1NMSURFUiB9IGZyb20gJy4vYnJuLXNsaWRlci10cmFjay5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJyblNsaWRlclRodW1iIHtcblx0LyoqIFRoZSB2aXN1YWwncyB0aHVtYiB0cmFuc2xhdGVYIHBvcnRpb24uICovXG5cdHRyYW5zbGF0ZVg6IFNpZ25hbDxudW1iZXI+O1xufVxuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuU2xpZGVyVGh1bWJdJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2xpZGVyVGh1bWJEaXJlY3RpdmUgaW1wbGVtZW50cyBCcm5TbGlkZXJUaHVtYiB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3BsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NsaWRlciA9IGluamVjdChCUk5fU0xJREVSKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgdHJhbnNsYXRlWCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2NhbGNUcmFuc2xhdGVYKCkpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5fcGxhdGZvcm1JZCkpIHtcblx0XHRcdFx0dGhpcy5fdXBkYXRlVHJhbnNsYXRlWCh0aGlzLnRyYW5zbGF0ZVgoKSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9jYWxjVHJhbnNsYXRlWCgpIHtcblx0XHRjb25zdCBhY3RpdmVUcmFja1BlcmNlbnRhZ2UgPSB0aGlzLl9zbGlkZXIuYnJuU2xpZGVyVHJhY2soKT8uYWN0aXZlVHJhY2tQZXJjZW50YWdlKCk7XG5cdFx0Y29uc3QgdHJhY2tIb3N0RWxlbWVudFdpZHRoID0gdGhpcy5fc2xpZGVyLmJyblNsaWRlclRyYWNrKCk/Lmhvc3RFbGVtZW50V2lkdGgoKTtcblxuXHRcdGlmICghYWN0aXZlVHJhY2tQZXJjZW50YWdlIHx8ICF0cmFja0hvc3RFbGVtZW50V2lkdGgpIHtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLl9zbGlkZXIuZGlyZWN0aW9uKCkgPT09ICdydGwnKSB7XG5cdFx0XHRyZXR1cm4gLShhY3RpdmVUcmFja1BlcmNlbnRhZ2UgKiB0cmFja0hvc3RFbGVtZW50V2lkdGgpO1xuXHRcdH1cblxuXHRcdHJldHVybiBhY3RpdmVUcmFja1BlcmNlbnRhZ2UgKiB0cmFja0hvc3RFbGVtZW50V2lkdGg7XG5cdH1cblxuXHRwcml2YXRlIF91cGRhdGVUcmFuc2xhdGVYKHZhbHVlOiBudW1iZXIpIHtcblx0XHR0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3ZhbHVlfXB4LCAtNTAlKWA7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { Directive, ElementRef, PLATFORM_ID, effect, inject, input } from '@angular/core';
|
|
3
|
+
import { BRN_SLIDER, BRN_SLIDER_TRACK } from './brn-slider-track.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BrnSliderTickMarkDirective {
|
|
6
|
+
_platformId = inject(PLATFORM_ID);
|
|
7
|
+
data = input();
|
|
8
|
+
_sliderTrack = inject(BRN_SLIDER_TRACK);
|
|
9
|
+
_elementRef = inject((ElementRef));
|
|
10
|
+
_slider = inject(BRN_SLIDER);
|
|
11
|
+
constructor() {
|
|
12
|
+
effect(() => {
|
|
13
|
+
if (isPlatformBrowser(this._platformId)) {
|
|
14
|
+
this._updateTranslateX();
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
_updateTranslateX() {
|
|
19
|
+
const data = this.data();
|
|
20
|
+
if (!data) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const translateX = data.tickMarkIndex * (this._sliderTrack.tickMarkTrackWidth() / (data.totalTickMarks - 1));
|
|
24
|
+
this._elementRef.nativeElement.style.transform =
|
|
25
|
+
this._slider.direction() === 'rtl' ? `translateX(${-translateX}px)` : `translateX(${translateX}px)`;
|
|
26
|
+
}
|
|
27
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderTickMarkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
28
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.5", type: BrnSliderTickMarkDirective, isStandalone: true, selector: "[brnSliderTickMark]", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderTickMarkDirective, decorators: [{
|
|
31
|
+
type: Directive,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: '[brnSliderTickMark]',
|
|
34
|
+
standalone: true,
|
|
35
|
+
}]
|
|
36
|
+
}], ctorParameters: () => [] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNsaWRlci10aWNrLW1hcmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9icmFpbi9zbGlkZXIvc3JjL2xpYi9icm4tc2xpZGVyLXRpY2stbWFyay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFNNUUsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQixXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25DLElBQUksR0FBRyxLQUFLLEVBQXFELENBQUM7SUFFakUsWUFBWSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hDLFdBQVcsR0FBRyxNQUFNLENBQTBCLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7SUFDdkUsT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU5QztRQUNDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMxQixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8saUJBQWlCO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxPQUFPO1FBQ1IsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0csSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsY0FBYyxVQUFVLEtBQUssQ0FBQztJQUN0RyxDQUFDOzBIQTNCVywwQkFBMEI7OEdBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFBMQVRGT1JNX0lELCBlZmZlY3QsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJSTl9TTElERVIsIEJSTl9TTElERVJfVFJBQ0sgfSBmcm9tICcuL2Jybi1zbGlkZXItdHJhY2suZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JyblNsaWRlclRpY2tNYXJrXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEJyblNsaWRlclRpY2tNYXJrRGlyZWN0aXZlIHtcblx0cHJpdmF0ZSByZWFkb25seSBfcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cdHB1YmxpYyByZWFkb25seSBkYXRhID0gaW5wdXQ8eyB0aWNrTWFya0luZGV4OiBudW1iZXI7IHRvdGFsVGlja01hcmtzOiBudW1iZXIgfT4oKTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9zbGlkZXJUcmFjayA9IGluamVjdChCUk5fU0xJREVSX1RSQUNLKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9zbGlkZXIgPSBpbmplY3QoQlJOX1NMSURFUik7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLl9wbGF0Zm9ybUlkKSkge1xuXHRcdFx0XHR0aGlzLl91cGRhdGVUcmFuc2xhdGVYKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF91cGRhdGVUcmFuc2xhdGVYKCkge1xuXHRcdGNvbnN0IGRhdGEgPSB0aGlzLmRhdGEoKTtcblxuXHRcdGlmICghZGF0YSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IHRyYW5zbGF0ZVggPSBkYXRhLnRpY2tNYXJrSW5kZXggKiAodGhpcy5fc2xpZGVyVHJhY2sudGlja01hcmtUcmFja1dpZHRoKCkgLyAoZGF0YS50b3RhbFRpY2tNYXJrcyAtIDEpKTtcblxuXHRcdHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPVxuXHRcdFx0dGhpcy5fc2xpZGVyLmRpcmVjdGlvbigpID09PSAncnRsJyA/IGB0cmFuc2xhdGVYKCR7LXRyYW5zbGF0ZVh9cHgpYCA6IGB0cmFuc2xhdGVYKCR7dHJhbnNsYXRlWH1weClgO1xuXHR9XG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { Directive, ElementRef, PLATFORM_ID, effect, inject } from '@angular/core';
|
|
3
|
+
import { BRN_SLIDER_TRACK } from './brn-slider-track.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BrnSliderTrackActiveFillDirective {
|
|
6
|
+
_platformId = inject(PLATFORM_ID);
|
|
7
|
+
_elementRef = inject((ElementRef));
|
|
8
|
+
_sliderTrack = inject(BRN_SLIDER_TRACK);
|
|
9
|
+
constructor() {
|
|
10
|
+
effect(() => {
|
|
11
|
+
if (isPlatformBrowser(this._platformId)) {
|
|
12
|
+
this._updateActiveTrackPercentage(this._sliderTrack.activeTrackPercentage());
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
_updateActiveTrackPercentage(percentage) {
|
|
17
|
+
this._elementRef.nativeElement.style.transform = `scaleX(${percentage})`;
|
|
18
|
+
}
|
|
19
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderTrackActiveFillDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
20
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSliderTrackActiveFillDirective, isStandalone: true, selector: "[brnSliderTrackActiveFill]", ngImport: i0 });
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderTrackActiveFillDirective, decorators: [{
|
|
23
|
+
type: Directive,
|
|
24
|
+
args: [{
|
|
25
|
+
selector: '[brnSliderTrackActiveFill]',
|
|
26
|
+
standalone: true,
|
|
27
|
+
}]
|
|
28
|
+
}], ctorParameters: () => [] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNsaWRlci10cmFjay1hY3RpdmUtZmlsbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NsaWRlci9zcmMvbGliL2Jybi1zbGlkZXItdHJhY2stYWN0aXZlLWZpbGwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQU1oRSxNQUFNLE9BQU8saUNBQWlDO0lBQzVCLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsV0FBVyxHQUFHLE1BQU0sQ0FBMEIsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUN2RSxZQUFZLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFekQ7UUFDQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1lBQzlFLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyw0QkFBNEIsQ0FBQyxVQUFrQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFVBQVUsVUFBVSxHQUFHLENBQUM7SUFDMUUsQ0FBQzswSEFmVyxpQ0FBaUM7OEdBQWpDLGlDQUFpQzs7MkZBQWpDLGlDQUFpQztrQkFKN0MsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFBMQVRGT1JNX0lELCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQlJOX1NMSURFUl9UUkFDSyB9IGZyb20gJy4vYnJuLXNsaWRlci10cmFjay5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuU2xpZGVyVHJhY2tBY3RpdmVGaWxsXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEJyblNsaWRlclRyYWNrQWN0aXZlRmlsbERpcmVjdGl2ZSB7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3BsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NsaWRlclRyYWNrID0gaW5qZWN0KEJSTl9TTElERVJfVFJBQ0spO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5fcGxhdGZvcm1JZCkpIHtcblx0XHRcdFx0dGhpcy5fdXBkYXRlQWN0aXZlVHJhY2tQZXJjZW50YWdlKHRoaXMuX3NsaWRlclRyYWNrLmFjdGl2ZVRyYWNrUGVyY2VudGFnZSgpKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX3VwZGF0ZUFjdGl2ZVRyYWNrUGVyY2VudGFnZShwZXJjZW50YWdlOiBudW1iZXIpIHtcblx0XHR0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHNjYWxlWCgke3BlcmNlbnRhZ2V9KWA7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { Directionality } from '@angular/cdk/bidi';
|
|
2
|
+
import { SharedResizeObserver } from '@angular/cdk/observers/private';
|
|
3
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
4
|
+
import { Directive, ElementRef, InjectionToken, Injector, PLATFORM_ID, Renderer2, computed, contentChild, effect, forwardRef, inject, input, model, signal, } from '@angular/core';
|
|
5
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
6
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
7
|
+
import { Subject, debounceTime, merge, takeUntil, tap } from 'rxjs';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export const BRN_SLIDER_INPUT = new InjectionToken('BrnSliderInput');
|
|
10
|
+
export const BRN_SLIDER_TRACK = new InjectionToken('BrnSliderTrack');
|
|
11
|
+
export const BRN_SLIDER = new InjectionToken('BrnSlider');
|
|
12
|
+
/**
|
|
13
|
+
* Directive that adds slider-specific behaviors to an input element inside `<brn-slider>`.
|
|
14
|
+
*/
|
|
15
|
+
export class BrnSliderInputDirective {
|
|
16
|
+
_onChangeFn;
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
18
|
+
_onTouchedFn = () => { };
|
|
19
|
+
isDisabled = computed(() => (this._slider.disabled() === true ? true : undefined));
|
|
20
|
+
valueNow = computed(() => this.value() ?? 0);
|
|
21
|
+
valueMin = computed(() => this._slider.min());
|
|
22
|
+
valueMax = computed(() => this._slider.max());
|
|
23
|
+
ariaLabelledby = computed(() => this._slider.label()?.id);
|
|
24
|
+
ariaLabel = computed(() => {
|
|
25
|
+
if (!this._slider.ariaLabel() && !this.ariaLabelledby()) {
|
|
26
|
+
throw new Error("'ariaLabel' input must be provided as fallback accessibility aria label when no aria-labelledby element is provided.");
|
|
27
|
+
}
|
|
28
|
+
return this._slider.ariaLabel();
|
|
29
|
+
});
|
|
30
|
+
value = signal(0);
|
|
31
|
+
isFocused = signal(false);
|
|
32
|
+
_platformId = inject(PLATFORM_ID);
|
|
33
|
+
_elementRef = inject((ElementRef));
|
|
34
|
+
_slider = inject(BRN_SLIDER);
|
|
35
|
+
_renderer2 = inject(Renderer2);
|
|
36
|
+
constructor() {
|
|
37
|
+
effect(() => {
|
|
38
|
+
if (isPlatformBrowser(this._platformId)) {
|
|
39
|
+
this._updateHostElementStep(this._slider.step());
|
|
40
|
+
this._updateMinValue(this._slider.min());
|
|
41
|
+
this._updateMaxValue(this._slider.max());
|
|
42
|
+
this._updateDirection(this._slider.direction());
|
|
43
|
+
}
|
|
44
|
+
}, { allowSignalWrites: true });
|
|
45
|
+
}
|
|
46
|
+
onFocus() {
|
|
47
|
+
this.isFocused.set(true);
|
|
48
|
+
}
|
|
49
|
+
onBlur() {
|
|
50
|
+
this.isFocused.set(false);
|
|
51
|
+
this._onTouchedFn();
|
|
52
|
+
}
|
|
53
|
+
onInput() {
|
|
54
|
+
this._updateValue();
|
|
55
|
+
}
|
|
56
|
+
onChange() {
|
|
57
|
+
this._updateValue();
|
|
58
|
+
}
|
|
59
|
+
writeValue(obj) {
|
|
60
|
+
this.value.set(obj);
|
|
61
|
+
this._updateHostElementValue(obj);
|
|
62
|
+
}
|
|
63
|
+
registerOnChange(fn) {
|
|
64
|
+
this._onChangeFn = fn;
|
|
65
|
+
}
|
|
66
|
+
registerOnTouched(fn) {
|
|
67
|
+
this._onTouchedFn = fn;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Sets the disabled state of the slider.
|
|
71
|
+
* @param isDisabled The new disabled state
|
|
72
|
+
*/
|
|
73
|
+
setDisabledState(isDisabled) {
|
|
74
|
+
/** Disable slider only when slider component
|
|
75
|
+
* is not disabled and isDisabled param is explicitly set to true
|
|
76
|
+
*/
|
|
77
|
+
if (isDisabled && !this._slider.disabled()) {
|
|
78
|
+
this._slider.disabled.set(isDisabled);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
_updateHostElementValue(value) {
|
|
82
|
+
this._elementRef.nativeElement.value = value?.toString() ?? '0';
|
|
83
|
+
}
|
|
84
|
+
_updateValue() {
|
|
85
|
+
this.value.set(+this._elementRef.nativeElement.value);
|
|
86
|
+
this._onChangeFn?.(this.value());
|
|
87
|
+
}
|
|
88
|
+
_updateHostElementStep(step) {
|
|
89
|
+
this._elementRef.nativeElement.step = step.toString();
|
|
90
|
+
this._updateValue();
|
|
91
|
+
}
|
|
92
|
+
_updateMinValue(value) {
|
|
93
|
+
this._elementRef.nativeElement.min = value.toString();
|
|
94
|
+
this._updateValue();
|
|
95
|
+
}
|
|
96
|
+
_updateMaxValue(value) {
|
|
97
|
+
this._elementRef.nativeElement.max = value.toString();
|
|
98
|
+
this._updateValue();
|
|
99
|
+
}
|
|
100
|
+
_updateDirection(direction) {
|
|
101
|
+
this._renderer2.setStyle(this._elementRef.nativeElement, 'direction', direction);
|
|
102
|
+
}
|
|
103
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderInputDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
104
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: BrnSliderInputDirective, isStandalone: true, selector: "input[brnSliderInput]", host: { attributes: { "type": "range", "role": "slider", "aria-orientation": "horizontal" }, listeners: { "change": "onChange()", "input": "onInput()", "focus": "onFocus()", "blur": "onBlur()" }, properties: { "attr.disabled": "isDisabled()", "attr.aria-valuenow": "valueNow()", "attr.aria-valuemin": "valueMin()", "attr.aria-valuemax": "valueMax()", "attr.aria-labelledby": "ariaLabelledby()", "attr.aria-label": "ariaLabel()" } }, providers: [
|
|
105
|
+
{
|
|
106
|
+
provide: NG_VALUE_ACCESSOR,
|
|
107
|
+
useExisting: BrnSliderInputDirective,
|
|
108
|
+
multi: true,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
provide: BRN_SLIDER_INPUT,
|
|
112
|
+
useExisting: BrnSliderInputDirective,
|
|
113
|
+
},
|
|
114
|
+
], ngImport: i0 });
|
|
115
|
+
}
|
|
116
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderInputDirective, decorators: [{
|
|
117
|
+
type: Directive,
|
|
118
|
+
args: [{
|
|
119
|
+
selector: 'input[brnSliderInput]',
|
|
120
|
+
host: {
|
|
121
|
+
type: 'range',
|
|
122
|
+
role: 'slider',
|
|
123
|
+
'(change)': 'onChange()',
|
|
124
|
+
'(input)': 'onInput()',
|
|
125
|
+
'(focus)': 'onFocus()',
|
|
126
|
+
'(blur)': 'onBlur()',
|
|
127
|
+
'[attr.disabled]': 'isDisabled()',
|
|
128
|
+
'[attr.aria-valuenow]': 'valueNow()',
|
|
129
|
+
'[attr.aria-valuemin]': 'valueMin()',
|
|
130
|
+
'[attr.aria-valuemax]': 'valueMax()',
|
|
131
|
+
'[attr.aria-labelledby]': 'ariaLabelledby()',
|
|
132
|
+
'[attr.aria-label]': 'ariaLabel()',
|
|
133
|
+
'aria-orientation': 'horizontal',
|
|
134
|
+
},
|
|
135
|
+
providers: [
|
|
136
|
+
{
|
|
137
|
+
provide: NG_VALUE_ACCESSOR,
|
|
138
|
+
useExisting: BrnSliderInputDirective,
|
|
139
|
+
multi: true,
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
provide: BRN_SLIDER_INPUT,
|
|
143
|
+
useExisting: BrnSliderInputDirective,
|
|
144
|
+
},
|
|
145
|
+
],
|
|
146
|
+
standalone: true,
|
|
147
|
+
}]
|
|
148
|
+
}], ctorParameters: () => [] });
|
|
149
|
+
export class BrnSliderDirective {
|
|
150
|
+
label = input(null);
|
|
151
|
+
ariaLabel = input(null);
|
|
152
|
+
/** Used only as an input. */
|
|
153
|
+
dir = input('ltr');
|
|
154
|
+
disabled = model(false, { alias: 'brnSliderDisabled' });
|
|
155
|
+
min = model(0);
|
|
156
|
+
max = model(100);
|
|
157
|
+
step = input(1);
|
|
158
|
+
showTickMarks = input(false);
|
|
159
|
+
direction = signal('ltr');
|
|
160
|
+
_destroyed = new Subject();
|
|
161
|
+
_injector = inject(Injector);
|
|
162
|
+
_dir = inject(Directionality);
|
|
163
|
+
_platformId = inject(PLATFORM_ID);
|
|
164
|
+
brnSliderTrack = contentChild(BRN_SLIDER_TRACK);
|
|
165
|
+
ngAfterViewInit() {
|
|
166
|
+
if (isPlatformBrowser(this._platformId)) {
|
|
167
|
+
this._updateDirectionality();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
ngOnDestroy() {
|
|
171
|
+
this._destroyed.next();
|
|
172
|
+
this._destroyed.complete();
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The method is responsible of setting the current direction state
|
|
176
|
+
* based on the latest 'dir' input or bidi state change. The only
|
|
177
|
+
* source of truth for slider direction state is the 'direction' signal
|
|
178
|
+
* and all interested consumers of it, will consume this interface exposed signal.
|
|
179
|
+
*/
|
|
180
|
+
_updateDirectionality() {
|
|
181
|
+
merge(toObservable(this.dir, { injector: this._injector }), this._dir.change)
|
|
182
|
+
.pipe(takeUntil(this._destroyed), tap((dir) => this.direction.set(dir)))
|
|
183
|
+
.subscribe();
|
|
184
|
+
}
|
|
185
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
186
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.5", type: BrnSliderDirective, isStandalone: true, selector: "[brnSlider]", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, dir: { classPropertyName: "dir", publicName: "dir", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "brnSliderDisabled", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, showTickMarks: { classPropertyName: "showTickMarks", publicName: "showTickMarks", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "brnSliderDisabledChange", min: "minChange", max: "maxChange" }, providers: [
|
|
187
|
+
{
|
|
188
|
+
provide: BRN_SLIDER,
|
|
189
|
+
useExisting: BrnSliderDirective,
|
|
190
|
+
},
|
|
191
|
+
], queries: [{ propertyName: "brnSliderTrack", first: true, predicate: BRN_SLIDER_TRACK, descendants: true, isSignal: true }], exportAs: ["brnSlider"], ngImport: i0 });
|
|
192
|
+
}
|
|
193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderDirective, decorators: [{
|
|
194
|
+
type: Directive,
|
|
195
|
+
args: [{
|
|
196
|
+
selector: '[brnSlider]',
|
|
197
|
+
standalone: true,
|
|
198
|
+
providers: [
|
|
199
|
+
{
|
|
200
|
+
provide: BRN_SLIDER,
|
|
201
|
+
useExisting: BrnSliderDirective,
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
exportAs: 'brnSlider',
|
|
205
|
+
}]
|
|
206
|
+
}] });
|
|
207
|
+
export class BrnSliderTrackDirective {
|
|
208
|
+
hostElementWidth = signal(0);
|
|
209
|
+
_destroyed = new Subject();
|
|
210
|
+
_slider = inject(BRN_SLIDER);
|
|
211
|
+
_platformId = inject(PLATFORM_ID);
|
|
212
|
+
_elementRef = inject((ElementRef));
|
|
213
|
+
_sharedResizeObserver = inject(SharedResizeObserver);
|
|
214
|
+
brnSliderInput = contentChild(forwardRef(() => BRN_SLIDER_INPUT));
|
|
215
|
+
activeTrackPercentage = computed(() => {
|
|
216
|
+
const inputValue = this.brnSliderInput()?.value();
|
|
217
|
+
if (this._slider.min() >= this._slider.max() || !inputValue || inputValue < this._slider.min()) {
|
|
218
|
+
return 0;
|
|
219
|
+
}
|
|
220
|
+
if (inputValue > this._slider.max()) {
|
|
221
|
+
return 1;
|
|
222
|
+
}
|
|
223
|
+
return (inputValue - this._slider.min()) / (this._slider.max() - this._slider.min());
|
|
224
|
+
});
|
|
225
|
+
tickMarkTrackWidth = computed(() => {
|
|
226
|
+
if (!this._slider.showTickMarks()) {
|
|
227
|
+
return 0;
|
|
228
|
+
}
|
|
229
|
+
const sliderStep = this._slider.step();
|
|
230
|
+
const sliderMax = this._slider.max();
|
|
231
|
+
const sliderMin = this._slider.min();
|
|
232
|
+
const step = sliderStep && sliderStep > 0 ? sliderStep : 1;
|
|
233
|
+
const maxValue = Math.floor((sliderMax - sliderMin) / step) * step + sliderMin;
|
|
234
|
+
const percentage = (maxValue - sliderMin) / (sliderMax - sliderMin);
|
|
235
|
+
return this.hostElementWidth() * percentage;
|
|
236
|
+
});
|
|
237
|
+
tickMarks = computed(() => {
|
|
238
|
+
const inputValue = this.brnSliderInput()?.value();
|
|
239
|
+
if (!this._slider.showTickMarks() || inputValue === null || inputValue === undefined) {
|
|
240
|
+
return [];
|
|
241
|
+
}
|
|
242
|
+
let numActive = Math.max(Math.floor((inputValue - this._slider.min()) / this._slider.step()), 0);
|
|
243
|
+
let numInactive = Math.max(Math.floor((this._slider.max() - inputValue) / this._slider.step()), 0);
|
|
244
|
+
this._slider.direction() === 'rtl' ? numInactive++ : numActive++;
|
|
245
|
+
return Array(numActive).fill(true).concat(Array(numInactive).fill(false));
|
|
246
|
+
});
|
|
247
|
+
ngAfterViewInit() {
|
|
248
|
+
if (isPlatformBrowser(this._platformId)) {
|
|
249
|
+
this._storeDimensions();
|
|
250
|
+
this._onResize();
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
ngOnDestroy() {
|
|
254
|
+
this._destroyed.next();
|
|
255
|
+
this._destroyed.complete();
|
|
256
|
+
}
|
|
257
|
+
_onResize() {
|
|
258
|
+
this._sharedResizeObserver
|
|
259
|
+
.observe(this._elementRef.nativeElement)
|
|
260
|
+
.pipe(debounceTime(32), takeUntil(this._destroyed), tap(() => this._storeDimensions()))
|
|
261
|
+
.subscribe();
|
|
262
|
+
}
|
|
263
|
+
_storeDimensions() {
|
|
264
|
+
const computedStyle = getComputedStyle(this._elementRef.nativeElement);
|
|
265
|
+
this.hostElementWidth.set(this._elementRef.nativeElement.offsetWidth -
|
|
266
|
+
Number.parseFloat(computedStyle.paddingLeft) -
|
|
267
|
+
Number.parseFloat(computedStyle.paddingRight));
|
|
268
|
+
}
|
|
269
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderTrackDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
270
|
+
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.5", type: BrnSliderTrackDirective, isStandalone: true, selector: "[brnSliderTrack]", providers: [
|
|
271
|
+
{
|
|
272
|
+
provide: BRN_SLIDER_TRACK,
|
|
273
|
+
useExisting: BrnSliderTrackDirective,
|
|
274
|
+
},
|
|
275
|
+
], queries: [{ propertyName: "brnSliderInput", first: true, predicate: i0.forwardRef(() => BRN_SLIDER_INPUT), descendants: true, isSignal: true }], ngImport: i0 });
|
|
276
|
+
}
|
|
277
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSliderTrackDirective, decorators: [{
|
|
278
|
+
type: Directive,
|
|
279
|
+
args: [{
|
|
280
|
+
selector: '[brnSliderTrack]',
|
|
281
|
+
standalone: true,
|
|
282
|
+
providers: [
|
|
283
|
+
{
|
|
284
|
+
provide: BRN_SLIDER_TRACK,
|
|
285
|
+
useExisting: BrnSliderTrackDirective,
|
|
286
|
+
},
|
|
287
|
+
],
|
|
288
|
+
}]
|
|
289
|
+
}] });
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXNsaWRlci10cmFjay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NsaWRlci9zcmMvbGliL2Jybi1zbGlkZXItdHJhY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBRU4sU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEVBQ2QsUUFBUSxFQUVSLFdBQVcsRUFDWCxTQUFTLEVBR1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUE2QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUVwRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsZ0JBQWdCLENBQUMsQ0FBQztBQVVyRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsZ0JBQWdCLENBQUMsQ0FBQztBQUVyRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQVksV0FBVyxDQUFDLENBQUM7QUFzQ3JFOztHQUVHO0FBK0JILE1BQU0sT0FBTyx1QkFBdUI7SUFDM0IsV0FBVyxDQUFpRDtJ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LGFBQWEsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFdBQVc7WUFDekMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUM5QyxDQUFDO0lBQ0gsQ0FBQzswSEF2RlcsdUJBQXVCOzhHQUF2Qix1QkFBdUIsK0RBUHhCO1lBQ1Y7Z0JBQ0MsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsV0FBVyxFQUFFLHVCQUF1QjthQUNwQztTQUNELDBGQVc4RSxnQkFBZ0I7OzJGQVRuRix1QkFBdUI7a0JBVm5DLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsZ0JBQWdCOzRCQUN6QixXQUFXLHlCQUF5Qjt5QkFDcEM7cUJBQ0Q7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgU2hhcmVkUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzL3ByaXZhdGUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0dHlwZSBBZnRlclZpZXdJbml0LFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEluamVjdGlvblRva2VuLFxuXHRJbmplY3Rvcixcblx0dHlwZSBPbkRlc3Ryb3ksXG5cdFBMQVRGT1JNX0lELFxuXHRSZW5kZXJlcjIsXG5cdHR5cGUgU2lnbmFsLFxuXHR0eXBlIFdyaXRhYmxlU2lnbmFsLFxuXHRjb21wdXRlZCxcblx0Y29udGVudENoaWxkLFxuXHRlZmZlY3QsXG5cdGZvcndhcmRSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdG1vZGVsLFxuXHRzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgdHlwZSBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IEJybkxhYmVsRGlyZWN0aXZlIH0gZnJvbSAnQHNwYXJ0YW4tbmcvYnJhaW4vbGFiZWwnO1xuaW1wb3J0IHsgU3ViamVjdCwgZGVib3VuY2VUaW1lLCBtZXJnZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNvbnN0IEJSTl9TTElERVJfSU5QVVQgPSBuZXcgSW5qZWN0aW9uVG9rZW48QnJuU2xpZGVySW5wdXQ+KCdCcm5TbGlkZXJJbnB1dCcpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJyblNsaWRlcklucHV0IHtcblx0LyoqIFRoZSBzbGlkZXIncyBuYXRpdmUgaW5wdXQgZWxlbWVudCB3cmFwcGVyIHZhbHVlLiAqL1xuXHR2YWx1ZTogU2lnbmFsPG51bWJlcj47XG5cblx0LyoqIEZsYWcgaW5kaWNhdGluZyBpZiBuYXRpdmUgaW5wdXQgZWxlbWVudCBpcyBjdXJyZW50bHkgZm9jdXNlZC4gKi9cblx0aXNGb2N1c2VkOiBTaWduYWw8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBjb25zdCBCUk5fU0xJREVSX1RSQUNLID0gbmV3IEluamVjdGlvblRva2VuPEJyblNsaWRlclRyYWNrPignQnJuU2xpZGVyVHJhY2snKTtcblxuZXhwb3J0IGNvbnN0IEJSTl9TTElERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QnJuU2xpZGVyPignQnJuU2xpZGVyJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJuU2xpZGVyIHtcblx0LyoqIFRoZSBtaW5pbXVuIHZhbHVlIG9mIHRoZSBzbGlkZXIuICovXG5cdG1pbjogV3JpdGFibGVTaWduYWw8bnVtYmVyPjtcblxuXHQvKiogVGhlIG1heGltdW4gdmFsdWUgb2YgdGhlIHNsaWRlci4gKi9cblx0bWF4OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+O1xuXG5cdC8qKiBUaGUgYW1vdW50IHRoYXQgc2xpZGVyIHZhbHVlcyBjYW4gaW5jcmVtZW50IG9yIGRlY3JlbWVudCBieS4gKi9cblx0c3RlcDogU2lnbmFsPG51bWJlcj47XG5cblx0LyoqIFdoZXRoZXIgdGhlIHNsaWRlciBpcyBkaXNhYmxlZC4gKi9cblx0ZGlzYWJsZWQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+O1xuXG5cdC8qKiBXaGV0aGVyIHRoZSBzbGlkZXIgZGlzcGxheXMgdGljayBtYXJrcyBhbG9uZyB0aGUgc2xpZGVyIHRyYWNrLiAqL1xuXHRzaG93VGlja01hcmtzOiBTaWduYWw8Ym9vbGVhbj47XG5cblx0LyoqIFdoZXRoZXIgdGhlIHNsaWRlciBpcyBsdHIgb3IgcnRsLlxuXHQgKiBBbnkgY29uc3VtZXIgb2Ygc2xpZGVyIGludGVyZXN0ZWQgaW4gZ2V0dGluZyB0aGUgY3VycmVudFxuXHQgKiBkaXJlY3Rpb24gc3RhdGUsIHdpbGwgY29uc3VtZSB0aGlzIHNpZ25hbC5cblx0ICovXG5cdGRpcmVjdGlvbjogU2lnbmFsPERpcmVjdGlvbj47XG5cblx0LyoqIFRoZSB1bmRlcmx5aW5nIHNsaWRlcidzIHRyYWNrIGVsZW1lbnQgKi9cblx0YnJuU2xpZGVyVHJhY2s6IFNpZ25hbDxCcm5TbGlkZXJUcmFjayB8IHVuZGVmaW5lZD47XG5cblx0LyoqIFRoZSBhcmlhLWxhYmVsbGVkYnkgZWxlbWVudCAqL1xuXHRsYWJlbDogU2lnbmFsPEJybkxhYmVsRGlyZWN0aXZlIHwgbnVsbD47XG5cblx0LyoqIFRoZSBvcHRpb25hbCBhcmlhLWxhYmVsIGZhbGxiYWNrIHZhbHVlLlxuXHQgKiBJZiBubyBsYWJlbCBpcyBwcm92aWRlZCwgdGhpcyBpbnB1dCBtdXN0IGJlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLFxuXHQgKiBvdGhlcndpc2UgYW4gZXJyb3Igd2lsbCBiZSBkaXNwbGF5ZWQgcHJvbXB0aW5nIHRoZSB1c2VyIHRvIGVpdGhlclxuXHQgKiBwcm92aWRlIGEgc3BhcnRhbi11aSBsYWJlbCBvciBhIGZhbGxiYWNrIGFyaWEgbGFiZWwgdGV4dC5cblx0ICovXG5cdGFyaWFMYWJlbDogU2lnbmFsPHN0cmluZyB8IG51bGw+O1xufVxuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IGFkZHMgc2xpZGVyLXNwZWNpZmljIGJlaGF2aW9ycyB0byBhbiBpbnB1dCBlbGVtZW50IGluc2lkZSBgPGJybi1zbGlkZXI+YC5cbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnaW5wdXRbYnJuU2xpZGVySW5wdXRdJyxcblx0aG9zdDoge1xuXHRcdHR5cGU6ICdyYW5nZScsXG5cdFx0cm9sZTogJ3NsaWRlcicsXG5cdFx0JyhjaGFuZ2UpJzogJ29uQ2hhbmdlKCknLFxuXHRcdCcoaW5wdXQpJzogJ29uSW5wdXQoKScsXG5cdFx0Jyhmb2N1cyknOiAnb25Gb2N1cygpJyxcblx0XHQnKGJsdXIpJzogJ29uQmx1cigpJyxcblx0XHQnW2F0dHIuZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQoKScsXG5cdFx0J1thdHRyLmFyaWEtdmFsdWVub3ddJzogJ3ZhbHVlTm93KCknLFxuXHRcdCdbYXR0ci5hcmlhLXZhbHVlbWluXSc6ICd2YWx1ZU1pbigpJyxcblx0XHQnW2F0dHIuYXJpYS12YWx1ZW1heF0nOiAndmFsdWVNYXgoKScsXG5cdFx0J1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnYXJpYUxhYmVsbGVkYnkoKScsXG5cdFx0J1thdHRyLmFyaWEtbGFiZWxdJzogJ2FyaWFMYWJlbCgpJyxcblx0XHQnYXJpYS1vcmllbnRhdGlvbic6ICdob3Jpem9udGFsJyxcblx0fSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG5cdFx0XHR1c2VFeGlzdGluZzogQnJuU2xpZGVySW5wdXREaXJlY3RpdmUsXG5cdFx0XHRtdWx0aTogdHJ1ZSxcblx0XHR9LFxuXHRcdHtcblx0XHRcdHByb3ZpZGU6IEJSTl9TTElERVJfSU5QVVQsXG5cdFx0XHR1c2VFeGlzdGluZzogQnJuU2xpZGVySW5wdXREaXJlY3RpdmUsXG5cdFx0fSxcblx0XSxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2xpZGVySW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgQnJuU2xpZGVySW5wdXQge1xuXHRwcml2YXRlIF9vbkNoYW5nZUZuOiAoKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG5cdHByaXZhdGUgX29uVG91Y2hlZEZuOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cdHByb3RlY3RlZCBpc0Rpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuX3NsaWRlci5kaXNhYmxlZCgpID09PSB0cnVlID8gdHJ1ZSA6IHVuZGVmaW5lZCkpO1xuXHRwcm90ZWN0ZWQgdmFsdWVOb3cgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZhbHVlKCkgPz8gMCk7XG5cdHByb3RlY3RlZCB2YWx1ZU1pbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3NsaWRlci5taW4oKSk7XG5cdHByb3RlY3RlZCB2YWx1ZU1heCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3NsaWRlci5tYXgoKSk7XG5cdHByb3RlY3RlZCBhcmlhTGFiZWxsZWRieSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3NsaWRlci5sYWJlbCgpPy5pZCk7XG5cdHByb3RlY3RlZCBhcmlhTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0aWYgKCF0aGlzLl9zbGlkZXIuYXJpYUxhYmVsKCkgJiYgIXRoaXMuYXJpYUxhYmVsbGVkYnkoKSkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRcIidhcmlhTGFiZWwnIGlucHV0IG11c3QgYmUgcHJvdmlkZWQgYXMgZmFsbGJhY2sgYWNjZXNzaWJpbGl0eSBhcmlhIGxhYmVsIHdoZW4gbm8gYXJpYS1sYWJlbGxlZGJ5IGVsZW1lbnQgaXMgcHJvdmlkZWQuXCIsXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5fc2xpZGVyLmFyaWFMYWJlbCgpO1xuXHR9KTtcblx0cHVibGljIHJlYWRvbmx5IHZhbHVlID0gc2lnbmFsKDApO1xuXHRwdWJsaWMgcmVhZG9ubHkgaXNGb2N1c2VkID0gc2lnbmFsKGZhbHNlKTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9wbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PihFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+KTtcblx0cHJpdmF0ZSByZWFkb25seSBfc2xpZGVyID0gaW5qZWN0KEJSTl9TTElERVIpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRlZmZlY3QoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLl9wbGF0Zm9ybUlkKSkge1xuXHRcdFx0XHRcdHRoaXMuX3VwZGF0ZUhvc3RFbGVtZW50U3RlcCh0aGlzLl9zbGlkZXIuc3RlcCgpKTtcblx0XHRcdFx0XHR0aGlzLl91cGRhdGVNaW5WYWx1ZSh0aGlzLl9zbGlkZXIubWluKCkpO1xuXHRcdFx0XHRcdHRoaXMuX3VwZGF0ZU1heFZhbHVlKHRoaXMuX3NsaWRlci5tYXgoKSk7XG5cdFx0XHRcdFx0dGhpcy5fdXBkYXRlRGlyZWN0aW9uKHRoaXMuX3NsaWRlci5kaXJlY3Rpb24oKSk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG5cdFx0KTtcblx0fVxuXG5cdG9uRm9jdXMoKTogdm9pZCB7XG5cdFx0dGhpcy5pc0ZvY3VzZWQuc2V0KHRydWUpO1xuXHR9XG5cblx0b25CbHVyKCk6IHZvaWQge1xuXHRcdHRoaXMuaXNGb2N1c2VkLnNldChmYWxzZSk7XG5cdFx0dGhpcy5fb25Ub3VjaGVkRm4oKTtcblx0fVxuXG5cdG9uSW5wdXQoKTogdm9pZCB7XG5cdFx0dGhpcy5fdXBkYXRlVmFsdWUoKTtcblx0fVxuXG5cdG9uQ2hhbmdlKCk6IHZvaWQge1xuXHRcdHRoaXMuX3VwZGF0ZVZhbHVlKCk7XG5cdH1cblxuXHR3cml0ZVZhbHVlKG9iajogbnVtYmVyKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZS5zZXQob2JqKTtcblx0XHR0aGlzLl91cGRhdGVIb3N0RWxlbWVudFZhbHVlKG9iaik7XG5cdH1cblxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZyB8IG51bWJlcikgPT4gdm9pZCk6IHZvaWQge1xuXHRcdHRoaXMuX29uQ2hhbmdlRm4gPSBmbjtcblx0fVxuXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG5cdFx0dGhpcy5fb25Ub3VjaGVkRm4gPSBmbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiB0aGUgc2xpZGVyLlxuXHQgKiBAcGFyYW0gaXNEaXNhYmxlZCBUaGUgbmV3IGRpc2FibGVkIHN0YXRlXG5cdCAqL1xuXHRzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHQvKiogRGlzYWJsZSBzbGlkZXIgb25seSB3aGVuIHNsaWRlciBjb21wb25lbnRcblx0XHQgKiBpcyBub3QgZGlzYWJsZWQgYW5kIGlzRGlzYWJsZWQgcGFyYW0gaXMgZXhwbGljaXRseSBzZXQgdG8gdHJ1ZVxuXHRcdCAqL1xuXHRcdGlmIChpc0Rpc2FibGVkICYmICF0aGlzLl9zbGlkZXIuZGlzYWJsZWQoKSkge1xuXHRcdFx0dGhpcy5fc2xpZGVyLmRpc2FibGVkLnNldChpc0Rpc2FibGVkKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIF91cGRhdGVIb3N0RWxlbWVudFZhbHVlKHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG5cdFx0dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU/LnRvU3RyaW5nKCkgPz8gJzAnO1xuXHR9XG5cblx0cHJpdmF0ZSBfdXBkYXRlVmFsdWUoKSB7XG5cdFx0dGhpcy52YWx1ZS5zZXQoK3RoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSk7XG5cdFx0dGhpcy5fb25DaGFuZ2VGbj8uKHRoaXMudmFsdWUoKSk7XG5cdH1cblxuXHRwcml2YXRlIF91cGRhdGVIb3N0RWxlbWVudFN0ZXAoc3RlcDogbnVtYmVyKSB7XG5cdFx0dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0ZXAgPSBzdGVwLnRvU3RyaW5nKCk7XG5cdFx0dGhpcy5fdXBkYXRlVmFsdWUoKTtcblx0fVxuXG5cdHByaXZhdGUgX3VwZGF0ZU1pblZhbHVlKHZhbHVlOiBudW1iZXIpIHtcblx0XHR0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubWluID0gdmFsdWUudG9TdHJpbmcoKTtcblx0XHR0aGlzLl91cGRhdGVWYWx1ZSgpO1xuXHR9XG5cblx0cHJpdmF0ZSBfdXBkYXRlTWF4VmFsdWUodmFsdWU6IG51bWJlcikge1xuXHRcdHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5tYXggPSB2YWx1ZS50b1N0cmluZygpO1xuXHRcdHRoaXMuX3VwZGF0ZVZhbHVlKCk7XG5cdH1cblxuXHRwcml2YXRlIF91cGRhdGVEaXJlY3Rpb24oZGlyZWN0aW9uOiBEaXJlY3Rpb24pIHtcblx0XHR0aGlzLl9yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlyZWN0aW9uJywgZGlyZWN0aW9uKTtcblx0fVxufVxuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnJuU2xpZGVyXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHByb3ZpZGVyczogW1xuXHRcdHtcblx0XHRcdHByb3ZpZGU6IEJSTl9TTElERVIsXG5cdFx0XHR1c2VFeGlzdGluZzogQnJuU2xpZGVyRGlyZWN0aXZlLFxuXHRcdH0sXG5cdF0sXG5cdGV4cG9ydEFzOiAnYnJuU2xpZGVyJyxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2xpZGVyRGlyZWN0aXZlIGltcGxlbWVudHMgQnJuU2xpZGVyLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXHRwdWJsaWMgcmVhZG9ubHkgbGFiZWwgPSBpbnB1dDxCcm5MYWJlbERpcmVjdGl2ZSB8IG51bGw+KG51bGwpO1xuXHRwdWJsaWMgcmVhZG9ubHkgYXJpYUxhYmVsID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cdC8qKiBVc2VkIG9ubHkgYXMgYW4gaW5wdXQuICovXG5cdHB1YmxpYyByZWFkb25seSBkaXIgPSBpbnB1dDxEaXJlY3Rpb24+KCdsdHInKTtcblx0cHVibGljIHJlYWRvbmx5IGRpc2FibGVkID0gbW9kZWw8Ym9vbGVhbj4oZmFsc2UsIHsgYWxpYXM6ICdicm5TbGlkZXJEaXNhYmxlZCcgfSk7XG5cdHB1YmxpYyByZWFkb25seSBtaW4gPSBtb2RlbDxudW1iZXI+KDApO1xuXHRwdWJsaWMgcmVhZG9ubHkgbWF4ID0gbW9kZWw8bnVtYmVyPigxMDApO1xuXHRwdWJsaWMgcmVhZG9ubHkgc3RlcCA9IGlucHV0PG51bWJlcj4oMSk7XG5cdHB1YmxpYyByZWFkb25seSBzaG93VGlja01hcmtzID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG5cdHB1YmxpYyByZWFkb25seSBkaXJlY3Rpb24gPSBzaWduYWw8RGlyZWN0aW9uPignbHRyJyk7XG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cblx0cHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9kaXIgPSBpbmplY3QoRGlyZWN0aW9uYWxpdHkpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9wbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgYnJuU2xpZGVyVHJhY2sgPSBjb250ZW50Q2hpbGQoQlJOX1NMSURFUl9UUkFDSyk7XG5cblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLl9wbGF0Zm9ybUlkKSkge1xuXHRcdFx0dGhpcy5fdXBkYXRlRGlyZWN0aW9uYWxpdHkoKTtcblx0XHR9XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuXHRcdHRoaXMuX2Rlc3Ryb3llZC5jb21wbGV0ZSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBtZXRob2QgaXMgcmVzcG9uc2libGUgb2Ygc2V0dGluZyB0aGUgY3VycmVudCBkaXJlY3Rpb24gc3RhdGVcblx0ICogYmFzZWQgb24gdGhlIGxhdGVzdCAnZGlyJyBpbnB1dCBvciBiaWRpIHN0YXRlIGNoYW5nZS4gVGhlIG9ubHlcblx0ICogc291cmNlIG9mIHRydXRoIGZvciBzbGlkZXIgZGlyZWN0aW9uIHN0YXRlIGlzIHRoZSAnZGlyZWN0aW9uJyBzaWduYWxcblx0ICogYW5kIGFsbCBpbnRlcmVzdGVkIGNvbnN1bWVycyBvZiBpdCwgd2lsbCBjb25zdW1lIHRoaXMgaW50ZXJmYWNlIGV4cG9zZWQgc2lnbmFsLlxuXHQgKi9cblx0cHJpdmF0ZSBfdXBkYXRlRGlyZWN0aW9uYWxpdHkoKSB7XG5cdFx0bWVyZ2UodG9PYnNlcnZhYmxlKHRoaXMuZGlyLCB7IGluamVjdG9yOiB0aGlzLl9pbmplY3RvciB9KSwgdGhpcy5fZGlyLmNoYW5nZSlcblx0XHRcdC5waXBlKFxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSxcblx0XHRcdFx0dGFwKChkaXIpID0+IHRoaXMuZGlyZWN0aW9uLnNldChkaXIpKSxcblx0XHRcdClcblx0XHRcdC5zdWJzY3JpYmUoKTtcblx0fVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJyblNsaWRlclRyYWNrIHtcblx0LyoqIFRoZSB0cmFjaydzIGFjdGl2ZSBwb3J0aW9uLiAqL1xuXHRhY3RpdmVUcmFja1BlcmNlbnRhZ2U6IFNpZ25hbDxudW1iZXI+O1xuXG5cdC8qKiBUaGUgaG9zdCBlbGVtZW50J3MgYm91bmRpbmcgY2xpZW50IHJlY3Qgd2lkdGggd2l0aG91dCBwYWRkaW5nIGxlZnQgYW5kIHJpZ2h0LiAqL1xuXHRob3N0RWxlbWVudFdpZHRoOiBTaWduYWw8bnVtYmVyPjtcblxuXHQvKiogVGhlIGF2YWlsYWJsZSB0aWNrIG1hcmsgdHJhY2sgd2lkdGggYmFzZWQgb24gc2xpZGVyJ3Mgc3RlcCBtaW4gYW5kIG1heCB2YWx1ZXMuICovXG5cdHRpY2tNYXJrVHJhY2tXaWR0aDogU2lnbmFsPG51bWJlcj47XG5cblx0LyoqIFRoZSB0aWNrIG1hcmtzIGFycmF5IGluZGljYXRpbmcgaWYgYSBtYXJrIGlzIGN1cnJlbnRseSBhY3RpdmUgb3IgaW5hY3RpdmUuICovXG5cdHRpY2tNYXJrczogU2lnbmFsPEFycmF5PGJvb2xlYW4+PjtcblxuXHQvKiogVGhlIHVuZGVybHlpbmcgc2xpZGVyJ3MgdHJhY2sgaW5wdXQgZWxlbWVudCAqL1xuXHRicm5TbGlkZXJJbnB1dDogU2lnbmFsPEJyblNsaWRlcklucHV0IHwgdW5kZWZpbmVkPjtcbn1cblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2JyblNsaWRlclRyYWNrXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHByb3ZpZGVyczogW1xuXHRcdHtcblx0XHRcdHByb3ZpZGU6IEJSTl9TTElERVJfVFJBQ0ssXG5cdFx0XHR1c2VFeGlzdGluZzogQnJuU2xpZGVyVHJhY2tEaXJlY3RpdmUsXG5cdFx0fSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgQnJuU2xpZGVyVHJhY2tEaXJlY3RpdmUgaW1wbGVtZW50cyBCcm5TbGlkZXJUcmFjaywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblx0cHVibGljIHJlYWRvbmx5IGhvc3RFbGVtZW50V2lkdGggPSBzaWduYWw8bnVtYmVyPigwKTtcblx0cHJpdmF0ZSByZWFkb25seSBfZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRwcml2YXRlIHJlYWRvbmx5IF9zbGlkZXIgPSBpbmplY3QoQlJOX1NMSURFUik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3BsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXHRwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cdHByaXZhdGUgcmVhZG9ubHkgX3NoYXJlZFJlc2l6ZU9ic2VydmVyID0gaW5qZWN0KFNoYXJlZFJlc2l6ZU9ic2VydmVyKTtcblxuXHRwdWJsaWMgcmVhZG9ubHkgYnJuU2xpZGVySW5wdXQgPSBjb250ZW50Q2hpbGQ8QnJuU2xpZGVySW5wdXQ+KGZvcndhcmRSZWYoKCkgPT4gQlJOX1NMSURFUl9JTlBVVCkpO1xuXG5cdHB1YmxpYyBhY3RpdmVUcmFja1BlcmNlbnRhZ2UgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgaW5wdXRWYWx1ZSA9IHRoaXMuYnJuU2xpZGVySW5wdXQoKT8udmFsdWUoKTtcblxuXHRcdGlmICh0aGlzLl9zbGlkZXIubWluKCkgPj0gdGhpcy5fc2xpZGVyLm1heCgpIHx8ICFpbnB1dFZhbHVlIHx8IGlucHV0VmFsdWUgPCB0aGlzLl9zbGlkZXIubWluKCkpIHtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblxuXHRcdGlmIChpbnB1dFZhbHVlID4gdGhpcy5fc2xpZGVyLm1heCgpKSB7XG5cdFx0XHRyZXR1cm4gMTtcblx0XHR9XG5cblx0XHRyZXR1cm4gKGlucHV0VmFsdWUgLSB0aGlzLl9zbGlkZXIubWluKCkpIC8gKHRoaXMuX3NsaWRlci5tYXgoKSAtIHRoaXMuX3NsaWRlci5taW4oKSk7XG5cdH0pO1xuXG5cdHB1YmxpYyB0aWNrTWFya1RyYWNrV2lkdGggPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0aWYgKCF0aGlzLl9zbGlkZXIuc2hvd1RpY2tNYXJrcygpKSB7XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9XG5cblx0XHRjb25zdCBzbGlkZXJTdGVwID0gdGhpcy5fc2xpZGVyLnN0ZXAoKTtcblx0XHRjb25zdCBzbGlkZXJNYXggPSB0aGlzLl9zbGlkZXIubWF4KCk7XG5cdFx0Y29uc3Qgc2xpZGVyTWluID0gdGhpcy5fc2xpZGVyLm1pbigpO1xuXG5cdFx0Y29uc3Qgc3RlcCA9IHNsaWRlclN0ZXAgJiYgc2xpZGVyU3RlcCA+IDAgPyBzbGlkZXJTdGVwIDogMTtcblx0XHRjb25zdCBtYXhWYWx1ZSA9IE1hdGguZmxvb3IoKHNsaWRlck1heCAtIHNsaWRlck1pbikgLyBzdGVwKSAqIHN0ZXAgKyBzbGlkZXJNaW47XG5cdFx0Y29uc3QgcGVyY2VudGFnZSA9IChtYXhWYWx1ZSAtIHNsaWRlck1pbikgLyAoc2xpZGVyTWF4IC0gc2xpZGVyTWluKTtcblxuXHRcdHJldHVybiB0aGlzLmhvc3RFbGVtZW50V2lkdGgoKSAqIHBlcmNlbnRhZ2U7XG5cdH0pO1xuXG5cdHB1YmxpYyB0aWNrTWFya3MgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgaW5wdXRWYWx1ZSA9IHRoaXMuYnJuU2xpZGVySW5wdXQoKT8udmFsdWUoKTtcblxuXHRcdGlmICghdGhpcy5fc2xpZGVyLnNob3dUaWNrTWFya3MoKSB8fCBpbnB1dFZhbHVlID09PSBudWxsIHx8IGlucHV0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdGxldCBudW1BY3RpdmUgPSBNYXRoLm1heChNYXRoLmZsb29yKChpbnB1dFZhbHVlIC0gdGhpcy5fc2xpZGVyLm1pbigpKSAvIHRoaXMuX3NsaWRlci5zdGVwKCkpLCAwKTtcblx0XHRsZXQgbnVtSW5hY3RpdmUgPSBNYXRoLm1heChNYXRoLmZsb29yKCh0aGlzLl9zbGlkZXIubWF4KCkgLSBpbnB1dFZhbHVlKSAvIHRoaXMuX3NsaWRlci5zdGVwKCkpLCAwKTtcblxuXHRcdHRoaXMuX3NsaWRlci5kaXJlY3Rpb24oKSA9PT0gJ3J0bCcgPyBudW1JbmFjdGl2ZSsrIDogbnVtQWN0aXZlKys7XG5cblx0XHRyZXR1cm4gQXJyYXkobnVtQWN0aXZlKS5maWxsKHRydWUpLmNvbmNhdChBcnJheShudW1JbmFjdGl2ZSkuZmlsbChmYWxzZSkpO1xuXHR9KTtcblxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cdFx0aWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMuX3BsYXRmb3JtSWQpKSB7XG5cdFx0XHR0aGlzLl9zdG9yZURpbWVuc2lvbnMoKTtcblx0XHRcdHRoaXMuX29uUmVzaXplKCk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fZGVzdHJveWVkLm5leHQoKTtcblx0XHR0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcblx0fVxuXG5cdHByaXZhdGUgX29uUmVzaXplKCkge1xuXHRcdHRoaXMuX3NoYXJlZFJlc2l6ZU9ic2VydmVyXG5cdFx0XHQub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG5cdFx0XHQucGlwZShcblx0XHRcdFx0ZGVib3VuY2VUaW1lKDMyKSxcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCksXG5cdFx0XHRcdHRhcCgoKSA9PiB0aGlzLl9zdG9yZURpbWVuc2lvbnMoKSksXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCk7XG5cdH1cblxuXHRwcml2YXRlIF9zdG9yZURpbWVuc2lvbnMoKTogdm9pZCB7XG5cdFx0Y29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuXHRcdHRoaXMuaG9zdEVsZW1lbnRXaWR0aC5zZXQoXG5cdFx0XHR0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLVxuXHRcdFx0XHROdW1iZXIucGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdMZWZ0KSAtXG5cdFx0XHRcdE51bWJlci5wYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUucGFkZGluZ1JpZ2h0KSxcblx0XHQpO1xuXHR9XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhcnRhbi1uZy1icmFpbi1zbGlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3NsaWRlci9zcmMvc3BhcnRhbi1uZy1icmFpbi1zbGlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { BrnSwitchThumbComponent } from './lib/brn-switch-thumb.component';
|
|
3
|
+
import { BrnSwitchComponent } from './lib/brn-switch.component';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export * from './lib/brn-switch-thumb.component';
|
|
6
|
+
export * from './lib/brn-switch.component';
|
|
7
|
+
export const BrnSwitchImports = [BrnSwitchComponent, BrnSwitchThumbComponent];
|
|
8
|
+
export class BrnSwitchModule {
|
|
9
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
/** @nocollapse */ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: BrnSwitchModule, imports: [BrnSwitchComponent, BrnSwitchThumbComponent], exports: [BrnSwitchComponent, BrnSwitchThumbComponent] });
|
|
11
|
+
/** @nocollapse */ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSwitchModule });
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSwitchModule, decorators: [{
|
|
14
|
+
type: NgModule,
|
|
15
|
+
args: [{
|
|
16
|
+
imports: [...BrnSwitchImports],
|
|
17
|
+
exports: [...BrnSwitchImports],
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3N3aXRjaC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFaEUsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsa0JBQWtCLEVBQUUsdUJBQXVCLENBQVUsQ0FBQztBQU12RixNQUFNLE9BQU8sZUFBZTswSEFBZixlQUFlOzJIQUFmLGVBQWUsWUFOSyxrQkFBa0IsRUFBRSx1QkFBdUIsYUFBM0Msa0JBQWtCLEVBQUUsdUJBQXVCOzJIQU0vRCxlQUFlOzsyRkFBZixlQUFlO2tCQUozQixRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQnJuU3dpdGNoVGh1bWJDb21wb25lbnQgfSBmcm9tICcuL2xpYi9icm4tc3dpdGNoLXRodW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCcm5Td2l0Y2hDb21wb25lbnQgfSBmcm9tICcuL2xpYi9icm4tc3dpdGNoLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1zd2l0Y2gtdGh1bWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jybi1zd2l0Y2guY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IEJyblN3aXRjaEltcG9ydHMgPSBbQnJuU3dpdGNoQ29tcG9uZW50LCBCcm5Td2l0Y2hUaHVtYkNvbXBvbmVudF0gYXMgY29uc3Q7XG5cbkBOZ01vZHVsZSh7XG5cdGltcG9ydHM6IFsuLi5Ccm5Td2l0Y2hJbXBvcnRzXSxcblx0ZXhwb3J0czogWy4uLkJyblN3aXRjaEltcG9ydHNdLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5Td2l0Y2hNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class BrnSwitchThumbComponent {
|
|
4
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSwitchThumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5
|
+
/** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: BrnSwitchThumbComponent, isStandalone: true, selector: "brn-switch-thumb", ngImport: i0, template: '', isInline: true });
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BrnSwitchThumbComponent, decorators: [{
|
|
8
|
+
type: Component,
|
|
9
|
+
args: [{
|
|
10
|
+
selector: 'brn-switch-thumb',
|
|
11
|
+
standalone: true,
|
|
12
|
+
imports: [],
|
|
13
|
+
template: '',
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJuLXN3aXRjaC10aHVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2JyYWluL3N3aXRjaC9zcmMvbGliL2Jybi1zd2l0Y2gtdGh1bWIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTFDLE1BQU0sT0FBTyx1QkFBdUI7MEhBQXZCLHVCQUF1Qjs4R0FBdkIsdUJBQXVCLDRFQUZ6QixFQUFFOzsyRkFFQSx1QkFBdUI7a0JBTm5DLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2Jybi1zd2l0Y2gtdGh1bWInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbXSxcblx0dGVtcGxhdGU6ICcnLFxufSlcbmV4cG9ydCBjbGFzcyBCcm5Td2l0Y2hUaHVtYkNvbXBvbmVudCB7fVxuIl19
|