forked from FINAKON/HelpProject
1. Initial Commit - a boiler plate code and POC to realize the concept of context
sensitive help
2. Frontend code written in ReactJS
3. Backend code written in Java, Spring Boot Framework
4. Frontend Start:
pre-requisites : node, npm
npm run dev ==> to start the frontend vite server
5. Backend Start:
pre-requisites : java, mvn
mvn spring-boot:run ==> to start the backend server
6. Visit http://localhost:5173/ for basic demo of help, press F1 in textboxes
7. Visit http://localhost:5173/editor and enter "admin123" to add/modify texts.
Happy Coding !!!
Thank you,
Bhargava.
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
'use strict'
|
|
|
|
const statuses = require('../lib/statuses')
|
|
const supported = require('../lib/supported')
|
|
const browsers = require('./browsers').browsers
|
|
const versions = require('./browserVersions').browserVersions
|
|
|
|
const MATH2LOG = Math.log(2)
|
|
|
|
function unpackSupport(cipher) {
|
|
// bit flags
|
|
let stats = Object.keys(supported).reduce((list, support) => {
|
|
if (cipher & supported[support]) list.push(support)
|
|
return list
|
|
}, [])
|
|
|
|
// notes
|
|
let notes = cipher >> 7
|
|
let notesArray = []
|
|
while (notes) {
|
|
let note = Math.floor(Math.log(notes) / MATH2LOG) + 1
|
|
notesArray.unshift(`#${note}`)
|
|
notes -= Math.pow(2, note - 1)
|
|
}
|
|
|
|
return stats.concat(notesArray).join(' ')
|
|
}
|
|
|
|
function unpackFeature(packed) {
|
|
let unpacked = {
|
|
status: statuses[packed.B],
|
|
title: packed.C,
|
|
shown: packed.D
|
|
}
|
|
unpacked.stats = Object.keys(packed.A).reduce((browserStats, key) => {
|
|
let browser = packed.A[key]
|
|
browserStats[browsers[key]] = Object.keys(browser).reduce(
|
|
(stats, support) => {
|
|
let packedVersions = browser[support].split(' ')
|
|
let unpacked2 = unpackSupport(support)
|
|
packedVersions.forEach(v => (stats[versions[v]] = unpacked2))
|
|
return stats
|
|
},
|
|
{}
|
|
)
|
|
return browserStats
|
|
}, {})
|
|
return unpacked
|
|
}
|
|
|
|
module.exports = unpackFeature
|
|
module.exports.default = unpackFeature
|