turbo_boost-elements 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/assets/builds/@turbo-boost/elements.js +2 -2
- data/app/assets/builds/@turbo-boost/elements.js.map +2 -2
- data/app/javascript/elements/toggle_elements/target_element/index.js +15 -3
- data/app/javascript/elements/toggle_elements/trigger_element/index.js +3 -7
- data/lib/turbo_boost/elements/version.rb +1 -1
- metadata +2 -2
@@ -59,6 +59,7 @@ export default class ToggleTargetElement extends ToggleElement {
|
|
59
59
|
|
60
60
|
collapse (delay = 250) {
|
61
61
|
clearTimeout(this.collapseTimeout)
|
62
|
+
if (this.busy) return
|
62
63
|
if (typeof delay !== 'number') delay = 250
|
63
64
|
|
64
65
|
if (delay > 0)
|
@@ -78,7 +79,7 @@ export default class ToggleTargetElement extends ToggleElement {
|
|
78
79
|
|
79
80
|
collapseMatches () {
|
80
81
|
document.querySelectorAll(this.collapseSelector).forEach(el => {
|
81
|
-
if (el === this) return
|
82
|
+
if (el.id === this.id) return
|
82
83
|
if (el.collapse) el.collapse(0)
|
83
84
|
})
|
84
85
|
}
|
@@ -94,10 +95,17 @@ export default class ToggleTargetElement extends ToggleElement {
|
|
94
95
|
return this.getAttribute('focus-selector')
|
95
96
|
}
|
96
97
|
|
98
|
+
// the active trigger
|
97
99
|
get triggerElement () {
|
98
100
|
return document.getElementById(this.labeledBy)
|
99
101
|
}
|
100
102
|
|
103
|
+
// all triggers
|
104
|
+
get triggerElements () {
|
105
|
+
return document.querySelectorAll(`[aria-controls="${this.id}"]`)
|
106
|
+
}
|
107
|
+
|
108
|
+
// the dom id of the active trigger
|
101
109
|
get labeledBy () {
|
102
110
|
return this.getAttribute('aria-labeledby')
|
103
111
|
}
|
@@ -113,10 +121,14 @@ export default class ToggleTargetElement extends ToggleElement {
|
|
113
121
|
}
|
114
122
|
|
115
123
|
get expanded () {
|
116
|
-
return this.triggerElement.expanded
|
124
|
+
return this.triggerElement ? this.triggerElement.expanded : false
|
117
125
|
}
|
118
126
|
|
119
127
|
set expanded (value) {
|
120
|
-
|
128
|
+
this.triggerElements.forEach(el => (el.expanded = value))
|
129
|
+
}
|
130
|
+
|
131
|
+
get busy () {
|
132
|
+
return this.triggerElement && this.triggerElement.busy
|
121
133
|
}
|
122
134
|
}
|
@@ -68,7 +68,6 @@ export default class ToggleTriggerElement extends ToggleElement {
|
|
68
68
|
currentFocusSelector = this.focusSelector
|
69
69
|
this.targetElement.labeledBy = this.id
|
70
70
|
this.targetElement.collapseMatches()
|
71
|
-
this.targetElement.busy = true
|
72
71
|
this.busy = true
|
73
72
|
// TODO: implement cache - this.targetElement.renderCachedHTML()
|
74
73
|
}
|
@@ -92,8 +91,7 @@ export default class ToggleTriggerElement extends ToggleElement {
|
|
92
91
|
// runs before the morph is executed
|
93
92
|
setTimeout(() => {
|
94
93
|
this.busy = false
|
95
|
-
this.
|
96
|
-
this.morphToggleElements.forEach(el => (el.busy = false))
|
94
|
+
this.morphToggleTriggerElements.forEach(el => (el.busy = false))
|
97
95
|
}, delay - 10)
|
98
96
|
|
99
97
|
// runs after the morph is executed
|
@@ -131,11 +129,9 @@ export default class ToggleTriggerElement extends ToggleElement {
|
|
131
129
|
}
|
132
130
|
|
133
131
|
// all toggle elements contained by the `morphElement`
|
134
|
-
get
|
132
|
+
get morphToggleTriggerElements () {
|
135
133
|
return Array.from(
|
136
|
-
this.morphElement.querySelectorAll(
|
137
|
-
'turbo-boost-toggle-trigger,turbo-boost-toggle-target'
|
138
|
-
)
|
134
|
+
this.morphElement.querySelectorAll('turbo-boost-toggle-trigger')
|
139
135
|
)
|
140
136
|
}
|
141
137
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turbo_boost-elements
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nate Hopkins (hopsoft)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02-
|
11
|
+
date: 2023-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|