| /*! |
| * Bootstrap data.js v5.2.1 (https://getbootstrap.com/) |
| * Copyright 2011-2022 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.Data = factory()); |
| })(this, (function () { 'use strict'; |
| |
| /** |
| * -------------------------------------------------------------------------- |
| * Bootstrap (v5.2.1): dom/data.js |
| * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) |
| * -------------------------------------------------------------------------- |
| */ |
| |
| /** |
| * Constants |
| */ |
| const elementMap = new Map(); |
| const data = { |
| set(element, key, instance) { |
| if (!elementMap.has(element)) { |
| elementMap.set(element, new Map()); |
| } |
| |
| const instanceMap = elementMap.get(element); // make it clear we only want one instance per element |
| // can be removed later when multiple key/instances are fine to be used |
| |
| if (!instanceMap.has(key) && instanceMap.size !== 0) { |
| // eslint-disable-next-line no-console |
| console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); |
| return; |
| } |
| |
| instanceMap.set(key, instance); |
| }, |
| |
| get(element, key) { |
| if (elementMap.has(element)) { |
| return elementMap.get(element).get(key) || null; |
| } |
| |
| return null; |
| }, |
| |
| remove(element, key) { |
| if (!elementMap.has(element)) { |
| return; |
| } |
| |
| const instanceMap = elementMap.get(element); |
| instanceMap.delete(key); // free up element references if there are no instances left for an element |
| |
| if (instanceMap.size === 0) { |
| elementMap.delete(element); |
| } |
| } |
| |
| }; |
| |
| return data; |
| |
| })); |
| //# sourceMappingURL=data.js.map |