iconly 1.4.2 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,14 +13,16 @@
13
13
  </div>
14
14
  <br>
15
15
 
16
- ### Installation
16
+ &#10148; **Installation**
17
+
17
18
  ```
18
19
  $ yarn add iconly
19
20
  ```
20
21
 
21
22
  <br>
22
23
 
23
- ### Import
24
+ &#10148; **Import**
25
+
24
26
  ```javascript
25
27
  import Iconly from 'iconly';
26
28
  ```
@@ -36,29 +38,30 @@ iconly.init().then(() => console.log('Iconly is initialized and icons are loaded
36
38
  ```
37
39
  <br>
38
40
 
39
- ### File with icons
40
- <sub>icons.svg</sub>
41
+ &#10148; **File with icons**
41
42
 
42
43
  ```HTML
43
44
  <svg>
44
- <symbol id="icon-one" viewBox="0 0 100 100">
45
- <path ... />
46
- </symbol>
47
- <symbol id="icon-two" viewBox="0 0 100 100">
48
- <path ... />
49
- </symbol>
50
- ...
45
+ <symbol id="icon-one" viewBox="0 0 100 100">
46
+ <path ... />
47
+ </symbol>
48
+ <symbol id="icon-two" viewBox="0 0 100 100">
49
+ <path ... />
50
+ </symbol>
51
+ ...
51
52
  </svg>
52
53
  ```
53
54
  <br>
54
55
 
55
- ### Usage
56
+ &#10148; **Usage**
57
+
56
58
  ```HTML
57
59
  <svg>
58
- <use href="#icon-name"></use>
60
+ <use href="#icon-name"></use>
59
61
  </svg>
60
62
  ```
61
63
  <br>
62
64
 
63
- ### License
65
+ &#10148; **License**
66
+
64
67
  <sup>iconly is released under MIT license</sup>
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/index.js"],"sourcesContent":["class Iconly {\r\n\tstatic #dbInstance;\r\n\r\n\t#options;\r\n\r\n\t#container;\r\n\r\n\tconstructor(options) {\r\n\t\tthis.#options = {\r\n\t\t\tfile: './icons.svg',\r\n\t\t\tversion: '1.0',\r\n\t\t\tdebug: false,\r\n\t\t\tcontainer: document.body || document.documentElement,\r\n\t\t\t...options\r\n\t\t};\r\n\r\n\t\tthis.#container = typeof this.#options.container === 'string' ? document.querySelector(this.#options.container) : this.#options.container;\r\n\r\n\t\tif (!Iconly.#dbInstance) {\r\n\t\t\tIconly.#dbInstance = this.#openDB('iconlyDB', 1);\r\n\t\t}\r\n\t}\r\n\r\n\tasync #openDB(name, version) {\r\n\t\tif (!('indexedDB' in window)) {\r\n\t\t\tthis.#logError('This browser doesn\\'t support IndexedDB');\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet db;\r\n\r\n\t\ttry {\r\n\t\t\tdb = await new Promise((resolve, reject) => {\r\n\t\t\t\tconst request = indexedDB.open(name, version);\r\n\r\n\t\t\t\trequest.onerror = () => reject(`IndexedDB error: ${request.error}`);\r\n\t\t\t\trequest.onupgradeneeded = (event) => {\r\n\t\t\t\t\tconst db = event.target.result;\r\n\t\t\t\t\tif (!db.objectStoreNames.contains('icons')) {\r\n\t\t\t\t\t\tdb.createObjectStore('icons', { keyPath: 'version' });\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\trequest.onsuccess = () => resolve(request.result);\r\n\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError(error);\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t\treturn db;\r\n\t}\r\n\r\n\tasync #fetchData(file) {\r\n\t\ttry {\r\n\t\t\tconst response = await fetch(file);\r\n\r\n\t\t\tif (!response.ok) throw new Error('Network response was not ok');\r\n\r\n\t\t\treturn response.text();\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError(error);\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tasync #insert(data) {\r\n\t\tlet iconSetDiv = document.getElementById('iconset');\r\n\r\n\t\tif (!iconSetDiv) {\r\n\t\t\ticonSetDiv = document.createElement('div');\r\n\t\t\ticonSetDiv.id = 'iconset';\r\n\t\t\ticonSetDiv.setAttribute('aria-hidden', 'true');\r\n\t\t\ticonSetDiv.style.cssText = 'width: 0; height: 0; position: absolute; left: -9999px;';\r\n\r\n\t\t\tthis.#container.appendChild(iconSetDiv);\r\n\t\t}\r\n\r\n\t\ticonSetDiv.innerHTML = data;\r\n\t}\r\n\r\n\tasync init() {\r\n\t\tconst { file, version } = this.#options;\r\n\r\n\t\ttry {\r\n\t\t\tlet data = await this.#fetchData(file);\r\n\r\n\t\t\tconst db = await Iconly.#dbInstance;\r\n\t\t\tconst tx = db.transaction('icons', 'readwrite');\r\n\t\t\tconst store = tx.objectStore('icons');\r\n\r\n\t\t\tconst dbVersion = await new Promise((resolve, reject) => {\r\n\t\t\t\tconst request = store.get(version);\r\n\r\n\t\t\t\trequest.onsuccess = () => resolve(request.result);\r\n\t\t\t\trequest.onerror = () => reject(request.error);\r\n\t\t\t});\r\n\r\n\t\t\tif (!(dbVersion && dbVersion.data)) {\r\n\t\t\t\tawait new Promise((resolve, reject) => {\r\n\t\t\t\t\tconst request = store.put({ version, data });\r\n\r\n\t\t\t\t\trequest.onsuccess = () => resolve();\r\n\t\t\t\t\trequest.onerror = () => reject(request.error);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tdata = dbVersion.data;\r\n\t\t\t}\r\n\r\n\t\t\tawait tx.complete;\r\n\t\t\tawait this.#insert(data);\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError('Error initializing Iconly:', error);\r\n\t\t}\r\n\t}\r\n\r\n\t#logError(...messages) {\r\n\t\tif (this.#options.debug) {\r\n\t\t\tconsole.error(...messages);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Iconly;\r\n"],"names":[],"version":3,"file":"index.js.map"}
1
+ {"mappings":"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","sources":["src/index.js"],"sourcesContent":["class Iconly {\r\n\tstatic #dbInstance;\r\n\r\n\t#options;\r\n\r\n\t#container;\r\n\r\n\tconstructor(options) {\r\n\t\tthis.#options = {\r\n\t\t\tfile: './icons.svg',\r\n\t\t\tversion: '1.0',\r\n\t\t\tdebug: false,\r\n\t\t\tcontainer: document.body || document.documentElement,\r\n\t\t\t...options\r\n\t\t};\r\n\r\n\t\tthis.#container = typeof this.#options.container === 'string' ? document.querySelector(this.#options.container) : this.#options.container;\r\n\r\n\t\tif (!Iconly.#dbInstance) {\r\n\t\t\tIconly.#dbInstance = this.#openDB('iconlyDB', 1);\r\n\t\t}\r\n\t}\r\n\r\n\tasync #openDB(name, version) {\r\n\t\tif (!('indexedDB' in window)) {\r\n\t\t\tthis.#logError('This browser doesn\\'t support IndexedDB');\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet db;\r\n\r\n\t\ttry {\r\n\t\t\tdb = await new Promise((resolve, reject) => {\r\n\t\t\t\tconst request = indexedDB.open(name, version);\r\n\r\n\t\t\t\trequest.onerror = () => reject(`IndexedDB error: ${request.error}`);\r\n\t\t\t\trequest.onupgradeneeded = (event) => {\r\n\t\t\t\t\tconst db = event.target.result;\r\n\t\t\t\t\tif (!db.objectStoreNames.contains('icons')) {\r\n\t\t\t\t\t\tdb.createObjectStore('icons', { keyPath: 'version' });\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\trequest.onsuccess = () => resolve(request.result);\r\n\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError(error);\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\r\n\t\treturn db;\r\n\t}\r\n\r\n\tasync #fetchData(file) {\r\n\t\ttry {\r\n\t\t\tconst response = await fetch(file);\r\n\r\n\t\t\tif (!response.ok) throw new Error('Network response was not ok');\r\n\r\n\t\t\treturn response.text();\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError(error);\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tasync #insert(data) {\r\n\t\tlet iconSetDiv = document.getElementById('iconset');\r\n\r\n\t\tif (!iconSetDiv) {\r\n\t\t\ticonSetDiv = document.createElement('div');\r\n\t\t\ticonSetDiv.id = 'iconset';\r\n\t\t\ticonSetDiv.setAttribute('aria-hidden', 'true');\r\n\t\t\ticonSetDiv.style.cssText = 'width: 0; height: 0; position: absolute; left: -9999px;';\r\n\r\n\t\t\tthis.#container.appendChild(iconSetDiv);\r\n\t\t}\r\n\r\n\t\ticonSetDiv.innerHTML = data;\r\n\t}\r\n\r\n\tasync init() {\r\n\t\tconst { file, version } = this.#options;\r\n\r\n\t\ttry {\r\n\t\t\tlet data = await this.#fetchData(file);\r\n\r\n\t\t\tconst db = await Iconly.#dbInstance;\r\n\t\t\tconst tx = db.transaction('icons', 'readwrite');\r\n\t\t\tconst store = tx.objectStore('icons');\r\n\r\n\t\t\tconst dbVersion = await new Promise((resolve, reject) => {\r\n\t\t\t\tconst request = store.get(version);\r\n\r\n\t\t\t\trequest.onsuccess = () => resolve(request.result);\r\n\t\t\t\trequest.onerror = () => reject(request.error);\r\n\t\t\t});\r\n\r\n\t\t\tif (!(dbVersion && dbVersion.data)) {\r\n\t\t\t\tawait new Promise((resolve, reject) => {\r\n\t\t\t\t\tconst request = store.put({ version, data });\r\n\r\n\t\t\t\t\trequest.onsuccess = () => resolve();\r\n\t\t\t\t\trequest.onerror = () => reject(request.error);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tdata = dbVersion.data;\r\n\t\t\t}\r\n\r\n\t\t\tawait tx.complete;\r\n\t\t\tawait this.#insert(data);\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError('Error initializing Iconly:', error);\r\n\t\t}\r\n\t}\r\n\r\n\t#logError(...messages) {\r\n\t\tif (this.#options.debug) {\r\n\t\t\tconsole.error(...messages);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Iconly;\r\n"],"names":[],"version":3,"file":"index.js.map"}
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/index.js"],"sourcesContent":["class Iconly {\r\n\tstatic #dbInstance;\r\n\r\n\t#options;\r\n\r\n\t#container;\r\n\r\n\tconstructor(options) {\r\n\t\tthis.#options = {\r\n\t\t\tfile: './icons.svg',\r\n\t\t\tversion: '1.0',\r\n\t\t\tdebug: false,\r\n\t\t\tcontainer: document.body || document.documentElement,\r\n\t\t\t...options\r\n\t\t};\r\n\r\n\t\tthis.#container = typeof this.#options.container === 'string' ? document.querySelector(this.#options.container) : this.#options.container;\r\n\r\n\t\tif (!Iconly.#dbInstance) {\r\n\t\t\tIconly.#dbInstance = this.#openDB('iconlyDB', 1);\r\n\t\t}\r\n\t}\r\n\r\n\tasync #openDB(name, version) {\r\n\t\tif (!('indexedDB' in window)) {\r\n\t\t\tthis.#logError('This browser doesn\\'t support IndexedDB');\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet db;\r\n\r\n\t\ttry {\r\n\t\t\tdb = await new Promise((resolve, reject) => {\r\n\t\t\t\tconst request = indexedDB.open(name, version);\r\n\r\n\t\t\t\trequest.onerror = () => reject(`IndexedDB error: ${request.error}`);\r\n\t\t\t\trequest.onupgradeneeded = (event) => {\r\n\t\t\t\t\tconst db = event.target.result;\r\n\t\t\t\t\tif (!db.objectStoreNames.contains('icons')) {\r\n\t\t\t\t\t\tdb.createObjectStore('icons', { keyPath: 'version' });\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\trequest.onsuccess = () => resolve(request.result);\r\n\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError(error);\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t\treturn db;\r\n\t}\r\n\r\n\tasync #fetchData(file) {\r\n\t\ttry {\r\n\t\t\tconst response = await fetch(file);\r\n\r\n\t\t\tif (!response.ok) throw new Error('Network response was not ok');\r\n\r\n\t\t\treturn response.text();\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError(error);\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tasync #insert(data) {\r\n\t\tlet iconSetDiv = document.getElementById('iconset');\r\n\r\n\t\tif (!iconSetDiv) {\r\n\t\t\ticonSetDiv = document.createElement('div');\r\n\t\t\ticonSetDiv.id = 'iconset';\r\n\t\t\ticonSetDiv.setAttribute('aria-hidden', 'true');\r\n\t\t\ticonSetDiv.style.cssText = 'width: 0; height: 0; position: absolute; left: -9999px;';\r\n\r\n\t\t\tthis.#container.appendChild(iconSetDiv);\r\n\t\t}\r\n\r\n\t\ticonSetDiv.innerHTML = data;\r\n\t}\r\n\r\n\tasync init() {\r\n\t\tconst { file, version } = this.#options;\r\n\r\n\t\ttry {\r\n\t\t\tlet data = await this.#fetchData(file);\r\n\r\n\t\t\tconst db = await Iconly.#dbInstance;\r\n\t\t\tconst tx = db.transaction('icons', 'readwrite');\r\n\t\t\tconst store = tx.objectStore('icons');\r\n\r\n\t\t\tconst dbVersion = await new Promise((resolve, reject) => {\r\n\t\t\t\tconst request = store.get(version);\r\n\r\n\t\t\t\trequest.onsuccess = () => resolve(request.result);\r\n\t\t\t\trequest.onerror = () => reject(request.error);\r\n\t\t\t});\r\n\r\n\t\t\tif (!(dbVersion && dbVersion.data)) {\r\n\t\t\t\tawait new Promise((resolve, reject) => {\r\n\t\t\t\t\tconst request = store.put({ version, data });\r\n\r\n\t\t\t\t\trequest.onsuccess = () => resolve();\r\n\t\t\t\t\trequest.onerror = () => reject(request.error);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tdata = dbVersion.data;\r\n\t\t\t}\r\n\r\n\t\t\tawait tx.complete;\r\n\t\t\tawait this.#insert(data);\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError('Error initializing Iconly:', error);\r\n\t\t}\r\n\t}\r\n\r\n\t#logError(...messages) {\r\n\t\tif (this.#options.debug) {\r\n\t\t\tconsole.error(...messages);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Iconly;\r\n"],"names":[],"version":3,"file":"index.module.js.map"}
1
+ {"mappings":"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","sources":["src/index.js"],"sourcesContent":["class Iconly {\r\n\tstatic #dbInstance;\r\n\r\n\t#options;\r\n\r\n\t#container;\r\n\r\n\tconstructor(options) {\r\n\t\tthis.#options = {\r\n\t\t\tfile: './icons.svg',\r\n\t\t\tversion: '1.0',\r\n\t\t\tdebug: false,\r\n\t\t\tcontainer: document.body || document.documentElement,\r\n\t\t\t...options\r\n\t\t};\r\n\r\n\t\tthis.#container = typeof this.#options.container === 'string' ? document.querySelector(this.#options.container) : this.#options.container;\r\n\r\n\t\tif (!Iconly.#dbInstance) {\r\n\t\t\tIconly.#dbInstance = this.#openDB('iconlyDB', 1);\r\n\t\t}\r\n\t}\r\n\r\n\tasync #openDB(name, version) {\r\n\t\tif (!('indexedDB' in window)) {\r\n\t\t\tthis.#logError('This browser doesn\\'t support IndexedDB');\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet db;\r\n\r\n\t\ttry {\r\n\t\t\tdb = await new Promise((resolve, reject) => {\r\n\t\t\t\tconst request = indexedDB.open(name, version);\r\n\r\n\t\t\t\trequest.onerror = () => reject(`IndexedDB error: ${request.error}`);\r\n\t\t\t\trequest.onupgradeneeded = (event) => {\r\n\t\t\t\t\tconst db = event.target.result;\r\n\t\t\t\t\tif (!db.objectStoreNames.contains('icons')) {\r\n\t\t\t\t\t\tdb.createObjectStore('icons', { keyPath: 'version' });\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\trequest.onsuccess = () => resolve(request.result);\r\n\t\t\t});\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError(error);\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\r\n\t\treturn db;\r\n\t}\r\n\r\n\tasync #fetchData(file) {\r\n\t\ttry {\r\n\t\t\tconst response = await fetch(file);\r\n\r\n\t\t\tif (!response.ok) throw new Error('Network response was not ok');\r\n\r\n\t\t\treturn response.text();\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError(error);\r\n\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\tasync #insert(data) {\r\n\t\tlet iconSetDiv = document.getElementById('iconset');\r\n\r\n\t\tif (!iconSetDiv) {\r\n\t\t\ticonSetDiv = document.createElement('div');\r\n\t\t\ticonSetDiv.id = 'iconset';\r\n\t\t\ticonSetDiv.setAttribute('aria-hidden', 'true');\r\n\t\t\ticonSetDiv.style.cssText = 'width: 0; height: 0; position: absolute; left: -9999px;';\r\n\r\n\t\t\tthis.#container.appendChild(iconSetDiv);\r\n\t\t}\r\n\r\n\t\ticonSetDiv.innerHTML = data;\r\n\t}\r\n\r\n\tasync init() {\r\n\t\tconst { file, version } = this.#options;\r\n\r\n\t\ttry {\r\n\t\t\tlet data = await this.#fetchData(file);\r\n\r\n\t\t\tconst db = await Iconly.#dbInstance;\r\n\t\t\tconst tx = db.transaction('icons', 'readwrite');\r\n\t\t\tconst store = tx.objectStore('icons');\r\n\r\n\t\t\tconst dbVersion = await new Promise((resolve, reject) => {\r\n\t\t\t\tconst request = store.get(version);\r\n\r\n\t\t\t\trequest.onsuccess = () => resolve(request.result);\r\n\t\t\t\trequest.onerror = () => reject(request.error);\r\n\t\t\t});\r\n\r\n\t\t\tif (!(dbVersion && dbVersion.data)) {\r\n\t\t\t\tawait new Promise((resolve, reject) => {\r\n\t\t\t\t\tconst request = store.put({ version, data });\r\n\r\n\t\t\t\t\trequest.onsuccess = () => resolve();\r\n\t\t\t\t\trequest.onerror = () => reject(request.error);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tdata = dbVersion.data;\r\n\t\t\t}\r\n\r\n\t\t\tawait tx.complete;\r\n\t\t\tawait this.#insert(data);\r\n\t\t} catch (error) {\r\n\t\t\tthis.#logError('Error initializing Iconly:', error);\r\n\t\t}\r\n\t}\r\n\r\n\t#logError(...messages) {\r\n\t\tif (this.#options.debug) {\r\n\t\t\tconsole.error(...messages);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Iconly;\r\n"],"names":[],"version":3,"file":"index.module.js.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iconly",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
4
4
  "description": "SVG Sprite",
5
5
  "author": "ux-ui.pro",
6
6
  "license": "MIT",
@@ -37,6 +37,11 @@
37
37
  "icon",
38
38
  "icons",
39
39
  "sprite",
40
- "IndexedDB"
40
+ "IndexedDB",
41
+ "vector",
42
+ "LocalStorage",
43
+ "mobile",
44
+ "ios",
45
+ "ui"
41
46
  ]
42
47
  }
package/src/index.js CHANGED
@@ -48,6 +48,7 @@ class Iconly {
48
48
 
49
49
  throw error;
50
50
  }
51
+
51
52
  return db;
52
53
  }
53
54