This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.8 KiB
106 lines
2.8 KiB
/** |
|
* Copyright (c) 2013-present, Facebook, Inc. |
|
* |
|
* This source code is licensed under the MIT license found in the |
|
* LICENSE file in the root directory of this source tree. |
|
* |
|
* @typechecks |
|
* |
|
*/ |
|
|
|
/** |
|
* Constants to represent text directionality |
|
* |
|
* Also defines a *global* direciton, to be used in bidi algorithms as a |
|
* default fallback direciton, when no better direction is found or provided. |
|
* |
|
* NOTE: Use `setGlobalDir()`, or update `initGlobalDir()`, to set the initial |
|
* global direction value based on the application. |
|
* |
|
* Part of the implementation of Unicode Bidirectional Algorithm (UBA) |
|
* Unicode Standard Annex #9 (UAX9) |
|
* http://www.unicode.org/reports/tr9/ |
|
*/ |
|
|
|
'use strict'; |
|
|
|
var invariant = require('./invariant'); |
|
|
|
var NEUTRAL = 'NEUTRAL'; // No strong direction |
|
var LTR = 'LTR'; // Left-to-Right direction |
|
var RTL = 'RTL'; // Right-to-Left direction |
|
|
|
var globalDir = null; |
|
|
|
// == Helpers == |
|
|
|
/** |
|
* Check if a directionality value is a Strong one |
|
*/ |
|
function isStrong(dir) { |
|
return dir === LTR || dir === RTL; |
|
} |
|
|
|
/** |
|
* Get string value to be used for `dir` HTML attribute or `direction` CSS |
|
* property. |
|
*/ |
|
function getHTMLDir(dir) { |
|
!isStrong(dir) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dir` must be a strong direction to be converted to HTML Direction') : invariant(false) : void 0; |
|
return dir === LTR ? 'ltr' : 'rtl'; |
|
} |
|
|
|
/** |
|
* Get string value to be used for `dir` HTML attribute or `direction` CSS |
|
* property, but returns null if `dir` has same value as `otherDir`. |
|
* `null`. |
|
*/ |
|
function getHTMLDirIfDifferent(dir, otherDir) { |
|
!isStrong(dir) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dir` must be a strong direction to be converted to HTML Direction') : invariant(false) : void 0; |
|
!isStrong(otherDir) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`otherDir` must be a strong direction to be converted to HTML Direction') : invariant(false) : void 0; |
|
return dir === otherDir ? null : getHTMLDir(dir); |
|
} |
|
|
|
// == Global Direction == |
|
|
|
/** |
|
* Set the global direction. |
|
*/ |
|
function setGlobalDir(dir) { |
|
globalDir = dir; |
|
} |
|
|
|
/** |
|
* Initialize the global direction |
|
*/ |
|
function initGlobalDir() { |
|
setGlobalDir(LTR); |
|
} |
|
|
|
/** |
|
* Get the global direction |
|
*/ |
|
function getGlobalDir() { |
|
if (!globalDir) { |
|
this.initGlobalDir(); |
|
} |
|
!globalDir ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Global direction not set.') : invariant(false) : void 0; |
|
return globalDir; |
|
} |
|
|
|
var UnicodeBidiDirection = { |
|
// Values |
|
NEUTRAL: NEUTRAL, |
|
LTR: LTR, |
|
RTL: RTL, |
|
// Helpers |
|
isStrong: isStrong, |
|
getHTMLDir: getHTMLDir, |
|
getHTMLDirIfDifferent: getHTMLDirIfDifferent, |
|
// Global Direction |
|
setGlobalDir: setGlobalDir, |
|
initGlobalDir: initGlobalDir, |
|
getGlobalDir: getGlobalDir |
|
}; |
|
|
|
module.exports = UnicodeBidiDirection; |