# 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