Skip to content

Commit f2eff97

Browse files
committed
feat(collapse): Collapse | 008 - Added collapse support for advance options
1 parent 0711757 commit f2eff97

File tree

5 files changed

+55
-13
lines changed

5 files changed

+55
-13
lines changed

public/index.html

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -82,28 +82,36 @@ <h2 class="sr-only" id="viewHeadingInput">Input Image</h2>
8282
</button>
8383
</div>
8484
</div>
85+
86+
<div class="settings__advance">
87+
<a href="#" role="button" aria-expanded="false" aria-controls="advance-options" data-label-collapse="Show Advance Options" data-label-expanded="Hide Advance Options">
88+
<span data-collapse-text="true">Show Advance Options</span>
89+
</a>
90+
</div>
8591
</div>
8692
</div>
87-
<div class="settings__item">
93+
<div class="collapse" id="advance-options">
94+
<div class="settings__item">
8895
<label for="internalResolution">Internal Resolution</label>
8996
<select id="internalResolution">
9097
<option value="low">Low</option>
9198
<option value="medium" selected="selected">Medium</option>
9299
<option value="high">High</option>
93100
<option value="full">Full</option>
94101
</select>
95-
</div>
96-
<div class="settings__item">
97-
<label for="segmentationThreshold">Segmentation Threshold</label>
98-
<input type="range" id="segmentationThreshold" min="0.1" max="0.9" step="0.1" value="0.7">
99-
</div>
100-
<div class="settings__item">
101-
<label for="backgroundColour">Output Background Colour</label>
102-
<input type="color" id="backgroundColour" value="#ffffff">
103-
</div>
104-
<div class="settings__item">
105-
<div class="settings__button">
106-
<button type="submit">Submit</button>
102+
</div>
103+
<div class="settings__item">
104+
<label for="segmentationThreshold">Segmentation Threshold</label>
105+
<input type="range" id="segmentationThreshold" min="0.1" max="0.9" step="0.1" value="0.7">
106+
</div>
107+
<div class="settings__item">
108+
<label for="backgroundColour">Output Background Colour</label>
109+
<input type="color" id="backgroundColour" value="#ffffff">
110+
</div>
111+
<div class="settings__item">
112+
<div class="settings__button">
113+
<button type="submit">Submit</button>
114+
</div>
107115
</div>
108116
</div>
109117
</div>

src/component/collapse/events.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/* istanbul ignore file */
2+
3+
document.addEventListener('click', (evt) => {
4+
if (evt.target.closest('[aria-expanded]')) {
5+
const source = evt.target.closest('[aria-expanded]')
6+
const textElem = source.querySelector('[data-collapse-text]')
7+
const state = source.getAttribute('aria-expanded')
8+
const target = document.getElementById(source.getAttribute('aria-controls'))
9+
10+
if (!(target instanceof HTMLElement)) {
11+
return
12+
}
13+
14+
// Toggle State
15+
source.setAttribute('aria-expanded', state === 'false' ? 'true' : 'false')
16+
textElem.innerHTML = source.getAttribute(state === 'false' ? 'data-label-expanded' : 'data-label-collapse')
17+
18+
if (state === 'false') {
19+
target.style.height = `${target.scrollHeight}px`
20+
return
21+
}
22+
23+
// Close it
24+
target.style.height = 0
25+
}
26+
})

src/component/collapse/index.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.collapse {
2+
height: 0;
3+
overflow: hidden;
4+
transition: height 0.15s ease-in-out;
5+
}

src/component/collapse/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import './index.css'
2+
import './events'

src/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import './component/input-source'
1111
import './component/settings'
1212
import './component/output'
1313
import './component/suggestions'
14+
import './component/collapse'
1415

1516
async function main () {
1617
AlertService.init()

0 commit comments

Comments
 (0)