Artifact
73c2e85fd5684e72e42682954b985c04b17b16be58b1b592ba21dffb1c368c87:
- Executable file
public/nexus-js/lib/main.js
— part of check-in
[12a9bb700d]
at
2021-08-11 18:56:04
on branch trunk
— Import from git
Added a changelog
(user:
dev
size: 2646)
'use strict';
import Interfaces from './interfaces/';
import math from './util/math';
import Rack from './core/rack';
import Tune from './tuning/tuning';
import * as Transform from './util/transform';
let Counter = require('./models/counter');
let Radio = require('./models/radio');
let Drunk = require('./models/drunk');
let Sequence = require('./models/sequence');
let Matrix = require('./models/matrix');
import WAAClock from 'waaclock';
import Interval from './time/interval';
/**
NexusUI => created as Nexus
*/
class NexusUI {
constructor(context) {
for (let key in Interfaces) {
this[key] = Interfaces[key];
}
for (let key in math) {
this[key] = math[key];
}
let Core = {
'Rack': Rack
};
let Models = {
'Counter': Counter,
'Radio': Radio,
'Drunk': Drunk,
'Sequence': Sequence,
'Matrix': Matrix
};
for (let key in Models) {
this[key] = Models[key];
}
for (let key in Core) {
this[key] = Core[key];
}
let DefaultContext = window.AudioContext || window.webkitAudioContext;
this._context = context || new DefaultContext();
this.tune = new Tune();
this.note = this.tune.note.bind(this.tune);
this.clock = new WAAClock(this._context);
this.clock.start();
this.Interval = Interval;
this.colors = {
accent: '#2bb',
fill: '#eee',
light: '#fff',
dark: '#333',
mediumLight: '#ccc',
mediumDark: '#666'
};
this.transform = Transform;
this.add = Transform.add;
this.Add = {};
for (let key in Interfaces) {
this.Add[key] = Transform.add.bind(this,key);
}
/* create default component size as 1st style element in document */
var defaultStyleNode = document.createElement('style');
defaultStyleNode.type = 'text/css';
defaultStyleNode.innerHTML = '[nexus-ui]{height:5000px;width:5000px}';
var h = document.head;
h.insertBefore(defaultStyleNode, h.firstElementChild);
}
get context() {
return this._context;
}
set context(ctx) {
this.clock.stop();
this._context = ctx;
this.clock = new WAAClock(this.context);
this.clock.start();
}
}
let Nexus = new NexusUI();
export function colors() {
return Nexus.colors;
}
export function context() {
return Nexus.context;
}
export function clock() {
return Nexus.clock;
}
export default Nexus;