@angular/cdk 10.0.0-rc.3 → 10.1.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/a11y/aria-describer/aria-describer.d.ts +10 -1
- package/a11y/focus-trap/focus-trap.d.ts +4 -2
- package/a11y/index.metadata.json +1 -1
- package/a11y/interactivity-checker/interactivity-checker.d.ts +11 -1
- package/a11y/key-manager/list-key-manager.d.ts +6 -0
- package/accordion/accordion.d.ts +7 -1
- package/accordion/index.d.ts +1 -0
- package/accordion/index.metadata.json +1 -1
- package/bundles/cdk-a11y.umd.js +78 -15
- package/bundles/cdk-a11y.umd.js.map +1 -1
- package/bundles/cdk-a11y.umd.min.js +11 -11
- package/bundles/cdk-a11y.umd.min.js.map +1 -1
- package/bundles/cdk-accordion.umd.js +12 -4
- package/bundles/cdk-accordion.umd.js.map +1 -1
- package/bundles/cdk-accordion.umd.min.js +2 -2
- package/bundles/cdk-accordion.umd.min.js.map +1 -1
- package/bundles/cdk-drag-drop.umd.js +717 -641
- package/bundles/cdk-drag-drop.umd.js.map +1 -1
- package/bundles/cdk-drag-drop.umd.min.js +8 -16
- package/bundles/cdk-drag-drop.umd.min.js.map +1 -1
- package/bundles/cdk-overlay.umd.js +199 -42
- package/bundles/cdk-overlay.umd.js.map +1 -1
- package/bundles/cdk-overlay.umd.min.js +11 -18
- package/bundles/cdk-overlay.umd.min.js.map +1 -1
- package/bundles/cdk-platform.umd.js +0 -1
- package/bundles/cdk-platform.umd.js.map +1 -1
- package/bundles/cdk-platform.umd.min.js +2 -2
- package/bundles/cdk-platform.umd.min.js.map +1 -1
- package/bundles/cdk-scrolling.umd.js +26 -4
- package/bundles/cdk-scrolling.umd.js.map +1 -1
- package/bundles/cdk-scrolling.umd.min.js +11 -4
- package/bundles/cdk-scrolling.umd.min.js.map +1 -1
- package/bundles/cdk-testing-protractor.umd.min.js +1 -1
- package/bundles/cdk-testing-protractor.umd.min.js.map +1 -1
- package/bundles/cdk-testing-testbed.umd.min.js +8 -8
- package/bundles/cdk-testing-testbed.umd.min.js.map +1 -1
- package/bundles/cdk-testing.umd.js +32 -0
- package/bundles/cdk-testing.umd.js.map +1 -1
- package/bundles/cdk-testing.umd.min.js +5 -5
- package/bundles/cdk-testing.umd.min.js.map +1 -1
- package/bundles/cdk-tree.umd.js +6 -2
- package/bundles/cdk-tree.umd.js.map +1 -1
- package/bundles/cdk-tree.umd.min.js +3 -3
- package/bundles/cdk-tree.umd.min.js.map +1 -1
- package/bundles/cdk.umd.js +1 -1
- package/bundles/cdk.umd.js.map +1 -1
- package/bundles/cdk.umd.min.js +1 -1
- package/bundles/cdk.umd.min.js.map +1 -1
- package/drag-drop/directives/drag-handle.d.ts +7 -1
- package/drag-drop/directives/drag-placeholder.d.ts +7 -1
- package/drag-drop/directives/drag-preview.d.ts +7 -1
- package/drag-drop/directives/drag.d.ts +4 -14
- package/drag-drop/directives/drop-list-group.d.ts +7 -1
- package/drag-drop/directives/drop-list.d.ts +7 -1
- package/drag-drop/drag-ref.d.ts +6 -0
- package/drag-drop/drop-list-ref.d.ts +3 -2
- package/drag-drop/index.d.ts +2 -2
- package/drag-drop/index.metadata.json +1 -1
- package/esm2015/a11y/a11y-module.js +15 -19
- package/esm2015/a11y/aria-describer/aria-describer.js +177 -167
- package/esm2015/a11y/focus-monitor/focus-monitor.js +337 -345
- package/esm2015/a11y/focus-trap/configurable-focus-trap-factory.js +30 -34
- package/esm2015/a11y/focus-trap/focus-trap-manager.js +36 -40
- package/esm2015/a11y/focus-trap/focus-trap.js +85 -82
- package/esm2015/a11y/high-contrast-mode/high-contrast-mode-detector.js +56 -60
- package/esm2015/a11y/interactivity-checker/interactivity-checker.js +113 -104
- package/esm2015/a11y/key-manager/list-key-manager.js +29 -4
- package/esm2015/a11y/live-announcer/live-announcer.js +138 -146
- package/esm2015/accordion/accordion-item.js +119 -123
- package/esm2015/accordion/accordion-module.js +9 -13
- package/esm2015/accordion/accordion.js +49 -46
- package/esm2015/accordion/index.js +2 -1
- package/esm2015/bidi/bidi-module.js +9 -13
- package/esm2015/bidi/dir.js +41 -45
- package/esm2015/bidi/directionality.js +27 -31
- package/esm2015/clipboard/clipboard-module.js +9 -13
- package/esm2015/clipboard/clipboard.js +36 -40
- package/esm2015/clipboard/copy-to-clipboard.js +71 -75
- package/esm2015/collections/unique-selection-dispatcher.js +33 -37
- package/esm2015/drag-drop/directives/drag-handle.js +42 -39
- package/esm2015/drag-drop/directives/drag-placeholder.js +24 -21
- package/esm2015/drag-drop/directives/drag-preview.js +29 -26
- package/esm2015/drag-drop/directives/drag.js +313 -319
- package/esm2015/drag-drop/directives/drop-list-group.js +32 -29
- package/esm2015/drag-drop/directives/drop-list.js +251 -250
- package/esm2015/drag-drop/drag-drop-module.js +27 -31
- package/esm2015/drag-drop/drag-drop-registry.js +139 -143
- package/esm2015/drag-drop/drag-drop.js +33 -37
- package/esm2015/drag-drop/drag-ref.js +59 -25
- package/esm2015/drag-drop/drop-list-ref.js +15 -9
- package/esm2015/drag-drop/index.js +3 -2
- package/esm2015/layout/breakpoints-observer.js +81 -85
- package/esm2015/layout/layout-module.js +6 -10
- package/esm2015/layout/media-matcher.js +28 -32
- package/esm2015/observers/observe-content.js +147 -163
- package/esm2015/overlay/dispatchers/base-overlay-dispatcher.js +51 -0
- package/esm2015/overlay/dispatchers/index.js +10 -0
- package/esm2015/overlay/dispatchers/overlay-keyboard-dispatcher.js +79 -0
- package/esm2015/overlay/dispatchers/overlay-outside-click-dispatcher.js +94 -0
- package/esm2015/overlay/fullscreen-overlay-container.js +70 -74
- package/esm2015/overlay/index.js +5 -4
- package/esm2015/overlay/overlay-config.js +5 -1
- package/esm2015/overlay/overlay-container.js +69 -73
- package/esm2015/overlay/overlay-directives.js +245 -243
- package/esm2015/overlay/overlay-module.js +15 -19
- package/esm2015/overlay/overlay-ref.js +24 -2
- package/esm2015/overlay/overlay-reference.js +1 -1
- package/esm2015/overlay/overlay.js +93 -92
- package/esm2015/overlay/position/connected-position.js +14 -18
- package/esm2015/overlay/position/overlay-position-builder.js +43 -47
- package/esm2015/overlay/public-api.js +2 -2
- package/esm2015/overlay/scroll/scroll-strategy-options.js +33 -37
- package/esm2015/platform/features/scrolling.js +1 -2
- package/esm2015/platform/platform-module.js +6 -10
- package/esm2015/platform/platform.js +48 -52
- package/esm2015/portal/portal-directives.js +181 -201
- package/esm2015/scrolling/fixed-size-virtual-scroll.js +57 -47
- package/esm2015/scrolling/public-api.js +2 -1
- package/esm2015/scrolling/scroll-dispatcher.js +139 -143
- package/esm2015/scrolling/scrollable.js +135 -139
- package/esm2015/scrolling/scrolling-module.js +32 -40
- package/esm2015/scrolling/viewport-ruler.js +105 -109
- package/esm2015/scrolling/virtual-for-of.js +264 -268
- package/esm2015/scrolling/virtual-scroll-repeater.js +8 -0
- package/esm2015/scrolling/virtual-scroll-viewport.js +318 -322
- package/esm2015/stepper/step-header.js +20 -24
- package/esm2015/stepper/step-label.js +13 -17
- package/esm2015/stepper/stepper-button.js +59 -67
- package/esm2015/stepper/stepper-module.js +24 -28
- package/esm2015/stepper/stepper.js +313 -321
- package/esm2015/table/cell.js +129 -157
- package/esm2015/table/row.js +183 -219
- package/esm2015/table/table-module.js +9 -13
- package/esm2015/table/table.js +765 -785
- package/esm2015/table/text-column.js +85 -89
- package/esm2015/testing/component-harness.js +19 -1
- package/esm2015/testing/harness-environment.js +7 -1
- package/esm2015/text-field/autofill.js +89 -97
- package/esm2015/text-field/autosize.js +225 -229
- package/esm2015/text-field/text-field-module.js +10 -14
- package/esm2015/tree/control/nested-tree-control.js +7 -3
- package/esm2015/tree/nested-node.js +79 -83
- package/esm2015/tree/node.js +17 -21
- package/esm2015/tree/outlet.js +15 -19
- package/esm2015/tree/padding.js +88 -92
- package/esm2015/tree/toggle.js +32 -36
- package/esm2015/tree/tree-module.js +10 -14
- package/esm2015/tree/tree.js +266 -274
- package/esm2015/version.js +1 -1
- package/fesm2015/a11y.js +1021 -996
- package/fesm2015/a11y.js.map +1 -1
- package/fesm2015/accordion.js +173 -175
- package/fesm2015/accordion.js.map +1 -1
- package/fesm2015/bidi.js +74 -83
- package/fesm2015/bidi.js.map +1 -1
- package/fesm2015/cdk.js +1 -1
- package/fesm2015/cdk.js.map +1 -1
- package/fesm2015/clipboard.js +113 -122
- package/fesm2015/clipboard.js.map +1 -1
- package/fesm2015/collections.js +32 -35
- package/fesm2015/collections.js.map +1 -1
- package/fesm2015/drag-drop.js +1005 -961
- package/fesm2015/drag-drop.js.map +1 -1
- package/fesm2015/layout.js +111 -120
- package/fesm2015/layout.js.map +1 -1
- package/fesm2015/observers.js +146 -158
- package/fesm2015/observers.js.map +1 -1
- package/fesm2015/overlay.js +793 -659
- package/fesm2015/overlay.js.map +1 -1
- package/fesm2015/platform.js +52 -59
- package/fesm2015/platform.js.map +1 -1
- package/fesm2015/portal.js +180 -195
- package/fesm2015/portal.js.map +1 -1
- package/fesm2015/scrolling.js +1058 -1060
- package/fesm2015/scrolling.js.map +1 -1
- package/fesm2015/stepper.js +424 -445
- package/fesm2015/stepper.js.map +1 -1
- package/fesm2015/table.js +1178 -1247
- package/fesm2015/table.js.map +1 -1
- package/fesm2015/testing.js +25 -1
- package/fesm2015/testing.js.map +1 -1
- package/fesm2015/text-field.js +318 -330
- package/fesm2015/text-field.js.map +1 -1
- package/fesm2015/tree.js +517 -537
- package/fesm2015/tree.js.map +1 -1
- package/overlay/dispatchers/base-overlay-dispatcher.d.ts +28 -0
- package/overlay/dispatchers/index.d.ts +9 -0
- package/overlay/{keyboard → dispatchers}/overlay-keyboard-dispatcher.d.ts +4 -10
- package/overlay/dispatchers/overlay-outside-click-dispatcher.d.ts +27 -0
- package/overlay/index.d.ts +4 -3
- package/overlay/index.metadata.json +1 -1
- package/overlay/overlay-config.d.ts +4 -0
- package/overlay/overlay-directives.d.ts +4 -0
- package/overlay/overlay-ref.d.ts +8 -2
- package/overlay/overlay-reference.d.ts +1 -0
- package/overlay/overlay.d.ts +4 -2
- package/overlay/public-api.d.ts +1 -1
- package/package.json +3 -3
- package/schematics/index.js +1 -1
- package/schematics/migration.json +5 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/data/index.js +1 -1
- package/schematics/ng-update/devkit-file-system.d.ts +5 -5
- package/schematics/ng-update/devkit-file-system.js +21 -16
- package/schematics/ng-update/devkit-migration-rule.js +13 -20
- package/schematics/ng-update/devkit-migration.d.ts +0 -2
- package/schematics/ng-update/devkit-migration.js +1 -1
- package/schematics/ng-update/find-stylesheets.d.ts +10 -0
- package/schematics/ng-update/find-stylesheets.js +31 -0
- package/schematics/ng-update/index.d.ts +2 -0
- package/schematics/ng-update/index.js +7 -2
- package/schematics/ng-update/migrations/attribute-selectors.js +3 -3
- package/schematics/ng-update/migrations/css-selectors.js +3 -3
- package/schematics/ng-update/migrations/element-selectors.js +3 -3
- package/schematics/ng-update/public-api.js +1 -1
- package/schematics/update-tool/component-resource-collector.d.ts +1 -1
- package/schematics/update-tool/component-resource-collector.js +18 -14
- package/schematics/update-tool/file-system.d.ts +19 -14
- package/schematics/update-tool/file-system.js +1 -1
- package/schematics/update-tool/index.d.ts +21 -3
- package/schematics/update-tool/index.js +29 -23
- package/schematics/update-tool/public-api.js +1 -1
- package/schematics/update-tool/target-version.d.ts +2 -1
- package/schematics/update-tool/target-version.js +5 -3
- package/schematics/update-tool/utils/parse-tsconfig.d.ts +2 -1
- package/schematics/update-tool/utils/parse-tsconfig.js +6 -10
- package/schematics/update-tool/utils/virtual-host.d.ts +34 -0
- package/schematics/update-tool/utils/virtual-host.js +62 -0
- package/schematics/update-tool/version-changes.js +4 -6
- package/schematics/utils/index.js +1 -1
- package/schematics/utils/project-tsconfig-paths.d.ts +2 -1
- package/schematics/utils/project-tsconfig-paths.js +1 -1
- package/scrolling/index.metadata.json +1 -1
- package/scrolling/public-api.d.ts +1 -0
- package/scrolling/virtual-for-of.d.ts +2 -1
- package/scrolling/virtual-scroll-repeater.d.ts +16 -0
- package/scrolling/virtual-scroll-viewport.d.ts +4 -4
- package/testing/component-harness.d.ts +12 -0
- package/testing/harness-environment.d.ts +1 -0
- package/tree/control/nested-tree-control.d.ts +7 -2
- package/tree/index.metadata.json +1 -1
- package/esm2015/overlay/keyboard/overlay-keyboard-dispatcher.js +0 -100
package/fesm2015/accordion.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Directive, Input, EventEmitter, Optional, SkipSelf, ChangeDetectorRef, Output, NgModule } from '@angular/core';
|
|
1
|
+
import { InjectionToken, Directive, Input, EventEmitter, Optional, Inject, SkipSelf, ChangeDetectorRef, Output, NgModule } from '@angular/core';
|
|
2
2
|
import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
|
|
3
3
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
4
4
|
import { Subject, Subscription } from 'rxjs';
|
|
@@ -12,54 +12,58 @@ import { Subject, Subscription } from 'rxjs';
|
|
|
12
12
|
*/
|
|
13
13
|
/** Used to generate unique ID for each accordion. */
|
|
14
14
|
let nextId = 0;
|
|
15
|
+
/**
|
|
16
|
+
* Injection token that can be used to reference instances of `CdkAccordion`. It serves
|
|
17
|
+
* as alternative token to the actual `CdkAccordion` class which could cause unnecessary
|
|
18
|
+
* retention of the class and its directive metadata.
|
|
19
|
+
*/
|
|
20
|
+
const CDK_ACCORDION = new InjectionToken('CdkAccordion');
|
|
15
21
|
/**
|
|
16
22
|
* Directive whose purpose is to manage the expanded state of CdkAccordionItem children.
|
|
17
23
|
*/
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this._openCloseAllActions.next(expanded);
|
|
49
|
-
}
|
|
24
|
+
class CdkAccordion {
|
|
25
|
+
constructor() {
|
|
26
|
+
/** Emits when the state of the accordion changes */
|
|
27
|
+
this._stateChanges = new Subject();
|
|
28
|
+
/** Stream that emits true/false when openAll/closeAll is triggered. */
|
|
29
|
+
this._openCloseAllActions = new Subject();
|
|
30
|
+
/** A readonly id value to use for unique selection coordination. */
|
|
31
|
+
this.id = `cdk-accordion-${nextId++}`;
|
|
32
|
+
this._multi = false;
|
|
33
|
+
}
|
|
34
|
+
/** Whether the accordion should allow multiple expanded accordion items simultaneously. */
|
|
35
|
+
get multi() { return this._multi; }
|
|
36
|
+
set multi(multi) { this._multi = coerceBooleanProperty(multi); }
|
|
37
|
+
/** Opens all enabled accordion items in an accordion where multi is enabled. */
|
|
38
|
+
openAll() {
|
|
39
|
+
this._openCloseAll(true);
|
|
40
|
+
}
|
|
41
|
+
/** Closes all enabled accordion items in an accordion where multi is enabled. */
|
|
42
|
+
closeAll() {
|
|
43
|
+
this._openCloseAll(false);
|
|
44
|
+
}
|
|
45
|
+
ngOnChanges(changes) {
|
|
46
|
+
this._stateChanges.next(changes);
|
|
47
|
+
}
|
|
48
|
+
ngOnDestroy() {
|
|
49
|
+
this._stateChanges.complete();
|
|
50
|
+
}
|
|
51
|
+
_openCloseAll(expanded) {
|
|
52
|
+
if (this.multi) {
|
|
53
|
+
this._openCloseAllActions.next(expanded);
|
|
50
54
|
}
|
|
51
55
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
56
|
+
}
|
|
57
|
+
CdkAccordion.decorators = [
|
|
58
|
+
{ type: Directive, args: [{
|
|
59
|
+
selector: 'cdk-accordion, [cdkAccordion]',
|
|
60
|
+
exportAs: 'cdkAccordion',
|
|
61
|
+
providers: [{ provide: CDK_ACCORDION, useExisting: CdkAccordion }],
|
|
62
|
+
},] }
|
|
63
|
+
];
|
|
64
|
+
CdkAccordion.propDecorators = {
|
|
65
|
+
multi: [{ type: Input }]
|
|
66
|
+
};
|
|
63
67
|
|
|
64
68
|
/**
|
|
65
69
|
* @license
|
|
@@ -75,134 +79,131 @@ const ɵ0 = undefined;
|
|
|
75
79
|
* An basic directive expected to be extended and decorated as a component. Sets up all
|
|
76
80
|
* events and attributes needed to be managed by a CdkAccordion parent.
|
|
77
81
|
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
this.expanded = false;
|
|
109
|
-
}
|
|
110
|
-
});
|
|
111
|
-
// When an accordion item is hosted in an accordion, subscribe to open/close events.
|
|
112
|
-
if (this.accordion) {
|
|
113
|
-
this._openCloseAllSubscription = this._subscribeToOpenCloseAllActions();
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
/** Whether the AccordionItem is expanded. */
|
|
117
|
-
get expanded() { return this._expanded; }
|
|
118
|
-
set expanded(expanded) {
|
|
119
|
-
expanded = coerceBooleanProperty(expanded);
|
|
120
|
-
// Only emit events and update the internal value if the value changes.
|
|
121
|
-
if (this._expanded !== expanded) {
|
|
122
|
-
this._expanded = expanded;
|
|
123
|
-
this.expandedChange.emit(expanded);
|
|
124
|
-
if (expanded) {
|
|
125
|
-
this.opened.emit();
|
|
126
|
-
/**
|
|
127
|
-
* In the unique selection dispatcher, the id parameter is the id of the CdkAccordionItem,
|
|
128
|
-
* the name value is the id of the accordion.
|
|
129
|
-
*/
|
|
130
|
-
const accordionId = this.accordion ? this.accordion.id : this.id;
|
|
131
|
-
this._expansionDispatcher.notify(this.id, accordionId);
|
|
82
|
+
class CdkAccordionItem {
|
|
83
|
+
constructor(accordion, _changeDetectorRef, _expansionDispatcher) {
|
|
84
|
+
this.accordion = accordion;
|
|
85
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
86
|
+
this._expansionDispatcher = _expansionDispatcher;
|
|
87
|
+
/** Subscription to openAll/closeAll events. */
|
|
88
|
+
this._openCloseAllSubscription = Subscription.EMPTY;
|
|
89
|
+
/** Event emitted every time the AccordionItem is closed. */
|
|
90
|
+
this.closed = new EventEmitter();
|
|
91
|
+
/** Event emitted every time the AccordionItem is opened. */
|
|
92
|
+
this.opened = new EventEmitter();
|
|
93
|
+
/** Event emitted when the AccordionItem is destroyed. */
|
|
94
|
+
this.destroyed = new EventEmitter();
|
|
95
|
+
/**
|
|
96
|
+
* Emits whenever the expanded state of the accordion changes.
|
|
97
|
+
* Primarily used to facilitate two-way binding.
|
|
98
|
+
* @docs-private
|
|
99
|
+
*/
|
|
100
|
+
this.expandedChange = new EventEmitter();
|
|
101
|
+
/** The unique AccordionItem id. */
|
|
102
|
+
this.id = `cdk-accordion-child-${nextId$1++}`;
|
|
103
|
+
this._expanded = false;
|
|
104
|
+
this._disabled = false;
|
|
105
|
+
/** Unregister function for _expansionDispatcher. */
|
|
106
|
+
this._removeUniqueSelectionListener = () => { };
|
|
107
|
+
this._removeUniqueSelectionListener =
|
|
108
|
+
_expansionDispatcher.listen((id, accordionId) => {
|
|
109
|
+
if (this.accordion && !this.accordion.multi &&
|
|
110
|
+
this.accordion.id === accordionId && this.id !== id) {
|
|
111
|
+
this.expanded = false;
|
|
132
112
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
113
|
+
});
|
|
114
|
+
// When an accordion item is hosted in an accordion, subscribe to open/close events.
|
|
115
|
+
if (this.accordion) {
|
|
116
|
+
this._openCloseAllSubscription = this._subscribeToOpenCloseAllActions();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** Whether the AccordionItem is expanded. */
|
|
120
|
+
get expanded() { return this._expanded; }
|
|
121
|
+
set expanded(expanded) {
|
|
122
|
+
expanded = coerceBooleanProperty(expanded);
|
|
123
|
+
// Only emit events and update the internal value if the value changes.
|
|
124
|
+
if (this._expanded !== expanded) {
|
|
125
|
+
this._expanded = expanded;
|
|
126
|
+
this.expandedChange.emit(expanded);
|
|
127
|
+
if (expanded) {
|
|
128
|
+
this.opened.emit();
|
|
129
|
+
/**
|
|
130
|
+
* In the unique selection dispatcher, the id parameter is the id of the CdkAccordionItem,
|
|
131
|
+
* the name value is the id of the accordion.
|
|
132
|
+
*/
|
|
133
|
+
const accordionId = this.accordion ? this.accordion.id : this.id;
|
|
134
|
+
this._expansionDispatcher.notify(this.id, accordionId);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this.closed.emit();
|
|
139
138
|
}
|
|
139
|
+
// Ensures that the animation will run when the value is set outside of an `@Input`.
|
|
140
|
+
// This includes cases like the open, close and toggle methods.
|
|
141
|
+
this._changeDetectorRef.markForCheck();
|
|
140
142
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
143
|
+
}
|
|
144
|
+
/** Whether the AccordionItem is disabled. */
|
|
145
|
+
get disabled() { return this._disabled; }
|
|
146
|
+
set disabled(disabled) { this._disabled = coerceBooleanProperty(disabled); }
|
|
147
|
+
/** Emits an event for the accordion item being destroyed. */
|
|
148
|
+
ngOnDestroy() {
|
|
149
|
+
this.opened.complete();
|
|
150
|
+
this.closed.complete();
|
|
151
|
+
this.destroyed.emit();
|
|
152
|
+
this.destroyed.complete();
|
|
153
|
+
this._removeUniqueSelectionListener();
|
|
154
|
+
this._openCloseAllSubscription.unsubscribe();
|
|
155
|
+
}
|
|
156
|
+
/** Toggles the expanded state of the accordion item. */
|
|
157
|
+
toggle() {
|
|
158
|
+
if (!this.disabled) {
|
|
159
|
+
this.expanded = !this.expanded;
|
|
152
160
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
161
|
+
}
|
|
162
|
+
/** Sets the expanded state of the accordion item to false. */
|
|
163
|
+
close() {
|
|
164
|
+
if (!this.disabled) {
|
|
165
|
+
this.expanded = false;
|
|
158
166
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
167
|
+
}
|
|
168
|
+
/** Sets the expanded state of the accordion item to true. */
|
|
169
|
+
open() {
|
|
170
|
+
if (!this.disabled) {
|
|
171
|
+
this.expanded = true;
|
|
164
172
|
}
|
|
165
|
-
|
|
166
|
-
|
|
173
|
+
}
|
|
174
|
+
_subscribeToOpenCloseAllActions() {
|
|
175
|
+
return this.accordion._openCloseAllActions.subscribe(expanded => {
|
|
176
|
+
// Only change expanded state if item is enabled
|
|
167
177
|
if (!this.disabled) {
|
|
168
|
-
this.expanded =
|
|
178
|
+
this.expanded = expanded;
|
|
169
179
|
}
|
|
170
|
-
}
|
|
171
|
-
_subscribeToOpenCloseAllActions() {
|
|
172
|
-
return this.accordion._openCloseAllActions.subscribe(expanded => {
|
|
173
|
-
// Only change expanded state if item is enabled
|
|
174
|
-
if (!this.disabled) {
|
|
175
|
-
this.expanded = expanded;
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
}
|
|
180
|
+
});
|
|
179
181
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
})();
|
|
182
|
+
}
|
|
183
|
+
CdkAccordionItem.decorators = [
|
|
184
|
+
{ type: Directive, args: [{
|
|
185
|
+
selector: 'cdk-accordion-item, [cdkAccordionItem]',
|
|
186
|
+
exportAs: 'cdkAccordionItem',
|
|
187
|
+
providers: [
|
|
188
|
+
// Provide `CDK_ACCORDION` as undefined to prevent nested accordion items from
|
|
189
|
+
// registering to the same accordion.
|
|
190
|
+
{ provide: CDK_ACCORDION, useValue: ɵ0 },
|
|
191
|
+
],
|
|
192
|
+
},] }
|
|
193
|
+
];
|
|
194
|
+
CdkAccordionItem.ctorParameters = () => [
|
|
195
|
+
{ type: CdkAccordion, decorators: [{ type: Optional }, { type: Inject, args: [CDK_ACCORDION,] }, { type: SkipSelf }] },
|
|
196
|
+
{ type: ChangeDetectorRef },
|
|
197
|
+
{ type: UniqueSelectionDispatcher }
|
|
198
|
+
];
|
|
199
|
+
CdkAccordionItem.propDecorators = {
|
|
200
|
+
closed: [{ type: Output }],
|
|
201
|
+
opened: [{ type: Output }],
|
|
202
|
+
destroyed: [{ type: Output }],
|
|
203
|
+
expandedChange: [{ type: Output }],
|
|
204
|
+
expanded: [{ type: Input }],
|
|
205
|
+
disabled: [{ type: Input }]
|
|
206
|
+
};
|
|
206
207
|
|
|
207
208
|
/**
|
|
208
209
|
* @license
|
|
@@ -211,17 +212,14 @@ let CdkAccordionItem = /** @class */ (() => {
|
|
|
211
212
|
* Use of this source code is governed by an MIT-style license that can be
|
|
212
213
|
* found in the LICENSE file at https://angular.io/license
|
|
213
214
|
*/
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
];
|
|
223
|
-
return CdkAccordionModule;
|
|
224
|
-
})();
|
|
215
|
+
class CdkAccordionModule {
|
|
216
|
+
}
|
|
217
|
+
CdkAccordionModule.decorators = [
|
|
218
|
+
{ type: NgModule, args: [{
|
|
219
|
+
exports: [CdkAccordion, CdkAccordionItem],
|
|
220
|
+
declarations: [CdkAccordion, CdkAccordionItem],
|
|
221
|
+
},] }
|
|
222
|
+
];
|
|
225
223
|
|
|
226
224
|
/**
|
|
227
225
|
* @license
|
|
@@ -235,5 +233,5 @@ let CdkAccordionModule = /** @class */ (() => {
|
|
|
235
233
|
* Generated bundle index. Do not edit.
|
|
236
234
|
*/
|
|
237
235
|
|
|
238
|
-
export { CdkAccordion, CdkAccordionItem, CdkAccordionModule };
|
|
236
|
+
export { CdkAccordion, CdkAccordionItem, CdkAccordionModule, CDK_ACCORDION as ɵangular_material_src_cdk_accordion_accordion_a };
|
|
239
237
|
//# sourceMappingURL=accordion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","sources":["../../../../../../src/cdk/accordion/accordion.ts","../../../../../../src/cdk/accordion/accordion-item.ts","../../../../../../src/cdk/accordion/accordion-module.ts","../../../../../../src/cdk/accordion/public-api.ts","../../../../../../src/cdk/accordion/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Directive, Input, OnChanges, OnDestroy, SimpleChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/** Used to generate unique ID for each accordion. */\nlet nextId = 0;\n\n/**\n * Directive whose purpose is to manage the expanded state of CdkAccordionItem children.\n */\n@Directive({\n selector: 'cdk-accordion, [cdkAccordion]',\n exportAs: 'cdkAccordion',\n})\nexport class CdkAccordion implements OnDestroy, OnChanges {\n /** Emits when the state of the accordion changes */\n readonly _stateChanges = new Subject<SimpleChanges>();\n\n /** Stream that emits true/false when openAll/closeAll is triggered. */\n readonly _openCloseAllActions: Subject<boolean> = new Subject<boolean>();\n\n /** A readonly id value to use for unique selection coordination. */\n readonly id = `cdk-accordion-${nextId++}`;\n\n /** Whether the accordion should allow multiple expanded accordion items simultaneously. */\n @Input()\n get multi(): boolean { return this._multi; }\n set multi(multi: boolean) { this._multi = coerceBooleanProperty(multi); }\n private _multi: boolean = false;\n\n /** Opens all enabled accordion items in an accordion where multi is enabled. */\n openAll(): void {\n this._openCloseAll(true);\n }\n\n /** Closes all enabled accordion items in an accordion where multi is enabled. */\n closeAll(): void {\n this._openCloseAll(false);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this._stateChanges.next(changes);\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n\n private _openCloseAll(expanded: boolean): void {\n if (this.multi) {\n this._openCloseAllActions.next(expanded);\n }\n }\n\n static ngAcceptInputType_multi: BooleanInput;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n Output,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n ChangeDetectorRef,\n SkipSelf,\n} from '@angular/core';\nimport {UniqueSelectionDispatcher} from '@angular/cdk/collections';\nimport {CdkAccordion} from './accordion';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Subscription} from 'rxjs';\n\n/** Used to generate unique ID for each accordion item. */\nlet nextId = 0;\n\n/**\n * An basic directive expected to be extended and decorated as a component. Sets up all\n * events and attributes needed to be managed by a CdkAccordion parent.\n */\n@Directive({\n selector: 'cdk-accordion-item, [cdkAccordionItem]',\n exportAs: 'cdkAccordionItem',\n providers: [\n // Provide CdkAccordion as undefined to prevent nested accordion items from registering\n // to the same accordion.\n {provide: CdkAccordion, useValue: undefined},\n ],\n})\nexport class CdkAccordionItem implements OnDestroy {\n /** Subscription to openAll/closeAll events. */\n private _openCloseAllSubscription = Subscription.EMPTY;\n /** Event emitted every time the AccordionItem is closed. */\n @Output() closed: EventEmitter<void> = new EventEmitter<void>();\n /** Event emitted every time the AccordionItem is opened. */\n @Output() opened: EventEmitter<void> = new EventEmitter<void>();\n /** Event emitted when the AccordionItem is destroyed. */\n @Output() destroyed: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n * @docs-private\n */\n @Output() expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** The unique AccordionItem id. */\n readonly id: string = `cdk-accordion-child-${nextId++}`;\n\n /** Whether the AccordionItem is expanded. */\n @Input()\n get expanded(): any { return this._expanded; }\n set expanded(expanded: any) {\n expanded = coerceBooleanProperty(expanded);\n\n // Only emit events and update the internal value if the value changes.\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n this.expandedChange.emit(expanded);\n\n if (expanded) {\n this.opened.emit();\n /**\n * In the unique selection dispatcher, the id parameter is the id of the CdkAccordionItem,\n * the name value is the id of the accordion.\n */\n const accordionId = this.accordion ? this.accordion.id : this.id;\n this._expansionDispatcher.notify(this.id, accordionId);\n } else {\n this.closed.emit();\n }\n\n // Ensures that the animation will run when the value is set outside of an `@Input`.\n // This includes cases like the open, close and toggle methods.\n this._changeDetectorRef.markForCheck();\n }\n }\n private _expanded = false;\n\n /** Whether the AccordionItem is disabled. */\n @Input()\n get disabled() { return this._disabled; }\n set disabled(disabled: any) { this._disabled = coerceBooleanProperty(disabled); }\n private _disabled: boolean = false;\n\n /** Unregister function for _expansionDispatcher. */\n private _removeUniqueSelectionListener: () => void = () => {};\n\n constructor(@Optional() @SkipSelf() public accordion: CdkAccordion,\n private _changeDetectorRef: ChangeDetectorRef,\n protected _expansionDispatcher: UniqueSelectionDispatcher) {\n this._removeUniqueSelectionListener =\n _expansionDispatcher.listen((id: string, accordionId: string) => {\n if (this.accordion && !this.accordion.multi &&\n this.accordion.id === accordionId && this.id !== id) {\n this.expanded = false;\n }\n });\n\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n if (this.accordion) {\n this._openCloseAllSubscription = this._subscribeToOpenCloseAllActions();\n }\n }\n\n /** Emits an event for the accordion item being destroyed. */\n ngOnDestroy() {\n this.opened.complete();\n this.closed.complete();\n this.destroyed.emit();\n this.destroyed.complete();\n this._removeUniqueSelectionListener();\n this._openCloseAllSubscription.unsubscribe();\n }\n\n /** Toggles the expanded state of the accordion item. */\n toggle(): void {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n }\n\n /** Sets the expanded state of the accordion item to false. */\n close(): void {\n if (!this.disabled) {\n this.expanded = false;\n }\n }\n\n /** Sets the expanded state of the accordion item to true. */\n open(): void {\n if (!this.disabled) {\n this.expanded = true;\n }\n }\n\n private _subscribeToOpenCloseAllActions(): Subscription {\n return this.accordion._openCloseAllActions.subscribe(expanded => {\n // Only change expanded state if item is enabled\n if (!this.disabled) {\n this.expanded = expanded;\n }\n });\n }\n\n static ngAcceptInputType_expanded: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {CdkAccordion} from './accordion';\nimport {CdkAccordionItem} from './accordion-item';\n\n\n@NgModule({\n exports: [CdkAccordion, CdkAccordionItem],\n declarations: [CdkAccordion, CdkAccordionItem],\n})\nexport class CdkAccordionModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {CdkAccordionItem} from './accordion-item';\nexport {CdkAccordion} from './accordion';\nexport * from './accordion-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accordion.js","sources":["../../../../../../src/cdk/accordion/accordion.ts","../../../../../../src/cdk/accordion/accordion-item.ts","../../../../../../src/cdk/accordion/accordion-module.ts","../../../../../../src/cdk/accordion/public-api.ts","../../../../../../src/cdk/accordion/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Directive, InjectionToken, Input, OnChanges, OnDestroy, SimpleChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/** Used to generate unique ID for each accordion. */\nlet nextId = 0;\n\n/**\n * Injection token that can be used to reference instances of `CdkAccordion`. It serves\n * as alternative token to the actual `CdkAccordion` class which could cause unnecessary\n * retention of the class and its directive metadata.\n */\nexport const CDK_ACCORDION = new InjectionToken<CdkAccordion>('CdkAccordion');\n\n/**\n * Directive whose purpose is to manage the expanded state of CdkAccordionItem children.\n */\n@Directive({\n selector: 'cdk-accordion, [cdkAccordion]',\n exportAs: 'cdkAccordion',\n providers: [{provide: CDK_ACCORDION, useExisting: CdkAccordion}],\n})\nexport class CdkAccordion implements OnDestroy, OnChanges {\n /** Emits when the state of the accordion changes */\n readonly _stateChanges = new Subject<SimpleChanges>();\n\n /** Stream that emits true/false when openAll/closeAll is triggered. */\n readonly _openCloseAllActions: Subject<boolean> = new Subject<boolean>();\n\n /** A readonly id value to use for unique selection coordination. */\n readonly id = `cdk-accordion-${nextId++}`;\n\n /** Whether the accordion should allow multiple expanded accordion items simultaneously. */\n @Input()\n get multi(): boolean { return this._multi; }\n set multi(multi: boolean) { this._multi = coerceBooleanProperty(multi); }\n private _multi: boolean = false;\n\n /** Opens all enabled accordion items in an accordion where multi is enabled. */\n openAll(): void {\n this._openCloseAll(true);\n }\n\n /** Closes all enabled accordion items in an accordion where multi is enabled. */\n closeAll(): void {\n this._openCloseAll(false);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this._stateChanges.next(changes);\n }\n\n ngOnDestroy() {\n this._stateChanges.complete();\n }\n\n private _openCloseAll(expanded: boolean): void {\n if (this.multi) {\n this._openCloseAllActions.next(expanded);\n }\n }\n\n static ngAcceptInputType_multi: BooleanInput;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n Output,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n ChangeDetectorRef,\n SkipSelf,\n Inject,\n} from '@angular/core';\nimport {UniqueSelectionDispatcher} from '@angular/cdk/collections';\nimport {CDK_ACCORDION, CdkAccordion} from './accordion';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {Subscription} from 'rxjs';\n\n/** Used to generate unique ID for each accordion item. */\nlet nextId = 0;\n\n/**\n * An basic directive expected to be extended and decorated as a component. Sets up all\n * events and attributes needed to be managed by a CdkAccordion parent.\n */\n@Directive({\n selector: 'cdk-accordion-item, [cdkAccordionItem]',\n exportAs: 'cdkAccordionItem',\n providers: [\n // Provide `CDK_ACCORDION` as undefined to prevent nested accordion items from\n // registering to the same accordion.\n {provide: CDK_ACCORDION, useValue: undefined},\n ],\n})\nexport class CdkAccordionItem implements OnDestroy {\n /** Subscription to openAll/closeAll events. */\n private _openCloseAllSubscription = Subscription.EMPTY;\n /** Event emitted every time the AccordionItem is closed. */\n @Output() closed: EventEmitter<void> = new EventEmitter<void>();\n /** Event emitted every time the AccordionItem is opened. */\n @Output() opened: EventEmitter<void> = new EventEmitter<void>();\n /** Event emitted when the AccordionItem is destroyed. */\n @Output() destroyed: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n * @docs-private\n */\n @Output() expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** The unique AccordionItem id. */\n readonly id: string = `cdk-accordion-child-${nextId++}`;\n\n /** Whether the AccordionItem is expanded. */\n @Input()\n get expanded(): any { return this._expanded; }\n set expanded(expanded: any) {\n expanded = coerceBooleanProperty(expanded);\n\n // Only emit events and update the internal value if the value changes.\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n this.expandedChange.emit(expanded);\n\n if (expanded) {\n this.opened.emit();\n /**\n * In the unique selection dispatcher, the id parameter is the id of the CdkAccordionItem,\n * the name value is the id of the accordion.\n */\n const accordionId = this.accordion ? this.accordion.id : this.id;\n this._expansionDispatcher.notify(this.id, accordionId);\n } else {\n this.closed.emit();\n }\n\n // Ensures that the animation will run when the value is set outside of an `@Input`.\n // This includes cases like the open, close and toggle methods.\n this._changeDetectorRef.markForCheck();\n }\n }\n private _expanded = false;\n\n /** Whether the AccordionItem is disabled. */\n @Input()\n get disabled() { return this._disabled; }\n set disabled(disabled: any) { this._disabled = coerceBooleanProperty(disabled); }\n private _disabled: boolean = false;\n\n /** Unregister function for _expansionDispatcher. */\n private _removeUniqueSelectionListener: () => void = () => {};\n\n constructor(@Optional() @Inject(CDK_ACCORDION) @SkipSelf() public accordion: CdkAccordion,\n private _changeDetectorRef: ChangeDetectorRef,\n protected _expansionDispatcher: UniqueSelectionDispatcher) {\n this._removeUniqueSelectionListener =\n _expansionDispatcher.listen((id: string, accordionId: string) => {\n if (this.accordion && !this.accordion.multi &&\n this.accordion.id === accordionId && this.id !== id) {\n this.expanded = false;\n }\n });\n\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n if (this.accordion) {\n this._openCloseAllSubscription = this._subscribeToOpenCloseAllActions();\n }\n }\n\n /** Emits an event for the accordion item being destroyed. */\n ngOnDestroy() {\n this.opened.complete();\n this.closed.complete();\n this.destroyed.emit();\n this.destroyed.complete();\n this._removeUniqueSelectionListener();\n this._openCloseAllSubscription.unsubscribe();\n }\n\n /** Toggles the expanded state of the accordion item. */\n toggle(): void {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n }\n\n /** Sets the expanded state of the accordion item to false. */\n close(): void {\n if (!this.disabled) {\n this.expanded = false;\n }\n }\n\n /** Sets the expanded state of the accordion item to true. */\n open(): void {\n if (!this.disabled) {\n this.expanded = true;\n }\n }\n\n private _subscribeToOpenCloseAllActions(): Subscription {\n return this.accordion._openCloseAllActions.subscribe(expanded => {\n // Only change expanded state if item is enabled\n if (!this.disabled) {\n this.expanded = expanded;\n }\n });\n }\n\n static ngAcceptInputType_expanded: BooleanInput;\n static ngAcceptInputType_disabled: BooleanInput;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {CdkAccordion} from './accordion';\nimport {CdkAccordionItem} from './accordion-item';\n\n\n@NgModule({\n exports: [CdkAccordion, CdkAccordionItem],\n declarations: [CdkAccordion, CdkAccordionItem],\n})\nexport class CdkAccordionModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {CdkAccordionItem} from './accordion-item';\nexport {CdkAccordion} from './accordion';\nexport * from './accordion-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {CDK_ACCORDION as ɵangular_material_src_cdk_accordion_accordion_a} from './accordion';"],"names":["nextId"],"mappings":"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"}
|