|
|
|
@ -63,88 +63,9 @@ export class VerticalIcons extends Plugin { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
listenOnStatus (profile) { |
|
|
|
|
// the list of supported keys. 'none' will remove the status
|
|
|
|
|
// const keys = ['edited', 'succeed', 'none', 'loading', 'failed']
|
|
|
|
|
// const types = ['error', 'warning', 'success', 'info', '']
|
|
|
|
|
// const fn = (status) => {
|
|
|
|
|
// if (!this.types.includes(status.type) && status.type) throw new Error(`type should be ${this.keys.join()}`)
|
|
|
|
|
// if (status.key === undefined) throw new Error('status key should be defined')
|
|
|
|
|
|
|
|
|
|
// if (typeof status.key === 'string' && (!this.keys.includes(status.key))) {
|
|
|
|
|
// throw new Error('key should contain either number or ' + this.keys.join())
|
|
|
|
|
// }
|
|
|
|
|
// this.setIconStatus(profile.name, status)
|
|
|
|
|
// }
|
|
|
|
|
// this.iconStatus[profile.name] = fn
|
|
|
|
|
// this.on(profile.name, this.iconStatus[profile.name])
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* resolve a classes list for @arg key |
|
|
|
|
* @param {Object} key |
|
|
|
|
* @param {Object} type |
|
|
|
|
*/ |
|
|
|
|
// resolveClasses (key, type) {
|
|
|
|
|
// let classes = 'remixui_status'
|
|
|
|
|
|
|
|
|
|
// switch (key) {
|
|
|
|
|
// case 'succeed':
|
|
|
|
|
// classes += ' fas fa-check-circle text-' + type + ' ' + 'remixui_statusCheck'
|
|
|
|
|
// break
|
|
|
|
|
// case 'edited':
|
|
|
|
|
// classes += ' fas fa-sync text-' + type + ' ' + 'remixui_statusCheck'
|
|
|
|
|
// break
|
|
|
|
|
// case 'loading':
|
|
|
|
|
// classes += ' fas fa-spinner text-' + type + ' ' + 'remixui_statusCheck'
|
|
|
|
|
// break
|
|
|
|
|
// case 'failed':
|
|
|
|
|
// classes += ' fas fa-exclamation-triangle text-' + type + ' ' + 'remixui_statusCheck'
|
|
|
|
|
// break
|
|
|
|
|
// default: {
|
|
|
|
|
// classes += ' badge badge-pill badge-' + type
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// return classes
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Set a new status for the @arg name |
|
|
|
|
* @param {String} name |
|
|
|
|
* @param {Object} status |
|
|
|
|
*/ |
|
|
|
|
// setIconStatus (name, status) {
|
|
|
|
|
// const el = this.icons[name]
|
|
|
|
|
// if (!el) return
|
|
|
|
|
// const statusEl = el.querySelector('i')
|
|
|
|
|
// if (statusEl) {
|
|
|
|
|
// el.removeChild(statusEl)
|
|
|
|
|
// }
|
|
|
|
|
// if (status.key === 'none') return // remove status
|
|
|
|
|
|
|
|
|
|
// let text = ''
|
|
|
|
|
// let key = ''
|
|
|
|
|
// if (typeof status.key === 'number') {
|
|
|
|
|
// key = status.key.toString()
|
|
|
|
|
// text = key
|
|
|
|
|
// } else key = helper.checkSpecialChars(status.key) ? '' : status.key
|
|
|
|
|
|
|
|
|
|
// let type = ''
|
|
|
|
|
// if (status.type === 'error') {
|
|
|
|
|
// type = 'danger' // to use with bootstrap
|
|
|
|
|
// } else type = helper.checkSpecialChars(status.type) ? '' : status.type
|
|
|
|
|
// const title = helper.checkSpecialChars(status.title) ? '' : status.title
|
|
|
|
|
|
|
|
|
|
// el.appendChild(`<i
|
|
|
|
|
// title="${title}"
|
|
|
|
|
// class="${this.resolveClasses(key, type)}"
|
|
|
|
|
// aria-hidden="true"
|
|
|
|
|
// >
|
|
|
|
|
// ${text}
|
|
|
|
|
// </i>`)
|
|
|
|
|
|
|
|
|
|
// el.classList.add('remixui_icon')
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Remove an icon from the map |
|
|
|
|
* @param {ModuleProfile} profile The profile of the module |
|
|
|
|