73 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
/*!
 | 
						|
  * Bootstrap manipulator.js v5.3.2 (https://getbootstrap.com/)
 | 
						|
  * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
 | 
						|
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 | 
						|
  */
 | 
						|
(function (global, factory) {
 | 
						|
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
 | 
						|
  typeof define === 'function' && define.amd ? define(factory) :
 | 
						|
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Manipulator = factory());
 | 
						|
})(this, (function () { 'use strict';
 | 
						|
 | 
						|
  /**
 | 
						|
   * --------------------------------------------------------------------------
 | 
						|
   * Bootstrap dom/manipulator.js
 | 
						|
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 | 
						|
   * --------------------------------------------------------------------------
 | 
						|
   */
 | 
						|
 | 
						|
  function normalizeData(value) {
 | 
						|
    if (value === 'true') {
 | 
						|
      return true;
 | 
						|
    }
 | 
						|
    if (value === 'false') {
 | 
						|
      return false;
 | 
						|
    }
 | 
						|
    if (value === Number(value).toString()) {
 | 
						|
      return Number(value);
 | 
						|
    }
 | 
						|
    if (value === '' || value === 'null') {
 | 
						|
      return null;
 | 
						|
    }
 | 
						|
    if (typeof value !== 'string') {
 | 
						|
      return value;
 | 
						|
    }
 | 
						|
    try {
 | 
						|
      return JSON.parse(decodeURIComponent(value));
 | 
						|
    } catch (_unused) {
 | 
						|
      return value;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  function normalizeDataKey(key) {
 | 
						|
    return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);
 | 
						|
  }
 | 
						|
  const Manipulator = {
 | 
						|
    setDataAttribute(element, key, value) {
 | 
						|
      element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);
 | 
						|
    },
 | 
						|
    removeDataAttribute(element, key) {
 | 
						|
      element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);
 | 
						|
    },
 | 
						|
    getDataAttributes(element) {
 | 
						|
      if (!element) {
 | 
						|
        return {};
 | 
						|
      }
 | 
						|
      const attributes = {};
 | 
						|
      const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));
 | 
						|
      for (const key of bsKeys) {
 | 
						|
        let pureKey = key.replace(/^bs/, '');
 | 
						|
        pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
 | 
						|
        attributes[pureKey] = normalizeData(element.dataset[key]);
 | 
						|
      }
 | 
						|
      return attributes;
 | 
						|
    },
 | 
						|
    getDataAttribute(element, key) {
 | 
						|
      return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));
 | 
						|
    }
 | 
						|
  };
 | 
						|
 | 
						|
  return Manipulator;
 | 
						|
 | 
						|
}));
 | 
						|
//# sourceMappingURL=manipulator.js.map
 |