All files / src/dom data.js

100% Statements 24/24
100% Branches 12/12
100% Functions 1/1
100% Lines 24/24

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68                          14x 14x 14x 14x   414x 393x       393x     414x     301x 146x     155x 155x 154x     1x     17x 1x     16x 16x 15x 15x           14x   414x     301x     17x          
/**
 * --------------------------------------------------------------------------
 * Bootstrap (v5.0.0-alpha1): dom/data.js
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 * --------------------------------------------------------------------------
 */
 
/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */
 
const mapData = (() => {
  const storeData = {}
  let id = 1
  return {
    set(element, key, data) {
      if (typeof element.key === 'undefined') {
        element.key = {
          key,
          id
        }
        id++
      }
 
      storeData[element.key.id] = data
    },
    get(element, key) {
      if (!element || typeof element.key === 'undefined') {
        return null
      }
 
      const keyProperties = element.key
      if (keyProperties.key === key) {
        return storeData[keyProperties.id]
      }
 
      return null
    },
    delete(element, key) {
      if (typeof element.key === 'undefined') {
        return
      }
 
      const keyProperties = element.key
      if (keyProperties.key === key) {
        delete storeData[keyProperties.id]
        delete element.key
      }
    }
  }
})()
 
const Data = {
  setData(instance, key, data) {
    mapData.set(instance, key, data)
  },
  getData(instance, key) {
    return mapData.get(instance, key)
  },
  removeData(instance, key) {
    mapData.delete(instance, key)
  }
}
 
export default Data