mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update components
Conflicts: MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/.bower.json MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/CHANGELOG.md MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/LICENSE MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/components.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/components/prism-core.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/components/prism-core.min.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/components/prism-jsx.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/components/prism-jsx.min.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/package.json MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/plugins/file-highlight/prism-file-highlight.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/plugins/file-highlight/prism-file-highlight.min.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/plugins/show-invisibles/prism-show-invisibles.css MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/plugins/show-invisibles/prism-show-invisibles.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/plugins/show-invisibles/prism-show-invisibles.min.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/plugins/show-language/prism-show-language.css MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/plugins/show-language/prism-show-language.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/plugins/show-language/prism-show-language.min.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/plugins/wpd/prism-wpd.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/plugins/wpd/prism-wpd.min.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/prism.js MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/themes/prism-coy.css MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/themes/prism-dark.css MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/themes/prism-funky.css MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/themes/prism-okaidia.css MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/themes/prism-tomorrow.css MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/themes/prism-twilight.css MediaBrowser.WebDashboard/dashboard-ui/bower_components/prism/themes/prism.css
This commit is contained in:
parent
df4c86218e
commit
be5906a13e
54 changed files with 570 additions and 641 deletions
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"name": "hls.js",
|
||||
"version": "0.4.8",
|
||||
"version": "0.4.9",
|
||||
"license": "Apache-2.0",
|
||||
"description": "Media Source Extension - HLS library, by/for Dailymotion",
|
||||
"homepage": "https://github.com/dailymotion/hls.js",
|
||||
"authors": [
|
||||
|
@ -15,11 +16,11 @@
|
|||
"test",
|
||||
"tests"
|
||||
],
|
||||
"_release": "0.4.8",
|
||||
"_release": "0.4.9",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v0.4.8",
|
||||
"commit": "de1534ca184ffa3a313fc5b433713512f6ab1c27"
|
||||
"tag": "v0.4.9",
|
||||
"commit": "11f271bfa1f17571756d1b4cf79271c45035bbbf"
|
||||
},
|
||||
"_source": "git://github.com/dailymotion/hls.js.git",
|
||||
"_target": "~0.4.5",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"name": "hls.js",
|
||||
"version": "0.4.8",
|
||||
"version": "0.4.9",
|
||||
"license" : "Apache-2.0",
|
||||
"description": "Media Source Extension - HLS library, by/for Dailymotion",
|
||||
"homepage": "https://github.com/dailymotion/hls.js",
|
||||
"authors": [
|
||||
|
|
110
dashboard-ui/bower_components/hls.js/dist/hls.js
vendored
110
dashboard-ui/bower_components/hls.js/dist/hls.js
vendored
|
@ -881,13 +881,15 @@ var MSEMediaController = (function (_EventHandler) {
|
|||
}, {
|
||||
key: 'startLoad',
|
||||
value: function startLoad() {
|
||||
if (this.levels && this.media) {
|
||||
if (this.levels) {
|
||||
this.startInternal();
|
||||
if (this.lastCurrentTime) {
|
||||
_utilsLogger.logger.log('seeking @ ' + this.lastCurrentTime);
|
||||
var media = this.media,
|
||||
lastCurrentTime = this.lastCurrentTime;
|
||||
if (media && lastCurrentTime) {
|
||||
_utilsLogger.logger.log('seeking @ ' + lastCurrentTime);
|
||||
if (!this.lastPaused) {
|
||||
_utilsLogger.logger.log('resuming video');
|
||||
this.media.play();
|
||||
media.play();
|
||||
}
|
||||
this.state = State.IDLE;
|
||||
} else {
|
||||
|
@ -897,7 +899,7 @@ var MSEMediaController = (function (_EventHandler) {
|
|||
this.nextLoadPosition = this.startPosition = this.lastCurrentTime;
|
||||
this.tick();
|
||||
} else {
|
||||
_utilsLogger.logger.warn('cannot start loading as either manifest not parsed or video not attached');
|
||||
_utilsLogger.logger.warn('cannot start loading as manifest not parsed yet');
|
||||
}
|
||||
}
|
||||
}, {
|
||||
|
@ -1486,7 +1488,7 @@ var MSEMediaController = (function (_EventHandler) {
|
|||
to avoid rounding issues/infinite loop,
|
||||
only flush buffer range of length greater than 500ms.
|
||||
*/
|
||||
if (flushEnd - flushStart > 0.5) {
|
||||
if (Math.min(flushEnd, bufEnd) - flushStart > 0.5) {
|
||||
_utilsLogger.logger.log('flush ' + type + ' [' + flushStart + ',' + flushEnd + '], of [' + bufStart + ',' + bufEnd + '], pos:' + this.media.currentTime);
|
||||
sb.remove(flushStart, flushEnd);
|
||||
return false;
|
||||
|
@ -1499,6 +1501,8 @@ var MSEMediaController = (function (_EventHandler) {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
_utilsLogger.logger.warn('abort flushing too many retries');
|
||||
}
|
||||
|
||||
/* after successful buffer flushing, rebuild buffer Range array
|
||||
|
@ -2063,7 +2067,7 @@ var MSEMediaController = (function (_EventHandler) {
|
|||
jumpThreshold = 0;
|
||||
} else {
|
||||
// playhead not moving AND media playing
|
||||
_utilsLogger.logger.log('playback seems stuck');
|
||||
_utilsLogger.logger.log('playback seems stuck @' + currentTime);
|
||||
if (!this.stalled) {
|
||||
this.hls.trigger(_events2['default'].ERROR, { type: _errors.ErrorTypes.MEDIA_ERROR, details: _errors.ErrorDetails.BUFFER_STALLED_ERROR, fatal: false });
|
||||
this.stalled = true;
|
||||
|
@ -2850,52 +2854,52 @@ var AACDemuxer = (function () {
|
|||
id3 = new _demuxId32['default'](data),
|
||||
pts = 90 * id3.timeStamp,
|
||||
config,
|
||||
adtsFrameSize,
|
||||
adtsStartOffset,
|
||||
adtsHeaderLen,
|
||||
frameLength,
|
||||
frameDuration,
|
||||
frameIndex,
|
||||
offset,
|
||||
headerLength,
|
||||
stamp,
|
||||
nbSamples,
|
||||
len,
|
||||
aacSample;
|
||||
// look for ADTS header (0xFFFx)
|
||||
for (adtsStartOffset = id3.length, len = data.length; adtsStartOffset < len - 1; adtsStartOffset++) {
|
||||
if (data[adtsStartOffset] === 0xff && (data[adtsStartOffset + 1] & 0xf0) === 0xf0) {
|
||||
for (offset = id3.length, len = data.length; offset < len - 1; offset++) {
|
||||
if (data[offset] === 0xff && (data[offset + 1] & 0xf0) === 0xf0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!track.audiosamplerate) {
|
||||
config = _adts2['default'].getAudioConfig(this.observer, data, adtsStartOffset, audioCodec);
|
||||
config = _adts2['default'].getAudioConfig(this.observer, data, offset, audioCodec);
|
||||
track.config = config.config;
|
||||
track.audiosamplerate = config.samplerate;
|
||||
track.channelCount = config.channelCount;
|
||||
track.codec = config.codec;
|
||||
track.timescale = this.remuxer.timescale;
|
||||
track.duration = this.remuxer.timescale * duration;
|
||||
track.timescale = config.samplerate;
|
||||
track.duration = config.samplerate * duration;
|
||||
_utilsLogger.logger.log('parsed codec:' + track.codec + ',rate:' + config.samplerate + ',nb channel:' + config.channelCount);
|
||||
}
|
||||
nbSamples = 0;
|
||||
while (adtsStartOffset + 5 < len) {
|
||||
frameIndex = 0;
|
||||
frameDuration = 1024 * 90000 / track.audiosamplerate;
|
||||
while (offset + 5 < len) {
|
||||
// The protection skip bit tells us if we have 2 bytes of CRC data at the end of the ADTS header
|
||||
headerLength = !!(data[offset + 1] & 0x01) ? 7 : 9;
|
||||
// retrieve frame size
|
||||
adtsFrameSize = (data[adtsStartOffset + 3] & 0x03) << 11;
|
||||
// byte 4
|
||||
adtsFrameSize |= data[adtsStartOffset + 4] << 3;
|
||||
// byte 5
|
||||
adtsFrameSize |= (data[adtsStartOffset + 5] & 0xE0) >>> 5;
|
||||
adtsHeaderLen = !!(data[adtsStartOffset + 1] & 0x01) ? 7 : 9;
|
||||
adtsFrameSize -= adtsHeaderLen;
|
||||
stamp = Math.round(pts + nbSamples * 1024 * 90000 / track.audiosamplerate);
|
||||
frameLength = (data[offset + 3] & 0x03) << 11 | data[offset + 4] << 3 | (data[offset + 5] & 0xE0) >>> 5;
|
||||
frameLength -= headerLength;
|
||||
//stamp = pes.pts;
|
||||
//console.log('AAC frame, offset/length/pts:' + (adtsStartOffset+7) + '/' + adtsFrameSize + '/' + stamp.toFixed(0));
|
||||
if (adtsFrameSize > 0 && adtsStartOffset + adtsHeaderLen + adtsFrameSize <= len) {
|
||||
aacSample = { unit: data.subarray(adtsStartOffset + adtsHeaderLen, adtsStartOffset + adtsHeaderLen + adtsFrameSize), pts: stamp, dts: stamp };
|
||||
|
||||
if (frameLength > 0 && offset + headerLength + frameLength <= len) {
|
||||
stamp = pts + frameIndex * frameDuration;
|
||||
//logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);
|
||||
aacSample = { unit: data.subarray(offset + headerLength, offset + headerLength + frameLength), pts: stamp, dts: stamp };
|
||||
track.samples.push(aacSample);
|
||||
track.len += adtsFrameSize;
|
||||
adtsStartOffset += adtsFrameSize + adtsHeaderLen;
|
||||
nbSamples++;
|
||||
track.len += frameLength;
|
||||
offset += frameLength + headerLength;
|
||||
frameIndex++;
|
||||
// look for ADTS header (0xFFFx)
|
||||
for (; adtsStartOffset < len - 1; adtsStartOffset++) {
|
||||
if (data[adtsStartOffset] === 0xff && (data[adtsStartOffset + 1] & 0xf0) === 0xf0) {
|
||||
for (; offset < len - 1; offset++) {
|
||||
if (data[offset] === 0xff && (data[offset + 1] & 0xf0) === 0xf0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2913,12 +2917,12 @@ var AACDemuxer = (function () {
|
|||
value: function probe(data) {
|
||||
// check if data contains ID3 timestamp and ADTS sync worc
|
||||
var id3 = new _demuxId32['default'](data),
|
||||
adtsStartOffset,
|
||||
offset,
|
||||
len;
|
||||
if (id3.hasTimeStamp) {
|
||||
// look for ADTS header (0xFFFx)
|
||||
for (adtsStartOffset = id3.length, len = data.length; adtsStartOffset < len - 1; adtsStartOffset++) {
|
||||
if (data[adtsStartOffset] === 0xff && (data[adtsStartOffset + 1] & 0xf0) === 0xf0) {
|
||||
for (offset = id3.length, len = data.length; offset < len - 1; offset++) {
|
||||
if (data[offset] === 0xff && (data[offset + 1] & 0xf0) === 0xf0) {
|
||||
//logger.log('ADTS sync word found !');
|
||||
return true;
|
||||
}
|
||||
|
@ -4553,8 +4557,8 @@ var TSDemuxer = (function () {
|
|||
track.audiosamplerate = config.samplerate;
|
||||
track.channelCount = config.channelCount;
|
||||
track.codec = config.codec;
|
||||
track.timescale = this.remuxer.timescale;
|
||||
track.duration = track.timescale * duration;
|
||||
track.timescale = config.samplerate;
|
||||
track.duration = config.samplerate * duration;
|
||||
_utilsLogger.logger.log('parsed codec:' + track.codec + ',rate:' + config.samplerate + ',nb channel:' + config.channelCount);
|
||||
}
|
||||
frameIndex = 0;
|
||||
|
@ -4579,7 +4583,7 @@ var TSDemuxer = (function () {
|
|||
//stamp = pes.pts;
|
||||
|
||||
if (frameLength > 0 && offset + headerLength + frameLength <= len) {
|
||||
stamp = Math.round(pts + frameIndex * frameDuration);
|
||||
stamp = pts + frameIndex * frameDuration;
|
||||
//logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);
|
||||
aacSample = { unit: data.subarray(offset + headerLength, offset + headerLength + frameLength), pts: stamp, dts: stamp };
|
||||
track.samples.push(aacSample);
|
||||
|
@ -5076,7 +5080,7 @@ var Hls = (function () {
|
|||
debug: false,
|
||||
maxBufferLength: 30,
|
||||
maxBufferSize: 60 * 1000 * 1000,
|
||||
maxBufferHole: 0.3,
|
||||
maxBufferHole: 0.5,
|
||||
maxSeekHole: 2,
|
||||
liveSyncDurationCount: 3,
|
||||
liveMaxLatencyDurationCount: Infinity,
|
||||
|
@ -6674,7 +6678,8 @@ var MP4Remuxer = (function () {
|
|||
var view,
|
||||
offset = 8,
|
||||
pesTimeScale = this.PES_TIMESCALE,
|
||||
pes2mp4ScaleFactor = this.PES2MP4SCALEFACTOR,
|
||||
mp4timeScale = track.timescale,
|
||||
pes2mp4ScaleFactor = pesTimeScale / mp4timeScale,
|
||||
aacSample,
|
||||
mp4Sample,
|
||||
unit,
|
||||
|
@ -6690,15 +6695,10 @@ var MP4Remuxer = (function () {
|
|||
samples = [],
|
||||
samples0 = [];
|
||||
|
||||
track.samples.forEach(function (aacSample) {
|
||||
if (pts === undefined || aacSample.pts > pts) {
|
||||
samples0.push(aacSample);
|
||||
pts = aacSample.pts;
|
||||
} else {
|
||||
_utilsLogger.logger.warn('dropping past audio frame');
|
||||
track.len -= aacSample.unit.byteLength;
|
||||
}
|
||||
track.samples.sort(function (a, b) {
|
||||
return a.pts - b.pts;
|
||||
});
|
||||
samples0 = track.samples;
|
||||
|
||||
while (samples0.length) {
|
||||
aacSample = samples0.shift();
|
||||
|
@ -6710,13 +6710,15 @@ var MP4Remuxer = (function () {
|
|||
if (lastDTS !== undefined) {
|
||||
ptsnorm = this._PTSNormalize(pts, lastDTS);
|
||||
dtsnorm = this._PTSNormalize(dts, lastDTS);
|
||||
// let's compute sample duration
|
||||
// let's compute sample duration.
|
||||
// there should be 1024 audio samples in one AAC frame
|
||||
mp4Sample.duration = (dtsnorm - lastDTS) / pes2mp4ScaleFactor;
|
||||
if (mp4Sample.duration < 0) {
|
||||
if (Math.abs(mp4Sample.duration - 1024) > 10) {
|
||||
// not expected to happen ...
|
||||
_utilsLogger.logger.log('invalid AAC sample duration at PTS:' + aacSample.pts + ':' + mp4Sample.duration);
|
||||
mp4Sample.duration = 0;
|
||||
_utilsLogger.logger.log('invalid AAC sample duration at PTS ' + Math.round(pts / 90) + ',should be 1024,found :' + Math.round(mp4Sample.duration));
|
||||
}
|
||||
mp4Sample.duration = 1024;
|
||||
dtsnorm = 1024 * pes2mp4ScaleFactor + lastDTS;
|
||||
} else {
|
||||
var nextAacPts = this.nextAacPts,
|
||||
delta;
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"name": "hls.js",
|
||||
"version": "0.4.8",
|
||||
"version": "0.4.9",
|
||||
"license" : "Apache-2.0",
|
||||
"description": "Media Source Extension - HLS library, by/for Dailymotion",
|
||||
"homepage": "https://github.com/dailymotion/hls.js",
|
||||
"authors": "Guillaume du Pontavice <guillaume.dupontavice@dailymotion.com>",
|
||||
|
@ -12,7 +13,7 @@
|
|||
"url": "https://github.com/dailymotion/hls.js/issues"
|
||||
},
|
||||
"main": "src/hls.js",
|
||||
"private": true,
|
||||
"private": false,
|
||||
"scripts": {
|
||||
"clean": "find dist -mindepth 1 -delete",
|
||||
"prebuild": "npm run clean & npm run test",
|
||||
|
|
|
@ -54,13 +54,14 @@ class MSEMediaController extends EventHandler {
|
|||
}
|
||||
|
||||
startLoad() {
|
||||
if (this.levels && this.media) {
|
||||
if (this.levels) {
|
||||
this.startInternal();
|
||||
if (this.lastCurrentTime) {
|
||||
logger.log(`seeking @ ${this.lastCurrentTime}`);
|
||||
var media = this.media, lastCurrentTime = this.lastCurrentTime;
|
||||
if (media && lastCurrentTime) {
|
||||
logger.log(`seeking @ ${lastCurrentTime}`);
|
||||
if (!this.lastPaused) {
|
||||
logger.log('resuming video');
|
||||
this.media.play();
|
||||
media.play();
|
||||
}
|
||||
this.state = State.IDLE;
|
||||
} else {
|
||||
|
@ -70,7 +71,7 @@ class MSEMediaController extends EventHandler {
|
|||
this.nextLoadPosition = this.startPosition = this.lastCurrentTime;
|
||||
this.tick();
|
||||
} else {
|
||||
logger.warn('cannot start loading as either manifest not parsed or video not attached');
|
||||
logger.warn('cannot start loading as manifest not parsed yet');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -666,7 +667,7 @@ class MSEMediaController extends EventHandler {
|
|||
to avoid rounding issues/infinite loop,
|
||||
only flush buffer range of length greater than 500ms.
|
||||
*/
|
||||
if (flushEnd - flushStart > 0.5) {
|
||||
if (Math.min(flushEnd,bufEnd) - flushStart > 0.5) {
|
||||
logger.log(`flush ${type} [${flushStart},${flushEnd}], of [${bufStart},${bufEnd}], pos:${this.media.currentTime}`);
|
||||
sb.remove(flushStart, flushEnd);
|
||||
return false;
|
||||
|
@ -679,6 +680,8 @@ class MSEMediaController extends EventHandler {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.warn('abort flushing too many retries');
|
||||
}
|
||||
|
||||
/* after successful buffer flushing, rebuild buffer Range array
|
||||
|
@ -1221,7 +1224,7 @@ _checkBuffer() {
|
|||
jumpThreshold = 0;
|
||||
} else {
|
||||
// playhead not moving AND media playing
|
||||
logger.log('playback seems stuck');
|
||||
logger.log(`playback seems stuck @${currentTime}`);
|
||||
if(!this.stalled) {
|
||||
this.hls.trigger(Event.ERROR, {type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.BUFFER_STALLED_ERROR, fatal: false});
|
||||
this.stalled = true;
|
||||
|
|
|
@ -16,11 +16,11 @@ import ID3 from '../demux/id3';
|
|||
|
||||
static probe(data) {
|
||||
// check if data contains ID3 timestamp and ADTS sync worc
|
||||
var id3 = new ID3(data), adtsStartOffset,len;
|
||||
var id3 = new ID3(data), offset,len;
|
||||
if(id3.hasTimeStamp) {
|
||||
// look for ADTS header (0xFFFx)
|
||||
for (adtsStartOffset = id3.length, len = data.length; adtsStartOffset < len - 1; adtsStartOffset++) {
|
||||
if ((data[adtsStartOffset] === 0xff) && (data[adtsStartOffset+1] & 0xf0) === 0xf0) {
|
||||
for (offset = id3.length, len = data.length; offset < len - 1; offset++) {
|
||||
if ((data[offset] === 0xff) && (data[offset+1] & 0xf0) === 0xf0) {
|
||||
//logger.log('ADTS sync word found !');
|
||||
return true;
|
||||
}
|
||||
|
@ -35,46 +35,47 @@ import ID3 from '../demux/id3';
|
|||
var track = this._aacTrack,
|
||||
id3 = new ID3(data),
|
||||
pts = 90*id3.timeStamp,
|
||||
config, adtsFrameSize, adtsStartOffset, adtsHeaderLen, stamp, nbSamples, len, aacSample;
|
||||
config, frameLength, frameDuration, frameIndex, offset, headerLength, stamp, len, aacSample;
|
||||
// look for ADTS header (0xFFFx)
|
||||
for (adtsStartOffset = id3.length, len = data.length; adtsStartOffset < len - 1; adtsStartOffset++) {
|
||||
if ((data[adtsStartOffset] === 0xff) && (data[adtsStartOffset+1] & 0xf0) === 0xf0) {
|
||||
for (offset = id3.length, len = data.length; offset < len - 1; offset++) {
|
||||
if ((data[offset] === 0xff) && (data[offset+1] & 0xf0) === 0xf0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!track.audiosamplerate) {
|
||||
config = ADTS.getAudioConfig(this.observer,data, adtsStartOffset, audioCodec);
|
||||
config = ADTS.getAudioConfig(this.observer,data, offset, audioCodec);
|
||||
track.config = config.config;
|
||||
track.audiosamplerate = config.samplerate;
|
||||
track.channelCount = config.channelCount;
|
||||
track.codec = config.codec;
|
||||
track.timescale = this.remuxer.timescale;
|
||||
track.duration = this.remuxer.timescale * duration;
|
||||
track.timescale = config.samplerate;
|
||||
track.duration = config.samplerate * duration;
|
||||
logger.log(`parsed codec:${track.codec},rate:${config.samplerate},nb channel:${config.channelCount}`);
|
||||
}
|
||||
nbSamples = 0;
|
||||
while ((adtsStartOffset + 5) < len) {
|
||||
frameIndex = 0;
|
||||
frameDuration = 1024 * 90000 / track.audiosamplerate;
|
||||
while ((offset + 5) < len) {
|
||||
// The protection skip bit tells us if we have 2 bytes of CRC data at the end of the ADTS header
|
||||
headerLength = (!!(data[offset + 1] & 0x01) ? 7 : 9);
|
||||
// retrieve frame size
|
||||
adtsFrameSize = ((data[adtsStartOffset + 3] & 0x03) << 11);
|
||||
// byte 4
|
||||
adtsFrameSize |= (data[adtsStartOffset + 4] << 3);
|
||||
// byte 5
|
||||
adtsFrameSize |= ((data[adtsStartOffset + 5] & 0xE0) >>> 5);
|
||||
adtsHeaderLen = (!!(data[adtsStartOffset + 1] & 0x01) ? 7 : 9);
|
||||
adtsFrameSize -= adtsHeaderLen;
|
||||
stamp = Math.round(pts + nbSamples * 1024 * 90000 / track.audiosamplerate);
|
||||
frameLength = ((data[offset + 3] & 0x03) << 11) |
|
||||
(data[offset + 4] << 3) |
|
||||
((data[offset + 5] & 0xE0) >>> 5);
|
||||
frameLength -= headerLength;
|
||||
//stamp = pes.pts;
|
||||
//console.log('AAC frame, offset/length/pts:' + (adtsStartOffset+7) + '/' + adtsFrameSize + '/' + stamp.toFixed(0));
|
||||
if ((adtsFrameSize > 0) && ((adtsStartOffset + adtsHeaderLen + adtsFrameSize) <= len)) {
|
||||
aacSample = {unit: data.subarray(adtsStartOffset + adtsHeaderLen, adtsStartOffset + adtsHeaderLen + adtsFrameSize), pts: stamp, dts: stamp};
|
||||
|
||||
if ((frameLength > 0) && ((offset + headerLength + frameLength) <= len)) {
|
||||
stamp = pts + frameIndex * frameDuration;
|
||||
//logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);
|
||||
aacSample = {unit: data.subarray(offset + headerLength, offset + headerLength + frameLength), pts: stamp, dts: stamp};
|
||||
track.samples.push(aacSample);
|
||||
track.len += adtsFrameSize;
|
||||
adtsStartOffset += adtsFrameSize + adtsHeaderLen;
|
||||
nbSamples++;
|
||||
track.len += frameLength;
|
||||
offset += frameLength + headerLength;
|
||||
frameIndex++;
|
||||
// look for ADTS header (0xFFFx)
|
||||
for ( ; adtsStartOffset < (len - 1); adtsStartOffset++) {
|
||||
if ((data[adtsStartOffset] === 0xff) && ((data[adtsStartOffset + 1] & 0xf0) === 0xf0)) {
|
||||
for ( ; offset < (len - 1); offset++) {
|
||||
if ((data[offset] === 0xff) && ((data[offset + 1] & 0xf0) === 0xf0)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -568,8 +568,8 @@
|
|||
track.audiosamplerate = config.samplerate;
|
||||
track.channelCount = config.channelCount;
|
||||
track.codec = config.codec;
|
||||
track.timescale = this.remuxer.timescale;
|
||||
track.duration = track.timescale * duration;
|
||||
track.timescale = config.samplerate;
|
||||
track.duration = config.samplerate * duration;
|
||||
logger.log(`parsed codec:${track.codec},rate:${config.samplerate},nb channel:${config.channelCount}`);
|
||||
}
|
||||
frameIndex = 0;
|
||||
|
@ -596,7 +596,7 @@
|
|||
//stamp = pes.pts;
|
||||
|
||||
if ((frameLength > 0) && ((offset + headerLength + frameLength) <= len)) {
|
||||
stamp = Math.round(pts + frameIndex * frameDuration);
|
||||
stamp = pts + frameIndex * frameDuration;
|
||||
//logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);
|
||||
aacSample = {unit: data.subarray(offset + headerLength, offset + headerLength + frameLength), pts: stamp, dts: stamp};
|
||||
track.samples.push(aacSample);
|
||||
|
|
|
@ -42,7 +42,7 @@ class Hls {
|
|||
debug: false,
|
||||
maxBufferLength: 30,
|
||||
maxBufferSize: 60 * 1000 * 1000,
|
||||
maxBufferHole: 0.3,
|
||||
maxBufferHole: 0.5,
|
||||
maxSeekHole: 2,
|
||||
liveSyncDurationCount:3,
|
||||
liveMaxLatencyDurationCount: Infinity,
|
||||
|
|
|
@ -253,7 +253,8 @@ class MP4Remuxer {
|
|||
var view,
|
||||
offset = 8,
|
||||
pesTimeScale = this.PES_TIMESCALE,
|
||||
pes2mp4ScaleFactor = this.PES2MP4SCALEFACTOR,
|
||||
mp4timeScale = track.timescale,
|
||||
pes2mp4ScaleFactor = pesTimeScale/mp4timeScale,
|
||||
aacSample, mp4Sample,
|
||||
unit,
|
||||
mdat, moof,
|
||||
|
@ -262,15 +263,10 @@ class MP4Remuxer {
|
|||
samples = [],
|
||||
samples0 = [];
|
||||
|
||||
track.samples.forEach(aacSample => {
|
||||
if(pts === undefined || aacSample.pts > pts) {
|
||||
samples0.push(aacSample);
|
||||
pts = aacSample.pts;
|
||||
} else {
|
||||
logger.warn('dropping past audio frame');
|
||||
track.len -= aacSample.unit.byteLength;
|
||||
}
|
||||
track.samples.sort(function(a, b) {
|
||||
return (a.pts-b.pts);
|
||||
});
|
||||
samples0 = track.samples;
|
||||
|
||||
while (samples0.length) {
|
||||
aacSample = samples0.shift();
|
||||
|
@ -282,13 +278,15 @@ class MP4Remuxer {
|
|||
if (lastDTS !== undefined) {
|
||||
ptsnorm = this._PTSNormalize(pts, lastDTS);
|
||||
dtsnorm = this._PTSNormalize(dts, lastDTS);
|
||||
// let's compute sample duration
|
||||
// let's compute sample duration.
|
||||
// there should be 1024 audio samples in one AAC frame
|
||||
mp4Sample.duration = (dtsnorm - lastDTS) / pes2mp4ScaleFactor;
|
||||
if (mp4Sample.duration < 0) {
|
||||
if(Math.abs(mp4Sample.duration - 1024) > 10) {
|
||||
// not expected to happen ...
|
||||
logger.log(`invalid AAC sample duration at PTS:${aacSample.pts}:${mp4Sample.duration}`);
|
||||
mp4Sample.duration = 0;
|
||||
logger.log(`invalid AAC sample duration at PTS ${Math.round(pts/90)},should be 1024,found :${Math.round(mp4Sample.duration)}`);
|
||||
}
|
||||
mp4Sample.duration = 1024;
|
||||
dtsnorm = 1024 * pes2mp4ScaleFactor + lastDTS;
|
||||
} else {
|
||||
var nextAacPts = this.nextAacPts,delta;
|
||||
ptsnorm = this._PTSNormalize(pts, nextAacPts);
|
||||
|
|
|
@ -26,14 +26,14 @@
|
|||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"main": "iron-meta.html",
|
||||
"homepage": "https://github.com/polymerelements/iron-meta",
|
||||
"homepage": "https://github.com/PolymerElements/iron-meta",
|
||||
"_release": "1.1.1",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.1.1",
|
||||
"commit": "e171ee234b482219c9514e6f9551df48ef48bd9f"
|
||||
},
|
||||
"_source": "git://github.com/polymerelements/iron-meta.git",
|
||||
"_source": "git://github.com/PolymerElements/iron-meta.git",
|
||||
"_target": "^1.0.0",
|
||||
"_originalSource": "polymerelements/iron-meta"
|
||||
"_originalSource": "PolymerElements/iron-meta"
|
||||
}
|
|
@ -36,7 +36,7 @@
|
|||
"tag": "v1.2.0",
|
||||
"commit": "17a94bd1555d3321f4ecefd472f0c470d48e9e94"
|
||||
},
|
||||
"_source": "git://github.com/PolymerElements/iron-selector.git",
|
||||
"_source": "git://github.com/polymerelements/iron-selector.git",
|
||||
"_target": "^1.0.0",
|
||||
"_originalSource": "PolymerElements/iron-selector"
|
||||
"_originalSource": "polymerelements/iron-selector"
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
{
|
||||
"name": "paper-collapse-item",
|
||||
"version": "1.0.6",
|
||||
"authors": [
|
||||
"collaborne"
|
||||
],
|
||||
"description": "A Material Design item with header and collapsible content (Polymer 1.x)",
|
||||
"main": "paper-collapse-item.html",
|
||||
"keywords": [
|
||||
"web-components",
|
||||
"polymer",
|
||||
"paper",
|
||||
"material design",
|
||||
"lists",
|
||||
"item"
|
||||
],
|
||||
"license": "Apache 2",
|
||||
"homepage": "https://github.com/collaborne/paper-collapse-item",
|
||||
"ignore": [
|
||||
"**/.*"
|
||||
],
|
||||
"dependencies": {
|
||||
"polymer": "Polymer/polymer#^1.0.0",
|
||||
"iron-icon": "PolymerElements/iron-icon#^1.0.0",
|
||||
"iron-icons": "PolymerElements/iron-icons#^1.0.0",
|
||||
"iron-collapse": "PolymerElements/iron-collapse#^1.0.0",
|
||||
"paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0",
|
||||
"paper-item": "PolymerElements/paper-item#^1.0.0",
|
||||
"paper-styles": "PolymerElements/paper-styles#^1.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"test-fixture": "PolymerElements/test-fixture#^1.0.0",
|
||||
"web-component-tester": "*",
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
},
|
||||
"_release": "1.0.6",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "1.0.6",
|
||||
"commit": "1f809936cb13108bffd49ff2280baf8690f38ab1"
|
||||
},
|
||||
"_source": "git://github.com/Collaborne/paper-collapse-item.git",
|
||||
"_target": "~1.0.5",
|
||||
"_originalSource": "paper-collapse-item"
|
||||
}
|
|
@ -1,202 +0,0 @@
|
|||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright {yyyy} {name of copyright owner}
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
{
|
||||
"name": "paper-collapse-item",
|
||||
"version": "1.0.6",
|
||||
"authors": [
|
||||
"collaborne"
|
||||
],
|
||||
"description": "A Material Design item with header and collapsible content (Polymer 1.x)",
|
||||
"main": "paper-collapse-item.html",
|
||||
"keywords": [
|
||||
"web-components",
|
||||
"polymer",
|
||||
"paper",
|
||||
"material design",
|
||||
"lists",
|
||||
"item"
|
||||
],
|
||||
"license": "Apache 2",
|
||||
"homepage": "https://github.com/collaborne/paper-collapse-item",
|
||||
"ignore": [
|
||||
"**/.*"
|
||||
],
|
||||
"dependencies": {
|
||||
"polymer": "Polymer/polymer#^1.0.0",
|
||||
"iron-icon": "PolymerElements/iron-icon#^1.0.0",
|
||||
"iron-icons": "PolymerElements/iron-icons#^1.0.0",
|
||||
"iron-collapse": "PolymerElements/iron-collapse#^1.0.0",
|
||||
"paper-icon-button": "PolymerElements/paper-icon-button#^1.0.0",
|
||||
"paper-item": "PolymerElements/paper-item#^1.0.0",
|
||||
"paper-styles": "PolymerElements/paper-styles#^1.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"test-fixture": "PolymerElements/test-fixture#^1.0.0",
|
||||
"web-component-tester": "*",
|
||||
"webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
|
||||
}
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
<html>
|
||||
<head>
|
||||
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
|
||||
<link rel="import" href="../../iron-icons/iron-icons.html">
|
||||
<link rel="import" href="../paper-collapse-item.html">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<paper-collapse-item icon="icons:favorite" header="Item 1" opened>
|
||||
Lots of very interesting content.
|
||||
</paper-collapse-item>
|
||||
<paper-collapse-item icon="icons:info" header="Item 2">
|
||||
Lots of very interesting content.
|
||||
</paper-collapse-item>
|
||||
<paper-collapse-item icon="icons:help" header="Item 3">
|
||||
Lots of very interesting content.
|
||||
</paper-collapse-item>
|
||||
</body>
|
||||
</html>
|
Binary file not shown.
Before Width: | Height: | Size: 7.6 KiB |
|
@ -1,84 +0,0 @@
|
|||
<link rel="import" href="../polymer/polymer.html">
|
||||
<link rel="import" href="../iron-icon/iron-icon.html">
|
||||
<link rel="import" href="../iron-icons/iron-icons.html">
|
||||
<link rel="import" href="../iron-collapse/iron-collapse.html">
|
||||
<link rel="import" href="../paper-icon-button/paper-icon-button.html">
|
||||
<link rel="import" href="../paper-item/paper-item.html">
|
||||
<link rel="import" href="../paper-item/paper-item-body.html">
|
||||
<link rel="import" href="../paper-styles/paper-styles.html">
|
||||
|
||||
<dom-module id='paper-collapse-item'>
|
||||
|
||||
<template>
|
||||
|
||||
<style>
|
||||
.header {
|
||||
min-height: 48px;
|
||||
color: var(--primary-text-color);
|
||||
@apply(--layout-horizontal);
|
||||
@apply(--layout-center-center);
|
||||
@apply(--paper-font-subhead);
|
||||
}
|
||||
|
||||
.icon {
|
||||
margin-right: 24px;
|
||||
--iron-icon-height: 32px;
|
||||
--iron-icon-width: 32px;
|
||||
}
|
||||
|
||||
.icon,.toogle {
|
||||
color: var(--disabled-text-color);
|
||||
}
|
||||
|
||||
.content {
|
||||
color: var(--primary-text-color);
|
||||
@apply(--paper-font-body1);
|
||||
}
|
||||
</style>
|
||||
|
||||
<paper-item on-tap="_toggleOpened">
|
||||
<paper-item-body>
|
||||
<div class="header">
|
||||
<iron-icon class='icon' icon=[[icon]]></iron-icon>
|
||||
<div class="flex">[[header]]</div>
|
||||
<paper-icon-button class='toogle' icon=[[_toggleIcon]]></paper-icon-button>
|
||||
</div>
|
||||
<iron-collapse class="content" opened={{opened}}>
|
||||
<content></content>
|
||||
</iron-collapse>
|
||||
</paper-item-body>
|
||||
</paper-item>
|
||||
|
||||
</template>
|
||||
</dom-module>
|
||||
|
||||
<script>
|
||||
|
||||
(function() {
|
||||
|
||||
Polymer({
|
||||
is: 'paper-collapse-item',
|
||||
properties: {
|
||||
header: String,
|
||||
icon: String,
|
||||
|
||||
opened: Boolean,
|
||||
|
||||
_toggleIcon: {
|
||||
type: String,
|
||||
computed: '_computeToggleIcon(opened)'
|
||||
}
|
||||
},
|
||||
|
||||
// Private methods
|
||||
_toggleOpened: function(e) {
|
||||
this.opened = !this.opened;
|
||||
},
|
||||
_computeToggleIcon: function(opened) {
|
||||
return opened ? "icons:expand-less" : "icons:expand-more";
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
</script>
|
|
@ -1,13 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Tests</title>
|
||||
<script src="../../web-component-tester/browser.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
WCT.loadSuites([ 'paper-collapse-item.html' ]);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,50 +0,0 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>paper-collapse-item</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
|
||||
<script src="../../web-component-tester/browser.js"></script>
|
||||
<script src="../../test-fixture/test-fixture-mocha.js"></script>
|
||||
|
||||
<link rel="import" href="../paper-collapse-item.html">
|
||||
<link rel="import" href="../../test-fixture/test-fixture.html">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<test-fixture id="TrivialElement">
|
||||
<template>
|
||||
<paper-collapse-item></paper-collapse-item>
|
||||
</template>
|
||||
</test-fixture>
|
||||
|
||||
<script>
|
||||
suite('<paper-collapse-item>', function() {
|
||||
suite('open/close behavior', function() {
|
||||
var element;
|
||||
|
||||
setup(function() {
|
||||
element = fixture('TrivialElement');
|
||||
});
|
||||
|
||||
test('defaults to closed', function() {
|
||||
expect(element.opened).to.be.eql(false);
|
||||
});
|
||||
|
||||
test('shows open toggle icon when closed', function() {
|
||||
element.opened = false;
|
||||
expect(element._toggleIcon).to.be.eql('icons:expand-more');
|
||||
});
|
||||
|
||||
test('shows open toggle icon when opened', function() {
|
||||
element.opened = true;
|
||||
expect(element._toggleIcon).to.be.eql('icons:expand-less');
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -26,12 +26,12 @@
|
|||
"utopia.js",
|
||||
"code.js"
|
||||
],
|
||||
"version": "1.3.0",
|
||||
"_release": "1.3.0",
|
||||
"version": "1.4.1",
|
||||
"_release": "1.4.1",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v1.3.0",
|
||||
"commit": "ad97b23be583f01e84ec5f17197d2c2b109ca7d0"
|
||||
"tag": "v1.4.1",
|
||||
"commit": "97b0eb5a1a74760c5c0f37f82116679b33876634"
|
||||
},
|
||||
"_source": "git://github.com/LeaVerou/prism.git",
|
||||
"_target": "*",
|
||||
|
|
45
dashboard-ui/bower_components/prism/CHANGELOG.md
vendored
45
dashboard-ui/bower_components/prism/CHANGELOG.md
vendored
|
@ -1,5 +1,50 @@
|
|||
# Prism Changelog
|
||||
|
||||
## 1.4.1 (2016-02-03)
|
||||
|
||||
### Other changes
|
||||
|
||||
* Fix DFS bug in Prism core [[`b86c727`](https://github.com/PrismJS/prism/commit/b86c727)]
|
||||
|
||||
## 1.4.0 (2016-02-03)
|
||||
|
||||
### New components
|
||||
|
||||
* __Solarized Light__ ([#855](https://github.com/PrismJS/prism/pull/855)) [[`70846ba`](https://github.com/PrismJS/prism/commit/70846ba)]
|
||||
* __JSON__ ([#370](https://github.com/PrismJS/prism/pull/370)) [[`ad2fcd0`](https://github.com/PrismJS/prism/commit/ad2fcd0)]
|
||||
|
||||
### Updated components
|
||||
|
||||
* __Show Language__:
|
||||
* Remove data-language attribute ([#840](https://github.com/PrismJS/prism/pull/840)) [[`eb9a83c`](https://github.com/PrismJS/prism/commit/eb9a83c)]
|
||||
* Allow custom label without a language mapping ([#837](https://github.com/PrismJS/prism/pull/837)) [[`7e74aef`](https://github.com/PrismJS/prism/commit/7e74aef)]
|
||||
* __JSX__:
|
||||
* Better Nesting in JSX attributes ([#842](https://github.com/PrismJS/prism/pull/842)) [[`971dda7`](https://github.com/PrismJS/prism/commit/971dda7)]
|
||||
* __File Highlight__:
|
||||
* Defer File Highlight until the full DOM has loaded. ([#844](https://github.com/PrismJS/prism/pull/844)) [[`6f995ef`](https://github.com/PrismJS/prism/commit/6f995ef)]
|
||||
* __Coy Theme__:
|
||||
* Fix coy theme shadows ([#865](https://github.com/PrismJS/prism/pull/865)) [[`58d2337`](https://github.com/PrismJS/prism/commit/58d2337)]
|
||||
* __Show Invisibles__:
|
||||
* Ensure show-invisibles compat with autoloader ([#874](https://github.com/PrismJS/prism/pull/874)) [[`c3cfb1f`](https://github.com/PrismJS/prism/commit/c3cfb1f)]
|
||||
* Add support for the space character for the show-invisibles plugin ([#876](https://github.com/PrismJS/prism/pull/876)) [[`05442d3`](https://github.com/PrismJS/prism/commit/05442d3)]
|
||||
|
||||
### New plugins
|
||||
|
||||
* __Command Line__ ([#831](https://github.com/PrismJS/prism/pull/831)) [[`8378906`](https://github.com/PrismJS/prism/commit/8378906)]
|
||||
|
||||
### Other changes
|
||||
|
||||
* Use document.currentScript instead of document.getElementsByTagName() [[`fa98743`](https://github.com/PrismJS/prism/commit/fa98743)]
|
||||
* Add prefix for Firefox selection and move prefixed rule first [[`6d54717`](https://github.com/PrismJS/prism/commit/6d54717)]
|
||||
* No background for `<code>` in `<pre>` [[`8c310bc`](https://github.com/PrismJS/prism/commit/8c310bc)]
|
||||
* Fixing to initial copyright year [[`69cbf7a`](https://github.com/PrismJS/prism/commit/69cbf7a)]
|
||||
* Simplify the “lang” regex [[`417f54a`](https://github.com/PrismJS/prism/commit/417f54a)]
|
||||
* Fix broken heading links [[`a7f9e62`](https://github.com/PrismJS/prism/commit/a7f9e62)]
|
||||
* Prevent infinite recursion in DFS [[`02894e1`](https://github.com/PrismJS/prism/commit/02894e1)]
|
||||
* Fix incorrect page title [[`544b56f`](https://github.com/PrismJS/prism/commit/544b56f)]
|
||||
* Link scss to webplatform wiki [[`08d979a`](https://github.com/PrismJS/prism/commit/08d979a)]
|
||||
* Revert white-space to normal when code is inline instead of in a pre [[`1a971b5`](https://github.com/PrismJS/prism/commit/1a971b5)]
|
||||
|
||||
## 1.3.0 (2015-10-26)
|
||||
|
||||
### New components
|
||||
|
|
2
dashboard-ui/bower_components/prism/LICENSE
vendored
2
dashboard-ui/bower_components/prism/LICENSE
vendored
|
@ -1,6 +1,6 @@
|
|||
MIT LICENSE
|
||||
|
||||
Copyright (c) 2012-2013 Lea Verou
|
||||
Copyright (c) 2012 Lea Verou
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
@ -29,6 +29,10 @@ var components = {
|
|||
"prism-coy": {
|
||||
"title": "Coy",
|
||||
"owner": "tshedor"
|
||||
},
|
||||
"prism-solarizedlight": {
|
||||
"title": "Solarized Light",
|
||||
"owner": "hectormatos2011 "
|
||||
}
|
||||
},
|
||||
"languages": {
|
||||
|
@ -258,6 +262,10 @@ var components = {
|
|||
"require": "clike",
|
||||
"owner": "sherblot"
|
||||
},
|
||||
"json": {
|
||||
"title": "JSON",
|
||||
"owner": "CupOfTea696"
|
||||
},
|
||||
"julia": {
|
||||
"title": "Julia",
|
||||
"owner": "cdagnino"
|
||||
|
@ -598,6 +606,10 @@ var components = {
|
|||
"title": "Keep Markup",
|
||||
"owner": "Golmote",
|
||||
"noCSS": true
|
||||
},
|
||||
"command-line": {
|
||||
"title": "Command Line",
|
||||
"owner": "chriswells0"
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -15,7 +15,8 @@ var _self = (typeof window !== 'undefined')
|
|||
var Prism = (function(){
|
||||
|
||||
// Private helper vars
|
||||
var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i;
|
||||
var lang = /\blang(?:uage)?-(\w+)\b/i;
|
||||
var uniqueId = 0;
|
||||
|
||||
var _ = _self.Prism = {
|
||||
util: {
|
||||
|
@ -33,6 +34,13 @@ var _ = _self.Prism = {
|
|||
return Object.prototype.toString.call(o).match(/\[object (\w+)\]/)[1];
|
||||
},
|
||||
|
||||
objId: function (obj) {
|
||||
if (!obj['__id']) {
|
||||
Object.defineProperty(obj, '__id', { value: ++uniqueId });
|
||||
}
|
||||
return obj['__id'];
|
||||
},
|
||||
|
||||
// Deep clone a language definition (e.g. to extend it)
|
||||
clone: function (o) {
|
||||
var type = _.util.type(o);
|
||||
|
@ -125,16 +133,19 @@ var _ = _self.Prism = {
|
|||
},
|
||||
|
||||
// Traverse a language definition with Depth First Search
|
||||
DFS: function(o, callback, type) {
|
||||
DFS: function(o, callback, type, visited) {
|
||||
visited = visited || {};
|
||||
for (var i in o) {
|
||||
if (o.hasOwnProperty(i)) {
|
||||
callback.call(o, i, o[i], type || i);
|
||||
|
||||
if (_.util.type(o[i]) === 'Object') {
|
||||
_.languages.DFS(o[i], callback);
|
||||
if (_.util.type(o[i]) === 'Object' && !visited[_.util.objId(o[i])]) {
|
||||
visited[_.util.objId(o[i])] = true;
|
||||
_.languages.DFS(o[i], callback, null, visited);
|
||||
}
|
||||
else if (_.util.type(o[i]) === 'Array') {
|
||||
_.languages.DFS(o[i], callback, i);
|
||||
else if (_.util.type(o[i]) === 'Array' && !visited[_.util.objId(o[i])]) {
|
||||
visited[_.util.objId(o[i])] = true;
|
||||
_.languages.DFS(o[i], callback, i, visited);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -407,10 +418,8 @@ if (!_self.document) {
|
|||
return _self.Prism;
|
||||
}
|
||||
|
||||
// Get current script and highlight
|
||||
var script = document.getElementsByTagName('script');
|
||||
|
||||
script = script[script.length - 1];
|
||||
//Get current script and highlight
|
||||
var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop();
|
||||
|
||||
if (script) {
|
||||
_.filename = script.src;
|
||||
|
|
File diff suppressed because one or more lines are too long
11
dashboard-ui/bower_components/prism/components/prism-json.js
vendored
Normal file
11
dashboard-ui/bower_components/prism/components/prism-json.js
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
Prism.languages.json = {
|
||||
'property': /".*?"(?=\s*:)/ig,
|
||||
'string': /"(?!:)(\\?[^"])*?"(?!:)/g,
|
||||
'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,
|
||||
'punctuation': /[{}[\]);,]/g,
|
||||
'operator': /:/g,
|
||||
'boolean': /\b(true|false)\b/gi,
|
||||
'null': /\bnull\b/gi,
|
||||
};
|
||||
|
||||
Prism.languages.jsonp = Prism.languages.json;
|
1
dashboard-ui/bower_components/prism/components/prism-json.min.js
vendored
Normal file
1
dashboard-ui/bower_components/prism/components/prism-json.min.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
Prism.languages.json={property:/".*?"(?=\s*:)/gi,string:/"(?!:)(\\?[^"])*?"(?!:)/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/g,punctuation:/[{}[\]);,]/g,operator:/:/g,"boolean":/\b(true|false)\b/gi,"null":/\bnull\b/gi},Prism.languages.jsonp=Prism.languages.json;
|
|
@ -3,20 +3,23 @@
|
|||
var javascript = Prism.util.clone(Prism.languages.javascript);
|
||||
|
||||
Prism.languages.jsx = Prism.languages.extend('markup', javascript);
|
||||
Prism.languages.jsx.tag.pattern= /<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+|(\{[\w\W]*?\})))?\s*)*\/?>/i;
|
||||
Prism.languages.jsx.tag.pattern= /<\/?[\w\.:-]+\s*(?:\s+[\w\.:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+|(\{[\w\W]*?\})))?\s*)*\/?>/i;
|
||||
|
||||
Prism.languages.jsx.tag.inside['attr-value'].pattern = /=[^\{](?:('|")[\w\W]*?(\1)|[^\s>]+)/i;
|
||||
|
||||
var jsxExpression = Prism.util.clone(Prism.languages.jsx);
|
||||
|
||||
delete jsxExpression.punctuation
|
||||
|
||||
jsxExpression = Prism.languages.insertBefore('jsx', 'operator', {
|
||||
'punctuation': /=(?={)|[{}[\];(),.:]/
|
||||
}, { jsx: jsxExpression });
|
||||
|
||||
Prism.languages.insertBefore('inside', 'attr-value',{
|
||||
'script': {
|
||||
// Allow for one level of nesting
|
||||
pattern: /=(\{(?:\{[^}]*\}|[^}])+\})/i,
|
||||
inside: {
|
||||
'function' : Prism.languages.javascript.function,
|
||||
'punctuation': /[={}[\];(),.:]/,
|
||||
'keyword': Prism.languages.javascript.keyword,
|
||||
'boolean': Prism.languages.javascript.boolean
|
||||
},
|
||||
inside: jsxExpression,
|
||||
'alias': 'language-javascript'
|
||||
}
|
||||
}, Prism.languages.jsx.tag);
|
||||
|
|
|
@ -1 +1 @@
|
|||
!function(a){var s=a.util.clone(a.languages.javascript);a.languages.jsx=a.languages.extend("markup",s),a.languages.jsx.tag.pattern=/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+|(\{[\w\W]*?\})))?\s*)*\/?>/i,a.languages.jsx.tag.inside["attr-value"].pattern=/=[^\{](?:('|")[\w\W]*?(\1)|[^\s>]+)/i,a.languages.insertBefore("inside","attr-value",{script:{pattern:/=(\{(?:\{[^}]*\}|[^}])+\})/i,inside:{"function":a.languages.javascript.function,punctuation:/[={}[\];(),.:]/,keyword:a.languages.javascript.keyword,"boolean":a.languages.javascript.boolean},alias:"language-javascript"}},a.languages.jsx.tag)}(Prism);
|
||||
!function(a){var e=a.util.clone(a.languages.javascript);a.languages.jsx=a.languages.extend("markup",e),a.languages.jsx.tag.pattern=/<\/?[\w\.:-]+\s*(?:\s+[\w\.:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+|(\{[\w\W]*?\})))?\s*)*\/?>/i,a.languages.jsx.tag.inside["attr-value"].pattern=/=[^\{](?:('|")[\w\W]*?(\1)|[^\s>]+)/i;var s=a.util.clone(a.languages.jsx);delete s.punctuation,s=a.languages.insertBefore("jsx","operator",{punctuation:/=(?={)|[{}[\];(),.:]/},{jsx:s}),a.languages.insertBefore("inside","attr-value",{script:{pattern:/=(\{(?:\{[^}]*\}|[^}])+\})/i,inside:s,alias:"language-javascript"}},a.languages.jsx.tag)}(Prism);
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "prismjs",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.1",
|
||||
"description": "Lightweight, robust, elegant syntax highlighting. A spin-off project from Dabblet.",
|
||||
"main": "prism.js",
|
||||
"scripts": {
|
||||
|
|
33
dashboard-ui/bower_components/prism/plugins/command-line/prism-command-line.css
vendored
Normal file
33
dashboard-ui/bower_components/prism/plugins/command-line/prism-command-line.css
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
.command-line-prompt {
|
||||
border-right: 1px solid #999;
|
||||
display: block;
|
||||
float: left;
|
||||
font-size: 100%;
|
||||
letter-spacing: -1px;
|
||||
margin-right: 1em;
|
||||
pointer-events: none;
|
||||
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.command-line-prompt > span:before {
|
||||
color: #999;
|
||||
content: ' ';
|
||||
display: block;
|
||||
padding-right: 0.8em;
|
||||
}
|
||||
|
||||
.command-line-prompt > span[data-user]:before {
|
||||
content: "[" attr(data-user) "@" attr(data-host) "] $";
|
||||
}
|
||||
|
||||
.command-line-prompt > span[data-user="root"]:before {
|
||||
content: "[" attr(data-user) "@" attr(data-host) "] #";
|
||||
}
|
||||
|
||||
.command-line-prompt > span[data-prompt]:before {
|
||||
content: attr(data-prompt);
|
||||
}
|
77
dashboard-ui/bower_components/prism/plugins/command-line/prism-command-line.js
vendored
Normal file
77
dashboard-ui/bower_components/prism/plugins/command-line/prism-command-line.js
vendored
Normal file
|
@ -0,0 +1,77 @@
|
|||
(function() {
|
||||
|
||||
if (typeof self === 'undefined' || !self.Prism || !self.document) {
|
||||
return;
|
||||
}
|
||||
|
||||
Prism.hooks.add('complete', function (env) {
|
||||
if (!env.code) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Works only for <code> wrapped inside <pre> (not inline).
|
||||
var pre = env.element.parentNode;
|
||||
var clsReg = /\s*\bcommand-line\b\s*/;
|
||||
if (
|
||||
!pre || !/pre/i.test(pre.nodeName) ||
|
||||
// Abort only if neither the <pre> nor the <code> have the class
|
||||
(!clsReg.test(pre.className) && !clsReg.test(env.element.className))
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (env.element.querySelector('.command-line-prompt')) {
|
||||
// Abort if prompt already exists.
|
||||
return;
|
||||
}
|
||||
|
||||
if (clsReg.test(env.element.className)) {
|
||||
// Remove the class "command-line" from the <code>
|
||||
env.element.className = env.element.className.replace(clsReg, '');
|
||||
}
|
||||
if (!clsReg.test(pre.className)) {
|
||||
// Add the class "command-line" to the <pre>
|
||||
pre.className += ' command-line';
|
||||
}
|
||||
|
||||
// Create the "rows" that will become the command-line prompts. -- cwells
|
||||
var lines = new Array(1 + env.code.split('\n').length);
|
||||
var promptText = pre.getAttribute('data-prompt') || '';
|
||||
if (promptText !== '') {
|
||||
lines = lines.join('<span data-prompt="' + promptText + '"></span>');
|
||||
} else {
|
||||
var user = pre.getAttribute('data-user') || 'user';
|
||||
var host = pre.getAttribute('data-host') || 'localhost';
|
||||
lines = lines.join('<span data-user="' + user + '" data-host="' + host + '"></span>');
|
||||
}
|
||||
|
||||
// Create the wrapper element. -- cwells
|
||||
var prompt = document.createElement('span');
|
||||
prompt.className = 'command-line-prompt';
|
||||
prompt.innerHTML = lines;
|
||||
|
||||
// Mark the output lines so they can be styled differently (no prompt). -- cwells
|
||||
var outputSections = pre.getAttribute('data-output') || '';
|
||||
outputSections = outputSections.split(',');
|
||||
for (var i = 0; i < outputSections.length; i++) {
|
||||
var outputRange = outputSections[i].split('-');
|
||||
var outputStart = parseInt(outputRange[0]);
|
||||
var outputEnd = outputStart; // Default: end at the first line when it's not an actual range. -- cwells
|
||||
if (outputRange.length === 2) {
|
||||
outputEnd = parseInt(outputRange[1]);
|
||||
}
|
||||
|
||||
if (!isNaN(outputStart) && !isNaN(outputEnd)) {
|
||||
for (var j = outputStart; j <= outputEnd && j <= prompt.children.length; j++) {
|
||||
var node = prompt.children[j - 1];
|
||||
node.removeAttribute('data-user');
|
||||
node.removeAttribute('data-host');
|
||||
node.removeAttribute('data-prompt');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env.element.innerHTML = prompt.outerHTML + env.element.innerHTML;
|
||||
});
|
||||
|
||||
}());
|
1
dashboard-ui/bower_components/prism/plugins/command-line/prism-command-line.min.js
vendored
Normal file
1
dashboard-ui/bower_components/prism/plugins/command-line/prism-command-line.min.js
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
!function(){"undefined"!=typeof self&&self.Prism&&self.document&&Prism.hooks.add("complete",function(e){if(e.code){var t=e.element.parentNode,a=/\s*\bcommand-line\b\s*/;if(t&&/pre/i.test(t.nodeName)&&(a.test(t.className)||a.test(e.element.className))&&!e.element.querySelector(".command-line-prompt")){a.test(e.element.className)&&(e.element.className=e.element.className.replace(a,"")),a.test(t.className)||(t.className+=" command-line");var n=new Array(1+e.code.split("\n").length),s=t.getAttribute("data-prompt")||"";if(""!==s)n=n.join('<span data-prompt="'+s+'"></span>');else{var r=t.getAttribute("data-user")||"user",l=t.getAttribute("data-host")||"localhost";n=n.join('<span data-user="'+r+'" data-host="'+l+'"></span>')}var m=document.createElement("span");m.className="command-line-prompt",m.innerHTML=n;var o=t.getAttribute("data-output")||"";o=o.split(",");for(var i=0;i<o.length;i++){var d=o[i].split("-"),p=parseInt(d[0]),c=p;if(2===d.length&&(c=parseInt(d[1])),!isNaN(p)&&!isNaN(c))for(var u=p;c>=u&&u<=m.children.length;u++){var N=m.children[u-1];N.removeAttribute("data-user"),N.removeAttribute("data-host"),N.removeAttribute("data-prompt")}}e.element.innerHTML=m.outerHTML+e.element.innerHTML}}})}();
|
|
@ -71,6 +71,6 @@
|
|||
|
||||
};
|
||||
|
||||
self.Prism.fileHighlight();
|
||||
document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight);
|
||||
|
||||
})();
|
||||
|
|
|
@ -1 +1 @@
|
|||
!function(){"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var e={js:"javascript",html:"markup",svg:"markup",xml:"markup",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell"};Array.prototype.forEach&&Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(t){for(var r,a=t.getAttribute("data-src"),s=t,n=/\blang(?:uage)?-(?!\*)(\w+)\b/i;s&&!n.test(s.className);)s=s.parentNode;if(s&&(r=(t.className.match(n)||[,""])[1]),!r){var o=(a.match(/\.(\w+)$/)||[,""])[1];r=e[o]||o}var l=document.createElement("code");l.className="language-"+r,t.textContent="",l.textContent="Loading…",t.appendChild(l);var i=new XMLHttpRequest;i.open("GET",a,!0),i.onreadystatechange=function(){4==i.readyState&&(i.status<400&&i.responseText?(l.textContent=i.responseText,Prism.highlightElement(l)):l.textContent=i.status>=400?"✖ Error "+i.status+" while fetching file: "+i.statusText:"✖ Error: File does not exist or is empty")},i.send(null)})},self.Prism.fileHighlight())}();
|
||||
!function(){"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var e={js:"javascript",html:"markup",svg:"markup",xml:"markup",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell"};Array.prototype.forEach&&Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(t){for(var r,a=t.getAttribute("data-src"),n=t,s=/\blang(?:uage)?-(?!\*)(\w+)\b/i;n&&!s.test(n.className);)n=n.parentNode;if(n&&(r=(t.className.match(s)||[,""])[1]),!r){var o=(a.match(/\.(\w+)$/)||[,""])[1];r=e[o]||o}var l=document.createElement("code");l.className="language-"+r,t.textContent="",l.textContent="Loading…",t.appendChild(l);var i=new XMLHttpRequest;i.open("GET",a,!0),i.onreadystatechange=function(){4==i.readyState&&(i.status<400&&i.responseText?(l.textContent=i.responseText,Prism.highlightElement(l)):l.textContent=i.status>=400?"✖ Error "+i.status+" while fetching file: "+i.statusText:"✖ Error: File does not exist or is empty")},i.send(null)})},document.addEventListener("DOMContentLoaded",self.Prism.fileHighlight))}();
|
|
@ -1,7 +1,16 @@
|
|||
.token.tab:not(:empty),
|
||||
.token.cr,
|
||||
.token.lf,
|
||||
.token.space {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.token.tab:not(:empty):before,
|
||||
.token.cr:before,
|
||||
.token.lf:before {
|
||||
.token.lf:before,
|
||||
.token.space:before {
|
||||
color: hsl(24, 20%, 85%);
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.token.tab:not(:empty):before {
|
||||
|
@ -18,3 +27,7 @@
|
|||
.token.lf:before {
|
||||
content: '\240A';
|
||||
}
|
||||
|
||||
.token.space:before {
|
||||
content: '\00B7';
|
||||
}
|
|
@ -7,13 +7,13 @@ if (
|
|||
return;
|
||||
}
|
||||
|
||||
for (var language in Prism.languages) {
|
||||
var tokens = Prism.languages[language];
|
||||
|
||||
tokens.tab = /\t/g;
|
||||
tokens.crlf = /\r\n/g;
|
||||
tokens.lf = /\n/g;
|
||||
tokens.cr = /\r/g;
|
||||
}
|
||||
Prism.hooks.add('before-highlight', function(env) {
|
||||
var tokens = env.grammar;
|
||||
|
||||
tokens.tab = /\t/g;
|
||||
tokens.crlf = /\r\n/g;
|
||||
tokens.lf = /\n/g;
|
||||
tokens.cr = /\r/g;
|
||||
tokens.space = / /g;
|
||||
});
|
||||
})();
|
||||
|
|
|
@ -1 +1 @@
|
|||
!function(){if(("undefined"==typeof self||self.Prism)&&("undefined"==typeof global||global.Prism))for(var f in Prism.languages){var n=Prism.languages[f];n.tab=/\t/g,n.crlf=/\r\n/g,n.lf=/\n/g,n.cr=/\r/g}}();
|
||||
!function(){"undefined"!=typeof self&&!self.Prism||"undefined"!=typeof global&&!global.Prism||Prism.hooks.add("before-highlight",function(e){var f=e.grammar;f.tab=/\t/g,f.crlf=/\r\n/g,f.lf=/\n/g,f.cr=/\r/g,f.space=/ /g})}();
|
|
@ -2,7 +2,7 @@ div.prism-show-language {
|
|||
position: relative;
|
||||
}
|
||||
|
||||
div.prism-show-language > div.prism-show-language-label[data-language] {
|
||||
div.prism-show-language > div.prism-show-language-label {
|
||||
color: black;
|
||||
background-color: #CFCFCF;
|
||||
display: inline-block;
|
||||
|
|
|
@ -5,14 +5,13 @@ if (typeof self === 'undefined' || !self.Prism || !self.document) {
|
|||
}
|
||||
|
||||
// The languages map is built automatically with gulp
|
||||
var Languages = /*languages_placeholder[*/{"css":"CSS","clike":"C-like","javascript":"JavaScript","abap":"ABAP","actionscript":"ActionScript","apacheconf":"Apache Configuration","apl":"APL","applescript":"AppleScript","asciidoc":"AsciiDoc","aspnet":"ASP.NET (C#)","autoit":"AutoIt","autohotkey":"AutoHotkey","basic":"BASIC","csharp":"C#","cpp":"C++","coffeescript":"CoffeeScript","css-extras":"CSS Extras","fsharp":"F#","glsl":"GLSL","http":"HTTP","inform7":"Inform 7","latex":"LaTeX","lolcode":"LOLCODE","matlab":"MATLAB","mel":"MEL","nasm":"NASM","nginx":"nginx","nsis":"NSIS","objectivec":"Objective-C","ocaml":"OCaml","parigp":"PARI/GP","php":"PHP","php-extras":"PHP Extras","powershell":"PowerShell","jsx":"React JSX","rest":"reST (reStructuredText)","sas":"SAS","sass":"Sass (Sass)","scss":"Sass (Scss)","sql":"SQL","typescript":"TypeScript","vhdl":"VHDL","vim":"vim","wiki":"Wiki markup","yaml":"YAML"}/*]*/;
|
||||
var Languages = /*languages_placeholder[*/{"css":"CSS","clike":"C-like","javascript":"JavaScript","abap":"ABAP","actionscript":"ActionScript","apacheconf":"Apache Configuration","apl":"APL","applescript":"AppleScript","asciidoc":"AsciiDoc","aspnet":"ASP.NET (C#)","autoit":"AutoIt","autohotkey":"AutoHotkey","basic":"BASIC","csharp":"C#","cpp":"C++","coffeescript":"CoffeeScript","css-extras":"CSS Extras","fsharp":"F#","glsl":"GLSL","http":"HTTP","inform7":"Inform 7","json":"JSON","latex":"LaTeX","lolcode":"LOLCODE","matlab":"MATLAB","mel":"MEL","nasm":"NASM","nginx":"nginx","nsis":"NSIS","objectivec":"Objective-C","ocaml":"OCaml","parigp":"PARI/GP","php":"PHP","php-extras":"PHP Extras","powershell":"PowerShell","jsx":"React JSX","rest":"reST (reStructuredText)","sas":"SAS","sass":"Sass (Sass)","scss":"Sass (Scss)","sql":"SQL","typescript":"TypeScript","vhdl":"VHDL","vim":"vim","wiki":"Wiki markup","yaml":"YAML"}/*]*/;
|
||||
Prism.hooks.add('before-highlight', function(env) {
|
||||
var pre = env.element.parentNode;
|
||||
if (!pre || !/pre/i.test(pre.nodeName)) {
|
||||
return;
|
||||
}
|
||||
var language = Languages[env.language] || (env.language.substring(0, 1).toUpperCase() + env.language.substring(1));
|
||||
pre.setAttribute('data-language', language);
|
||||
var language = pre.getAttribute('data-language') || Languages[env.language] || (env.language.substring(0, 1).toUpperCase() + env.language.substring(1));
|
||||
|
||||
/* check if the divs already exist */
|
||||
var sib = pre.previousSibling;
|
||||
|
@ -21,23 +20,19 @@ Prism.hooks.add('before-highlight', function(env) {
|
|||
sib.firstChild &&
|
||||
/\s*\bprism-show-language-label\b\s*/.test(sib.firstChild.className)) {
|
||||
div2 = sib.firstChild;
|
||||
if (div2.getAttribute('data-language') !== language) {
|
||||
div2.setAttribute('data-language', language);
|
||||
div2.innerHTML = language;
|
||||
}
|
||||
} else {
|
||||
div = document.createElement('div');
|
||||
div2 = document.createElement('div');
|
||||
|
||||
div2.className = 'prism-show-language-label';
|
||||
div2.setAttribute('data-language', language);
|
||||
div2.innerHTML = language;
|
||||
|
||||
div.className = 'prism-show-language';
|
||||
div.appendChild(div2);
|
||||
|
||||
pre.parentNode.insertBefore(div, pre);
|
||||
}
|
||||
|
||||
div2.innerHTML = language;
|
||||
});
|
||||
|
||||
})();
|
||||
|
|
|
@ -1 +1 @@
|
|||
!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e={css:"CSS",clike:"C-like",javascript:"JavaScript",abap:"ABAP",actionscript:"ActionScript",apacheconf:"Apache Configuration",apl:"APL",applescript:"AppleScript",asciidoc:"AsciiDoc",aspnet:"ASP.NET (C#)",autoit:"AutoIt",autohotkey:"AutoHotkey",basic:"BASIC",csharp:"C#",cpp:"C++",coffeescript:"CoffeeScript","css-extras":"CSS Extras",fsharp:"F#",glsl:"GLSL",http:"HTTP",inform7:"Inform 7",latex:"LaTeX",lolcode:"LOLCODE",matlab:"MATLAB",mel:"MEL",nasm:"NASM",nginx:"nginx",nsis:"NSIS",objectivec:"Objective-C",ocaml:"OCaml",parigp:"PARI/GP",php:"PHP","php-extras":"PHP Extras",powershell:"PowerShell",jsx:"React JSX",rest:"reST (reStructuredText)",sas:"SAS",sass:"Sass (Sass)",scss:"Sass (Scss)",sql:"SQL",typescript:"TypeScript",vhdl:"VHDL",vim:"vim",wiki:"Wiki markup",yaml:"YAML"};Prism.hooks.add("before-highlight",function(a){var s=a.element.parentNode;if(s&&/pre/i.test(s.nodeName)){var t=e[a.language]||a.language.substring(0,1).toUpperCase()+a.language.substring(1);s.setAttribute("data-language",t);var i,r,l=s.previousSibling;l&&/\s*\bprism-show-language\b\s*/.test(l.className)&&l.firstChild&&/\s*\bprism-show-language-label\b\s*/.test(l.firstChild.className)?(r=l.firstChild,r.getAttribute("data-language")!==t&&(r.setAttribute("data-language",t),r.innerHTML=t)):(i=document.createElement("div"),r=document.createElement("div"),r.className="prism-show-language-label",r.setAttribute("data-language",t),r.innerHTML=t,i.className="prism-show-language",i.appendChild(r),s.parentNode.insertBefore(i,s))}})}}();
|
||||
!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e={css:"CSS",clike:"C-like",javascript:"JavaScript",abap:"ABAP",actionscript:"ActionScript",apacheconf:"Apache Configuration",apl:"APL",applescript:"AppleScript",asciidoc:"AsciiDoc",aspnet:"ASP.NET (C#)",autoit:"AutoIt",autohotkey:"AutoHotkey",basic:"BASIC",csharp:"C#",cpp:"C++",coffeescript:"CoffeeScript","css-extras":"CSS Extras",fsharp:"F#",glsl:"GLSL",http:"HTTP",inform7:"Inform 7",json:"JSON",latex:"LaTeX",lolcode:"LOLCODE",matlab:"MATLAB",mel:"MEL",nasm:"NASM",nginx:"nginx",nsis:"NSIS",objectivec:"Objective-C",ocaml:"OCaml",parigp:"PARI/GP",php:"PHP","php-extras":"PHP Extras",powershell:"PowerShell",jsx:"React JSX",rest:"reST (reStructuredText)",sas:"SAS",sass:"Sass (Sass)",scss:"Sass (Scss)",sql:"SQL",typescript:"TypeScript",vhdl:"VHDL",vim:"vim",wiki:"Wiki markup",yaml:"YAML"};Prism.hooks.add("before-highlight",function(s){var a=s.element.parentNode;if(a&&/pre/i.test(a.nodeName)){var t,i,r=a.getAttribute("data-language")||e[s.language]||s.language.substring(0,1).toUpperCase()+s.language.substring(1),l=a.previousSibling;l&&/\s*\bprism-show-language\b\s*/.test(l.className)&&l.firstChild&&/\s*\bprism-show-language-label\b\s*/.test(l.firstChild.className)?i=l.firstChild:(t=document.createElement("div"),i=document.createElement("div"),i.className="prism-show-language-label",t.className="prism-show-language",t.appendChild(i),a.parentNode.insertBefore(t,a)),i.innerHTML=r}})}}();
|
|
@ -69,7 +69,7 @@ Prism.hooks.add('wrap', function(env) {
|
|||
|
||||
var href = 'http://docs.webplatform.org/';
|
||||
|
||||
if (env.language == 'css') {
|
||||
if (env.language == 'css' || env.language == 'scss') {
|
||||
href += 'wiki/css/';
|
||||
|
||||
if (env.type == 'property') {
|
||||
|
|
|
@ -1 +1 @@
|
|||
!function(){function e(e){var n=e.toLowerCase();if(t.HTML[n])return"html";if(t.SVG[e])return"svg";if(t.MathML[e])return"mathml";if(0!==t.HTML[n]&&"undefined"!=typeof document){var a=(document.createElement(e).toString().match(/\[object HTML(.+)Element\]/)||[])[1];if(a&&"Unknown"!=a)return t.HTML[n]=1,"html"}if(t.HTML[n]=0,0!==t.SVG[e]&&"undefined"!=typeof document){var r=(document.createElementNS("http://www.w3.org/2000/svg",e).toString().match(/\[object SVG(.+)Element\]/)||[])[1];if(r&&"Unknown"!=r)return t.SVG[e]=1,"svg"}return t.SVG[e]=0,0!==t.MathML[e]&&0===e.indexOf("m")?(t.MathML[e]=1,"mathml"):(t.MathML[e]=0,null)}if(("undefined"==typeof self||self.Prism)&&("undefined"==typeof global||global.Prism)){if(Prism.languages.css&&(Prism.languages.css.atrule.inside["atrule-id"]=/^@[\w-]+/,Prism.languages.css.selector.pattern?(Prism.languages.css.selector.inside["pseudo-class"]=/:[\w-]+/,Prism.languages.css.selector.inside["pseudo-element"]=/::[\w-]+/):Prism.languages.css.selector={pattern:Prism.languages.css.selector,inside:{"pseudo-class":/:[\w-]+/,"pseudo-element":/::[\w-]+/}}),Prism.languages.markup){Prism.languages.markup.tag.inside.tag.inside["tag-id"]=/[\w-]+/;var t={HTML:{a:1,abbr:1,acronym:1,b:1,basefont:1,bdo:1,big:1,blink:1,cite:1,code:1,dfn:1,em:1,kbd:1,i:1,rp:1,rt:1,ruby:1,s:1,samp:1,small:1,spacer:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1,wbr:1,noframes:1,summary:1,command:1,dt:1,dd:1,figure:1,figcaption:1,center:1,section:1,nav:1,article:1,aside:1,hgroup:1,header:1,footer:1,address:1,noscript:1,isIndex:1,main:1,mark:1,marquee:1,meter:1,menu:1},SVG:{animateColor:1,animateMotion:1,animateTransform:1,glyph:1,feBlend:1,feColorMatrix:1,feComponentTransfer:1,feFuncR:1,feFuncG:1,feFuncB:1,feFuncA:1,feComposite:1,feConvolveMatrix:1,feDiffuseLighting:1,feDisplacementMap:1,feFlood:1,feGaussianBlur:1,feImage:1,feMerge:1,feMergeNode:1,feMorphology:1,feOffset:1,feSpecularLighting:1,feTile:1,feTurbulence:1,feDistantLight:1,fePointLight:1,feSpotLight:1,linearGradient:1,radialGradient:1,altGlyph:1,textPath:1,tref:1,altglyph:1,textpath:1,altglyphdef:1,altglyphitem:1,clipPath:1,"color-profile":1,cursor:1,"font-face":1,"font-face-format":1,"font-face-name":1,"font-face-src":1,"font-face-uri":1,foreignObject:1,glyphRef:1,hkern:1,vkern:1},MathML:{}}}var n;Prism.hooks.add("wrap",function(t){if(("tag-id"==t.type||"property"==t.type&&0!=t.content.indexOf("-")||"atrule-id"==t.type&&0!=t.content.indexOf("@-")||"pseudo-class"==t.type&&0!=t.content.indexOf(":-")||"pseudo-element"==t.type&&0!=t.content.indexOf("::-")||"attr-name"==t.type&&0!=t.content.indexOf("data-"))&&-1===t.content.indexOf("<")){var a="w/index.php?fulltext&search=";t.tag="a";var r="http://docs.webplatform.org/";"css"==t.language?(r+="wiki/css/","property"==t.type?r+="properties/":"atrule-id"==t.type?r+="atrules/":"pseudo-class"==t.type?r+="selectors/pseudo-classes/":"pseudo-element"==t.type&&(r+="selectors/pseudo-elements/")):"markup"==t.language&&("tag-id"==t.type?(n=e(t.content)||n,r+=n?"wiki/"+n+"/elements/":a):"attr-name"==t.type&&(r+=n?"wiki/"+n+"/attributes/":a)),r+=t.content,t.attributes.href=r,t.attributes.target="_blank"}})}}();
|
||||
!function(){function e(e){var a=e.toLowerCase();if(t.HTML[a])return"html";if(t.SVG[e])return"svg";if(t.MathML[e])return"mathml";if(0!==t.HTML[a]&&"undefined"!=typeof document){var n=(document.createElement(e).toString().match(/\[object HTML(.+)Element\]/)||[])[1];if(n&&"Unknown"!=n)return t.HTML[a]=1,"html"}if(t.HTML[a]=0,0!==t.SVG[e]&&"undefined"!=typeof document){var r=(document.createElementNS("http://www.w3.org/2000/svg",e).toString().match(/\[object SVG(.+)Element\]/)||[])[1];if(r&&"Unknown"!=r)return t.SVG[e]=1,"svg"}return t.SVG[e]=0,0!==t.MathML[e]&&0===e.indexOf("m")?(t.MathML[e]=1,"mathml"):(t.MathML[e]=0,null)}if(("undefined"==typeof self||self.Prism)&&("undefined"==typeof global||global.Prism)){if(Prism.languages.css&&(Prism.languages.css.atrule.inside["atrule-id"]=/^@[\w-]+/,Prism.languages.css.selector.pattern?(Prism.languages.css.selector.inside["pseudo-class"]=/:[\w-]+/,Prism.languages.css.selector.inside["pseudo-element"]=/::[\w-]+/):Prism.languages.css.selector={pattern:Prism.languages.css.selector,inside:{"pseudo-class":/:[\w-]+/,"pseudo-element":/::[\w-]+/}}),Prism.languages.markup){Prism.languages.markup.tag.inside.tag.inside["tag-id"]=/[\w-]+/;var t={HTML:{a:1,abbr:1,acronym:1,b:1,basefont:1,bdo:1,big:1,blink:1,cite:1,code:1,dfn:1,em:1,kbd:1,i:1,rp:1,rt:1,ruby:1,s:1,samp:1,small:1,spacer:1,strike:1,strong:1,sub:1,sup:1,time:1,tt:1,u:1,"var":1,wbr:1,noframes:1,summary:1,command:1,dt:1,dd:1,figure:1,figcaption:1,center:1,section:1,nav:1,article:1,aside:1,hgroup:1,header:1,footer:1,address:1,noscript:1,isIndex:1,main:1,mark:1,marquee:1,meter:1,menu:1},SVG:{animateColor:1,animateMotion:1,animateTransform:1,glyph:1,feBlend:1,feColorMatrix:1,feComponentTransfer:1,feFuncR:1,feFuncG:1,feFuncB:1,feFuncA:1,feComposite:1,feConvolveMatrix:1,feDiffuseLighting:1,feDisplacementMap:1,feFlood:1,feGaussianBlur:1,feImage:1,feMerge:1,feMergeNode:1,feMorphology:1,feOffset:1,feSpecularLighting:1,feTile:1,feTurbulence:1,feDistantLight:1,fePointLight:1,feSpotLight:1,linearGradient:1,radialGradient:1,altGlyph:1,textPath:1,tref:1,altglyph:1,textpath:1,altglyphdef:1,altglyphitem:1,clipPath:1,"color-profile":1,cursor:1,"font-face":1,"font-face-format":1,"font-face-name":1,"font-face-src":1,"font-face-uri":1,foreignObject:1,glyphRef:1,hkern:1,vkern:1},MathML:{}}}var a;Prism.hooks.add("wrap",function(t){if(("tag-id"==t.type||"property"==t.type&&0!=t.content.indexOf("-")||"atrule-id"==t.type&&0!=t.content.indexOf("@-")||"pseudo-class"==t.type&&0!=t.content.indexOf(":-")||"pseudo-element"==t.type&&0!=t.content.indexOf("::-")||"attr-name"==t.type&&0!=t.content.indexOf("data-"))&&-1===t.content.indexOf("<")){var n="w/index.php?fulltext&search=";t.tag="a";var r="http://docs.webplatform.org/";"css"==t.language||"scss"==t.language?(r+="wiki/css/","property"==t.type?r+="properties/":"atrule-id"==t.type?r+="atrules/":"pseudo-class"==t.type?r+="selectors/pseudo-classes/":"pseudo-element"==t.type&&(r+="selectors/pseudo-elements/")):"markup"==t.language&&("tag-id"==t.type?(a=e(t.content)||a,r+=a?"wiki/"+a+"/elements/":n):"attr-name"==t.type&&(r+=a?"wiki/"+a+"/attributes/":n)),r+=t.content,t.attributes.href=r,t.attributes.target="_blank"}})}}();
|
31
dashboard-ui/bower_components/prism/prism.js
vendored
31
dashboard-ui/bower_components/prism/prism.js
vendored
|
@ -20,7 +20,8 @@ var _self = (typeof window !== 'undefined')
|
|||
var Prism = (function(){
|
||||
|
||||
// Private helper vars
|
||||
var lang = /\blang(?:uage)?-(?!\*)(\w+)\b/i;
|
||||
var lang = /\blang(?:uage)?-(\w+)\b/i;
|
||||
var uniqueId = 0;
|
||||
|
||||
var _ = _self.Prism = {
|
||||
util: {
|
||||
|
@ -38,6 +39,13 @@ var _ = _self.Prism = {
|
|||
return Object.prototype.toString.call(o).match(/\[object (\w+)\]/)[1];
|
||||
},
|
||||
|
||||
objId: function (obj) {
|
||||
if (!obj['__id']) {
|
||||
Object.defineProperty(obj, '__id', { value: ++uniqueId });
|
||||
}
|
||||
return obj['__id'];
|
||||
},
|
||||
|
||||
// Deep clone a language definition (e.g. to extend it)
|
||||
clone: function (o) {
|
||||
var type = _.util.type(o);
|
||||
|
@ -130,16 +138,19 @@ var _ = _self.Prism = {
|
|||
},
|
||||
|
||||
// Traverse a language definition with Depth First Search
|
||||
DFS: function(o, callback, type) {
|
||||
DFS: function(o, callback, type, visited) {
|
||||
visited = visited || {};
|
||||
for (var i in o) {
|
||||
if (o.hasOwnProperty(i)) {
|
||||
callback.call(o, i, o[i], type || i);
|
||||
|
||||
if (_.util.type(o[i]) === 'Object') {
|
||||
_.languages.DFS(o[i], callback);
|
||||
if (_.util.type(o[i]) === 'Object' && !visited[_.util.objId(o[i])]) {
|
||||
visited[_.util.objId(o[i])] = true;
|
||||
_.languages.DFS(o[i], callback, null, visited);
|
||||
}
|
||||
else if (_.util.type(o[i]) === 'Array') {
|
||||
_.languages.DFS(o[i], callback, i);
|
||||
else if (_.util.type(o[i]) === 'Array' && !visited[_.util.objId(o[i])]) {
|
||||
visited[_.util.objId(o[i])] = true;
|
||||
_.languages.DFS(o[i], callback, i, visited);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -412,10 +423,8 @@ if (!_self.document) {
|
|||
return _self.Prism;
|
||||
}
|
||||
|
||||
// Get current script and highlight
|
||||
var script = document.getElementsByTagName('script');
|
||||
|
||||
script = script[script.length - 1];
|
||||
//Get current script and highlight
|
||||
var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop();
|
||||
|
||||
if (script) {
|
||||
_.filename = script.src;
|
||||
|
@ -703,6 +712,6 @@ Prism.languages.js = Prism.languages.javascript;
|
|||
|
||||
};
|
||||
|
||||
self.Prism.fileHighlight();
|
||||
document.addEventListener('DOMContentLoaded', self.Prism.fileHighlight);
|
||||
|
||||
})();
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: black;
|
||||
background: none;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
|
@ -43,7 +44,6 @@ pre[class*="language-"] {
|
|||
background-size: 3em 3em;
|
||||
background-origin: content-box;
|
||||
overflow: visible;
|
||||
max-height: 30em;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
@ -77,6 +77,7 @@ pre[class*="language-"] {
|
|||
color: #c92c2c;
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
display: inline;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
pre[class*="language-"]:before,
|
||||
|
@ -89,6 +90,7 @@ pre[class*="language-"]:after {
|
|||
left: 0.18em;
|
||||
width: 40%;
|
||||
height: 20%;
|
||||
max-height: 13em;
|
||||
-webkit-box-shadow: 0px 13px 8px #979797;
|
||||
-moz-box-shadow: 0px 13px 8px #979797;
|
||||
box-shadow: 0px 13px 8px #979797;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: white;
|
||||
background: none;
|
||||
text-shadow: 0 -.1em .2em black;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
direction: ltr;
|
||||
|
@ -55,6 +56,7 @@ pre[class*="language-"] {
|
|||
border-radius: .3em;
|
||||
border: .13em solid hsl(30, 20%, 40%);
|
||||
box-shadow: 1px 1px .3em -.1em black inset;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
|
|
|
@ -45,6 +45,7 @@ code[class*="language-"] {
|
|||
padding: .2em;
|
||||
border-radius: .3em;
|
||||
box-shadow: none;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: #f8f8f2;
|
||||
background: none;
|
||||
text-shadow: 0 1px rgba(0, 0, 0, 0.3);
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
direction: ltr;
|
||||
|
@ -44,6 +45,7 @@ pre[class*="language-"] {
|
|||
:not(pre) > code[class*="language-"] {
|
||||
padding: .1em;
|
||||
border-radius: .3em;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
|
|
149
dashboard-ui/bower_components/prism/themes/prism-solarizedlight.css
vendored
Normal file
149
dashboard-ui/bower_components/prism/themes/prism-solarizedlight.css
vendored
Normal file
|
@ -0,0 +1,149 @@
|
|||
/*
|
||||
Solarized Color Schemes originally by Ethan Schoonover
|
||||
http://ethanschoonover.com/solarized
|
||||
|
||||
Ported for PrismJS by Hector Matos
|
||||
Website: https://krakendev.io
|
||||
Twitter Handle: https://twitter.com/allonsykraken)
|
||||
*/
|
||||
|
||||
/*
|
||||
SOLARIZED HEX
|
||||
--------- -------
|
||||
base03 #002b36
|
||||
base02 #073642
|
||||
base01 #586e75
|
||||
base00 #657b83
|
||||
base0 #839496
|
||||
base1 #93a1a1
|
||||
base2 #eee8d5
|
||||
base3 #fdf6e3
|
||||
yellow #b58900
|
||||
orange #cb4b16
|
||||
red #dc322f
|
||||
magenta #d33682
|
||||
violet #6c71c4
|
||||
blue #268bd2
|
||||
cyan #2aa198
|
||||
green #859900
|
||||
*/
|
||||
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: #657b83; /* base00 */
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
word-spacing: normal;
|
||||
word-break: normal;
|
||||
word-wrap: normal;
|
||||
|
||||
line-height: 1.5;
|
||||
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
tab-size: 4;
|
||||
|
||||
-webkit-hyphens: none;
|
||||
-moz-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
|
||||
pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
|
||||
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
|
||||
background: #073642; /* base02 */
|
||||
}
|
||||
|
||||
pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
|
||||
code[class*="language-"]::selection, code[class*="language-"] ::selection {
|
||||
background: #073642; /* base02 */
|
||||
}
|
||||
|
||||
/* Code blocks */
|
||||
pre[class*="language-"] {
|
||||
padding: 1em;
|
||||
margin: .5em 0;
|
||||
overflow: auto;
|
||||
border-radius: 0.3em;
|
||||
}
|
||||
|
||||
:not(pre) > code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
background-color: #fdf6e3; /* base3 */
|
||||
}
|
||||
|
||||
/* Inline code */
|
||||
:not(pre) > code[class*="language-"] {
|
||||
padding: .1em;
|
||||
border-radius: .3em;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
.token.prolog,
|
||||
.token.doctype,
|
||||
.token.cdata {
|
||||
color: #93a1a1; /* base1 */
|
||||
}
|
||||
|
||||
.token.punctuation {
|
||||
color: #586e75; /* base01 */
|
||||
}
|
||||
|
||||
.namespace {
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.token.property,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.number,
|
||||
.token.constant,
|
||||
.token.symbol,
|
||||
.token.deleted {
|
||||
color: #268bd2; /* blue */
|
||||
}
|
||||
|
||||
.token.selector,
|
||||
.token.attr-name,
|
||||
.token.string,
|
||||
.token.char,
|
||||
.token.builtin,
|
||||
.token.url,
|
||||
.token.inserted {
|
||||
color: #2aa198; /* cyan */
|
||||
}
|
||||
|
||||
.token.entity {
|
||||
color: #657b83; /* base00 */
|
||||
background: #eee8d5; /* base2 */
|
||||
}
|
||||
|
||||
.token.atrule,
|
||||
.token.attr-value,
|
||||
.token.keyword {
|
||||
color: #859900; /* green */
|
||||
}
|
||||
|
||||
.token.function {
|
||||
color: #b58900; /* yellow */
|
||||
}
|
||||
|
||||
.token.regex,
|
||||
.token.important,
|
||||
.token.variable {
|
||||
color: #cb4b16; /* orange */
|
||||
}
|
||||
|
||||
.token.important,
|
||||
.token.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
.token.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.token.entity {
|
||||
cursor: help;
|
||||
}
|
|
@ -7,6 +7,7 @@
|
|||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: #ccc;
|
||||
background: none;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
|
@ -43,6 +44,7 @@ pre[class*="language-"] {
|
|||
:not(pre) > code[class*="language-"] {
|
||||
padding: .1em;
|
||||
border-radius: .3em;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: white;
|
||||
background: none;
|
||||
direction: ltr;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
text-align: left;
|
||||
|
@ -41,13 +42,13 @@ pre[class*="language-"] {
|
|||
padding: 1em;
|
||||
}
|
||||
|
||||
pre[class*="language-"]::selection {
|
||||
/* Safari */
|
||||
pre[class*="language-"]::-moz-selection {
|
||||
/* Firefox */
|
||||
background: hsl(200, 4%, 16%); /* #282A2B */
|
||||
}
|
||||
|
||||
pre[class*="language-"]::selection {
|
||||
/* Firefox */
|
||||
/* Safari */
|
||||
background: hsl(200, 4%, 16%); /* #282A2B */
|
||||
}
|
||||
|
||||
|
@ -70,6 +71,7 @@ code[class*="language-"]::selection, code[class*="language-"] ::selection {
|
|||
border: .13em solid hsl(0, 0%, 33%); /* #545454 */
|
||||
box-shadow: 1px 1px .3em -.1em black inset;
|
||||
padding: .15em .2em .05em;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: black;
|
||||
background: none;
|
||||
text-shadow: 0 1px white;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
direction: ltr;
|
||||
|
@ -62,6 +63,7 @@ pre[class*="language-"] {
|
|||
:not(pre) > code[class*="language-"] {
|
||||
padding: .1em;
|
||||
border-radius: .3em;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue