turbo_boost-elements 0.0.13 → 0.0.14
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.
- 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
|