ngx-bootstrap 6.1.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +1 -1
- package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +1 -1
- package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
- package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
- package/accordion/package.json +1 -1
- package/alert/package.json +1 -1
- package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +1 -1
- package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +1 -1
- package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
- package/buttons/fesm5/ngx-bootstrap-buttons.js.map +1 -1
- package/buttons/package.json +1 -1
- package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
- package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
- package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
- package/carousel/fesm5/ngx-bootstrap-carousel.js.map +1 -1
- package/carousel/package.json +1 -1
- package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
- package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
- package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
- package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
- package/chronos/package.json +1 -1
- package/collapse/package.json +1 -1
- package/component-loader/package.json +1 -1
- package/datepicker/base/bs-datepicker-container.d.ts +4 -1
- package/datepicker/bs-datepicker.config.d.ts +16 -0
- package/datepicker/bs-datepicker.css +108 -0
- package/datepicker/bs-datepicker.css.map +3 -3
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +59 -9
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +1 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
- package/datepicker/esm2015/base/bs-datepicker-container.js +9 -3
- package/datepicker/esm2015/bs-datepicker.config.js +37 -1
- package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +2 -2
- package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +5 -2
- package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +7 -3
- package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
- package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +3 -2
- package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
- package/datepicker/esm5/base/bs-datepicker-container.js +9 -3
- package/datepicker/esm5/bs-datepicker.config.js +37 -1
- package/datepicker/esm5/reducer/bs-datepicker.reducer.js +2 -2
- package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +5 -2
- package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +7 -3
- package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
- package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +3 -2
- package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +59 -9
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js +59 -9
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
- package/datepicker/package.json +1 -1
- package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -0
- package/datepicker/utils/scss/mixins.css.map +2 -2
- package/datepicker/utils/scss/mixins.scss +98 -0
- package/datepicker/utils/scss/variables.css.map +1 -1
- package/datepicker/utils/scss/variables.scss +14 -0
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/package.json +1 -1
- package/locale/package.json +1 -1
- package/mini-ngrx/package.json +1 -1
- package/modal/bs-modal-ref.service.d.ts +2 -2
- package/modal/bs-modal.service.d.ts +3 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.js +19 -8
- package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.min.js +1 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
- package/modal/esm2015/bs-modal-ref.service.js +5 -1
- package/modal/esm2015/bs-modal.service.js +7 -2
- package/modal/esm2015/modal-container.component.js +2 -1
- package/modal/esm2015/modal-options.class.js +6 -3
- package/modal/esm2015/modal.directive.js +2 -2
- package/modal/esm2015/models/index.js +3 -1
- package/modal/esm2015/ngx-bootstrap-modal.js +3 -3
- package/modal/esm2015/public_api.js +2 -2
- package/modal/esm5/bs-modal-ref.service.js +4 -1
- package/modal/esm5/bs-modal.service.js +8 -4
- package/modal/esm5/modal-container.component.js +2 -1
- package/modal/esm5/modal-options.class.js +6 -3
- package/modal/esm5/modal.directive.js +2 -2
- package/modal/esm5/models/index.js +3 -1
- package/modal/esm5/ngx-bootstrap-modal.js +3 -3
- package/modal/esm5/public_api.js +2 -2
- package/modal/fesm2015/ngx-bootstrap-modal.js +18 -5
- package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
- package/modal/fesm5/ngx-bootstrap-modal.js +18 -7
- package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
- package/modal/modal-options.class.d.ts +2 -2
- package/modal/models/index.d.ts +1 -0
- package/modal/ngx-bootstrap-modal.d.ts +1 -1
- package/modal/ngx-bootstrap-modal.metadata.json +1 -1
- package/modal/package.json +1 -1
- package/modal/public_api.d.ts +1 -1
- package/package.json +2 -2
- package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +1 -1
- package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +1 -1
- package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
- package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
- package/pagination/package.json +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
- package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
- package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
- package/popover/package.json +1 -1
- package/positioning/package.json +1 -1
- package/progressbar/bar.component.d.ts +4 -7
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +40 -64
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +1 -1
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +1 -1
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +1 -1
- package/progressbar/esm2015/bar.component.js +33 -48
- package/progressbar/esm2015/progressbar.component.js +5 -8
- package/progressbar/esm5/bar.component.js +37 -58
- package/progressbar/esm5/progressbar.component.js +5 -8
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +36 -54
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
- package/progressbar/fesm5/ngx-bootstrap-progressbar.js +40 -64
- package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
- package/progressbar/ngx-bootstrap-progressbar.metadata.json +1 -1
- package/progressbar/package.json +1 -1
- package/progressbar/progressbar.component.d.ts +1 -1
- package/rating/package.json +1 -1
- package/sortable/package.json +1 -1
- package/tabs/package.json +1 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +3 -3
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
- package/timepicker/esm2015/timepicker.component.js +2 -2
- package/timepicker/esm2015/timepicker.config.js +3 -3
- package/timepicker/esm5/timepicker.component.js +2 -2
- package/timepicker/esm5/timepicker.config.js +3 -3
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +3 -3
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
- package/timepicker/fesm5/ngx-bootstrap-timepicker.js +3 -3
- package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
- package/timepicker/package.json +1 -1
- package/timepicker/timepicker.component.d.ts +1 -1
- package/timepicker/timepicker.config.d.ts +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
- package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
- package/tooltip/package.json +1 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
- package/typeahead/package.json +1 -1
- package/utils/package.json +1 -1
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,30 @@
|
|
1
|
+
<a name="6.2.0"></a>
|
2
|
+
# [6.2.0](https://github.com/valor-software/ngx-bootstrap/compare/v6.1.0...v6.2.0) (2020-11-06)
|
3
|
+
|
4
|
+
|
5
|
+
### Bug Fixes
|
6
|
+
|
7
|
+
* **build:** fix latest & next test builds ([f94bd1d](https://github.com/valor-software/ngx-bootstrap/commit/f94bd1d))
|
8
|
+
* **datepicker:** fix TypeError when clearing daterange with active showPreviousMonth option ([7b5ea3d](https://github.com/valor-software/ngx-bootstrap/commit/7b5ea3d))
|
9
|
+
* **datepicker:** translate the fixed buttons ('today', 'clear', 'custom range') [#5896](https://github.com/valor-software/ngx-bootstrap/issues/5896) ([dbf958e](https://github.com/valor-software/ngx-bootstrap/commit/dbf958e))
|
10
|
+
* **demo:** fix stackblitz build, fix core-js not correct version ([#5956](https://github.com/valor-software/ngx-bootstrap/issues/5956)) ([61c6924](https://github.com/valor-software/ngx-bootstrap/commit/61c6924))
|
11
|
+
* **modal:** change method call sequence ([#5944](https://github.com/valor-software/ngx-bootstrap/issues/5944)) ([f5e79c8](https://github.com/valor-software/ngx-bootstrap/commit/f5e79c8))
|
12
|
+
* **modal:** change to add Dismiss Reason on modal hide with back click ([#5942](https://github.com/valor-software/ngx-bootstrap/issues/5942)) ([bf25a11](https://github.com/valor-software/ngx-bootstrap/commit/bf25a11))
|
13
|
+
* **modal:** set random value in `config.id` if it doesn't have any value ([68bd7cc](https://github.com/valor-software/ngx-bootstrap/commit/68bd7cc))
|
14
|
+
* **modal.service:** typo error (should compare id value) ([e73d0ab](https://github.com/valor-software/ngx-bootstrap/commit/e73d0ab))
|
15
|
+
* **progressbar:** add aria-valuemax fix ([b838326](https://github.com/valor-software/ngx-bootstrap/commit/b838326))
|
16
|
+
|
17
|
+
|
18
|
+
### Features
|
19
|
+
|
20
|
+
* **ci:** add firebase preview to PRs ([#5970](https://github.com/valor-software/ngx-bootstrap/issues/5970)) ([b7a03cc](https://github.com/valor-software/ngx-bootstrap/commit/b7a03cc))
|
21
|
+
* **datepicker:** add startview to datepicker ([#5816](https://github.com/valor-software/ngx-bootstrap/issues/5816)) ([37e33ea](https://github.com/valor-software/ngx-bootstrap/commit/37e33ea))
|
22
|
+
* **datepicker:** add theming to Show and Clear buttons ([#5959](https://github.com/valor-software/ngx-bootstrap/issues/5959)) ([313fe90](https://github.com/valor-software/ngx-bootstrap/commit/313fe90))
|
23
|
+
* **modal:** add test case for id unspecified case in config (ModalOptions) ([7f0e30a](https://github.com/valor-software/ngx-bootstrap/commit/7f0e30a))
|
24
|
+
* **Modal:** enable type-checking for BsModalRef.content & ModalOptions.initialState ([9583752](https://github.com/valor-software/ngx-bootstrap/commit/9583752))
|
25
|
+
|
26
|
+
|
27
|
+
|
1
28
|
<a name="6.1.0"></a>
|
2
29
|
# [6.1.0](https://github.com/valor-software/ngx-bootstrap/compare/v6.0.0...v6.1.0) (2020-08-28)
|
3
30
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-accordion.umd.js","sources":["ng://ngx-bootstrap/accordion/accordion.config.ts","ng://ngx-bootstrap/accordion/accordion.component.ts","ng://ngx-bootstrap/accordion/accordion-group.component.ts","ng://ngx-bootstrap/accordion/accordion.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AccordionConfig {\n /** Whether the other panels should be closed when a panel is opened */\n closeOthers: Boolean = false;\n /** turn on/off animation */\n isAnimated: Boolean = false;\n}\n","import { Component, Input } from '@angular/core';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionConfig } from './accordion.config';\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\n@Component({\n selector: 'accordion',\n template: `<ng-content></ng-content>`,\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n})\nexport class AccordionComponent {\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** if `true` expanding one item will close all others */\n @Input() closeOthers: boolean;\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(config: AccordionConfig) {\n Object.assign(this, config);\n }\n\n closeOtherPanels(openGroup: AccordionPanelComponent): void {\n if (!this.closeOthers) {\n return;\n }\n\n this.groups.forEach((group: AccordionPanelComponent) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n\n addGroup(group: AccordionPanelComponent): void {\n group.isAnimated = this.isAnimated;\n this.groups.push(group);\n }\n\n removeGroup(group: AccordionPanelComponent): void {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n}\n","import {\n Component, HostBinding, Inject, Input, OnDestroy, OnInit, Output, EventEmitter\n} from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\n@Component({\n selector: 'accordion-group, accordion-panel',\n templateUrl: './accordion-group.component.html',\n host: {\n class: 'panel',\n style: 'display: block'\n },\n styleUrls: ['./accordion.scss']\n})\nexport class AccordionPanelComponent implements OnInit, OnDestroy {\n /** turn on/off animation */\n isAnimated = false;\n /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */\n @Input() heading: string;\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n @Input() panelClass: string;\n /** if <code>true</code>
|
1
|
+
{"version":3,"file":"ngx-bootstrap-accordion.umd.js","sources":["ng://ngx-bootstrap/accordion/accordion.config.ts","ng://ngx-bootstrap/accordion/accordion.component.ts","ng://ngx-bootstrap/accordion/accordion-group.component.ts","ng://ngx-bootstrap/accordion/accordion.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AccordionConfig {\n /** Whether the other panels should be closed when a panel is opened */\n closeOthers: Boolean = false;\n /** turn on/off animation */\n isAnimated: Boolean = false;\n}\n","import { Component, Input } from '@angular/core';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionConfig } from './accordion.config';\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\n@Component({\n selector: 'accordion',\n template: `<ng-content></ng-content>`,\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n})\nexport class AccordionComponent {\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** if `true` expanding one item will close all others */\n @Input() closeOthers: boolean;\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(config: AccordionConfig) {\n Object.assign(this, config);\n }\n\n closeOtherPanels(openGroup: AccordionPanelComponent): void {\n if (!this.closeOthers) {\n return;\n }\n\n this.groups.forEach((group: AccordionPanelComponent) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n\n addGroup(group: AccordionPanelComponent): void {\n group.isAnimated = this.isAnimated;\n this.groups.push(group);\n }\n\n removeGroup(group: AccordionPanelComponent): void {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n}\n","import {\n Component, HostBinding, Inject, Input, OnDestroy, OnInit, Output, EventEmitter\n} from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\n@Component({\n selector: 'accordion-group, accordion-panel',\n templateUrl: './accordion-group.component.html',\n host: {\n class: 'panel',\n style: 'display: block'\n },\n styleUrls: ['./accordion.scss']\n})\nexport class AccordionPanelComponent implements OnInit, OnDestroy {\n /** turn on/off animation */\n isAnimated = false;\n /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */\n @Input() heading: string;\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n @Input() panelClass: string;\n /** if <code>true</code> — disables accordion group */\n @Input() isDisabled: boolean;\n /** Emits when the opened state changes */\n @Output() isOpenChange: EventEmitter<boolean> = new EventEmitter();\n\n // Questionable, maybe .panel-open should be on child div.panel element?\n /** Is accordion group open or closed. This property supports two-way binding */\n @HostBinding('class.panel-open')\n @Input()\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n set isOpen(value: boolean) {\n if (value !== this.isOpen) {\n if (value) {\n this.accordion.closeOtherPanels(this);\n }\n this._isOpen = value;\n Promise.resolve(null).then(() => {\n this.isOpenChange.emit(value);\n })\n .catch((error: Error) => {\n /* tslint:disable: no-console */\n console.log(error);\n });\n }\n }\n\n get isBs3(): boolean {\n return isBs3();\n }\n\n protected _isOpen = false;\n protected accordion: AccordionComponent;\n\n constructor(@Inject(AccordionComponent) accordion: AccordionComponent) {\n this.accordion = accordion;\n }\n\n ngOnInit(): void {\n this.panelClass = this.panelClass || 'panel-default';\n this.accordion.addGroup(this);\n }\n\n ngOnDestroy(): void {\n this.accordion.removeGroup(this);\n }\n\n toggleOpen(): void {\n if (!this.isDisabled) {\n this.isOpen = !this.isOpen;\n }\n }\n}\n","/* tslint:disable: max-classes-per-file */\nimport { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\n\n@NgModule({\n imports: [CommonModule, CollapseModule],\n declarations: [AccordionComponent, AccordionPanelComponent],\n exports: [AccordionComponent, AccordionPanelComponent]\n})\nexport class AccordionModule {\n static forRoot(): ModuleWithProviders<AccordionModule> {\n return { ngModule: AccordionModule, providers: [] };\n }\n}\n"],"names":["Injectable","Component","Input","EventEmitter","isBs3","Inject","Output","HostBinding","NgModule","CommonModule","CollapseModule"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["ng://ngx-bootstrap/accordion/accordion.config.ts","ng://ngx-bootstrap/accordion/accordion.component.ts","ng://ngx-bootstrap/accordion/accordion-group.component.ts","ng://ngx-bootstrap/accordion/accordion.module.ts"],"names":["AccordionConfig","this","closeOthers","isAnimated","Injectable","args","providedIn","AccordionComponent","config","groups","Object","assign","prototype","closeOtherPanels","openGroup","forEach","group","isOpen","addGroup","push","removeGroup","index","indexOf","splice","Component","selector","template","host","[attr.aria-multiselectable]","role","class","style","Input","AccordionPanelComponent","accordion","isOpenChange","EventEmitter","_isOpen","defineProperty","value","_this","Promise","resolve","then","emit","catch","error","console","log","isBs3","ngOnInit","panelClass","ngOnDestroy","toggleOpen","isDisabled","decorators","type","Inject","Output","HostBinding","AccordionModule","forRoot","ngModule","providers","NgModule","imports","CommonModule","CollapseModule","declarations","exports"],"mappings":"siBAKA,SAAAA,IAKEC,KAAAC,aAAuB,EAEvBD,KAAAE,YAAsB,6BAPvBC,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,+HCiBZ,SAAAC,EAAYC,GANHP,KAAAE,YAAa,EAIZF,KAAAQ,OAAoC,GAG5CC,OAAOC,OAAOV,KAAMO,GA0BxB,OAvBED,EAAAK,UAAAC,iBAAA,SAAiBC,GACVb,KAAKC,aAIVD,KAAKQ,OAAOM,SAAO,SAAEC,GACfA,IAAUF,IACZE,EAAMC,QAAS,OAKrBV,EAAAK,UAAAM,SAAA,SAASF,GACPA,EAAMb,WAAaF,KAAKE,WACxBF,KAAKQ,OAAOU,KAAKH,IAGnBT,EAAAK,UAAAQ,YAAA,SAAYJ,OACJK,EAAQpB,KAAKQ,OAAOa,QAAQN,IACnB,IAAXK,GACFpB,KAAKQ,OAAOc,OAAOF,EAAO,wBA1C/BG,EAAAA,UAASnB,KAAA,CAAC,CACToB,SAAU,YACVC,SAAU,4BACVC,KAAM,CACJC,8BAA+B,cAC/BC,KAAM,UACNC,MAAO,cACPC,MAAO,+DAVF/B,yCAeNgC,EAAAA,2BAEAA,EAAAA,SA+BHzB,sBCkBE,SAAA0B,EAAwCC,GA7CxCjC,KAAAE,YAAa,EAYHF,KAAAkC,aAAsC,IAAIC,EAAAA,aA8B1CnC,KAAAoC,SAAU,EAIlBpC,KAAKiC,UAAYA,EAiBrB,OA/CExB,OAAA4B,eAEIL,EAAArB,UAAA,SAAM,KAFV,WAGE,OAAOX,KAAKoC,aAGd,SAAWE,GAAX,IAAAC,EAAAvC,KACMsC,IAAUtC,KAAKgB,SACbsB,GACFtC,KAAKiC,UAAUrB,iBAAiBZ,MAElCA,KAAKoC,QAAUE,EACfE,QAAQC,QAAQ,MAAMC,MAAI,WACxBH,EAAKL,aAAaS,KAAKL,MAEtBM,OAAK,SAAEC,GAENC,QAAQC,IAAIF,wCAKpBpC,OAAA4B,eAAIL,EAAArB,UAAA,QAAK,KAAT,WACE,OAAOqC,EAAAA,yCAUThB,EAAArB,UAAAsC,SAAA,WACEjD,KAAKkD,WAAalD,KAAKkD,YAAc,gBACrClD,KAAKiC,UAAUhB,SAASjB,OAG1BgC,EAAArB,UAAAwC,YAAA,WACEnD,KAAKiC,UAAUd,YAAYnB,OAG7BgC,EAAArB,UAAAyC,WAAA,WACOpD,KAAKqD,aACRrD,KAAKgB,QAAUhB,KAAKgB,6BAvEzBO,EAAAA,UAASnB,KAAA,CAAC,CACToB,SAAU,mCACVC,SAAA,oyBACAC,KAAM,CACJG,MAAO,QACPC,MAAO,+MAbFxB,EAAkBgD,WAAA,CAAA,CAAAC,KAgEZC,EAAAA,OAAMpD,KAAA,CAACE,yCA3CnByB,EAAAA,0BAMAA,EAAAA,0BAEAA,EAAAA,4BAEA0B,EAAAA,uBAIAC,EAAAA,YAAWtD,KAAA,CAAC,qBAAkB,CAAAmD,KAC9BxB,EAAAA,SA8CHC,sBC9EA,SAAA2B,KASA,OAHSA,EAAAC,QAAP,WACE,MAAO,CAAEC,SAAUF,EAAiBG,UAAW,yBAPlDC,EAAAA,SAAQ3D,KAAA,CAAC,CACR4D,QAAS,CAACC,EAAAA,aAAcC,EAAAA,gBACxBC,aAAc,CAAC7D,EAAoB0B,GACnCoC,QAAS,CAAC9D,EAAoB0B,OAMhC2B","sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AccordionConfig {\n /** Whether the other panels should be closed when a panel is opened */\n closeOthers: Boolean = false;\n /** turn on/off animation */\n isAnimated: Boolean = false;\n}\n","import { Component, Input } from '@angular/core';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionConfig } from './accordion.config';\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\n@Component({\n selector: 'accordion',\n template: `<ng-content></ng-content>`,\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n})\nexport class AccordionComponent {\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** if `true` expanding one item will close all others */\n @Input() closeOthers: boolean;\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(config: AccordionConfig) {\n Object.assign(this, config);\n }\n\n closeOtherPanels(openGroup: AccordionPanelComponent): void {\n if (!this.closeOthers) {\n return;\n }\n\n this.groups.forEach((group: AccordionPanelComponent) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n\n addGroup(group: AccordionPanelComponent): void {\n group.isAnimated = this.isAnimated;\n this.groups.push(group);\n }\n\n removeGroup(group: AccordionPanelComponent): void {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n}\n","import {\n Component, HostBinding, Inject, Input, OnDestroy, OnInit, Output, EventEmitter\n} from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\n@Component({\n selector: 'accordion-group, accordion-panel',\n templateUrl: './accordion-group.component.html',\n host: {\n class: 'panel',\n style: 'display: block'\n },\n styleUrls: ['./accordion.scss']\n})\nexport class AccordionPanelComponent implements OnInit, OnDestroy {\n /** turn on/off animation */\n isAnimated = false;\n /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */\n @Input() heading: string;\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n @Input() panelClass: string;\n /** if <code>true</code>
|
1
|
+
{"version":3,"sources":["ng://ngx-bootstrap/accordion/accordion.config.ts","ng://ngx-bootstrap/accordion/accordion.component.ts","ng://ngx-bootstrap/accordion/accordion-group.component.ts","ng://ngx-bootstrap/accordion/accordion.module.ts"],"names":["AccordionConfig","this","closeOthers","isAnimated","Injectable","args","providedIn","AccordionComponent","config","groups","Object","assign","prototype","closeOtherPanels","openGroup","forEach","group","isOpen","addGroup","push","removeGroup","index","indexOf","splice","Component","selector","template","host","[attr.aria-multiselectable]","role","class","style","Input","AccordionPanelComponent","accordion","isOpenChange","EventEmitter","_isOpen","defineProperty","value","_this","Promise","resolve","then","emit","catch","error","console","log","isBs3","ngOnInit","panelClass","ngOnDestroy","toggleOpen","isDisabled","decorators","type","Inject","Output","HostBinding","AccordionModule","forRoot","ngModule","providers","NgModule","imports","CommonModule","CollapseModule","declarations","exports"],"mappings":"siBAKA,SAAAA,IAKEC,KAAAC,aAAuB,EAEvBD,KAAAE,YAAsB,6BAPvBC,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,+HCiBZ,SAAAC,EAAYC,GANHP,KAAAE,YAAa,EAIZF,KAAAQ,OAAoC,GAG5CC,OAAOC,OAAOV,KAAMO,GA0BxB,OAvBED,EAAAK,UAAAC,iBAAA,SAAiBC,GACVb,KAAKC,aAIVD,KAAKQ,OAAOM,SAAO,SAAEC,GACfA,IAAUF,IACZE,EAAMC,QAAS,OAKrBV,EAAAK,UAAAM,SAAA,SAASF,GACPA,EAAMb,WAAaF,KAAKE,WACxBF,KAAKQ,OAAOU,KAAKH,IAGnBT,EAAAK,UAAAQ,YAAA,SAAYJ,OACJK,EAAQpB,KAAKQ,OAAOa,QAAQN,IACnB,IAAXK,GACFpB,KAAKQ,OAAOc,OAAOF,EAAO,wBA1C/BG,EAAAA,UAASnB,KAAA,CAAC,CACToB,SAAU,YACVC,SAAU,4BACVC,KAAM,CACJC,8BAA+B,cAC/BC,KAAM,UACNC,MAAO,cACPC,MAAO,+DAVF/B,yCAeNgC,EAAAA,2BAEAA,EAAAA,SA+BHzB,sBCkBE,SAAA0B,EAAwCC,GA7CxCjC,KAAAE,YAAa,EAYHF,KAAAkC,aAAsC,IAAIC,EAAAA,aA8B1CnC,KAAAoC,SAAU,EAIlBpC,KAAKiC,UAAYA,EAiBrB,OA/CExB,OAAA4B,eAEIL,EAAArB,UAAA,SAAM,KAFV,WAGE,OAAOX,KAAKoC,aAGd,SAAWE,GAAX,IAAAC,EAAAvC,KACMsC,IAAUtC,KAAKgB,SACbsB,GACFtC,KAAKiC,UAAUrB,iBAAiBZ,MAElCA,KAAKoC,QAAUE,EACfE,QAAQC,QAAQ,MAAMC,MAAI,WACxBH,EAAKL,aAAaS,KAAKL,MAEtBM,OAAK,SAAEC,GAENC,QAAQC,IAAIF,wCAKpBpC,OAAA4B,eAAIL,EAAArB,UAAA,QAAK,KAAT,WACE,OAAOqC,EAAAA,yCAUThB,EAAArB,UAAAsC,SAAA,WACEjD,KAAKkD,WAAalD,KAAKkD,YAAc,gBACrClD,KAAKiC,UAAUhB,SAASjB,OAG1BgC,EAAArB,UAAAwC,YAAA,WACEnD,KAAKiC,UAAUd,YAAYnB,OAG7BgC,EAAArB,UAAAyC,WAAA,WACOpD,KAAKqD,aACRrD,KAAKgB,QAAUhB,KAAKgB,6BAvEzBO,EAAAA,UAASnB,KAAA,CAAC,CACToB,SAAU,mCACVC,SAAA,oyBACAC,KAAM,CACJG,MAAO,QACPC,MAAO,+MAbFxB,EAAkBgD,WAAA,CAAA,CAAAC,KAgEZC,EAAAA,OAAMpD,KAAA,CAACE,yCA3CnByB,EAAAA,0BAMAA,EAAAA,0BAEAA,EAAAA,4BAEA0B,EAAAA,uBAIAC,EAAAA,YAAWtD,KAAA,CAAC,qBAAkB,CAAAmD,KAC9BxB,EAAAA,SA8CHC,sBC9EA,SAAA2B,KASA,OAHSA,EAAAC,QAAP,WACE,MAAO,CAAEC,SAAUF,EAAiBG,UAAW,yBAPlDC,EAAAA,SAAQ3D,KAAA,CAAC,CACR4D,QAAS,CAACC,EAAAA,aAAcC,EAAAA,gBACxBC,aAAc,CAAC7D,EAAoB0B,GACnCoC,QAAS,CAAC9D,EAAoB0B,OAMhC2B","sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AccordionConfig {\n /** Whether the other panels should be closed when a panel is opened */\n closeOthers: Boolean = false;\n /** turn on/off animation */\n isAnimated: Boolean = false;\n}\n","import { Component, Input } from '@angular/core';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionConfig } from './accordion.config';\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\n@Component({\n selector: 'accordion',\n template: `<ng-content></ng-content>`,\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n})\nexport class AccordionComponent {\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** if `true` expanding one item will close all others */\n @Input() closeOthers: boolean;\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(config: AccordionConfig) {\n Object.assign(this, config);\n }\n\n closeOtherPanels(openGroup: AccordionPanelComponent): void {\n if (!this.closeOthers) {\n return;\n }\n\n this.groups.forEach((group: AccordionPanelComponent) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n\n addGroup(group: AccordionPanelComponent): void {\n group.isAnimated = this.isAnimated;\n this.groups.push(group);\n }\n\n removeGroup(group: AccordionPanelComponent): void {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n}\n","import {\n Component, HostBinding, Inject, Input, OnDestroy, OnInit, Output, EventEmitter\n} from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\n@Component({\n selector: 'accordion-group, accordion-panel',\n templateUrl: './accordion-group.component.html',\n host: {\n class: 'panel',\n style: 'display: block'\n },\n styleUrls: ['./accordion.scss']\n})\nexport class AccordionPanelComponent implements OnInit, OnDestroy {\n /** turn on/off animation */\n isAnimated = false;\n /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */\n @Input() heading: string;\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n @Input() panelClass: string;\n /** if <code>true</code> — disables accordion group */\n @Input() isDisabled: boolean;\n /** Emits when the opened state changes */\n @Output() isOpenChange: EventEmitter<boolean> = new EventEmitter();\n\n // Questionable, maybe .panel-open should be on child div.panel element?\n /** Is accordion group open or closed. This property supports two-way binding */\n @HostBinding('class.panel-open')\n @Input()\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n set isOpen(value: boolean) {\n if (value !== this.isOpen) {\n if (value) {\n this.accordion.closeOtherPanels(this);\n }\n this._isOpen = value;\n Promise.resolve(null).then(() => {\n this.isOpenChange.emit(value);\n })\n .catch((error: Error) => {\n /* tslint:disable: no-console */\n console.log(error);\n });\n }\n }\n\n get isBs3(): boolean {\n return isBs3();\n }\n\n protected _isOpen = false;\n protected accordion: AccordionComponent;\n\n constructor(@Inject(AccordionComponent) accordion: AccordionComponent) {\n this.accordion = accordion;\n }\n\n ngOnInit(): void {\n this.panelClass = this.panelClass || 'panel-default';\n this.accordion.addGroup(this);\n }\n\n ngOnDestroy(): void {\n this.accordion.removeGroup(this);\n }\n\n toggleOpen(): void {\n if (!this.isDisabled) {\n this.isOpen = !this.isOpen;\n }\n }\n}\n","/* tslint:disable: max-classes-per-file */\nimport { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\n\n@NgModule({\n imports: [CommonModule, CollapseModule],\n declarations: [AccordionComponent, AccordionPanelComponent],\n exports: [AccordionComponent, AccordionPanelComponent]\n})\nexport class AccordionModule {\n static forRoot(): ModuleWithProviders<AccordionModule> {\n return { ngModule: AccordionModule, providers: [] };\n }\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-accordion.js","sources":["ng://ngx-bootstrap/accordion/accordion.config.ts","ng://ngx-bootstrap/accordion/accordion.component.ts","ng://ngx-bootstrap/accordion/accordion-group.component.ts","ng://ngx-bootstrap/accordion/accordion.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AccordionConfig {\n /** Whether the other panels should be closed when a panel is opened */\n closeOthers: Boolean = false;\n /** turn on/off animation */\n isAnimated: Boolean = false;\n}\n","import { Component, Input } from '@angular/core';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionConfig } from './accordion.config';\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\n@Component({\n selector: 'accordion',\n template: `<ng-content></ng-content>`,\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n})\nexport class AccordionComponent {\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** if `true` expanding one item will close all others */\n @Input() closeOthers: boolean;\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(config: AccordionConfig) {\n Object.assign(this, config);\n }\n\n closeOtherPanels(openGroup: AccordionPanelComponent): void {\n if (!this.closeOthers) {\n return;\n }\n\n this.groups.forEach((group: AccordionPanelComponent) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n\n addGroup(group: AccordionPanelComponent): void {\n group.isAnimated = this.isAnimated;\n this.groups.push(group);\n }\n\n removeGroup(group: AccordionPanelComponent): void {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n}\n","import {\n Component, HostBinding, Inject, Input, OnDestroy, OnInit, Output, EventEmitter\n} from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\n@Component({\n selector: 'accordion-group, accordion-panel',\n templateUrl: './accordion-group.component.html',\n host: {\n class: 'panel',\n style: 'display: block'\n },\n styleUrls: ['./accordion.scss']\n})\nexport class AccordionPanelComponent implements OnInit, OnDestroy {\n /** turn on/off animation */\n isAnimated = false;\n /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */\n @Input() heading: string;\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n @Input() panelClass: string;\n /** if <code>true</code>
|
1
|
+
{"version":3,"file":"ngx-bootstrap-accordion.js","sources":["ng://ngx-bootstrap/accordion/accordion.config.ts","ng://ngx-bootstrap/accordion/accordion.component.ts","ng://ngx-bootstrap/accordion/accordion-group.component.ts","ng://ngx-bootstrap/accordion/accordion.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AccordionConfig {\n /** Whether the other panels should be closed when a panel is opened */\n closeOthers: Boolean = false;\n /** turn on/off animation */\n isAnimated: Boolean = false;\n}\n","import { Component, Input } from '@angular/core';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionConfig } from './accordion.config';\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\n@Component({\n selector: 'accordion',\n template: `<ng-content></ng-content>`,\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n})\nexport class AccordionComponent {\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** if `true` expanding one item will close all others */\n @Input() closeOthers: boolean;\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(config: AccordionConfig) {\n Object.assign(this, config);\n }\n\n closeOtherPanels(openGroup: AccordionPanelComponent): void {\n if (!this.closeOthers) {\n return;\n }\n\n this.groups.forEach((group: AccordionPanelComponent) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n\n addGroup(group: AccordionPanelComponent): void {\n group.isAnimated = this.isAnimated;\n this.groups.push(group);\n }\n\n removeGroup(group: AccordionPanelComponent): void {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n}\n","import {\n Component, HostBinding, Inject, Input, OnDestroy, OnInit, Output, EventEmitter\n} from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\n@Component({\n selector: 'accordion-group, accordion-panel',\n templateUrl: './accordion-group.component.html',\n host: {\n class: 'panel',\n style: 'display: block'\n },\n styleUrls: ['./accordion.scss']\n})\nexport class AccordionPanelComponent implements OnInit, OnDestroy {\n /** turn on/off animation */\n isAnimated = false;\n /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */\n @Input() heading: string;\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n @Input() panelClass: string;\n /** if <code>true</code> — disables accordion group */\n @Input() isDisabled: boolean;\n /** Emits when the opened state changes */\n @Output() isOpenChange: EventEmitter<boolean> = new EventEmitter();\n\n // Questionable, maybe .panel-open should be on child div.panel element?\n /** Is accordion group open or closed. This property supports two-way binding */\n @HostBinding('class.panel-open')\n @Input()\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n set isOpen(value: boolean) {\n if (value !== this.isOpen) {\n if (value) {\n this.accordion.closeOtherPanels(this);\n }\n this._isOpen = value;\n Promise.resolve(null).then(() => {\n this.isOpenChange.emit(value);\n })\n .catch((error: Error) => {\n /* tslint:disable: no-console */\n console.log(error);\n });\n }\n }\n\n get isBs3(): boolean {\n return isBs3();\n }\n\n protected _isOpen = false;\n protected accordion: AccordionComponent;\n\n constructor(@Inject(AccordionComponent) accordion: AccordionComponent) {\n this.accordion = accordion;\n }\n\n ngOnInit(): void {\n this.panelClass = this.panelClass || 'panel-default';\n this.accordion.addGroup(this);\n }\n\n ngOnDestroy(): void {\n this.accordion.removeGroup(this);\n }\n\n toggleOpen(): void {\n if (!this.isDisabled) {\n this.isOpen = !this.isOpen;\n }\n }\n}\n","/* tslint:disable: max-classes-per-file */\nimport { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\n\n@NgModule({\n imports: [CommonModule, CollapseModule],\n declarations: [AccordionComponent, AccordionPanelComponent],\n exports: [AccordionComponent, AccordionPanelComponent]\n})\nexport class AccordionModule {\n static forRoot(): ModuleWithProviders<AccordionModule> {\n return { ngModule: AccordionModule, providers: [] };\n }\n}\n"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-accordion.js","sources":["ng://ngx-bootstrap/accordion/accordion.config.ts","ng://ngx-bootstrap/accordion/accordion.component.ts","ng://ngx-bootstrap/accordion/accordion-group.component.ts","ng://ngx-bootstrap/accordion/accordion.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AccordionConfig {\n /** Whether the other panels should be closed when a panel is opened */\n closeOthers: Boolean = false;\n /** turn on/off animation */\n isAnimated: Boolean = false;\n}\n","import { Component, Input } from '@angular/core';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionConfig } from './accordion.config';\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\n@Component({\n selector: 'accordion',\n template: `<ng-content></ng-content>`,\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n})\nexport class AccordionComponent {\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** if `true` expanding one item will close all others */\n @Input() closeOthers: boolean;\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(config: AccordionConfig) {\n Object.assign(this, config);\n }\n\n closeOtherPanels(openGroup: AccordionPanelComponent): void {\n if (!this.closeOthers) {\n return;\n }\n\n this.groups.forEach((group: AccordionPanelComponent) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n\n addGroup(group: AccordionPanelComponent): void {\n group.isAnimated = this.isAnimated;\n this.groups.push(group);\n }\n\n removeGroup(group: AccordionPanelComponent): void {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n}\n","import {\n Component, HostBinding, Inject, Input, OnDestroy, OnInit, Output, EventEmitter\n} from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\n@Component({\n selector: 'accordion-group, accordion-panel',\n templateUrl: './accordion-group.component.html',\n host: {\n class: 'panel',\n style: 'display: block'\n },\n styleUrls: ['./accordion.scss']\n})\nexport class AccordionPanelComponent implements OnInit, OnDestroy {\n /** turn on/off animation */\n isAnimated = false;\n /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */\n @Input() heading: string;\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n @Input() panelClass: string;\n /** if <code>true</code>
|
1
|
+
{"version":3,"file":"ngx-bootstrap-accordion.js","sources":["ng://ngx-bootstrap/accordion/accordion.config.ts","ng://ngx-bootstrap/accordion/accordion.component.ts","ng://ngx-bootstrap/accordion/accordion-group.component.ts","ng://ngx-bootstrap/accordion/accordion.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/**\n * Configuration service, provides default values for the AccordionComponent.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AccordionConfig {\n /** Whether the other panels should be closed when a panel is opened */\n closeOthers: Boolean = false;\n /** turn on/off animation */\n isAnimated: Boolean = false;\n}\n","import { Component, Input } from '@angular/core';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { AccordionConfig } from './accordion.config';\n\n/** Displays collapsible content panels for presenting information in a limited amount of space. */\n@Component({\n selector: 'accordion',\n template: `<ng-content></ng-content>`,\n host: {\n '[attr.aria-multiselectable]': 'closeOthers',\n role: 'tablist',\n class: 'panel-group',\n style: 'display: block'\n }\n})\nexport class AccordionComponent {\n /** turn on/off animation */\n @Input() isAnimated = false;\n /** if `true` expanding one item will close all others */\n @Input() closeOthers: boolean;\n\n protected groups: AccordionPanelComponent[] = [];\n\n constructor(config: AccordionConfig) {\n Object.assign(this, config);\n }\n\n closeOtherPanels(openGroup: AccordionPanelComponent): void {\n if (!this.closeOthers) {\n return;\n }\n\n this.groups.forEach((group: AccordionPanelComponent) => {\n if (group !== openGroup) {\n group.isOpen = false;\n }\n });\n }\n\n addGroup(group: AccordionPanelComponent): void {\n group.isAnimated = this.isAnimated;\n this.groups.push(group);\n }\n\n removeGroup(group: AccordionPanelComponent): void {\n const index = this.groups.indexOf(group);\n if (index !== -1) {\n this.groups.splice(index, 1);\n }\n }\n}\n","import {\n Component, HostBinding, Inject, Input, OnDestroy, OnInit, Output, EventEmitter\n} from '@angular/core';\nimport { isBs3 } from 'ngx-bootstrap/utils';\nimport { AccordionComponent } from './accordion.component';\n\n/**\n * ### Accordion heading\n * Instead of using `heading` attribute on the `accordion-group`, you can use\n * an `accordion-heading` attribute on `any` element inside of a group that\n * will be used as group's header template.\n */\n@Component({\n selector: 'accordion-group, accordion-panel',\n templateUrl: './accordion-group.component.html',\n host: {\n class: 'panel',\n style: 'display: block'\n },\n styleUrls: ['./accordion.scss']\n})\nexport class AccordionPanelComponent implements OnInit, OnDestroy {\n /** turn on/off animation */\n isAnimated = false;\n /** Clickable text in accordion's group header, check `accordion heading` below for using html in header */\n @Input() heading: string;\n /** Provides an ability to use Bootstrap's contextual panel classes\n * (`panel-primary`, `panel-success`, `panel-info`, etc...).\n * List of all available classes [available here]\n * (https://getbootstrap.com/docs/3.3/components/#panels-alternatives)\n */\n @Input() panelClass: string;\n /** if <code>true</code> — disables accordion group */\n @Input() isDisabled: boolean;\n /** Emits when the opened state changes */\n @Output() isOpenChange: EventEmitter<boolean> = new EventEmitter();\n\n // Questionable, maybe .panel-open should be on child div.panel element?\n /** Is accordion group open or closed. This property supports two-way binding */\n @HostBinding('class.panel-open')\n @Input()\n get isOpen(): boolean {\n return this._isOpen;\n }\n\n set isOpen(value: boolean) {\n if (value !== this.isOpen) {\n if (value) {\n this.accordion.closeOtherPanels(this);\n }\n this._isOpen = value;\n Promise.resolve(null).then(() => {\n this.isOpenChange.emit(value);\n })\n .catch((error: Error) => {\n /* tslint:disable: no-console */\n console.log(error);\n });\n }\n }\n\n get isBs3(): boolean {\n return isBs3();\n }\n\n protected _isOpen = false;\n protected accordion: AccordionComponent;\n\n constructor(@Inject(AccordionComponent) accordion: AccordionComponent) {\n this.accordion = accordion;\n }\n\n ngOnInit(): void {\n this.panelClass = this.panelClass || 'panel-default';\n this.accordion.addGroup(this);\n }\n\n ngOnDestroy(): void {\n this.accordion.removeGroup(this);\n }\n\n toggleOpen(): void {\n if (!this.isDisabled) {\n this.isOpen = !this.isOpen;\n }\n }\n}\n","/* tslint:disable: max-classes-per-file */\nimport { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { AccordionComponent } from './accordion.component';\nimport { AccordionPanelComponent } from './accordion-group.component';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\n\n@NgModule({\n imports: [CommonModule, CollapseModule],\n declarations: [AccordionComponent, AccordionPanelComponent],\n exports: [AccordionComponent, AccordionPanelComponent]\n})\nexport class AccordionModule {\n static forRoot(): ModuleWithProviders<AccordionModule> {\n return { ngModule: AccordionModule, providers: [] };\n }\n}\n"],"names":[],"mappings":"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"}
|
package/accordion/package.json
CHANGED
package/alert/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-buttons.umd.js","sources":["ng://ngx-bootstrap/buttons/button-checkbox.directive.ts","ng://ngx-bootstrap/buttons/button-radio.directive.ts","ng://ngx-bootstrap/buttons/button-radio-group.directive.ts","ng://ngx-bootstrap/buttons/buttons.module.ts"],"sourcesContent":["// tslint:disable:no-use-before-declare\nimport {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// TODO: config: activeClass - Class to apply to the checked buttons\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonCheckboxDirective),\n multi: true\n};\n\n/**\n * Add checkbox functionality to any element\n */\n@Directive({\n selector: '[btnCheckbox]',\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\n /** Truthy value, will be set to ngModel */\n @Input() btnCheckboxTrue = true;\n /** Falsy value, will be set to ngModel */\n @Input() btnCheckboxFalse = false;\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n state = false;\n\n protected value: boolean | string;\n protected isDisabled: boolean;\n\n protected onChange = Function.prototype;\n protected onTouched = Function.prototype;\n\n // view -> model\n @HostListener('click')\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.toggle(!this.state);\n this.onChange(this.value);\n }\n\n ngOnInit(): void {\n this.toggle(this.trueValue === this.value);\n }\n\n protected get trueValue(): boolean {\n return typeof this.btnCheckboxTrue !== 'undefined'\n ? this.btnCheckboxTrue\n : true;\n }\n\n protected get falseValue(): boolean {\n return typeof this.btnCheckboxFalse !== 'undefined'\n ? this.btnCheckboxFalse\n : false;\n }\n\n toggle(state: boolean): void {\n this.state = state;\n this.value = this.state ? this.trueValue : this.falseValue;\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: boolean | string | null): void {\n this.state = this.trueValue === value;\n this.value = value ? this.trueValue : this.falseValue;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Provider,\n Renderer2\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadio]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n /** Radio button value, will be set to `ngModel` */\n @Input() btnRadio: string;\n /** If `true` â radio button can be unchecked */\n @Input() uncheckable: boolean;\n /** Current value of radio component or group */\n @Input()\n get value() {\n return this.group ? this.group.value : this._value;\n }\n\n set value(value: null | string) {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this._value = value;\n }\n /** If `true` â radio button is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this.setDisabledState(disabled);\n }\n\n @HostBinding('attr.aria-disabled')\n get controlOrGroupDisabled() {\n return this.disabled || (this.group && this.group.disabled) ? true : undefined;\n }\n\n @HostBinding('class.disabled')\n get hasDisabledClass() {\n // Although the radio is disabled the active radio should still stand out.\n // The disabled class will prevent this so don't add it on the active radio\n return this.controlOrGroupDisabled && !this.isActive;\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-checked')\n get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n @HostBinding('attr.role') readonly role: string = 'radio';\n\n @HostBinding('attr.tabindex')\n get tabindex(): undefined | number {\n if (this.controlOrGroupDisabled) {\n // Disabled radio buttons should not receive focus\n return undefined;\n } else if (this.isActive || this.group == null) {\n return 0;\n } else {\n return -1;\n }\n }\n\n get hasFocus(): boolean {\n return this._hasFocus;\n }\n\n private _value: null | string;\n private _disabled: boolean;\n private _hasFocus = false;\n\n constructor(\n private el: ElementRef,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional()\n @Inject(forwardRef(() => ButtonRadioGroupDirective))\n private group: ButtonRadioGroupDirective\n ) {}\n\n @HostListener('click')\n toggleIfAllowed(): void {\n if (!this.canToggle()) {\n return;\n }\n\n this.value = this.uncheckable && this.btnRadio === this.value ? undefined : this.btnRadio;\n this._onChange(this.value);\n }\n\n @HostListener('keydown.space', ['$event'])\n onSpacePressed(event: KeyboardEvent) {\n this.toggleIfAllowed();\n event.preventDefault();\n }\n\n focus() {\n this.el.nativeElement.focus();\n }\n\n @HostListener('focus')\n onFocus() {\n this._hasFocus = true;\n }\n\n @HostListener('blur')\n onBlur() {\n this._hasFocus = false;\n this.onTouched();\n }\n\n canToggle(): boolean {\n return !this.controlOrGroupDisabled && (this.uncheckable || this.btnRadio !== this.value);\n }\n\n ngOnInit(): void {\n this.uncheckable = typeof this.uncheckable !== 'undefined';\n }\n\n _onChange(value: string): void {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this.onTouched();\n this.onChange(value);\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: string): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this._disabled = disabled;\n if (disabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Provider,\n QueryList\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioDirective } from './button-radio.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioGroupDirective),\n multi: true\n};\n\n/**\n * A group of radio buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadioGroup]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioGroupDirective implements ControlValueAccessor {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n @HostBinding('attr.role') readonly role: string = 'radiogroup';\n\n @ContentChildren(forwardRef(() => ButtonRadioDirective))\n radioButtons: QueryList<ButtonRadioDirective>;\n\n get value() {\n return this._value;\n }\n set value(value: string | null) {\n this._value = value;\n this.onChange(value);\n }\n\n private _value: string | null;\n\n private _disabled: boolean;\n\n @HostBinding('attr.tabindex')\n get tabindex(): null | number {\n if (this._disabled) {\n return null;\n } else {\n return 0;\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n writeValue(value: string | null): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (this.radioButtons) {\n this._disabled = disabled;\n this.radioButtons.forEach(buttons => {\n buttons.setDisabledState(disabled);\n });\n this.cdr.markForCheck();\n }\n }\n\n @HostListener('focus')\n onFocus() {\n if (this._disabled) {\n return;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n if (activeRadio) {\n activeRadio.focus();\n } else {\n const firstEnabled = this.radioButtons.find(r => !r.disabled);\n if (firstEnabled) {\n firstEnabled.focus();\n }\n }\n }\n\n @HostListener('blur')\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n @HostListener('keydown.ArrowRight', ['$event'])\n @HostListener('keydown.ArrowDown', ['$event'])\n selectNext(event: KeyboardEvent) {\n this.selectInDirection('next');\n event.preventDefault();\n }\n\n @HostListener('keydown.ArrowLeft', ['$event'])\n @HostListener('keydown.ArrowUp', ['$event'])\n selectPrevious(event: KeyboardEvent) {\n this.selectInDirection('previous');\n event.preventDefault();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n private selectInDirection(direction: 'next' | 'previous') {\n if (this._disabled) {\n return;\n }\n function nextIndex(currentIndex: number, buttonRadioDirectives: ButtonRadioDirective[]) {\n const step = direction === 'next' ? 1 : -1;\n let calcIndex = (currentIndex + step) % buttonRadioDirectives.length;\n if (calcIndex < 0) {\n calcIndex = buttonRadioDirectives.length - 1;\n }\n\n return calcIndex;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n\n if (activeRadio) {\n const buttonRadioDirectives = this.radioButtons.toArray();\n const currentActiveIndex = buttonRadioDirectives.indexOf(activeRadio);\n for (\n let i = nextIndex(currentActiveIndex, buttonRadioDirectives);\n i !== currentActiveIndex;\n i = nextIndex(i, buttonRadioDirectives)\n ) {\n if (buttonRadioDirectives[i].canToggle()) {\n buttonRadioDirectives[i].toggleIfAllowed();\n buttonRadioDirectives[i].focus();\n break;\n }\n }\n }\n }\n\n private getActiveOrFocusedRadio(): ButtonRadioDirective | undefined {\n return this.radioButtons.find(button => button.isActive) || this.radioButtons.find(button => button.hasFocus);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ButtonCheckboxDirective } from './button-checkbox.directive';\nimport { ButtonRadioDirective } from './button-radio.directive';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\n@NgModule({\n declarations: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective],\n exports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective]\n})\nexport class ButtonsModule {\n static forRoot(): ModuleWithProviders<ButtonsModule> {\n return { ngModule: ButtonsModule, providers: [] };\n }\n}\n"],"names":["NG_VALUE_ACCESSOR","forwardRef","Directive","Input","HostBinding","HostListener","ElementRef","ChangeDetectorRef","Renderer2","Optional","Inject","RADIO_CONTROL_VALUE_ACCESSOR","ContentChildren","NgModule"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ngx-bootstrap-buttons.umd.js","sources":["ng://ngx-bootstrap/buttons/button-checkbox.directive.ts","ng://ngx-bootstrap/buttons/button-radio.directive.ts","ng://ngx-bootstrap/buttons/button-radio-group.directive.ts","ng://ngx-bootstrap/buttons/buttons.module.ts"],"sourcesContent":["// tslint:disable:no-use-before-declare\nimport {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// TODO: config: activeClass - Class to apply to the checked buttons\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonCheckboxDirective),\n multi: true\n};\n\n/**\n * Add checkbox functionality to any element\n */\n@Directive({\n selector: '[btnCheckbox]',\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\n /** Truthy value, will be set to ngModel */\n @Input() btnCheckboxTrue = true;\n /** Falsy value, will be set to ngModel */\n @Input() btnCheckboxFalse = false;\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n state = false;\n\n protected value: boolean | string;\n protected isDisabled: boolean;\n\n protected onChange = Function.prototype;\n protected onTouched = Function.prototype;\n\n // view -> model\n @HostListener('click')\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.toggle(!this.state);\n this.onChange(this.value);\n }\n\n ngOnInit(): void {\n this.toggle(this.trueValue === this.value);\n }\n\n protected get trueValue(): boolean {\n return typeof this.btnCheckboxTrue !== 'undefined'\n ? this.btnCheckboxTrue\n : true;\n }\n\n protected get falseValue(): boolean {\n return typeof this.btnCheckboxFalse !== 'undefined'\n ? this.btnCheckboxFalse\n : false;\n }\n\n toggle(state: boolean): void {\n this.state = state;\n this.value = this.state ? this.trueValue : this.falseValue;\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: boolean | string | null): void {\n this.state = this.trueValue === value;\n this.value = value ? this.trueValue : this.falseValue;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Provider,\n Renderer2\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadio]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n /** Radio button value, will be set to `ngModel` */\n @Input() btnRadio: string;\n /** If `true` — radio button can be unchecked */\n @Input() uncheckable: boolean;\n /** Current value of radio component or group */\n @Input()\n get value() {\n return this.group ? this.group.value : this._value;\n }\n\n set value(value: null | string) {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this._value = value;\n }\n /** If `true` — radio button is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this.setDisabledState(disabled);\n }\n\n @HostBinding('attr.aria-disabled')\n get controlOrGroupDisabled() {\n return this.disabled || (this.group && this.group.disabled) ? true : undefined;\n }\n\n @HostBinding('class.disabled')\n get hasDisabledClass() {\n // Although the radio is disabled the active radio should still stand out.\n // The disabled class will prevent this so don't add it on the active radio\n return this.controlOrGroupDisabled && !this.isActive;\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-checked')\n get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n @HostBinding('attr.role') readonly role: string = 'radio';\n\n @HostBinding('attr.tabindex')\n get tabindex(): undefined | number {\n if (this.controlOrGroupDisabled) {\n // Disabled radio buttons should not receive focus\n return undefined;\n } else if (this.isActive || this.group == null) {\n return 0;\n } else {\n return -1;\n }\n }\n\n get hasFocus(): boolean {\n return this._hasFocus;\n }\n\n private _value: null | string;\n private _disabled: boolean;\n private _hasFocus = false;\n\n constructor(\n private el: ElementRef,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional()\n @Inject(forwardRef(() => ButtonRadioGroupDirective))\n private group: ButtonRadioGroupDirective\n ) {}\n\n @HostListener('click')\n toggleIfAllowed(): void {\n if (!this.canToggle()) {\n return;\n }\n\n this.value = this.uncheckable && this.btnRadio === this.value ? undefined : this.btnRadio;\n this._onChange(this.value);\n }\n\n @HostListener('keydown.space', ['$event'])\n onSpacePressed(event: KeyboardEvent) {\n this.toggleIfAllowed();\n event.preventDefault();\n }\n\n focus() {\n this.el.nativeElement.focus();\n }\n\n @HostListener('focus')\n onFocus() {\n this._hasFocus = true;\n }\n\n @HostListener('blur')\n onBlur() {\n this._hasFocus = false;\n this.onTouched();\n }\n\n canToggle(): boolean {\n return !this.controlOrGroupDisabled && (this.uncheckable || this.btnRadio !== this.value);\n }\n\n ngOnInit(): void {\n this.uncheckable = typeof this.uncheckable !== 'undefined';\n }\n\n _onChange(value: string): void {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this.onTouched();\n this.onChange(value);\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: string): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this._disabled = disabled;\n if (disabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Provider,\n QueryList\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioDirective } from './button-radio.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioGroupDirective),\n multi: true\n};\n\n/**\n * A group of radio buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadioGroup]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioGroupDirective implements ControlValueAccessor {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n @HostBinding('attr.role') readonly role: string = 'radiogroup';\n\n @ContentChildren(forwardRef(() => ButtonRadioDirective))\n radioButtons: QueryList<ButtonRadioDirective>;\n\n get value() {\n return this._value;\n }\n set value(value: string | null) {\n this._value = value;\n this.onChange(value);\n }\n\n private _value: string | null;\n\n private _disabled: boolean;\n\n @HostBinding('attr.tabindex')\n get tabindex(): null | number {\n if (this._disabled) {\n return null;\n } else {\n return 0;\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n writeValue(value: string | null): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (this.radioButtons) {\n this._disabled = disabled;\n this.radioButtons.forEach(buttons => {\n buttons.setDisabledState(disabled);\n });\n this.cdr.markForCheck();\n }\n }\n\n @HostListener('focus')\n onFocus() {\n if (this._disabled) {\n return;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n if (activeRadio) {\n activeRadio.focus();\n } else {\n const firstEnabled = this.radioButtons.find(r => !r.disabled);\n if (firstEnabled) {\n firstEnabled.focus();\n }\n }\n }\n\n @HostListener('blur')\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n @HostListener('keydown.ArrowRight', ['$event'])\n @HostListener('keydown.ArrowDown', ['$event'])\n selectNext(event: KeyboardEvent) {\n this.selectInDirection('next');\n event.preventDefault();\n }\n\n @HostListener('keydown.ArrowLeft', ['$event'])\n @HostListener('keydown.ArrowUp', ['$event'])\n selectPrevious(event: KeyboardEvent) {\n this.selectInDirection('previous');\n event.preventDefault();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n private selectInDirection(direction: 'next' | 'previous') {\n if (this._disabled) {\n return;\n }\n function nextIndex(currentIndex: number, buttonRadioDirectives: ButtonRadioDirective[]) {\n const step = direction === 'next' ? 1 : -1;\n let calcIndex = (currentIndex + step) % buttonRadioDirectives.length;\n if (calcIndex < 0) {\n calcIndex = buttonRadioDirectives.length - 1;\n }\n\n return calcIndex;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n\n if (activeRadio) {\n const buttonRadioDirectives = this.radioButtons.toArray();\n const currentActiveIndex = buttonRadioDirectives.indexOf(activeRadio);\n for (\n let i = nextIndex(currentActiveIndex, buttonRadioDirectives);\n i !== currentActiveIndex;\n i = nextIndex(i, buttonRadioDirectives)\n ) {\n if (buttonRadioDirectives[i].canToggle()) {\n buttonRadioDirectives[i].toggleIfAllowed();\n buttonRadioDirectives[i].focus();\n break;\n }\n }\n }\n }\n\n private getActiveOrFocusedRadio(): ButtonRadioDirective | undefined {\n return this.radioButtons.find(button => button.isActive) || this.radioButtons.find(button => button.hasFocus);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ButtonCheckboxDirective } from './button-checkbox.directive';\nimport { ButtonRadioDirective } from './button-radio.directive';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\n@NgModule({\n declarations: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective],\n exports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective]\n})\nexport class ButtonsModule {\n static forRoot(): ModuleWithProviders<ButtonsModule> {\n return { ngModule: ButtonsModule, providers: [] };\n }\n}\n"],"names":["NG_VALUE_ACCESSOR","forwardRef","Directive","Input","HostBinding","HostListener","ElementRef","ChangeDetectorRef","Renderer2","Optional","Inject","RADIO_CONTROL_VALUE_ACCESSOR","ContentChildren","NgModule"],"mappings":";;;;;;;;;;;;QAaa,+BAA+B,GAAa;QACvD,OAAO,EAAEA,uBAAiB;;QAE1B,WAAW,EAAEC,eAAU;;;QAAC,cAAM,OAAA,uBAAuB,GAAA,EAAC;QACtD,KAAK,EAAE,IAAI;;;;;;QAMb;;;;YAMW,oBAAe,GAAG,IAAI,CAAC;;;;YAEvB,qBAAgB,GAAG,KAAK,CAAC;YAIlC,UAAK,GAAG,KAAK,CAAC;YAKJ,aAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC9B,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;SAoD1C;;;;;;QAhDC,yCAAO;;;;;QADP;YAEE,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,OAAO;aACR;YAED,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3B;;;;QAED,0CAAQ;;;QAAR;YACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5C;QAED,sBAAc,8CAAS;;;;;YAAvB;gBACE,OAAO,OAAO,IAAI,CAAC,eAAe,KAAK,WAAW;sBAC9C,IAAI,CAAC,eAAe;sBACpB,IAAI,CAAC;aACV;;;WAAA;QAED,sBAAc,+CAAU;;;;;YAAxB;gBACE,OAAO,OAAO,IAAI,CAAC,gBAAgB,KAAK,WAAW;sBAC/C,IAAI,CAAC,gBAAgB;sBACrB,KAAK,CAAC;aACX;;;WAAA;;;;;QAED,wCAAM;;;;QAAN,UAAO,KAAc;YACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;SAC5D;;;;;;;;;QAID,4CAAU;;;;;;;QAAV,UAAW,KAA8B;YACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;SACvD;;;;;QAED,kDAAgB;;;;QAAhB,UAAiB,UAAmB;YAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;;;;;QAED,kDAAgB;;;;QAAhB,UAAiB,EAAY;YAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;;;;;QAED,mDAAiB;;;;QAAjB,UAAkB,EAAY;YAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB;;oBArEFC,cAAS,SAAC;wBACT,QAAQ,EAAE,eAAe;wBACzB,SAAS,EAAE,CAAC,+BAA+B,CAAC;qBAC7C;;;sCAGEC,UAAK;uCAELA,UAAK;4BAELC,gBAAW,SAAC,cAAc,cAC1BA,gBAAW,SAAC,mBAAmB;8BAU/BC,iBAAY,SAAC,OAAO;;QAiDvB,8BAAC;KAtED,IAsEC;;;;;;QAhEC,kDAAgC;;;;;QAEhC,mDAAkC;;QAElC,wCAEc;;;;;QAEd,wCAAkC;;;;;QAClC,6CAA8B;;;;;QAE9B,2CAAwC;;;;;QACxC,4CAAyC;;;;;;;ICzC3C;QAiBa,4BAA4B,GAAa;QACpD,OAAO,EAAEL,uBAAiB;;QAE1B,WAAW,EAAEC,eAAU;;;QAAC,cAAM,OAAA,oBAAoB,GAAA,EAAC;QACnD,KAAK,EAAE,IAAI;;;;;;;QAmFX,8BACU,EAAc,EACd,GAAsB,EACtB,QAAmB,EAGnB,KAAgC;YALhC,OAAE,GAAF,EAAE,CAAY;YACd,QAAG,GAAH,GAAG,CAAmB;YACtB,aAAQ,GAAR,QAAQ,CAAW;YAGnB,UAAK,GAAL,KAAK,CAA2B;YA7E1C,aAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC9B,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;YAgDI,SAAI,GAAW,OAAO,CAAC;YAoBlD,cAAS,GAAG,KAAK,CAAC;SAStB;QAtEJ,sBACI,uCAAK;;;;;;YADT;gBAEE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;aACpD;;;;;YAED,UAAU,KAAoB;gBAC5B,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;oBAEzB,OAAO;iBACR;gBACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;;;WATA;QAWD,sBACI,0CAAQ;;;;;;YADZ;gBAEE,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;;;;;YAED,UAAa,QAAiB;gBAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aACjC;;;WAJA;QAMD,sBACI,wDAAsB;;;;YAD1B;gBAEE,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;aAChF;;;WAAA;QAED,sBACI,kDAAgB;;;;YADpB;;;gBAIE,OAAO,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aACtD;;;WAAA;QAED,sBAEI,0CAAQ;;;;YAFZ;gBAGE,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC;aACrC;;;WAAA;QAID,sBACI,0CAAQ;;;;YADZ;gBAEE,IAAI,IAAI,CAAC,sBAAsB,EAAE;;oBAE/B,OAAO,SAAS,CAAC;iBAClB;qBAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;oBAC9C,OAAO,CAAC,CAAC;iBACV;qBAAM;oBACL,OAAO,CAAC,CAAC,CAAC;iBACX;aACF;;;WAAA;QAED,sBAAI,0CAAQ;;;;YAAZ;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;;;WAAA;;;;QAgBD,8CAAe;;;QADf;YAEE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;gBACrB,OAAO;aACR;YAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5B;;;;;QAGD,6CAAc;;;;QADd,UACe,KAAoB;YACjC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;;;;QAED,oCAAK;;;QAAL;YACE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC/B;;;;QAGD,sCAAO;;;QADP;YAEE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;;;;QAGD,qCAAM;;;QADN;YAEE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;;;;QAED,wCAAS;;;QAAT;YACE,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3F;;;;QAED,uCAAQ;;;QAAR;YACE,IAAI,CAAC,WAAW,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC;SAC5D;;;;;QAED,wCAAS;;;;QAAT,UAAU,KAAa;YACrB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBAEzB,OAAO;aACR;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtB;;;;;;;;;QAID,yCAAU;;;;;;;QAAV,UAAW,KAAa;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;;;;;QAED,+CAAgB;;;;QAAhB,UAAiB,EAAY;YAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;;;;;QAED,gDAAiB;;;;QAAjB,UAAkB,EAAY;YAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB;;;;;QAED,+CAAgB;;;;QAAhB,UAAiB,QAAiB;YAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gBAE1E,OAAO;aACR;YACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;SAClE;;oBA7JFC,cAAS,SAAC;wBACT,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,CAAC,4BAA4B,CAAC;qBAC1C;;;;oBA5BCI,eAAU;oBAFVC,sBAAiB;oBAWjBC,cAAS;oBAGF,yBAAyB,uBA6F7BC,aAAQ,YACRC,WAAM,SAACT,eAAU;;;4BAAC,cAAM,OAAA,yBAAyB,GAAA,EAAC;;;+BAxEpDE,UAAK;kCAELA,UAAK;4BAELA,UAAK;+BAcLA,UAAK;6CASLC,gBAAW,SAAC,oBAAoB;uCAKhCA,gBAAW,SAAC,gBAAgB;+BAO5BA,gBAAW,SAAC,cAAc,cAC1BA,gBAAW,SAAC,mBAAmB;2BAK/BA,gBAAW,SAAC,WAAW;+BAEvBA,gBAAW,SAAC,eAAe;sCA6B3BC,iBAAY,SAAC,OAAO;qCAUpBA,iBAAY,SAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;8BAUxCA,iBAAY,SAAC,OAAO;6BAKpBA,iBAAY,SAAC,MAAM;;QAgDtB,2BAAC;KA9JD,IA8JC;;;QAzJC,wCAA8B;;QAC9B,yCAA+B;;;;;QAG/B,wCAA0B;;;;;QAE1B,2CAA8B;;QA2C9B,oCAA0D;;;;;QAkB1D,sCAA8B;;;;;QAC9B,yCAA2B;;;;;QAC3B,yCAA0B;;;;;QAGxB,kCAAsB;;;;;QACtB,mCAA8B;;;;;QAC9B,wCAA2B;;;;;QAC3B,qCAEwC;;;;;;;IC9G5C;QAaaM,8BAA4B,GAAa;QACpD,OAAO,EAAEX,uBAAiB;;QAE1B,WAAW,EAAEC,eAAU;;;QAAC,cAAM,OAAA,yBAAyB,GAAA,EAAC;QACxD,KAAK,EAAE,IAAI;;;;;;;QAyCX,mCAAoB,GAAsB;YAAtB,QAAG,GAAH,GAAG,CAAmB;YA7B1C,aAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC9B,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;YAEI,SAAI,GAAW,YAAY,CAAC;SA0BjB;QArB9C,sBAAI,4CAAK;;;;YAAT;gBACE,OAAO,IAAI,CAAC,MAAM,CAAC;aACpB;;;;;YACD,UAAU,KAAoB;gBAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACtB;;;WAJA;QAUD,sBACI,+CAAQ;;;;YADZ;gBAEE,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,OAAO,IAAI,CAAC;iBACb;qBAAM;oBACL,OAAO,CAAC,CAAC;iBACV;aACF;;;WAAA;;;;;QAID,8CAAU;;;;QAAV,UAAW,KAAoB;YAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;;;;;QAED,oDAAgB;;;;QAAhB,UAAiB,EAAY;YAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;;;;;QAED,qDAAiB;;;;QAAjB,UAAkB,EAAY;YAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACrB;;;;;QAED,oDAAgB;;;;QAAhB,UAAiB,QAAiB;YAChC,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,OAAO;;;;gBAAC,UAAA,OAAO;oBAC/B,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;iBACpC,EAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aACzB;SACF;;;;QAGD,2CAAO;;;QADP;YAEE,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO;aACR;;gBACK,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE;YAClD,IAAI,WAAW,EAAE;gBACf,WAAW,CAAC,KAAK,EAAE,CAAC;aACrB;iBAAM;;oBACC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI;;;;gBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,QAAQ,GAAA,EAAC;gBAC7D,IAAI,YAAY,EAAE;oBAChB,YAAY,CAAC,KAAK,EAAE,CAAC;iBACtB;aACF;SACF;;;;QAGD,0CAAM;;;QADN;YAEE,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;SACF;;;;;QAID,8CAAU;;;;QAFV,UAEW,KAAoB;YAC7B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;;;;;QAID,kDAAc;;;;QAFd,UAEe,KAAoB;YACjC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACnC,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QAED,sBAAI,+CAAQ;;;;YAAZ;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC;aACvB;;;WAAA;;;;;;QAEO,qDAAiB;;;;;QAAzB,UAA0B,SAA8B;YACtD,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO;aACR;;;;;;YACD,SAAS,SAAS,CAAC,YAAoB,EAAE,qBAA6C;;oBAC9E,IAAI,GAAG,SAAS,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;;oBACtC,SAAS,GAAG,CAAC,YAAY,GAAG,IAAI,IAAI,qBAAqB,CAAC,MAAM;gBACpE,IAAI,SAAS,GAAG,CAAC,EAAE;oBACjB,SAAS,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC9C;gBAED,OAAO,SAAS,CAAC;aAClB;;gBACK,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE;YAElD,IAAI,WAAW,EAAE;;oBACT,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;;oBACnD,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC;gBACrE,KACE,IAAI,CAAC,GAAG,SAAS,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,EAC5D,CAAC,KAAK,kBAAkB,EACxB,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,qBAAqB,CAAC,EACvC;oBACA,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE;wBACxC,qBAAqB,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;wBAC3C,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;wBACjC,MAAM;qBACP;iBACF;aACF;SACF;;;;;QAEO,2DAAuB;;;;QAA/B;YACE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI;;;;YAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,QAAQ,GAAA,EAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI;;;;YAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,QAAQ,GAAA,EAAC,CAAC;SAC/G;;oBAtIFC,cAAS,SAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,SAAS,EAAE,CAACS,8BAA4B,CAAC;qBAC1C;;;;oBA1BCJ,sBAAiB;;;2BA+BhBH,gBAAW,SAAC,WAAW;mCAEvBQ,oBAAe,SAACX,eAAU;;;wBAAC,cAAM,OAAA,oBAAoB,GAAA,EAAC;+BAetDG,gBAAW,SAAC,eAAe;8BAkC3BC,iBAAY,SAAC,OAAO;6BAgBpBA,iBAAY,SAAC,MAAM;iCAOnBA,iBAAY,SAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,cAC7CA,iBAAY,SAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC;qCAM5CA,iBAAY,SAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,cAC5CA,iBAAY,SAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC;;QA6C7C,gCAAC;KAvID,IAuIC;;;QAlIC,6CAA8B;;QAC9B,8CAA+B;;QAE/B,yCAA+D;;QAE/D,iDAC8C;;;;;QAU9C,2CAA8B;;;;;QAE9B,8CAA2B;;;;;QAWf,wCAA8B;;;;;;;;QCpD5C;SAQC;;;;QAHQ,qBAAO;;;QAAd;YACE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;SACnD;;oBAPFQ,aAAQ,SAAC;wBACR,YAAY,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;wBACxF,OAAO,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;qBACpF;;QAKD,oBAAC;KARD;;;;;;;;;;;;;;;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["ng://ngx-bootstrap/buttons/button-checkbox.directive.ts","ng://ngx-bootstrap/buttons/button-radio.directive.ts","ng://ngx-bootstrap/buttons/button-radio-group.directive.ts","ng://ngx-bootstrap/buttons/buttons.module.ts"],"names":["CHECKBOX_CONTROL_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","ButtonCheckboxDirective","multi","this","btnCheckboxTrue","btnCheckboxFalse","state","onChange","Function","prototype","onTouched","onClick","isDisabled","toggle","value","ngOnInit","trueValue","Object","defineProperty","falseValue","writeValue","setDisabledState","registerOnChange","fn","registerOnTouched","Directive","args","selector","providers","Input","HostBinding","type","HostListener","RADIO_CONTROL_VALUE_ACCESSOR","ButtonRadioDirective","el","cdr","renderer","group","role","_hasFocus","_value","_disabled","disabled","undefined","controlOrGroupDisabled","isActive","btnRadio","toggleIfAllowed","canToggle","uncheckable","_onChange","onSpacePressed","event","preventDefault","focus","nativeElement","onFocus","onBlur","markForCheck","setAttribute","removeAttribute","ElementRef","ChangeDetectorRef","Renderer2","ButtonRadioGroupDirective","decorators","Optional","Inject","radioButtons","forEach","buttons","activeRadio","getActiveOrFocusedRadio","firstEnabled","find","r","selectNext","selectInDirection","selectPrevious","direction","buttonRadioDirectives","toArray","currentActiveIndex","indexOf","i","nextIndex","currentIndex","calcIndex","length","button","hasFocus","ContentChildren","ButtonsModule","forRoot","ngModule","NgModule","declarations","exports"],"mappings":"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","sourcesContent":["// tslint:disable:no-use-before-declare\nimport {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// TODO: config: activeClass - Class to apply to the checked buttons\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonCheckboxDirective),\n multi: true\n};\n\n/**\n * Add checkbox functionality to any element\n */\n@Directive({\n selector: '[btnCheckbox]',\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\n /** Truthy value, will be set to ngModel */\n @Input() btnCheckboxTrue = true;\n /** Falsy value, will be set to ngModel */\n @Input() btnCheckboxFalse = false;\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n state = false;\n\n protected value: boolean | string;\n protected isDisabled: boolean;\n\n protected onChange = Function.prototype;\n protected onTouched = Function.prototype;\n\n // view -> model\n @HostListener('click')\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.toggle(!this.state);\n this.onChange(this.value);\n }\n\n ngOnInit(): void {\n this.toggle(this.trueValue === this.value);\n }\n\n protected get trueValue(): boolean {\n return typeof this.btnCheckboxTrue !== 'undefined'\n ? this.btnCheckboxTrue\n : true;\n }\n\n protected get falseValue(): boolean {\n return typeof this.btnCheckboxFalse !== 'undefined'\n ? this.btnCheckboxFalse\n : false;\n }\n\n toggle(state: boolean): void {\n this.state = state;\n this.value = this.state ? this.trueValue : this.falseValue;\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: boolean | string | null): void {\n this.state = this.trueValue === value;\n this.value = value ? this.trueValue : this.falseValue;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Provider,\n Renderer2\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadio]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n /** Radio button value, will be set to `ngModel` */\n @Input() btnRadio: string;\n /** If `true` â radio button can be unchecked */\n @Input() uncheckable: boolean;\n /** Current value of radio component or group */\n @Input()\n get value() {\n return this.group ? this.group.value : this._value;\n }\n\n set value(value: null | string) {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this._value = value;\n }\n /** If `true` â radio button is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this.setDisabledState(disabled);\n }\n\n @HostBinding('attr.aria-disabled')\n get controlOrGroupDisabled() {\n return this.disabled || (this.group && this.group.disabled) ? true : undefined;\n }\n\n @HostBinding('class.disabled')\n get hasDisabledClass() {\n // Although the radio is disabled the active radio should still stand out.\n // The disabled class will prevent this so don't add it on the active radio\n return this.controlOrGroupDisabled && !this.isActive;\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-checked')\n get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n @HostBinding('attr.role') readonly role: string = 'radio';\n\n @HostBinding('attr.tabindex')\n get tabindex(): undefined | number {\n if (this.controlOrGroupDisabled) {\n // Disabled radio buttons should not receive focus\n return undefined;\n } else if (this.isActive || this.group == null) {\n return 0;\n } else {\n return -1;\n }\n }\n\n get hasFocus(): boolean {\n return this._hasFocus;\n }\n\n private _value: null | string;\n private _disabled: boolean;\n private _hasFocus = false;\n\n constructor(\n private el: ElementRef,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional()\n @Inject(forwardRef(() => ButtonRadioGroupDirective))\n private group: ButtonRadioGroupDirective\n ) {}\n\n @HostListener('click')\n toggleIfAllowed(): void {\n if (!this.canToggle()) {\n return;\n }\n\n this.value = this.uncheckable && this.btnRadio === this.value ? undefined : this.btnRadio;\n this._onChange(this.value);\n }\n\n @HostListener('keydown.space', ['$event'])\n onSpacePressed(event: KeyboardEvent) {\n this.toggleIfAllowed();\n event.preventDefault();\n }\n\n focus() {\n this.el.nativeElement.focus();\n }\n\n @HostListener('focus')\n onFocus() {\n this._hasFocus = true;\n }\n\n @HostListener('blur')\n onBlur() {\n this._hasFocus = false;\n this.onTouched();\n }\n\n canToggle(): boolean {\n return !this.controlOrGroupDisabled && (this.uncheckable || this.btnRadio !== this.value);\n }\n\n ngOnInit(): void {\n this.uncheckable = typeof this.uncheckable !== 'undefined';\n }\n\n _onChange(value: string): void {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this.onTouched();\n this.onChange(value);\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: string): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this._disabled = disabled;\n if (disabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Provider,\n QueryList\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioDirective } from './button-radio.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioGroupDirective),\n multi: true\n};\n\n/**\n * A group of radio buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadioGroup]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioGroupDirective implements ControlValueAccessor {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n @HostBinding('attr.role') readonly role: string = 'radiogroup';\n\n @ContentChildren(forwardRef(() => ButtonRadioDirective))\n radioButtons: QueryList<ButtonRadioDirective>;\n\n get value() {\n return this._value;\n }\n set value(value: string | null) {\n this._value = value;\n this.onChange(value);\n }\n\n private _value: string | null;\n\n private _disabled: boolean;\n\n @HostBinding('attr.tabindex')\n get tabindex(): null | number {\n if (this._disabled) {\n return null;\n } else {\n return 0;\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n writeValue(value: string | null): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (this.radioButtons) {\n this._disabled = disabled;\n this.radioButtons.forEach(buttons => {\n buttons.setDisabledState(disabled);\n });\n this.cdr.markForCheck();\n }\n }\n\n @HostListener('focus')\n onFocus() {\n if (this._disabled) {\n return;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n if (activeRadio) {\n activeRadio.focus();\n } else {\n const firstEnabled = this.radioButtons.find(r => !r.disabled);\n if (firstEnabled) {\n firstEnabled.focus();\n }\n }\n }\n\n @HostListener('blur')\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n @HostListener('keydown.ArrowRight', ['$event'])\n @HostListener('keydown.ArrowDown', ['$event'])\n selectNext(event: KeyboardEvent) {\n this.selectInDirection('next');\n event.preventDefault();\n }\n\n @HostListener('keydown.ArrowLeft', ['$event'])\n @HostListener('keydown.ArrowUp', ['$event'])\n selectPrevious(event: KeyboardEvent) {\n this.selectInDirection('previous');\n event.preventDefault();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n private selectInDirection(direction: 'next' | 'previous') {\n if (this._disabled) {\n return;\n }\n function nextIndex(currentIndex: number, buttonRadioDirectives: ButtonRadioDirective[]) {\n const step = direction === 'next' ? 1 : -1;\n let calcIndex = (currentIndex + step) % buttonRadioDirectives.length;\n if (calcIndex < 0) {\n calcIndex = buttonRadioDirectives.length - 1;\n }\n\n return calcIndex;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n\n if (activeRadio) {\n const buttonRadioDirectives = this.radioButtons.toArray();\n const currentActiveIndex = buttonRadioDirectives.indexOf(activeRadio);\n for (\n let i = nextIndex(currentActiveIndex, buttonRadioDirectives);\n i !== currentActiveIndex;\n i = nextIndex(i, buttonRadioDirectives)\n ) {\n if (buttonRadioDirectives[i].canToggle()) {\n buttonRadioDirectives[i].toggleIfAllowed();\n buttonRadioDirectives[i].focus();\n break;\n }\n }\n }\n }\n\n private getActiveOrFocusedRadio(): ButtonRadioDirective | undefined {\n return this.radioButtons.find(button => button.isActive) || this.radioButtons.find(button => button.hasFocus);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ButtonCheckboxDirective } from './button-checkbox.directive';\nimport { ButtonRadioDirective } from './button-radio.directive';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\n@NgModule({\n declarations: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective],\n exports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective]\n})\nexport class ButtonsModule {\n static forRoot(): ModuleWithProviders<ButtonsModule> {\n return { ngModule: ButtonsModule, providers: [] };\n }\n}\n"]}
|
1
|
+
{"version":3,"sources":["ng://ngx-bootstrap/buttons/button-checkbox.directive.ts","ng://ngx-bootstrap/buttons/button-radio.directive.ts","ng://ngx-bootstrap/buttons/button-radio-group.directive.ts","ng://ngx-bootstrap/buttons/buttons.module.ts"],"names":["CHECKBOX_CONTROL_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","ButtonCheckboxDirective","multi","this","btnCheckboxTrue","btnCheckboxFalse","state","onChange","Function","prototype","onTouched","onClick","isDisabled","toggle","value","ngOnInit","trueValue","Object","defineProperty","falseValue","writeValue","setDisabledState","registerOnChange","fn","registerOnTouched","Directive","args","selector","providers","Input","HostBinding","type","HostListener","RADIO_CONTROL_VALUE_ACCESSOR","ButtonRadioDirective","el","cdr","renderer","group","role","_hasFocus","_value","_disabled","disabled","undefined","controlOrGroupDisabled","isActive","btnRadio","toggleIfAllowed","canToggle","uncheckable","_onChange","onSpacePressed","event","preventDefault","focus","nativeElement","onFocus","onBlur","markForCheck","setAttribute","removeAttribute","ElementRef","ChangeDetectorRef","Renderer2","ButtonRadioGroupDirective","decorators","Optional","Inject","radioButtons","forEach","buttons","activeRadio","getActiveOrFocusedRadio","firstEnabled","find","r","selectNext","selectInDirection","selectPrevious","direction","buttonRadioDirectives","toArray","currentActiveIndex","indexOf","i","nextIndex","currentIndex","calcIndex","length","button","hasFocus","ContentChildren","ButtonsModule","forRoot","ngModule","NgModule","declarations","exports"],"mappings":"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","sourcesContent":["// tslint:disable:no-use-before-declare\nimport {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// TODO: config: activeClass - Class to apply to the checked buttons\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonCheckboxDirective),\n multi: true\n};\n\n/**\n * Add checkbox functionality to any element\n */\n@Directive({\n selector: '[btnCheckbox]',\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\n /** Truthy value, will be set to ngModel */\n @Input() btnCheckboxTrue = true;\n /** Falsy value, will be set to ngModel */\n @Input() btnCheckboxFalse = false;\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n state = false;\n\n protected value: boolean | string;\n protected isDisabled: boolean;\n\n protected onChange = Function.prototype;\n protected onTouched = Function.prototype;\n\n // view -> model\n @HostListener('click')\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.toggle(!this.state);\n this.onChange(this.value);\n }\n\n ngOnInit(): void {\n this.toggle(this.trueValue === this.value);\n }\n\n protected get trueValue(): boolean {\n return typeof this.btnCheckboxTrue !== 'undefined'\n ? this.btnCheckboxTrue\n : true;\n }\n\n protected get falseValue(): boolean {\n return typeof this.btnCheckboxFalse !== 'undefined'\n ? this.btnCheckboxFalse\n : false;\n }\n\n toggle(state: boolean): void {\n this.state = state;\n this.value = this.state ? this.trueValue : this.falseValue;\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: boolean | string | null): void {\n this.state = this.trueValue === value;\n this.value = value ? this.trueValue : this.falseValue;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Provider,\n Renderer2\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadio]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n /** Radio button value, will be set to `ngModel` */\n @Input() btnRadio: string;\n /** If `true` — radio button can be unchecked */\n @Input() uncheckable: boolean;\n /** Current value of radio component or group */\n @Input()\n get value() {\n return this.group ? this.group.value : this._value;\n }\n\n set value(value: null | string) {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this._value = value;\n }\n /** If `true` — radio button is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this.setDisabledState(disabled);\n }\n\n @HostBinding('attr.aria-disabled')\n get controlOrGroupDisabled() {\n return this.disabled || (this.group && this.group.disabled) ? true : undefined;\n }\n\n @HostBinding('class.disabled')\n get hasDisabledClass() {\n // Although the radio is disabled the active radio should still stand out.\n // The disabled class will prevent this so don't add it on the active radio\n return this.controlOrGroupDisabled && !this.isActive;\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-checked')\n get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n @HostBinding('attr.role') readonly role: string = 'radio';\n\n @HostBinding('attr.tabindex')\n get tabindex(): undefined | number {\n if (this.controlOrGroupDisabled) {\n // Disabled radio buttons should not receive focus\n return undefined;\n } else if (this.isActive || this.group == null) {\n return 0;\n } else {\n return -1;\n }\n }\n\n get hasFocus(): boolean {\n return this._hasFocus;\n }\n\n private _value: null | string;\n private _disabled: boolean;\n private _hasFocus = false;\n\n constructor(\n private el: ElementRef,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional()\n @Inject(forwardRef(() => ButtonRadioGroupDirective))\n private group: ButtonRadioGroupDirective\n ) {}\n\n @HostListener('click')\n toggleIfAllowed(): void {\n if (!this.canToggle()) {\n return;\n }\n\n this.value = this.uncheckable && this.btnRadio === this.value ? undefined : this.btnRadio;\n this._onChange(this.value);\n }\n\n @HostListener('keydown.space', ['$event'])\n onSpacePressed(event: KeyboardEvent) {\n this.toggleIfAllowed();\n event.preventDefault();\n }\n\n focus() {\n this.el.nativeElement.focus();\n }\n\n @HostListener('focus')\n onFocus() {\n this._hasFocus = true;\n }\n\n @HostListener('blur')\n onBlur() {\n this._hasFocus = false;\n this.onTouched();\n }\n\n canToggle(): boolean {\n return !this.controlOrGroupDisabled && (this.uncheckable || this.btnRadio !== this.value);\n }\n\n ngOnInit(): void {\n this.uncheckable = typeof this.uncheckable !== 'undefined';\n }\n\n _onChange(value: string): void {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this.onTouched();\n this.onChange(value);\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: string): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this._disabled = disabled;\n if (disabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Provider,\n QueryList\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioDirective } from './button-radio.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioGroupDirective),\n multi: true\n};\n\n/**\n * A group of radio buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadioGroup]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioGroupDirective implements ControlValueAccessor {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n @HostBinding('attr.role') readonly role: string = 'radiogroup';\n\n @ContentChildren(forwardRef(() => ButtonRadioDirective))\n radioButtons: QueryList<ButtonRadioDirective>;\n\n get value() {\n return this._value;\n }\n set value(value: string | null) {\n this._value = value;\n this.onChange(value);\n }\n\n private _value: string | null;\n\n private _disabled: boolean;\n\n @HostBinding('attr.tabindex')\n get tabindex(): null | number {\n if (this._disabled) {\n return null;\n } else {\n return 0;\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n writeValue(value: string | null): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (this.radioButtons) {\n this._disabled = disabled;\n this.radioButtons.forEach(buttons => {\n buttons.setDisabledState(disabled);\n });\n this.cdr.markForCheck();\n }\n }\n\n @HostListener('focus')\n onFocus() {\n if (this._disabled) {\n return;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n if (activeRadio) {\n activeRadio.focus();\n } else {\n const firstEnabled = this.radioButtons.find(r => !r.disabled);\n if (firstEnabled) {\n firstEnabled.focus();\n }\n }\n }\n\n @HostListener('blur')\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n @HostListener('keydown.ArrowRight', ['$event'])\n @HostListener('keydown.ArrowDown', ['$event'])\n selectNext(event: KeyboardEvent) {\n this.selectInDirection('next');\n event.preventDefault();\n }\n\n @HostListener('keydown.ArrowLeft', ['$event'])\n @HostListener('keydown.ArrowUp', ['$event'])\n selectPrevious(event: KeyboardEvent) {\n this.selectInDirection('previous');\n event.preventDefault();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n private selectInDirection(direction: 'next' | 'previous') {\n if (this._disabled) {\n return;\n }\n function nextIndex(currentIndex: number, buttonRadioDirectives: ButtonRadioDirective[]) {\n const step = direction === 'next' ? 1 : -1;\n let calcIndex = (currentIndex + step) % buttonRadioDirectives.length;\n if (calcIndex < 0) {\n calcIndex = buttonRadioDirectives.length - 1;\n }\n\n return calcIndex;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n\n if (activeRadio) {\n const buttonRadioDirectives = this.radioButtons.toArray();\n const currentActiveIndex = buttonRadioDirectives.indexOf(activeRadio);\n for (\n let i = nextIndex(currentActiveIndex, buttonRadioDirectives);\n i !== currentActiveIndex;\n i = nextIndex(i, buttonRadioDirectives)\n ) {\n if (buttonRadioDirectives[i].canToggle()) {\n buttonRadioDirectives[i].toggleIfAllowed();\n buttonRadioDirectives[i].focus();\n break;\n }\n }\n }\n }\n\n private getActiveOrFocusedRadio(): ButtonRadioDirective | undefined {\n return this.radioButtons.find(button => button.isActive) || this.radioButtons.find(button => button.hasFocus);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ButtonCheckboxDirective } from './button-checkbox.directive';\nimport { ButtonRadioDirective } from './button-radio.directive';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\n@NgModule({\n declarations: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective],\n exports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective]\n})\nexport class ButtonsModule {\n static forRoot(): ModuleWithProviders<ButtonsModule> {\n return { ngModule: ButtonsModule, providers: [] };\n }\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-buttons.js","sources":["ng://ngx-bootstrap/buttons/button-checkbox.directive.ts","ng://ngx-bootstrap/buttons/button-radio.directive.ts","ng://ngx-bootstrap/buttons/button-radio-group.directive.ts","ng://ngx-bootstrap/buttons/buttons.module.ts"],"sourcesContent":["// tslint:disable:no-use-before-declare\nimport {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// TODO: config: activeClass - Class to apply to the checked buttons\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonCheckboxDirective),\n multi: true\n};\n\n/**\n * Add checkbox functionality to any element\n */\n@Directive({\n selector: '[btnCheckbox]',\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\n /** Truthy value, will be set to ngModel */\n @Input() btnCheckboxTrue = true;\n /** Falsy value, will be set to ngModel */\n @Input() btnCheckboxFalse = false;\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n state = false;\n\n protected value: boolean | string;\n protected isDisabled: boolean;\n\n protected onChange = Function.prototype;\n protected onTouched = Function.prototype;\n\n // view -> model\n @HostListener('click')\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.toggle(!this.state);\n this.onChange(this.value);\n }\n\n ngOnInit(): void {\n this.toggle(this.trueValue === this.value);\n }\n\n protected get trueValue(): boolean {\n return typeof this.btnCheckboxTrue !== 'undefined'\n ? this.btnCheckboxTrue\n : true;\n }\n\n protected get falseValue(): boolean {\n return typeof this.btnCheckboxFalse !== 'undefined'\n ? this.btnCheckboxFalse\n : false;\n }\n\n toggle(state: boolean): void {\n this.state = state;\n this.value = this.state ? this.trueValue : this.falseValue;\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: boolean | string | null): void {\n this.state = this.trueValue === value;\n this.value = value ? this.trueValue : this.falseValue;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Provider,\n Renderer2\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadio]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n /** Radio button value, will be set to `ngModel` */\n @Input() btnRadio: string;\n /** If `true` â radio button can be unchecked */\n @Input() uncheckable: boolean;\n /** Current value of radio component or group */\n @Input()\n get value() {\n return this.group ? this.group.value : this._value;\n }\n\n set value(value: null | string) {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this._value = value;\n }\n /** If `true` â radio button is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this.setDisabledState(disabled);\n }\n\n @HostBinding('attr.aria-disabled')\n get controlOrGroupDisabled() {\n return this.disabled || (this.group && this.group.disabled) ? true : undefined;\n }\n\n @HostBinding('class.disabled')\n get hasDisabledClass() {\n // Although the radio is disabled the active radio should still stand out.\n // The disabled class will prevent this so don't add it on the active radio\n return this.controlOrGroupDisabled && !this.isActive;\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-checked')\n get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n @HostBinding('attr.role') readonly role: string = 'radio';\n\n @HostBinding('attr.tabindex')\n get tabindex(): undefined | number {\n if (this.controlOrGroupDisabled) {\n // Disabled radio buttons should not receive focus\n return undefined;\n } else if (this.isActive || this.group == null) {\n return 0;\n } else {\n return -1;\n }\n }\n\n get hasFocus(): boolean {\n return this._hasFocus;\n }\n\n private _value: null | string;\n private _disabled: boolean;\n private _hasFocus = false;\n\n constructor(\n private el: ElementRef,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional()\n @Inject(forwardRef(() => ButtonRadioGroupDirective))\n private group: ButtonRadioGroupDirective\n ) {}\n\n @HostListener('click')\n toggleIfAllowed(): void {\n if (!this.canToggle()) {\n return;\n }\n\n this.value = this.uncheckable && this.btnRadio === this.value ? undefined : this.btnRadio;\n this._onChange(this.value);\n }\n\n @HostListener('keydown.space', ['$event'])\n onSpacePressed(event: KeyboardEvent) {\n this.toggleIfAllowed();\n event.preventDefault();\n }\n\n focus() {\n this.el.nativeElement.focus();\n }\n\n @HostListener('focus')\n onFocus() {\n this._hasFocus = true;\n }\n\n @HostListener('blur')\n onBlur() {\n this._hasFocus = false;\n this.onTouched();\n }\n\n canToggle(): boolean {\n return !this.controlOrGroupDisabled && (this.uncheckable || this.btnRadio !== this.value);\n }\n\n ngOnInit(): void {\n this.uncheckable = typeof this.uncheckable !== 'undefined';\n }\n\n _onChange(value: string): void {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this.onTouched();\n this.onChange(value);\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: string): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this._disabled = disabled;\n if (disabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Provider,\n QueryList\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioDirective } from './button-radio.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioGroupDirective),\n multi: true\n};\n\n/**\n * A group of radio buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadioGroup]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioGroupDirective implements ControlValueAccessor {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n @HostBinding('attr.role') readonly role: string = 'radiogroup';\n\n @ContentChildren(forwardRef(() => ButtonRadioDirective))\n radioButtons: QueryList<ButtonRadioDirective>;\n\n get value() {\n return this._value;\n }\n set value(value: string | null) {\n this._value = value;\n this.onChange(value);\n }\n\n private _value: string | null;\n\n private _disabled: boolean;\n\n @HostBinding('attr.tabindex')\n get tabindex(): null | number {\n if (this._disabled) {\n return null;\n } else {\n return 0;\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n writeValue(value: string | null): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (this.radioButtons) {\n this._disabled = disabled;\n this.radioButtons.forEach(buttons => {\n buttons.setDisabledState(disabled);\n });\n this.cdr.markForCheck();\n }\n }\n\n @HostListener('focus')\n onFocus() {\n if (this._disabled) {\n return;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n if (activeRadio) {\n activeRadio.focus();\n } else {\n const firstEnabled = this.radioButtons.find(r => !r.disabled);\n if (firstEnabled) {\n firstEnabled.focus();\n }\n }\n }\n\n @HostListener('blur')\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n @HostListener('keydown.ArrowRight', ['$event'])\n @HostListener('keydown.ArrowDown', ['$event'])\n selectNext(event: KeyboardEvent) {\n this.selectInDirection('next');\n event.preventDefault();\n }\n\n @HostListener('keydown.ArrowLeft', ['$event'])\n @HostListener('keydown.ArrowUp', ['$event'])\n selectPrevious(event: KeyboardEvent) {\n this.selectInDirection('previous');\n event.preventDefault();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n private selectInDirection(direction: 'next' | 'previous') {\n if (this._disabled) {\n return;\n }\n function nextIndex(currentIndex: number, buttonRadioDirectives: ButtonRadioDirective[]) {\n const step = direction === 'next' ? 1 : -1;\n let calcIndex = (currentIndex + step) % buttonRadioDirectives.length;\n if (calcIndex < 0) {\n calcIndex = buttonRadioDirectives.length - 1;\n }\n\n return calcIndex;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n\n if (activeRadio) {\n const buttonRadioDirectives = this.radioButtons.toArray();\n const currentActiveIndex = buttonRadioDirectives.indexOf(activeRadio);\n for (\n let i = nextIndex(currentActiveIndex, buttonRadioDirectives);\n i !== currentActiveIndex;\n i = nextIndex(i, buttonRadioDirectives)\n ) {\n if (buttonRadioDirectives[i].canToggle()) {\n buttonRadioDirectives[i].toggleIfAllowed();\n buttonRadioDirectives[i].focus();\n break;\n }\n }\n }\n }\n\n private getActiveOrFocusedRadio(): ButtonRadioDirective | undefined {\n return this.radioButtons.find(button => button.isActive) || this.radioButtons.find(button => button.hasFocus);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ButtonCheckboxDirective } from './button-checkbox.directive';\nimport { ButtonRadioDirective } from './button-radio.directive';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\n@NgModule({\n declarations: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective],\n exports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective]\n})\nexport class ButtonsModule {\n static forRoot(): ModuleWithProviders<ButtonsModule> {\n return { ngModule: ButtonsModule, providers: [] };\n }\n}\n"],"names":["RADIO_CONTROL_VALUE_ACCESSOR"],"mappings":";;;;;;;;;MAaa,+BAA+B,GAAa;IACvD,OAAO,EAAE,iBAAiB;;IAE1B,WAAW,EAAE,UAAU;;;IAAC,MAAM,uBAAuB,EAAC;IACtD,KAAK,EAAE,IAAI;;;;;MAUA,uBAAuB;IAJpC;;;;QAMW,oBAAe,GAAG,IAAI,CAAC;;;;QAEvB,qBAAgB,GAAG,KAAK,CAAC;QAIlC,UAAK,GAAG,KAAK,CAAC;QAKJ,aAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC9B,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;KAoD1C;;;;;IAhDC,OAAO;QACL,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,OAAO;SACR;QAED,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;;;;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5C;;;;;IAED,IAAc,SAAS;QACrB,OAAO,OAAO,IAAI,CAAC,eAAe,KAAK,WAAW;cAC9C,IAAI,CAAC,eAAe;cACpB,IAAI,CAAC;KACV;;;;;IAED,IAAc,UAAU;QACtB,OAAO,OAAO,IAAI,CAAC,gBAAgB,KAAK,WAAW;cAC/C,IAAI,CAAC,gBAAgB;cACrB,KAAK,CAAC;KACX;;;;;IAED,MAAM,CAAC,KAAc;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;KAC5D;;;;;;;IAID,UAAU,CAAC,KAA8B;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;KACvD;;;;;IAED,gBAAgB,CAAC,UAAmB;QAClC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;;;;;IAED,gBAAgB,CAAC,EAAY;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;;;;;IAED,iBAAiB,CAAC,EAAY;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;;;YArEF,SAAS,SAAC;gBACT,QAAQ,EAAE,eAAe;gBACzB,SAAS,EAAE,CAAC,+BAA+B,CAAC;aAC7C;;;8BAGE,KAAK;+BAEL,KAAK;oBAEL,WAAW,SAAC,cAAc,cAC1B,WAAW,SAAC,mBAAmB;sBAU/B,YAAY,SAAC,OAAO;;;;;;;IAfrB,kDAAgC;;;;;IAEhC,mDAAkC;;IAElC,wCAEc;;;;;IAEd,wCAAkC;;;;;IAClC,6CAA8B;;;;;IAE9B,2CAAwC;;;;;IACxC,4CAAyC;;;;;;;ACzC3C;AAiBA,MAAa,4BAA4B,GAAa;IACpD,OAAO,EAAE,iBAAiB;;IAE1B,WAAW,EAAE,UAAU;;;IAAC,MAAM,oBAAoB,EAAC;IACnD,KAAK,EAAE,IAAI;CACZ;;;;;AAUD,MAAa,oBAAoB;;;;;;;IAwE/B,YACU,EAAc,EACd,GAAsB,EACtB,QAAmB,EAGnB,KAAgC;QALhC,OAAE,GAAF,EAAE,CAAY;QACd,QAAG,GAAH,GAAG,CAAmB;QACtB,aAAQ,GAAR,QAAQ,CAAW;QAGnB,UAAK,GAAL,KAAK,CAA2B;QA7E1C,aAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC9B,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAgDI,SAAI,GAAW,OAAO,CAAC;QAoBlD,cAAS,GAAG,KAAK,CAAC;KAStB;;;;;IAtEJ,IACI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;KACpD;;;;;IAED,IAAI,KAAK,CAAC,KAAoB;QAC5B,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAEzB,OAAO;SACR;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;;;;;IAED,IACI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;;;;;IAED,IAAI,QAAQ,CAAC,QAAiB;QAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;KACjC;;;;IAED,IACI,sBAAsB;QACxB,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;KAChF;;;;IAED,IACI,gBAAgB;;;QAGlB,OAAO,IAAI,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;KACtD;;;;IAED,IAEI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC;KACrC;;;;IAID,IACI,QAAQ;QACV,IAAI,IAAI,CAAC,sBAAsB,EAAE;;YAE/B,OAAO,SAAS,CAAC;SAClB;aAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YAC9C,OAAO,CAAC,CAAC;SACV;aAAM;YACL,OAAO,CAAC,CAAC,CAAC;SACX;KACF;;;;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;;;;IAgBD,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YACrB,OAAO;SACR;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;;;;;IAGD,cAAc,CAAC,KAAoB;QACjC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;;;;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC/B;;;;IAGD,OAAO;QACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACvB;;;;IAGD,MAAM;QACJ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;;;;IAED,SAAS;QACP,OAAO,CAAC,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3F;;;;IAED,QAAQ;QACN,IAAI,CAAC,WAAW,GAAG,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC;KAC5D;;;;;IAED,SAAS,CAAC,KAAa;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAEzB,OAAO;SACR;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;;;;;;;IAID,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;;;;IAED,gBAAgB,CAAC,EAAY;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;;;;;IAED,iBAAiB,CAAC,EAAY;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;;;;;IAED,gBAAgB,CAAC,QAAiB;QAChC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAE1E,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;KAClE;;;YA7JF,SAAS,SAAC;gBACT,QAAQ,EAAE,YAAY;gBACtB,SAAS,EAAE,CAAC,4BAA4B,CAAC;aAC1C;;;;YA5BC,UAAU;YAFV,iBAAiB;YAWjB,SAAS;YAGF,yBAAyB,uBA6F7B,QAAQ,YACR,MAAM,SAAC,UAAU;;;oBAAC,MAAM,yBAAyB,EAAC;;;uBAxEpD,KAAK;0BAEL,KAAK;oBAEL,KAAK;uBAcL,KAAK;qCASL,WAAW,SAAC,oBAAoB;+BAKhC,WAAW,SAAC,gBAAgB;uBAO5B,WAAW,SAAC,cAAc,cAC1B,WAAW,SAAC,mBAAmB;mBAK/B,WAAW,SAAC,WAAW;uBAEvB,WAAW,SAAC,eAAe;8BA6B3B,YAAY,SAAC,OAAO;6BAUpB,YAAY,SAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;sBAUxC,YAAY,SAAC,OAAO;qBAKpB,YAAY,SAAC,MAAM;;;;IAzGpB,wCAA8B;;IAC9B,yCAA+B;;;;;IAG/B,wCAA0B;;;;;IAE1B,2CAA8B;;IA2C9B,oCAA0D;;;;;IAkB1D,sCAA8B;;;;;IAC9B,yCAA2B;;;;;IAC3B,yCAA0B;;;;;IAGxB,kCAAsB;;;;;IACtB,mCAA8B;;;;;IAC9B,wCAA2B;;;;;IAC3B,qCAEwC;;;;;;;AC9G5C;AAaA,MAAaA,8BAA4B,GAAa;IACpD,OAAO,EAAE,iBAAiB;;IAE1B,WAAW,EAAE,UAAU;;;IAAC,MAAM,yBAAyB,EAAC;IACxD,KAAK,EAAE,IAAI;CACZ;;;;;AAUD,MAAa,yBAAyB;;;;IA8BpC,YAAoB,GAAsB;QAAtB,QAAG,GAAH,GAAG,CAAmB;QA7B1C,aAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC9B,cAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAEI,SAAI,GAAW,YAAY,CAAC;KA0BjB;;;;IArB9C,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;;;;;IACD,IAAI,KAAK,CAAC,KAAoB;QAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACtB;;;;IAMD,IACI,QAAQ;QACV,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,CAAC,CAAC;SACV;KACF;;;;;IAID,UAAU,CAAC,KAAoB;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;KACzB;;;;;IAED,gBAAgB,CAAC,EAAY;QAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;;;;;IAED,iBAAiB,CAAC,EAAY;QAC5B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;;;;;IAED,gBAAgB,CAAC,QAAiB;QAChC,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,OAAO;;;;YAAC,OAAO;gBAC/B,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;aACpC,EAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SACzB;KACF;;;;IAGD,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;;cACK,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE;QAClD,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,KAAK,EAAE,CAAC;SACrB;aAAM;;kBACC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI;;;;YAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAC;YAC7D,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,KAAK,EAAE,CAAC;aACtB;SACF;KACF;;;;IAGD,MAAM;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;;;;;IAID,UAAU,CAAC,KAAoB;QAC7B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;;;;;IAID,cAAc,CAAC,KAAoB;QACjC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACnC,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;;;;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;;;;;;IAEO,iBAAiB,CAAC,SAA8B;QACtD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;;;;;;QACD,SAAS,SAAS,CAAC,YAAoB,EAAE,qBAA6C;;kBAC9E,IAAI,GAAG,SAAS,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;;gBACtC,SAAS,GAAG,CAAC,YAAY,GAAG,IAAI,IAAI,qBAAqB,CAAC,MAAM;YACpE,IAAI,SAAS,GAAG,CAAC,EAAE;gBACjB,SAAS,GAAG,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;aAC9C;YAED,OAAO,SAAS,CAAC;SAClB;;cACK,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE;QAElD,IAAI,WAAW,EAAE;;kBACT,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;;kBACnD,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC;YACrE,KACE,IAAI,CAAC,GAAG,SAAS,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,EAC5D,CAAC,KAAK,kBAAkB,EACxB,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,qBAAqB,CAAC,EACvC;gBACA,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE;oBACxC,qBAAqB,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBAC3C,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;oBACjC,MAAM;iBACP;aACF;SACF;KACF;;;;;IAEO,uBAAuB;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI;;;;QAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI;;;;QAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAC,CAAC;KAC/G;;;YAtIF,SAAS,SAAC;gBACT,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS,EAAE,CAACA,8BAA4B,CAAC;aAC1C;;;;YA1BC,iBAAiB;;;mBA+BhB,WAAW,SAAC,WAAW;2BAEvB,eAAe,SAAC,UAAU;;;gBAAC,MAAM,oBAAoB,EAAC;uBAetD,WAAW,SAAC,eAAe;sBAkC3B,YAAY,SAAC,OAAO;qBAgBpB,YAAY,SAAC,MAAM;yBAOnB,YAAY,SAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,cAC7C,YAAY,SAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC;6BAM5C,YAAY,SAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC,cAC5C,YAAY,SAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC;;;;IArF3C,6CAA8B;;IAC9B,8CAA+B;;IAE/B,yCAA+D;;IAE/D,iDAC8C;;;;;IAU9C,2CAA8B;;;;;IAE9B,8CAA2B;;;;;IAWf,wCAA8B;;;;;;;AC1D5C,MAUa,aAAa;;;;IACxB,OAAO,OAAO;QACZ,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;KACnD;;;YAPF,QAAQ,SAAC;gBACR,YAAY,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;gBACxF,OAAO,EAAE,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,yBAAyB,CAAC;aACpF;;;;;;;;;;;;;;;"}
|
1
|
+
{"version":3,"file":"ngx-bootstrap-buttons.js","sources":["ng://ngx-bootstrap/buttons/button-checkbox.directive.ts","ng://ngx-bootstrap/buttons/button-radio.directive.ts","ng://ngx-bootstrap/buttons/button-radio-group.directive.ts","ng://ngx-bootstrap/buttons/buttons.module.ts"],"sourcesContent":["// tslint:disable:no-use-before-declare\nimport {\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Provider\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// TODO: config: activeClass - Class to apply to the checked buttons\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonCheckboxDirective),\n multi: true\n};\n\n/**\n * Add checkbox functionality to any element\n */\n@Directive({\n selector: '[btnCheckbox]',\n providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonCheckboxDirective implements ControlValueAccessor, OnInit {\n /** Truthy value, will be set to ngModel */\n @Input() btnCheckboxTrue = true;\n /** Falsy value, will be set to ngModel */\n @Input() btnCheckboxFalse = false;\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-pressed')\n state = false;\n\n protected value: boolean | string;\n protected isDisabled: boolean;\n\n protected onChange = Function.prototype;\n protected onTouched = Function.prototype;\n\n // view -> model\n @HostListener('click')\n onClick(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.toggle(!this.state);\n this.onChange(this.value);\n }\n\n ngOnInit(): void {\n this.toggle(this.trueValue === this.value);\n }\n\n protected get trueValue(): boolean {\n return typeof this.btnCheckboxTrue !== 'undefined'\n ? this.btnCheckboxTrue\n : true;\n }\n\n protected get falseValue(): boolean {\n return typeof this.btnCheckboxFalse !== 'undefined'\n ? this.btnCheckboxFalse\n : false;\n }\n\n toggle(state: boolean): void {\n this.state = state;\n this.value = this.state ? this.trueValue : this.falseValue;\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: boolean | string | null): void {\n this.state = this.trueValue === value;\n this.value = value ? this.trueValue : this.falseValue;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Provider,\n Renderer2\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioDirective),\n multi: true\n};\n\n/**\n * Create radio buttons or groups of buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadio]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioDirective implements ControlValueAccessor, OnInit {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n /** Radio button value, will be set to `ngModel` */\n @Input() btnRadio: string;\n /** If `true` — radio button can be unchecked */\n @Input() uncheckable: boolean;\n /** Current value of radio component or group */\n @Input()\n get value() {\n return this.group ? this.group.value : this._value;\n }\n\n set value(value: null | string) {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this._value = value;\n }\n /** If `true` — radio button is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this.setDisabledState(disabled);\n }\n\n @HostBinding('attr.aria-disabled')\n get controlOrGroupDisabled() {\n return this.disabled || (this.group && this.group.disabled) ? true : undefined;\n }\n\n @HostBinding('class.disabled')\n get hasDisabledClass() {\n // Although the radio is disabled the active radio should still stand out.\n // The disabled class will prevent this so don't add it on the active radio\n return this.controlOrGroupDisabled && !this.isActive;\n }\n\n @HostBinding('class.active')\n @HostBinding('attr.aria-checked')\n get isActive(): boolean {\n return this.btnRadio === this.value;\n }\n\n @HostBinding('attr.role') readonly role: string = 'radio';\n\n @HostBinding('attr.tabindex')\n get tabindex(): undefined | number {\n if (this.controlOrGroupDisabled) {\n // Disabled radio buttons should not receive focus\n return undefined;\n } else if (this.isActive || this.group == null) {\n return 0;\n } else {\n return -1;\n }\n }\n\n get hasFocus(): boolean {\n return this._hasFocus;\n }\n\n private _value: null | string;\n private _disabled: boolean;\n private _hasFocus = false;\n\n constructor(\n private el: ElementRef,\n private cdr: ChangeDetectorRef,\n private renderer: Renderer2,\n @Optional()\n @Inject(forwardRef(() => ButtonRadioGroupDirective))\n private group: ButtonRadioGroupDirective\n ) {}\n\n @HostListener('click')\n toggleIfAllowed(): void {\n if (!this.canToggle()) {\n return;\n }\n\n this.value = this.uncheckable && this.btnRadio === this.value ? undefined : this.btnRadio;\n this._onChange(this.value);\n }\n\n @HostListener('keydown.space', ['$event'])\n onSpacePressed(event: KeyboardEvent) {\n this.toggleIfAllowed();\n event.preventDefault();\n }\n\n focus() {\n this.el.nativeElement.focus();\n }\n\n @HostListener('focus')\n onFocus() {\n this._hasFocus = true;\n }\n\n @HostListener('blur')\n onBlur() {\n this._hasFocus = false;\n this.onTouched();\n }\n\n canToggle(): boolean {\n return !this.controlOrGroupDisabled && (this.uncheckable || this.btnRadio !== this.value);\n }\n\n ngOnInit(): void {\n this.uncheckable = typeof this.uncheckable !== 'undefined';\n }\n\n _onChange(value: string): void {\n if (this.group) {\n this.group.value = value;\n\n return;\n }\n this.onTouched();\n this.onChange(value);\n }\n\n // ControlValueAccessor\n // model -> view\n writeValue(value: string): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this._disabled = disabled;\n if (disabled) {\n this.renderer.setAttribute(this.el.nativeElement, 'disabled', 'disabled');\n\n return;\n }\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChildren,\n Directive,\n forwardRef,\n HostBinding,\n HostListener,\n Provider,\n QueryList\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ButtonRadioDirective } from './button-radio.directive';\n\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => ButtonRadioGroupDirective),\n multi: true\n};\n\n/**\n * A group of radio buttons.\n * A value of a selected button is bound to a variable specified via ngModel.\n */\n@Directive({\n selector: '[btnRadioGroup]',\n providers: [RADIO_CONTROL_VALUE_ACCESSOR]\n})\nexport class ButtonRadioGroupDirective implements ControlValueAccessor {\n onChange = Function.prototype;\n onTouched = Function.prototype;\n\n @HostBinding('attr.role') readonly role: string = 'radiogroup';\n\n @ContentChildren(forwardRef(() => ButtonRadioDirective))\n radioButtons: QueryList<ButtonRadioDirective>;\n\n get value() {\n return this._value;\n }\n set value(value: string | null) {\n this._value = value;\n this.onChange(value);\n }\n\n private _value: string | null;\n\n private _disabled: boolean;\n\n @HostBinding('attr.tabindex')\n get tabindex(): null | number {\n if (this._disabled) {\n return null;\n } else {\n return 0;\n }\n }\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n writeValue(value: string | null): void {\n this._value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: () => {}): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n if (this.radioButtons) {\n this._disabled = disabled;\n this.radioButtons.forEach(buttons => {\n buttons.setDisabledState(disabled);\n });\n this.cdr.markForCheck();\n }\n }\n\n @HostListener('focus')\n onFocus() {\n if (this._disabled) {\n return;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n if (activeRadio) {\n activeRadio.focus();\n } else {\n const firstEnabled = this.radioButtons.find(r => !r.disabled);\n if (firstEnabled) {\n firstEnabled.focus();\n }\n }\n }\n\n @HostListener('blur')\n onBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n @HostListener('keydown.ArrowRight', ['$event'])\n @HostListener('keydown.ArrowDown', ['$event'])\n selectNext(event: KeyboardEvent) {\n this.selectInDirection('next');\n event.preventDefault();\n }\n\n @HostListener('keydown.ArrowLeft', ['$event'])\n @HostListener('keydown.ArrowUp', ['$event'])\n selectPrevious(event: KeyboardEvent) {\n this.selectInDirection('previous');\n event.preventDefault();\n }\n\n get disabled(): boolean {\n return this._disabled;\n }\n\n private selectInDirection(direction: 'next' | 'previous') {\n if (this._disabled) {\n return;\n }\n function nextIndex(currentIndex: number, buttonRadioDirectives: ButtonRadioDirective[]) {\n const step = direction === 'next' ? 1 : -1;\n let calcIndex = (currentIndex + step) % buttonRadioDirectives.length;\n if (calcIndex < 0) {\n calcIndex = buttonRadioDirectives.length - 1;\n }\n\n return calcIndex;\n }\n const activeRadio = this.getActiveOrFocusedRadio();\n\n if (activeRadio) {\n const buttonRadioDirectives = this.radioButtons.toArray();\n const currentActiveIndex = buttonRadioDirectives.indexOf(activeRadio);\n for (\n let i = nextIndex(currentActiveIndex, buttonRadioDirectives);\n i !== currentActiveIndex;\n i = nextIndex(i, buttonRadioDirectives)\n ) {\n if (buttonRadioDirectives[i].canToggle()) {\n buttonRadioDirectives[i].toggleIfAllowed();\n buttonRadioDirectives[i].focus();\n break;\n }\n }\n }\n }\n\n private getActiveOrFocusedRadio(): ButtonRadioDirective | undefined {\n return this.radioButtons.find(button => button.isActive) || this.radioButtons.find(button => button.hasFocus);\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { ButtonCheckboxDirective } from './button-checkbox.directive';\nimport { ButtonRadioDirective } from './button-radio.directive';\nimport { ButtonRadioGroupDirective } from './button-radio-group.directive';\n\n@NgModule({\n declarations: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective],\n exports: [ButtonCheckboxDirective, ButtonRadioDirective, ButtonRadioGroupDirective]\n})\nexport class ButtonsModule {\n static forRoot(): ModuleWithProviders<ButtonsModule> {\n return { ngModule: ButtonsModule, providers: [] };\n }\n}\n"],"names":["RADIO_CONTROL_VALUE_ACCESSOR"],"mappings":"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"}
|