Skip to content

Commit 3c74546

Browse files
authored
Merge pull request #86 from github/add-on-change-d-alias
Add onChange and onChanged alias
2 parents 984ef06 + e1578c6 commit 3c74546

File tree

3 files changed

+83
-0
lines changed

3 files changed

+83
-0
lines changed

custom-elements.json

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@
153153
}
154154
]
155155
},
156+
{
157+
"kind": "field",
158+
"name": "onChange"
159+
},
156160
{
157161
"kind": "field",
158162
"name": "onTabContainerChange"
@@ -161,6 +165,15 @@
161165
"kind": "field",
162166
"name": "onTabContainerChanged"
163167
},
168+
{
169+
"kind": "field",
170+
"name": "onChanged"
171+
},
172+
{
173+
"kind": "field",
174+
"name": "activeTab",
175+
"readonly": true
176+
},
164177
{
165178
"kind": "field",
166179
"name": "activePanel",
@@ -179,6 +192,10 @@
179192
}
180193
]
181194
},
195+
{
196+
"kind": "field",
197+
"name": "selectedTabIndex"
198+
},
182199
{
183200
"kind": "method",
184201
"name": "selectTab",
@@ -356,6 +373,10 @@
356373
}
357374
]
358375
},
376+
{
377+
"kind": "field",
378+
"name": "onChange"
379+
},
359380
{
360381
"kind": "field",
361382
"name": "#onTabContainerChange",
@@ -382,12 +403,22 @@
382403
"kind": "field",
383404
"name": "onTabContainerChanged"
384405
},
406+
{
407+
"kind": "field",
408+
"name": "onChanged"
409+
},
385410
{
386411
"kind": "field",
387412
"name": "#tabList",
388413
"privacy": "private",
389414
"readonly": true
390415
},
416+
{
417+
"kind": "field",
418+
"name": "#tabListTabWrapper",
419+
"privacy": "private",
420+
"readonly": true
421+
},
391422
{
392423
"kind": "field",
393424
"name": "#beforeTabsSlot",
@@ -424,6 +455,11 @@
424455
"privacy": "private",
425456
"readonly": true
426457
},
458+
{
459+
"kind": "field",
460+
"name": "activeTab",
461+
"readonly": true
462+
},
427463
{
428464
"kind": "field",
429465
"name": "activePanel",
@@ -507,6 +543,13 @@
507543
}
508544
]
509545
},
546+
{
547+
"kind": "field",
548+
"name": "selectedTabIndex",
549+
"type": {
550+
"text": "number"
551+
}
552+
},
510553
{
511554
"kind": "method",
512555
"name": "selectTab",

src/tab-container-element.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ export class TabContainerElement extends HTMLElement {
3131
return this
3232
}
3333

34+
get onChange() {
35+
return this.onTabContainerChange
36+
}
37+
38+
set onChange(listener: ((event: TabContainerChangeEvent) => void) | null) {
39+
this.onTabContainerChange = listener
40+
}
41+
3442
#onTabContainerChange: ((event: TabContainerChangeEvent) => void) | null = null
3543
get onTabContainerChange() {
3644
return this.#onTabContainerChange
@@ -67,6 +75,14 @@ export class TabContainerElement extends HTMLElement {
6775
}
6876
}
6977

78+
get onChanged() {
79+
return this.onTabContainerChanged
80+
}
81+
82+
set onChanged(listener: ((event: TabContainerChangeEvent) => void) | null) {
83+
this.onTabContainerChanged = listener
84+
}
85+
7086
static observedAttributes = ['vertical']
7187

7288
get #tabList() {

test/test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,30 @@ describe('tab-container', function () {
4343
el.dispatchEvent(new Event('tab-container-changed'))
4444
assert.equal(called, true)
4545
})
46+
47+
it('has an onChange property that is aliased to onTabContainerChange', function () {
48+
const el = document.createElement('tab-container')
49+
let called = false
50+
const listener = () => (called = true)
51+
el.onChange = listener
52+
assert.equal(el.onTabContainerChange, listener)
53+
assert.equal(el.onChange, listener)
54+
assert.equal(called, false)
55+
el.dispatchEvent(new Event('tab-container-change'))
56+
assert.equal(called, true)
57+
})
58+
59+
it('has an onChanged property that is aliased to onTabContainerChanged', function () {
60+
const el = document.createElement('tab-container')
61+
let called = false
62+
const listener = () => (called = true)
63+
el.onChanged = listener
64+
assert.equal(el.onTabContainerChanged, listener)
65+
assert.equal(el.onChanged, listener)
66+
assert.equal(called, false)
67+
el.dispatchEvent(new Event('tab-container-changed'))
68+
assert.equal(called, true)
69+
})
4670
})
4771

4872
describe('after tree insertion with aria-selected on second tab', function () {

0 commit comments

Comments
 (0)