@@ -34,6 +34,7 @@ public extension HTMLElementAttribute {
34
34
case get( String )
35
35
case post( String )
36
36
case on( Event , String )
37
+ case onevent( HTMLElementAttribute . Extra . event , String )
37
38
case pushURL( URL )
38
39
case select( String )
39
40
case selectOOB( String )
@@ -88,7 +89,7 @@ public extension HTMLElementAttribute {
88
89
89
90
case " get " : self = . get( string ( ) )
90
91
case " post " : self = . post( string ( ) )
91
- case " on " :
92
+ case " on " , " onevent " :
92
93
let string : String = literal ( )
93
94
let values : [ Substring ] = string. split ( separator: " , " )
94
95
let event_string : String = String ( values [ 0 ] )
@@ -97,8 +98,13 @@ public extension HTMLElementAttribute {
97
98
value. removeFirst ( )
98
99
}
99
100
value. removeLast ( )
100
- let event : Event = Event ( rawValue: event_string) !
101
- self = . on( event, value)
101
+ if key == " on " {
102
+ let event : Event = Event ( rawValue: event_string) !
103
+ self = . on( event, value)
104
+ } else {
105
+ let event : HTMLElementAttribute . Extra . event = . init( rawValue: event_string) !
106
+ self = . onevent( event, value)
107
+ }
102
108
break
103
109
case " pushURL " : self = . pushURL( URL ( rawValue: string ( ) ) !)
104
110
case " select " : self = . select( string ( ) )
@@ -126,7 +132,7 @@ public extension HTMLElementAttribute {
126
132
case . ext( _) : return " ext "
127
133
case . headers( _, _) : return " headers "
128
134
case . history( _) : return " history "
129
- case . historyElt( _) : return " historyElt "
135
+ case . historyElt( _) : return " history-elt "
130
136
case . include( _) : return " include "
131
137
case . indicator( _) : return " indicator "
132
138
case . inherit( _) : return " inherit "
@@ -142,7 +148,8 @@ public extension HTMLElementAttribute {
142
148
143
149
case . get( _) : return " get "
144
150
case . post( _) : return " post "
145
- case . on( let event, _) : return " on: " + event. rawValue
151
+ case . on( let event, _) : return " on: " + event. key
152
+ case . onevent( let event, _) : return " on: " + event. rawValue
146
153
case . pushURL( _) : return " push-url "
147
154
case . select( _) : return " select "
148
155
case . selectOOB( _) : return " select-oob "
@@ -188,6 +195,7 @@ public extension HTMLElementAttribute {
188
195
case . get( let value) : return value
189
196
case . post( let value) : return value
190
197
case . on( _, let value) : return value
198
+ case . onevent( _, let value) : return value
191
199
case . pushURL( let url) : return url. htmlValue
192
200
case . select( let value) : return value
193
201
case . selectOOB( let value) : return value
@@ -226,8 +234,8 @@ public extension HTMLElementAttribute.HTMX {
226
234
case beforeOnLoad
227
235
case beforeProcessNode
228
236
case beforeRequest
229
- case beforeSwap
230
237
case beforeSend
238
+ case beforeSwap
231
239
case beforeTransition
232
240
case configRequest
233
241
case confirm
@@ -244,14 +252,18 @@ public extension HTMLElementAttribute.HTMX {
244
252
case oobBeforeSwap
245
253
case oobErrorNoTarget
246
254
case prompt
255
+ case beforeHistoryUpdate
247
256
case pushedIntoHistory
257
+ case replacedInHistory
248
258
case responseError
249
259
case sendError
250
260
case sseError
251
261
case sseOpen
252
262
case swapError
253
263
case targetError
254
264
case timeout
265
+ case trigger
266
+ case validateURL
255
267
case validationValidate
256
268
case validationFailed
257
269
case validationHalted
@@ -260,17 +272,54 @@ public extension HTMLElementAttribute.HTMX {
260
272
case xhrLoadStart
261
273
case xhrProgress
262
274
263
- public var htmlValue : String {
264
- switch self {
265
- case . validationValidate: return " validation:validate "
266
- case . validationFailed: return " validation:failed "
267
- case . validationHalted: return " validation:halted "
268
- case . xhrAbort: return " xhr:abort "
269
- case . xhrLoadEnd: return " xhr:loadend "
270
- case . xhrLoadStart: return " xhr:loadstart "
271
- case . xhrProgress: return " xhr:progress "
272
- default : return rawValue
275
+ public var key : String {
276
+ func slug( ) -> String {
277
+ switch self {
278
+ case . afterOnLoad: return " after-on-load "
279
+ case . afterProcessNode: return " after-process-node "
280
+ case . afterRequest: return " after-request "
281
+ case . afterSettle: return " after-settle "
282
+ case . afterSwap: return " after-swap "
283
+ case . beforeCleanupElement: return " before-cleanup-element "
284
+ case . beforeOnLoad: return " before-on-load "
285
+ case . beforeProcessNode: return " before-process-node "
286
+ case . beforeRequest: return " before-request "
287
+ case . beforeSend: return " before-send "
288
+ case . beforeSwap: return " before-swap "
289
+ case . beforeTransition: return " before-transition "
290
+ case . configRequest: return " config-request "
291
+ case . historyCacheError: return " history-cache-error "
292
+ case . historyCacheMiss: return " history-cache-miss "
293
+ case . historyCacheMissError: return " history-cache-miss-error "
294
+ case . historyCacheMissLoad: return " history-cache-miss-load "
295
+ case . historyRestore: return " history-restore "
296
+ case . beforeHistorySave: return " before-history-save "
297
+ case . noSSESourceError: return " no-sse-source-error "
298
+ case . onLoadError: return " on-load-error "
299
+ case . oobAfterSwap: return " oob-after-swap "
300
+ case . oobBeforeSwap: return " oob-before-swap "
301
+ case . oobErrorNoTarget: return " oob-error-no-target "
302
+ case . beforeHistoryUpdate: return " before-history-update "
303
+ case . pushedIntoHistory: return " pushed-into-history "
304
+ case . replacedInHistory: return " replaced-in-history "
305
+ case . responseError: return " response-error "
306
+ case . sendError: return " send-error "
307
+ case . sseError: return " sse-error "
308
+ case . sseOpen: return " sse-open "
309
+ case . swapError: return " swap-error "
310
+ case . targetError: return " target-error "
311
+ case . validateURL: return " validate-url "
312
+ case . validationValidate: return " validation:validate "
313
+ case . validationFailed: return " validation:failed "
314
+ case . validationHalted: return " validation:halted "
315
+ case . xhrAbort: return " xhr:abort "
316
+ case . xhrLoadEnd: return " xhr:loadend "
317
+ case . xhrLoadStart: return " xhr:loadstart "
318
+ case . xhrProgress: return " xhr:progress "
319
+ default : return rawValue
320
+ }
273
321
}
322
+ return " : " + slug( )
274
323
}
275
324
}
276
325
0 commit comments