Skip to content
This repository was archived by the owner on Aug 7, 2020. It is now read-only.

Commit 6b1adda

Browse files
svandecappelleAxelPeter
authored andcommitted
feat(oui-collapsible): add on-toggle event (#372)
1 parent 08044db commit 6b1adda

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

packages/oui-collapsible/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@
2020
</oui-collapsible>
2121
```
2222

23+
### Event handler
24+
25+
```html:preview
26+
<oui-collapsible heading="Title" aria-label="Action" expanded="true" on-toggle="$ctrl.onToggle(expanded)">
27+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis semper ligula nec fringilla tempor. In rhoncus ullamcorper feugiat. Phasellus vel ipsum vitae neque varius luctus. Proin id iaculis arcu. Fusce justo arcu, egestas vel nulla nec, dictum cursus lacus. Aenean elementum vel odio quis rutrum. In quis tellus in neque vulputate rhoncus vitae ut justo. Ut dignissim varius est in consequat. Donec nisi mauris, pellentesque condimentum congue in, blandit ut arcu. In et elit ipsum.
28+
</oui-collapsible>
29+
```
30+
2331
## API
2432

2533
### oui-collapsible
@@ -29,3 +37,4 @@
2937
| `heading` | string | @ | no | n/a | n/a | text of the heading
3038
| `aria-label` | string | @? | yes | n/a | n/a | accessibility label
3139
| `expanded` | boolean | <? | yes | n/a | `false` | initial expanded state
40+
| `on-toggle` | function | & | no | n/a | n/a | on collapsible state changed event handler

packages/oui-collapsible/src/collapsible.component.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ export default {
88
id: "@",
99
heading: "@",
1010
ariaLabel: "@?",
11-
expanded: "<?"
11+
expanded: "<?",
12+
onToggle: "&"
1213
},
1314
transclude: true
1415
};

packages/oui-collapsible/src/collapsible.controller.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,6 @@ export default class {
3838

3939
toggle () {
4040
this.expanded = !this.expanded;
41+
this.onToggle({ expanded: this.expanded });
4142
}
4243
}

packages/oui-collapsible/src/index.spec.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,5 +75,23 @@ describe("ouiCollapsible", () => {
7575
const contentEl = bodyEl.querySelector(".custom-content");
7676
expect(contentEl).toBeTruthy();
7777
});
78+
79+
it("should call ontoggle when defined into attributes", () => {
80+
const onToggle = jasmine.createSpy("onToggle");
81+
const element = TestUtils.compileTemplate(`
82+
<oui-collapsible heading="Title" aria-label="Action" on-toggle="$ctrl.onToggle(expanded)"></oui-collapsible>`, {
83+
onToggle
84+
});
85+
86+
const headerEl = angular.element(getHeaderElement(element));
87+
88+
// Expand
89+
headerEl.triggerHandler("click");
90+
expect(onToggle).toHaveBeenCalledWith(true);
91+
92+
// Collapse
93+
headerEl.triggerHandler("click");
94+
expect(onToggle).toHaveBeenCalledWith(false);
95+
});
7896
});
7997
});

0 commit comments

Comments
 (0)