mirror of
https://github.com/faisalman/ua-parser-js.git
synced 2025-11-16 15:11:50 +03:00
Update formFactor to be a list
This commit is contained in:
@@ -129,10 +129,14 @@
|
||||
itemListToArray = function (header) {
|
||||
if (!header) return undefined;
|
||||
var arr = [];
|
||||
var tokens = strip(/\\?\"/g, header).split(', ');
|
||||
var tokens = strip(/\\?\"/g, header).split(',');
|
||||
for (var i = 0; i < tokens.length; i++) {
|
||||
var token = tokens[i].split(';v=');
|
||||
arr[i] = { brand : token[0], version : token[1] };
|
||||
if (tokens[i].indexOf(';') > -1) {
|
||||
var token = trim(tokens[i]).split(';v=');
|
||||
arr[i] = { brand : token[0], version : token[1] };
|
||||
} else {
|
||||
arr[i] = tokens[i];
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
},
|
||||
@@ -157,7 +161,7 @@
|
||||
return str.replace(pattern, EMPTY);
|
||||
},
|
||||
stripQuotes = function (val) {
|
||||
return typeof val === STR_TYPE ? strip(/\"/g, val) : val;
|
||||
return typeof val === STR_TYPE ? strip(/\\?\"/g, val) : val;
|
||||
},
|
||||
trim = function (str, len) {
|
||||
if (typeof(str) === STR_TYPE) {
|
||||
@@ -239,7 +243,7 @@
|
||||
return (i === UNKNOWN) ? undefined : i;
|
||||
}
|
||||
}
|
||||
return str;
|
||||
return map.hasOwnProperty('*') ? map['*'] : str;
|
||||
};
|
||||
|
||||
///////////////
|
||||
@@ -263,10 +267,11 @@
|
||||
formFactorMap = {
|
||||
'embedded' : 'Automotive',
|
||||
'mobile' : 'Mobile',
|
||||
'tablet' : 'Tablet',
|
||||
'tablet' : ['Tablet', 'EInk'],
|
||||
'smarttv' : 'TV',
|
||||
'wearable' : ['VR', 'XR'],
|
||||
'?' : 'Unknown'
|
||||
'wearable' : ['VR', 'XR', 'Watch'],
|
||||
'?' : ['Desktop', 'Unknown'],
|
||||
'*' : undefined
|
||||
};
|
||||
|
||||
//////////////
|
||||
@@ -947,7 +952,7 @@
|
||||
[PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])],
|
||||
[PLATFORMVER, stripQuotes(uach[CH_HEADER_PLATFORM_VER])],
|
||||
[ARCHITECTURE, stripQuotes(uach[CH_HEADER_ARCH])],
|
||||
[FORMFACTOR, stripQuotes(uach[CH_HEADER_FORM_FACTOR])],
|
||||
[FORMFACTOR, itemListToArray(uach[CH_HEADER_FORM_FACTOR])],
|
||||
[BITNESS, stripQuotes(uach[CH_HEADER_BITNESS])]
|
||||
]);
|
||||
} else {
|
||||
@@ -1029,8 +1034,7 @@
|
||||
};
|
||||
|
||||
this.parseCH = function () {
|
||||
var ua = this.ua,
|
||||
uaCH = this.uaCH,
|
||||
var uaCH = this.uaCH,
|
||||
rgxMap = this.rgxMap;
|
||||
|
||||
switch (this.itemType) {
|
||||
@@ -1063,7 +1067,16 @@
|
||||
this.set(MODEL, uaCH[MODEL]);
|
||||
}
|
||||
if (uaCH[FORMFACTOR]) {
|
||||
this.set(TYPE, strMapper(uaCH[FORMFACTOR], formFactorMap));
|
||||
var ff;
|
||||
if (typeof uaCH[FORMFACTOR] !== 'string') {
|
||||
var idx = 0;
|
||||
while (!ff && idx < uaCH[FORMFACTOR].length) {
|
||||
ff = strMapper(uaCH[FORMFACTOR][idx++], formFactorMap);
|
||||
}
|
||||
} else {
|
||||
ff = strMapper(uaCH[FORMFACTOR], formFactorMap);
|
||||
}
|
||||
this.set(TYPE, ff);
|
||||
}
|
||||
break;
|
||||
case UA_OS:
|
||||
|
||||
Reference in New Issue
Block a user