mirror of
				https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
				synced 2025-11-04 03:35:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
(function() {
 | 
						|
  /** @type {import("../htmx").HtmxInternalApi} */
 | 
						|
  var api
 | 
						|
 | 
						|
  htmx.defineExtension('multi-swap', {
 | 
						|
    init: function(apiRef) {
 | 
						|
      api = apiRef
 | 
						|
    },
 | 
						|
    isInlineSwap: function(swapStyle) {
 | 
						|
      return swapStyle.indexOf('multi:') === 0
 | 
						|
    },
 | 
						|
    handleSwap: function(swapStyle, target, fragment, settleInfo) {
 | 
						|
      if (swapStyle.indexOf('multi:') === 0) {
 | 
						|
        var selectorToSwapStyle = {}
 | 
						|
        var elements = swapStyle.replace(/^multi\s*:\s*/, '').split(/\s*,\s*/)
 | 
						|
 | 
						|
        elements.forEach(function(element) {
 | 
						|
          var split = element.split(/\s*:\s*/)
 | 
						|
          var elementSelector = split[0]
 | 
						|
          var elementSwapStyle = typeof (split[1]) !== 'undefined' ? split[1] : 'innerHTML'
 | 
						|
 | 
						|
          if (elementSelector.charAt(0) !== '#') {
 | 
						|
            console.error("HTMX multi-swap: unsupported selector '" + elementSelector + "'. Only ID selectors starting with '#' are supported.")
 | 
						|
            return
 | 
						|
          }
 | 
						|
 | 
						|
          selectorToSwapStyle[elementSelector] = elementSwapStyle
 | 
						|
        })
 | 
						|
 | 
						|
        for (var selector in selectorToSwapStyle) {
 | 
						|
          var swapStyle = selectorToSwapStyle[selector]
 | 
						|
          var elementToSwap = fragment.querySelector(selector)
 | 
						|
          if (elementToSwap) {
 | 
						|
            api.oobSwap(swapStyle, elementToSwap, settleInfo)
 | 
						|
          } else {
 | 
						|
            console.warn("HTMX multi-swap: selector '" + selector + "' not found in source content.")
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        return true
 | 
						|
      }
 | 
						|
    }
 | 
						|
  })
 | 
						|
})()
 |