mirror of
https://github.com/niklasvh/html2canvas.git
synced 2023-08-10 21:13:10 +03:00
Merge pull request #1 from vantagemanagement-admin/feature/#1
objectfit対応
This commit is contained in:
commit
b4f5c5804e
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,4 +1,3 @@
|
||||
/dist
|
||||
/tmp
|
||||
/build
|
||||
/nbproject/
|
||||
|
7059
dist/html2canvas.esm.js
vendored
Normal file
7059
dist/html2canvas.esm.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/html2canvas.esm.js.map
vendored
Normal file
1
dist/html2canvas.esm.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7154
dist/html2canvas.js
vendored
Normal file
7154
dist/html2canvas.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/html2canvas.js.map
vendored
Normal file
1
dist/html2canvas.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
20
dist/html2canvas.min.js
vendored
Normal file
20
dist/html2canvas.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
145
dist/lib/__tests__/index.js
vendored
Normal file
145
dist/lib/__tests__/index.js
vendored
Normal file
@ -0,0 +1,145 @@
|
||||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __generator = (this && this.__generator) || function (thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (_) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
};
|
||||
var _this = this;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var index_1 = require("../index");
|
||||
var canvas_renderer_1 = require("../render/canvas/canvas-renderer");
|
||||
var document_cloner_1 = require("../dom/document-cloner");
|
||||
var color_1 = require("../css/types/color");
|
||||
jest.mock('../core/logger');
|
||||
jest.mock('../css/layout/bounds');
|
||||
jest.mock('../dom/document-cloner');
|
||||
jest.mock('../dom/node-parser', function () {
|
||||
return {
|
||||
isBodyElement: function () { return false; },
|
||||
isHTMLElement: function () { return false; },
|
||||
parseTree: jest.fn().mockImplementation(function () {
|
||||
return { styles: {} };
|
||||
})
|
||||
};
|
||||
});
|
||||
jest.mock('../render/stacking-context');
|
||||
jest.mock('../render/canvas/canvas-renderer');
|
||||
describe('html2canvas', function () {
|
||||
// eslint-disable-next-line @typescript-eslint/no-object-literal-type-assertion
|
||||
var element = {
|
||||
ownerDocument: {
|
||||
defaultView: {
|
||||
pageXOffset: 12,
|
||||
pageYOffset: 34
|
||||
}
|
||||
}
|
||||
};
|
||||
it('should render with an element', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
document_cloner_1.DocumentCloner.destroy = jest.fn().mockReturnValue(true);
|
||||
return [4 /*yield*/, index_1.default(element)];
|
||||
case 1:
|
||||
_a.sent();
|
||||
expect(canvas_renderer_1.CanvasRenderer).toHaveBeenLastCalledWith(expect.objectContaining({
|
||||
backgroundColor: 0xffffffff,
|
||||
scale: 1,
|
||||
height: 50,
|
||||
width: 200,
|
||||
x: 0,
|
||||
y: 0,
|
||||
scrollX: 12,
|
||||
scrollY: 34,
|
||||
canvas: undefined
|
||||
}));
|
||||
expect(document_cloner_1.DocumentCloner.destroy).toBeCalled();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('should have transparent background with backgroundColor: null', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, index_1.default(element, { backgroundColor: null })];
|
||||
case 1:
|
||||
_a.sent();
|
||||
expect(canvas_renderer_1.CanvasRenderer).toHaveBeenLastCalledWith(expect.objectContaining({
|
||||
backgroundColor: color_1.COLORS.TRANSPARENT
|
||||
}));
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('should use existing canvas when given as option', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var canvas;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
canvas = {};
|
||||
return [4 /*yield*/, index_1.default(element, { canvas: canvas })];
|
||||
case 1:
|
||||
_a.sent();
|
||||
expect(canvas_renderer_1.CanvasRenderer).toHaveBeenLastCalledWith(expect.objectContaining({
|
||||
canvas: canvas
|
||||
}));
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('should not remove cloned window when removeContainer: false', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
document_cloner_1.DocumentCloner.destroy = jest.fn();
|
||||
return [4 /*yield*/, index_1.default(element, { removeContainer: false })];
|
||||
case 1:
|
||||
_a.sent();
|
||||
expect(canvas_renderer_1.CanvasRenderer).toHaveBeenLastCalledWith(expect.objectContaining({
|
||||
backgroundColor: 0xffffffff,
|
||||
scale: 1,
|
||||
height: 50,
|
||||
width: 200,
|
||||
x: 0,
|
||||
y: 0,
|
||||
scrollX: 12,
|
||||
scrollY: 34,
|
||||
canvas: undefined
|
||||
}));
|
||||
expect(document_cloner_1.DocumentCloner.destroy).not.toBeCalled();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
});
|
||||
//# sourceMappingURL=index.js.map
|
1
dist/lib/__tests__/index.js.map
vendored
Normal file
1
dist/lib/__tests__/index.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/__tests__/index.ts"],"names":[],"mappings":"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"}
|
24
dist/lib/core/__mocks__/cache-storage.js
vendored
Normal file
24
dist/lib/core/__mocks__/cache-storage.js
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var MockCache = /** @class */ (function () {
|
||||
function MockCache() {
|
||||
this._cache = {};
|
||||
}
|
||||
MockCache.prototype.addImage = function (src) {
|
||||
var result = Promise.resolve();
|
||||
this._cache[src] = result;
|
||||
return result;
|
||||
};
|
||||
return MockCache;
|
||||
}());
|
||||
var current = new MockCache();
|
||||
var CacheStorage = /** @class */ (function () {
|
||||
function CacheStorage() {
|
||||
}
|
||||
CacheStorage.getInstance = function () {
|
||||
return current;
|
||||
};
|
||||
return CacheStorage;
|
||||
}());
|
||||
exports.CacheStorage = CacheStorage;
|
||||
//# sourceMappingURL=cache-storage.js.map
|
1
dist/lib/core/__mocks__/cache-storage.js.map
vendored
Normal file
1
dist/lib/core/__mocks__/cache-storage.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"cache-storage.js","sourceRoot":"","sources":["../../../../src/core/__mocks__/cache-storage.ts"],"names":[],"mappings":";;AAAA;IAII;QACI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,4BAAQ,GAAR,UAAS,GAAW;QAChB,IAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QAC1B,OAAO,MAAM,CAAC;IAClB,CAAC;IACL,gBAAC;AAAD,CAAC,AAbD,IAaC;AAED,IAAM,OAAO,GAAG,IAAI,SAAS,EAAE,CAAC;AAEhC;IAAA;IAIA,CAAC;IAHU,wBAAW,GAAlB;QACI,OAAO,OAAO,CAAC;IACnB,CAAC;IACL,mBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,oCAAY"}
|
11
dist/lib/core/__mocks__/features.js
vendored
Normal file
11
dist/lib/core/__mocks__/features.js
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.FEATURES = {
|
||||
SUPPORT_RANGE_BOUNDS: true,
|
||||
SUPPORT_SVG_DRAWING: true,
|
||||
SUPPORT_FOREIGNOBJECT_DRAWING: true,
|
||||
SUPPORT_CORS_IMAGES: true,
|
||||
SUPPORT_RESPONSE_TYPE: true,
|
||||
SUPPORT_CORS_XHR: true
|
||||
};
|
||||
//# sourceMappingURL=features.js.map
|
1
dist/lib/core/__mocks__/features.js.map
vendored
Normal file
1
dist/lib/core/__mocks__/features.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../../../src/core/__mocks__/features.ts"],"names":[],"mappings":";;AAAa,QAAA,QAAQ,GAAG;IACpB,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,6BAA6B,EAAE,IAAI;IACnC,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,IAAI;IAC3B,gBAAgB,EAAE,IAAI;CACzB,CAAC"}
|
18
dist/lib/core/__mocks__/logger.js
vendored
Normal file
18
dist/lib/core/__mocks__/logger.js
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var Logger = /** @class */ (function () {
|
||||
function Logger() {
|
||||
}
|
||||
Logger.prototype.debug = function () { };
|
||||
Logger.create = function () { };
|
||||
Logger.destroy = function () { };
|
||||
Logger.getInstance = function () {
|
||||
return logger;
|
||||
};
|
||||
Logger.prototype.info = function () { };
|
||||
Logger.prototype.error = function () { };
|
||||
return Logger;
|
||||
}());
|
||||
exports.Logger = Logger;
|
||||
var logger = new Logger();
|
||||
//# sourceMappingURL=logger.js.map
|
1
dist/lib/core/__mocks__/logger.js.map
vendored
Normal file
1
dist/lib/core/__mocks__/logger.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/core/__mocks__/logger.ts"],"names":[],"mappings":";;AAAA;IAAA;IAcA,CAAC;IAbG,sBAAK,GAAL,cAAS,CAAC;IAEH,aAAM,GAAb,cAAiB,CAAC;IAEX,cAAO,GAAd,cAAkB,CAAC;IAEZ,kBAAW,GAAlB;QACI,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,qBAAI,GAAJ,cAAQ,CAAC;IAET,sBAAK,GAAL,cAAS,CAAC;IACd,aAAC;AAAD,CAAC,AAdD,IAcC;AAdY,wBAAM;AAgBnB,IAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
|
420
dist/lib/core/__tests__/cache-storage.js
vendored
Normal file
420
dist/lib/core/__tests__/cache-storage.js
vendored
Normal file
@ -0,0 +1,420 @@
|
||||
"use strict";
|
||||
var __assign = (this && this.__assign) || function () {
|
||||
__assign = Object.assign || function(t) {
|
||||
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
||||
s = arguments[i];
|
||||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
||||
t[p] = s[p];
|
||||
}
|
||||
return t;
|
||||
};
|
||||
return __assign.apply(this, arguments);
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __generator = (this && this.__generator) || function (thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (_) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
};
|
||||
var _this = this;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var assert_1 = require("assert");
|
||||
var features_1 = require("../features");
|
||||
var cache_storage_1 = require("../cache-storage");
|
||||
var logger_1 = require("../logger");
|
||||
var proxy = 'http://example.com/proxy';
|
||||
var createMockContext = function (origin, opts) {
|
||||
if (opts === void 0) { opts = {}; }
|
||||
var context = {
|
||||
location: {
|
||||
href: origin
|
||||
},
|
||||
document: {
|
||||
createElement: function (_name) {
|
||||
var _href = '';
|
||||
return {
|
||||
set href(value) {
|
||||
_href = value;
|
||||
},
|
||||
get href() {
|
||||
return _href;
|
||||
},
|
||||
get protocol() {
|
||||
return new URL(_href).protocol;
|
||||
},
|
||||
get hostname() {
|
||||
return new URL(_href).hostname;
|
||||
},
|
||||
get port() {
|
||||
return new URL(_href).port;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
cache_storage_1.CacheStorage.setContext(context);
|
||||
logger_1.Logger.create({ id: 'test', enabled: false });
|
||||
return cache_storage_1.CacheStorage.create('test', __assign({ imageTimeout: 0, useCORS: false, allowTaint: false, proxy: proxy }, opts));
|
||||
};
|
||||
var images = [];
|
||||
var xhr = [];
|
||||
var sleep = function (timeout) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0: return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, timeout); })];
|
||||
case 1: return [2 /*return*/, _a.sent()];
|
||||
}
|
||||
}); }); };
|
||||
var ImageMock = /** @class */ (function () {
|
||||
function ImageMock() {
|
||||
images.push(this);
|
||||
}
|
||||
return ImageMock;
|
||||
}());
|
||||
var XMLHttpRequestMock = /** @class */ (function () {
|
||||
function XMLHttpRequestMock() {
|
||||
this.sent = false;
|
||||
this.status = 500;
|
||||
this.timeout = 5000;
|
||||
xhr.push(this);
|
||||
}
|
||||
XMLHttpRequestMock.prototype.load = function (status, response) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
this.response = response;
|
||||
this.status = status;
|
||||
if (this.onload) {
|
||||
this.onload();
|
||||
}
|
||||
return [4 /*yield*/, sleep(0)];
|
||||
case 1:
|
||||
_a.sent();
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
XMLHttpRequestMock.prototype.open = function (method, url) {
|
||||
this.method = method;
|
||||
this.url = url;
|
||||
};
|
||||
XMLHttpRequestMock.prototype.send = function () {
|
||||
this.sent = true;
|
||||
};
|
||||
return XMLHttpRequestMock;
|
||||
}());
|
||||
Object.defineProperty(global, 'Image', { value: ImageMock, writable: true });
|
||||
Object.defineProperty(global, 'XMLHttpRequest', {
|
||||
value: XMLHttpRequestMock,
|
||||
writable: true
|
||||
});
|
||||
var setFeatures = function (opts) {
|
||||
if (opts === void 0) { opts = {}; }
|
||||
var defaults = {
|
||||
SUPPORT_SVG_DRAWING: true,
|
||||
SUPPORT_CORS_IMAGES: true,
|
||||
SUPPORT_CORS_XHR: true,
|
||||
SUPPORT_RESPONSE_TYPE: false
|
||||
};
|
||||
Object.keys(defaults).forEach(function (key) {
|
||||
Object.defineProperty(features_1.FEATURES, key, {
|
||||
value: typeof opts[key] === 'boolean' ? opts[key] : defaults[key],
|
||||
writable: true
|
||||
});
|
||||
});
|
||||
};
|
||||
describe('cache-storage', function () {
|
||||
beforeEach(function () { return setFeatures(); });
|
||||
afterEach(function () {
|
||||
xhr.splice(0, xhr.length);
|
||||
images.splice(0, images.length);
|
||||
});
|
||||
it('addImage adds images to cache', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com', { proxy: null });
|
||||
return [4 /*yield*/, cache.addImage('http://example.com/test.jpg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
return [4 /*yield*/, cache.addImage('http://example.com/test2.jpg')];
|
||||
case 2:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(images.length, 2);
|
||||
assert_1.deepStrictEqual(images[0].src, 'http://example.com/test.jpg');
|
||||
assert_1.deepStrictEqual(images[1].src, 'http://example.com/test2.jpg');
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('addImage should not add duplicate entries', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com');
|
||||
return [4 /*yield*/, cache.addImage('http://example.com/test.jpg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
return [4 /*yield*/, cache.addImage('http://example.com/test.jpg')];
|
||||
case 2:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(images.length, 1);
|
||||
assert_1.deepStrictEqual(images[0].src, 'http://example.com/test.jpg');
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
describe('svg', function () {
|
||||
it('should add svg images correctly', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com');
|
||||
return [4 /*yield*/, cache.addImage('http://example.com/test.svg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
return [4 /*yield*/, cache.addImage('http://example.com/test2.svg')];
|
||||
case 2:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(images.length, 2);
|
||||
assert_1.deepStrictEqual(images[0].src, 'http://example.com/test.svg');
|
||||
assert_1.deepStrictEqual(images[1].src, 'http://example.com/test2.svg');
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('should omit svg images if not supported', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
setFeatures({ SUPPORT_SVG_DRAWING: false });
|
||||
cache = createMockContext('http://example.com');
|
||||
return [4 /*yield*/, cache.addImage('http://example.com/test.svg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
return [4 /*yield*/, cache.addImage('http://example.com/test2.svg')];
|
||||
case 2:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(images.length, 0);
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
});
|
||||
describe('cross-origin', function () {
|
||||
it('addImage should not add images it cannot load/render', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com', {
|
||||
proxy: undefined
|
||||
});
|
||||
return [4 /*yield*/, cache.addImage('http://html2canvas.hertzen.com/test.jpg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(images.length, 0);
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('addImage should add images if tainting enabled', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com', {
|
||||
allowTaint: true,
|
||||
proxy: undefined
|
||||
});
|
||||
return [4 /*yield*/, cache.addImage('http://html2canvas.hertzen.com/test.jpg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(images.length, 1);
|
||||
assert_1.deepStrictEqual(images[0].src, 'http://html2canvas.hertzen.com/test.jpg');
|
||||
assert_1.deepStrictEqual(images[0].crossOrigin, undefined);
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('addImage should add images if cors enabled', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com', { useCORS: true });
|
||||
return [4 /*yield*/, cache.addImage('http://html2canvas.hertzen.com/test.jpg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(images.length, 1);
|
||||
assert_1.deepStrictEqual(images[0].src, 'http://html2canvas.hertzen.com/test.jpg');
|
||||
assert_1.deepStrictEqual(images[0].crossOrigin, 'anonymous');
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('addImage should not add images if cors enabled but not supported', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
setFeatures({ SUPPORT_CORS_IMAGES: false });
|
||||
cache = createMockContext('http://example.com', {
|
||||
useCORS: true,
|
||||
proxy: undefined
|
||||
});
|
||||
return [4 /*yield*/, cache.addImage('http://html2canvas.hertzen.com/test.jpg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(images.length, 0);
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('addImage should not add images to proxy if cors enabled', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com', { useCORS: true });
|
||||
return [4 /*yield*/, cache.addImage('http://html2canvas.hertzen.com/test.jpg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(images.length, 1);
|
||||
assert_1.deepStrictEqual(images[0].src, 'http://html2canvas.hertzen.com/test.jpg');
|
||||
assert_1.deepStrictEqual(images[0].crossOrigin, 'anonymous');
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('addImage should use proxy ', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com');
|
||||
return [4 /*yield*/, cache.addImage('http://html2canvas.hertzen.com/test.jpg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(xhr.length, 1);
|
||||
assert_1.deepStrictEqual(xhr[0].url, proxy + "?url=" + encodeURIComponent('http://html2canvas.hertzen.com/test.jpg') + "&responseType=text");
|
||||
return [4 /*yield*/, xhr[0].load(200, '<data response>')];
|
||||
case 2:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(images.length, 1);
|
||||
assert_1.deepStrictEqual(images[0].src, '<data response>');
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('proxy should respect imageTimeout', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache, e_1;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com', {
|
||||
imageTimeout: 10
|
||||
});
|
||||
return [4 /*yield*/, cache.addImage('http://html2canvas.hertzen.com/test.jpg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
assert_1.deepStrictEqual(xhr.length, 1);
|
||||
assert_1.deepStrictEqual(xhr[0].url, proxy + "?url=" + encodeURIComponent('http://html2canvas.hertzen.com/test.jpg') + "&responseType=text");
|
||||
assert_1.deepStrictEqual(xhr[0].timeout, 10);
|
||||
if (xhr[0].ontimeout) {
|
||||
xhr[0].ontimeout();
|
||||
}
|
||||
_a.label = 2;
|
||||
case 2:
|
||||
_a.trys.push([2, 4, , 5]);
|
||||
return [4 /*yield*/, cache.match('http://html2canvas.hertzen.com/test.jpg')];
|
||||
case 3:
|
||||
_a.sent();
|
||||
assert_1.fail('Expected result to timeout');
|
||||
return [3 /*break*/, 5];
|
||||
case 4:
|
||||
e_1 = _a.sent();
|
||||
return [3 /*break*/, 5];
|
||||
case 5: return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
});
|
||||
it('match should return cache entry', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache, response;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com');
|
||||
return [4 /*yield*/, cache.addImage('http://example.com/test.jpg')];
|
||||
case 1:
|
||||
_a.sent();
|
||||
if (images[0].onload) {
|
||||
images[0].onload();
|
||||
}
|
||||
return [4 /*yield*/, cache.match('http://example.com/test.jpg')];
|
||||
case 2:
|
||||
response = _a.sent();
|
||||
assert_1.deepStrictEqual(response.src, 'http://example.com/test.jpg');
|
||||
return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
it('image should respect imageTimeout', function () { return __awaiter(_this, void 0, void 0, function () {
|
||||
var cache, e_2;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
cache = createMockContext('http://example.com', { imageTimeout: 10 });
|
||||
cache.addImage('http://example.com/test.jpg');
|
||||
_a.label = 1;
|
||||
case 1:
|
||||
_a.trys.push([1, 3, , 4]);
|
||||
return [4 /*yield*/, cache.match('http://example.com/test.jpg')];
|
||||
case 2:
|
||||
_a.sent();
|
||||
assert_1.fail('Expected result to timeout');
|
||||
return [3 /*break*/, 4];
|
||||
case 3:
|
||||
e_2 = _a.sent();
|
||||
return [3 /*break*/, 4];
|
||||
case 4: return [2 /*return*/];
|
||||
}
|
||||
});
|
||||
}); });
|
||||
});
|
||||
//# sourceMappingURL=cache-storage.js.map
|
1
dist/lib/core/__tests__/cache-storage.js.map
vendored
Normal file
1
dist/lib/core/__tests__/cache-storage.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
25
dist/lib/core/__tests__/logger.js
vendored
Normal file
25
dist/lib/core/__tests__/logger.js
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var logger_1 = require("../logger");
|
||||
describe('logger', function () {
|
||||
var infoSpy;
|
||||
beforeEach(function () {
|
||||
infoSpy = jest.spyOn(console, 'info').mockImplementation(function () { });
|
||||
});
|
||||
afterEach(function () {
|
||||
infoSpy.mockRestore();
|
||||
});
|
||||
it('should call console.info when logger enabled', function () {
|
||||
var id = Math.random().toString();
|
||||
var logger = new logger_1.Logger({ id: id, enabled: true });
|
||||
logger.info('testing');
|
||||
expect(infoSpy).toHaveBeenLastCalledWith(id, expect.stringMatching(/\d+ms/), 'testing');
|
||||
});
|
||||
it("shouldn't call console.info when logger disabled", function () {
|
||||
var id = Math.random().toString();
|
||||
var logger = new logger_1.Logger({ id: id, enabled: false });
|
||||
logger.info('testing');
|
||||
expect(infoSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
//# sourceMappingURL=logger.js.map
|
1
dist/lib/core/__tests__/logger.js.map
vendored
Normal file
1
dist/lib/core/__tests__/logger.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../../src/core/__tests__/logger.ts"],"names":[],"mappings":";;AAAA,oCAAiC;AAEjC,QAAQ,CAAC,QAAQ,EAAE;IACf,IAAI,OAAY,CAAC;IAEjB,UAAU,CAAC;QACP,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,cAAO,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC;QACN,OAAO,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE;QAC/C,IAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAC,EAAE,IAAA,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE;QACnD,IAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAC,EAAE,IAAA,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
4
dist/lib/core/bitwise.js
vendored
Normal file
4
dist/lib/core/bitwise.js
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.contains = function (bit, value) { return (bit & value) !== 0; };
|
||||
//# sourceMappingURL=bitwise.js.map
|
1
dist/lib/core/bitwise.js.map
vendored
Normal file
1
dist/lib/core/bitwise.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"bitwise.js","sourceRoot":"","sources":["../../../src/core/bitwise.ts"],"names":[],"mappings":";;AAAa,QAAA,QAAQ,GAAG,UAAC,GAAW,EAAE,KAAa,IAAc,OAAA,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,EAAnB,CAAmB,CAAC"}
|
215
dist/lib/core/cache-storage.js
vendored
Normal file
215
dist/lib/core/cache-storage.js
vendored
Normal file
@ -0,0 +1,215 @@
|
||||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __generator = (this && this.__generator) || function (thisArg, body) {
|
||||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
||||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
||||
function verb(n) { return function (v) { return step([n, v]); }; }
|
||||
function step(op) {
|
||||
if (f) throw new TypeError("Generator is already executing.");
|
||||
while (_) try {
|
||||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
||||
if (y = 0, t) op = [op[0] & 2, t.value];
|
||||
switch (op[0]) {
|
||||
case 0: case 1: t = op; break;
|
||||
case 4: _.label++; return { value: op[1], done: false };
|
||||
case 5: _.label++; y = op[1]; op = [0]; continue;
|
||||
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
||||
default:
|
||||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
||||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
||||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
||||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
||||
if (t[2]) _.ops.pop();
|
||||
_.trys.pop(); continue;
|
||||
}
|
||||
op = body.call(thisArg, _);
|
||||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
||||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
||||
}
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var features_1 = require("./features");
|
||||
var logger_1 = require("./logger");
|
||||
var CacheStorage = /** @class */ (function () {
|
||||
function CacheStorage() {
|
||||
}
|
||||
CacheStorage.create = function (name, options) {
|
||||
return (CacheStorage._caches[name] = new Cache(name, options));
|
||||
};
|
||||
CacheStorage.destroy = function (name) {
|
||||
delete CacheStorage._caches[name];
|
||||
};
|
||||
CacheStorage.open = function (name) {
|
||||
var cache = CacheStorage._caches[name];
|
||||
if (typeof cache !== 'undefined') {
|
||||
return cache;
|
||||
}
|
||||
throw new Error("Cache with key \"" + name + "\" not found");
|
||||
};
|
||||
CacheStorage.getOrigin = function (url) {
|
||||
var link = CacheStorage._link;
|
||||
if (!link) {
|
||||
return 'about:blank';
|
||||
}
|
||||
link.href = url;
|
||||
link.href = link.href; // IE9, LOL! - http://jsfiddle.net/niklasvh/2e48b/
|
||||
return link.protocol + link.hostname + link.port;
|
||||
};
|
||||
CacheStorage.isSameOrigin = function (src) {
|
||||
return CacheStorage.getOrigin(src) === CacheStorage._origin;
|
||||
};
|
||||
CacheStorage.setContext = function (window) {
|
||||
CacheStorage._link = window.document.createElement('a');
|
||||
CacheStorage._origin = CacheStorage.getOrigin(window.location.href);
|
||||
};
|
||||
CacheStorage.getInstance = function () {
|
||||
var current = CacheStorage._current;
|
||||
if (current === null) {
|
||||
throw new Error("No cache instance attached");
|
||||
}
|
||||
return current;
|
||||
};
|
||||
CacheStorage.attachInstance = function (cache) {
|
||||
CacheStorage._current = cache;
|
||||
};
|
||||
CacheStorage.detachInstance = function () {
|
||||
CacheStorage._current = null;
|
||||
};
|
||||
CacheStorage._caches = {};
|
||||
CacheStorage._origin = 'about:blank';
|
||||
CacheStorage._current = null;
|
||||
return CacheStorage;
|
||||
}());
|
||||
exports.CacheStorage = CacheStorage;
|
||||
var Cache = /** @class */ (function () {
|
||||
function Cache(id, options) {
|
||||
this.id = id;
|
||||
this._options = options;
|
||||
this._cache = {};
|
||||
}
|
||||
Cache.prototype.addImage = function (src) {
|
||||
var result = Promise.resolve();
|
||||
if (this.has(src)) {
|
||||
return result;
|
||||
}
|
||||
if (isBlobImage(src) || isRenderable(src)) {
|
||||
this._cache[src] = this.loadImage(src);
|
||||
return result;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
Cache.prototype.match = function (src) {
|
||||
return this._cache[src];
|
||||
};
|
||||
Cache.prototype.loadImage = function (key) {
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
var isSameOrigin, useCORS, useProxy, src;
|
||||
var _this = this;
|
||||
return __generator(this, function (_a) {
|
||||
switch (_a.label) {
|
||||
case 0:
|
||||
isSameOrigin = CacheStorage.isSameOrigin(key);
|
||||
useCORS = !isInlineImage(key) && this._options.useCORS === true && features_1.FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin;
|
||||
useProxy = !isInlineImage(key) &&
|
||||
!isSameOrigin &&
|
||||
typeof this._options.proxy === 'string' &&
|
||||
features_1.FEATURES.SUPPORT_CORS_XHR &&
|
||||
!useCORS;
|
||||
if (!isSameOrigin && this._options.allowTaint === false && !isInlineImage(key) && !useProxy && !useCORS) {
|
||||
return [2 /*return*/];
|
||||
}
|
||||
src = key;
|
||||
if (!useProxy) return [3 /*break*/, 2];
|
||||
return [4 /*yield*/, this.proxy(src)];
|
||||
case 1:
|
||||
src = _a.sent();
|
||||
_a.label = 2;
|
||||
case 2:
|
||||
logger_1.Logger.getInstance(this.id).debug("Added image " + key.substring(0, 256));
|
||||
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
||||
var img = new Image();
|
||||
img.onload = function () { return resolve(img); };
|
||||
img.onerror = reject;
|
||||
//ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous
|
||||
if (isInlineBase64Image(src) || useCORS) {
|
||||
img.crossOrigin = 'anonymous';
|
||||
}
|
||||
img.src = src;
|
||||
if (img.complete === true) {
|
||||
// Inline XML images may fail to parse, throwing an Error later on
|
||||
setTimeout(function () { return resolve(img); }, 500);
|
||||
}
|
||||
if (_this._options.imageTimeout > 0) {
|
||||
setTimeout(function () { return reject("Timed out (" + _this._options.imageTimeout + "ms) loading image"); }, _this._options.imageTimeout);
|
||||
}
|
||||
})];
|
||||
case 3: return [2 /*return*/, _a.sent()];
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
Cache.prototype.has = function (key) {
|
||||
return typeof this._cache[key] !== 'undefined';
|
||||
};
|
||||
Cache.prototype.keys = function () {
|
||||
return Promise.resolve(Object.keys(this._cache));
|
||||
};
|
||||
Cache.prototype.proxy = function (src) {
|
||||
var _this = this;
|
||||
var proxy = this._options.proxy;
|
||||
if (!proxy) {
|
||||
throw new Error('No proxy defined');
|
||||
}
|
||||
var key = src.substring(0, 256);
|
||||
return new Promise(function (resolve, reject) {
|
||||
var responseType = features_1.FEATURES.SUPPORT_RESPONSE_TYPE ? 'blob' : 'text';
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.onload = function () {
|
||||
if (xhr.status === 200) {
|
||||
if (responseType === 'text') {
|
||||
resolve(xhr.response);
|
||||
}
|
||||
else {
|
||||
var reader_1 = new FileReader();
|
||||
reader_1.addEventListener('load', function () { return resolve(reader_1.result); }, false);
|
||||
reader_1.addEventListener('error', function (e) { return reject(e); }, false);
|
||||
reader_1.readAsDataURL(xhr.response);
|
||||
}
|
||||
}
|
||||
else {
|
||||
reject("Failed to proxy resource " + key + " with status code " + xhr.status);
|
||||
}
|
||||
};
|
||||
xhr.onerror = reject;
|
||||
xhr.open('GET', proxy + "?url=" + encodeURIComponent(src) + "&responseType=" + responseType);
|
||||
if (responseType !== 'text' && xhr instanceof XMLHttpRequest) {
|
||||
xhr.responseType = responseType;
|
||||
}
|
||||
if (_this._options.imageTimeout) {
|
||||
var timeout_1 = _this._options.imageTimeout;
|
||||
xhr.timeout = timeout_1;
|
||||
xhr.ontimeout = function () { return reject("Timed out (" + timeout_1 + "ms) proxying " + key); };
|
||||
}
|
||||
xhr.send();
|
||||
});
|
||||
};
|
||||
return Cache;
|
||||
}());
|
||||
exports.Cache = Cache;
|
||||
var INLINE_SVG = /^data:image\/svg\+xml/i;
|
||||
var INLINE_BASE64 = /^data:image\/.*;base64,/i;
|
||||
var INLINE_IMG = /^data:image\/.*/i;
|
||||
var isRenderable = function (src) { return features_1.FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src); };
|
||||
var isInlineImage = function (src) { return INLINE_IMG.test(src); };
|
||||
var isInlineBase64Image = function (src) { return INLINE_BASE64.test(src); };
|
||||
var isBlobImage = function (src) { return src.substr(0, 4) === 'blob'; };
|
||||
var isSVG = function (src) { return src.substr(-3).toLowerCase() === 'svg' || INLINE_SVG.test(src); };
|
||||
//# sourceMappingURL=cache-storage.js.map
|
1
dist/lib/core/cache-storage.js.map
vendored
Normal file
1
dist/lib/core/cache-storage.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
146
dist/lib/core/features.js
vendored
Normal file
146
dist/lib/core/features.js
vendored
Normal file
@ -0,0 +1,146 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var testRangeBounds = function (document) {
|
||||
var TEST_HEIGHT = 123;
|
||||
if (document.createRange) {
|
||||
var range = document.createRange();
|
||||
if (range.getBoundingClientRect) {
|
||||
var testElement = document.createElement('boundtest');
|
||||
testElement.style.height = TEST_HEIGHT + "px";
|
||||
testElement.style.display = 'block';
|
||||
document.body.appendChild(testElement);
|
||||
range.selectNode(testElement);
|
||||
var rangeBounds = range.getBoundingClientRect();
|
||||
var rangeHeight = Math.round(rangeBounds.height);
|
||||
document.body.removeChild(testElement);
|
||||
if (rangeHeight === TEST_HEIGHT) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
};
|
||||
var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };
|
||||
var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };
|
||||
var testSVG = function (document) {
|
||||
var img = new Image();
|
||||
var canvas = document.createElement('canvas');
|
||||
var ctx = canvas.getContext('2d');
|
||||
if (!ctx) {
|
||||
return false;
|
||||
}
|
||||
img.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>";
|
||||
try {
|
||||
ctx.drawImage(img, 0, 0);
|
||||
canvas.toDataURL();
|
||||
}
|
||||
catch (e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
var isGreenPixel = function (data) {
|
||||
return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;
|
||||
};
|
||||
var testForeignObject = function (document) {
|
||||
var canvas = document.createElement('canvas');
|
||||
var size = 100;
|
||||
canvas.width = size;
|
||||
canvas.height = size;
|
||||
var ctx = canvas.getContext('2d');
|
||||
if (!ctx) {
|
||||
return Promise.reject(false);
|
||||
}
|
||||
ctx.fillStyle = 'rgb(0, 255, 0)';
|
||||
ctx.fillRect(0, 0, size, size);
|
||||
var img = new Image();
|
||||
var greenImageSrc = canvas.toDataURL();
|
||||
img.src = greenImageSrc;
|
||||
var svg = exports.createForeignObjectSVG(size, size, 0, 0, img);
|
||||
ctx.fillStyle = 'red';
|
||||
ctx.fillRect(0, 0, size, size);
|
||||
return exports.loadSerializedSVG(svg)
|
||||
.then(function (img) {
|
||||
ctx.drawImage(img, 0, 0);
|
||||
var data = ctx.getImageData(0, 0, size, size).data;
|
||||
ctx.fillStyle = 'red';
|
||||
ctx.fillRect(0, 0, size, size);
|
||||
var node = document.createElement('div');
|
||||
node.style.backgroundImage = "url(" + greenImageSrc + ")";
|
||||
node.style.height = size + "px";
|
||||
// Firefox 55 does not render inline <img /> tags
|
||||
return isGreenPixel(data)
|
||||
? exports.loadSerializedSVG(exports.createForeignObjectSVG(size, size, 0, 0, node))
|
||||
: Promise.reject(false);
|
||||
})
|
||||
.then(function (img) {
|
||||
ctx.drawImage(img, 0, 0);
|
||||
// Edge does not render background-images
|
||||
return isGreenPixel(ctx.getImageData(0, 0, size, size).data);
|
||||
})
|
||||
.catch(function () { return false; });
|
||||
};
|
||||
exports.createForeignObjectSVG = function (width, height, x, y, node) {
|
||||
var xmlns = 'http://www.w3.org/2000/svg';
|
||||
var svg = document.createElementNS(xmlns, 'svg');
|
||||
var foreignObject = document.createElementNS(xmlns, 'foreignObject');
|
||||
svg.setAttributeNS(null, 'width', width.toString());
|
||||
svg.setAttributeNS(null, 'height', height.toString());
|
||||
foreignObject.setAttributeNS(null, 'width', '100%');
|
||||
foreignObject.setAttributeNS(null, 'height', '100%');
|
||||
foreignObject.setAttributeNS(null, 'x', x.toString());
|
||||
foreignObject.setAttributeNS(null, 'y', y.toString());
|
||||
foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');
|
||||
svg.appendChild(foreignObject);
|
||||
foreignObject.appendChild(node);
|
||||
return svg;
|
||||
};
|
||||
exports.loadSerializedSVG = function (svg) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var img = new Image();
|
||||
img.onload = function () { return resolve(img); };
|
||||
img.onerror = reject;
|
||||
img.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(svg));
|
||||
});
|
||||
};
|
||||
exports.FEATURES = {
|
||||
get SUPPORT_RANGE_BOUNDS() {
|
||||
'use strict';
|
||||
var value = testRangeBounds(document);
|
||||
Object.defineProperty(exports.FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });
|
||||
return value;
|
||||
},
|
||||
get SUPPORT_SVG_DRAWING() {
|
||||
'use strict';
|
||||
var value = testSVG(document);
|
||||
Object.defineProperty(exports.FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });
|
||||
return value;
|
||||
},
|
||||
get SUPPORT_FOREIGNOBJECT_DRAWING() {
|
||||
'use strict';
|
||||
var value = typeof Array.from === 'function' && typeof window.fetch === 'function'
|
||||
? testForeignObject(document)
|
||||
: Promise.resolve(false);
|
||||
Object.defineProperty(exports.FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });
|
||||
return value;
|
||||
},
|
||||
get SUPPORT_CORS_IMAGES() {
|
||||
'use strict';
|
||||
var value = testCORS();
|
||||
Object.defineProperty(exports.FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });
|
||||
return value;
|
||||
},
|
||||
get SUPPORT_RESPONSE_TYPE() {
|
||||
'use strict';
|
||||
var value = testResponseType();
|
||||
Object.defineProperty(exports.FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });
|
||||
return value;
|
||||
},
|
||||
get SUPPORT_CORS_XHR() {
|
||||
'use strict';
|
||||
var value = 'withCredentials' in new XMLHttpRequest();
|
||||
Object.defineProperty(exports.FEATURES, 'SUPPORT_CORS_XHR', { value: value });
|
||||
return value;
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=features.js.map
|
1
dist/lib/core/features.js.map
vendored
Normal file
1
dist/lib/core/features.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
78
dist/lib/core/logger.js
vendored
Normal file
78
dist/lib/core/logger.js
vendored
Normal file
@ -0,0 +1,78 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var Logger = /** @class */ (function () {
|
||||
function Logger(_a) {
|
||||
var id = _a.id, enabled = _a.enabled;
|
||||
this.id = id;
|
||||
this.enabled = enabled;
|
||||
this.start = Date.now();
|
||||
}
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
Logger.prototype.debug = function () {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i] = arguments[_i];
|
||||
}
|
||||
if (this.enabled) {
|
||||
// eslint-disable-next-line no-console
|
||||
if (typeof window !== 'undefined' && window.console && typeof console.debug === 'function') {
|
||||
// eslint-disable-next-line no-console
|
||||
console.debug.apply(console, [this.id, this.getTime() + "ms"].concat(args));
|
||||
}
|
||||
else {
|
||||
this.info.apply(this, args);
|
||||
}
|
||||
}
|
||||
};
|
||||
Logger.prototype.getTime = function () {
|
||||
return Date.now() - this.start;
|
||||
};
|
||||
Logger.create = function (options) {
|
||||
Logger.instances[options.id] = new Logger(options);
|
||||
};
|
||||
Logger.destroy = function (id) {
|
||||
delete Logger.instances[id];
|
||||
};
|
||||
Logger.getInstance = function (id) {
|
||||
var instance = Logger.instances[id];
|
||||
if (typeof instance === 'undefined') {
|
||||
throw new Error("No logger instance found with id " + id);
|
||||
}
|
||||
return instance;
|
||||
};
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
Logger.prototype.info = function () {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i] = arguments[_i];
|
||||
}
|
||||
if (this.enabled) {
|
||||
// eslint-disable-next-line no-console
|
||||
if (typeof window !== 'undefined' && window.console && typeof console.info === 'function') {
|
||||
// eslint-disable-next-line no-console
|
||||
console.info.apply(console, [this.id, this.getTime() + "ms"].concat(args));
|
||||
}
|
||||
}
|
||||
};
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
Logger.prototype.error = function () {
|
||||
var args = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
args[_i] = arguments[_i];
|
||||
}
|
||||
if (this.enabled) {
|
||||
// eslint-disable-next-line no-console
|
||||
if (typeof window !== 'undefined' && window.console && typeof console.error === 'function') {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error.apply(console, [this.id, this.getTime() + "ms"].concat(args));
|
||||
}
|
||||
else {
|
||||
this.info.apply(this, args);
|
||||
}
|
||||
}
|
||||
};
|
||||
Logger.instances = {};
|
||||
return Logger;
|
||||
}());
|
||||
exports.Logger = Logger;
|
||||
//# sourceMappingURL=logger.js.map
|
1
dist/lib/core/logger.js.map
vendored
Normal file
1
dist/lib/core/logger.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/core/logger.ts"],"names":[],"mappings":";;AAKA;IAOI,gBAAY,EAA4B;YAA3B,UAAE,EAAE,oBAAO;QACpB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED,8DAA8D;IAC9D,sBAAK,GAAL;QAAM,cAAY;aAAZ,UAAY,EAAZ,qBAAY,EAAZ,IAAY;YAAZ,yBAAY;;QACd,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,sCAAsC;YACtC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;gBACxF,sCAAsC;gBACtC,OAAO,CAAC,KAAK,OAAb,OAAO,GAAO,IAAI,CAAC,EAAE,EAAK,IAAI,CAAC,OAAO,EAAE,OAAI,SAAK,IAAI,GAAE;aAC1D;iBAAM;gBACH,IAAI,CAAC,IAAI,OAAT,IAAI,EAAS,IAAI,EAAE;aACtB;SACJ;IACL,CAAC;IAED,wBAAO,GAAP;QACI,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,CAAC;IAEM,aAAM,GAAb,UAAc,OAAsB;QAChC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAEM,cAAO,GAAd,UAAe,EAAU;QACrB,OAAO,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAEM,kBAAW,GAAlB,UAAmB,EAAU;QACzB,IAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACjC,MAAM,IAAI,KAAK,CAAC,sCAAoC,EAAI,CAAC,CAAC;SAC7D;QACD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,8DAA8D;IAC9D,qBAAI,GAAJ;QAAK,cAAY;aAAZ,UAAY,EAAZ,qBAAY,EAAZ,IAAY;YAAZ,yBAAY;;QACb,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,sCAAsC;YACtC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;gBACvF,sCAAsC;gBACtC,OAAO,CAAC,IAAI,OAAZ,OAAO,GAAM,IAAI,CAAC,EAAE,EAAK,IAAI,CAAC,OAAO,EAAE,OAAI,SAAK,IAAI,GAAE;aACzD;SACJ;IACL,CAAC;IAED,8DAA8D;IAC9D,sBAAK,GAAL;QAAM,cAAY;aAAZ,UAAY,EAAZ,qBAAY,EAAZ,IAAY;YAAZ,yBAAY;;QACd,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,sCAAsC;YACtC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE;gBACxF,sCAAsC;gBACtC,OAAO,CAAC,KAAK,OAAb,OAAO,GAAO,IAAI,CAAC,EAAE,EAAK,IAAI,CAAC,OAAO,EAAE,OAAI,SAAK,IAAI,GAAE;aAC1D;iBAAM;gBACH,IAAI,CAAC,IAAI,OAAT,IAAI,EAAS,IAAI,EAAE;aACtB;SACJ;IACL,CAAC;IAnEM,gBAAS,GAA4B,EAAE,CAAC;IAoEnD,aAAC;CAAA,AArED,IAqEC;AArEY,wBAAM"}
|
4
dist/lib/core/util.js
vendored
Normal file
4
dist/lib/core/util.js
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.SMALL_IMAGE = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';
|
||||
//# sourceMappingURL=util.js.map
|
1
dist/lib/core/util.js.map
vendored
Normal file
1
dist/lib/core/util.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/core/util.ts"],"names":[],"mappings":";;AAAa,QAAA,WAAW,GAAG,gFAAgF,CAAC"}
|
11
dist/lib/css/IPropertyDescriptor.js
vendored
Normal file
11
dist/lib/css/IPropertyDescriptor.js
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var PropertyDescriptorParsingType;
|
||||
(function (PropertyDescriptorParsingType) {
|
||||
PropertyDescriptorParsingType[PropertyDescriptorParsingType["VALUE"] = 0] = "VALUE";
|
||||
PropertyDescriptorParsingType[PropertyDescriptorParsingType["LIST"] = 1] = "LIST";
|
||||
PropertyDescriptorParsingType[PropertyDescriptorParsingType["IDENT_VALUE"] = 2] = "IDENT_VALUE";
|
||||
PropertyDescriptorParsingType[PropertyDescriptorParsingType["TYPE_VALUE"] = 3] = "TYPE_VALUE";
|
||||
PropertyDescriptorParsingType[PropertyDescriptorParsingType["TOKEN_VALUE"] = 4] = "TOKEN_VALUE";
|
||||
})(PropertyDescriptorParsingType = exports.PropertyDescriptorParsingType || (exports.PropertyDescriptorParsingType = {}));
|
||||
//# sourceMappingURL=IPropertyDescriptor.js.map
|
1
dist/lib/css/IPropertyDescriptor.js.map
vendored
Normal file
1
dist/lib/css/IPropertyDescriptor.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"IPropertyDescriptor.js","sourceRoot":"","sources":["../../../src/css/IPropertyDescriptor.ts"],"names":[],"mappings":";;AAGA,IAAY,6BAMX;AAND,WAAY,6BAA6B;IACrC,mFAAK,CAAA;IACL,iFAAI,CAAA;IACJ,+FAAW,CAAA;IACX,6FAAU,CAAA;IACV,+FAAW,CAAA;AACf,CAAC,EANW,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAMxC"}
|
3
dist/lib/css/ITypeDescriptor.js
vendored
Normal file
3
dist/lib/css/ITypeDescriptor.js
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//# sourceMappingURL=ITypeDescriptor.js.map
|
1
dist/lib/css/ITypeDescriptor.js.map
vendored
Normal file
1
dist/lib/css/ITypeDescriptor.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"ITypeDescriptor.js","sourceRoot":"","sources":["../../../src/css/ITypeDescriptor.ts"],"names":[],"mappings":""}
|
202
dist/lib/css/index.js
vendored
Normal file
202
dist/lib/css/index.js
vendored
Normal file
@ -0,0 +1,202 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("./IPropertyDescriptor");
|
||||
var background_clip_1 = require("./property-descriptors/background-clip");
|
||||
var background_color_1 = require("./property-descriptors/background-color");
|
||||
var background_image_1 = require("./property-descriptors/background-image");
|
||||
var background_origin_1 = require("./property-descriptors/background-origin");
|
||||
var background_position_1 = require("./property-descriptors/background-position");
|
||||
var background_repeat_1 = require("./property-descriptors/background-repeat");
|
||||
var background_size_1 = require("./property-descriptors/background-size");
|
||||
var border_color_1 = require("./property-descriptors/border-color");
|
||||
var border_radius_1 = require("./property-descriptors/border-radius");
|
||||
var border_style_1 = require("./property-descriptors/border-style");
|
||||
var border_width_1 = require("./property-descriptors/border-width");
|
||||
var color_1 = require("./property-descriptors/color");
|
||||
var display_1 = require("./property-descriptors/display");
|
||||
var float_1 = require("./property-descriptors/float");
|
||||
var letter_spacing_1 = require("./property-descriptors/letter-spacing");
|
||||
var line_break_1 = require("./property-descriptors/line-break");
|
||||
var line_height_1 = require("./property-descriptors/line-height");
|
||||
var list_style_image_1 = require("./property-descriptors/list-style-image");
|
||||
var list_style_position_1 = require("./property-descriptors/list-style-position");
|
||||
var list_style_type_1 = require("./property-descriptors/list-style-type");
|
||||
var margin_1 = require("./property-descriptors/margin");
|
||||
var overflow_1 = require("./property-descriptors/overflow");
|
||||
var overflow_wrap_1 = require("./property-descriptors/overflow-wrap");
|
||||
var padding_1 = require("./property-descriptors/padding");
|
||||
var text_align_1 = require("./property-descriptors/text-align");
|
||||
var position_1 = require("./property-descriptors/position");
|
||||
var text_shadow_1 = require("./property-descriptors/text-shadow");
|
||||
var text_transform_1 = require("./property-descriptors/text-transform");
|
||||
var transform_1 = require("./property-descriptors/transform");
|
||||
var transform_origin_1 = require("./property-descriptors/transform-origin");
|
||||
var visibility_1 = require("./property-descriptors/visibility");
|
||||
var word_break_1 = require("./property-descriptors/word-break");
|
||||
var z_index_1 = require("./property-descriptors/z-index");
|
||||
var parser_1 = require("./syntax/parser");
|
||||
var tokenizer_1 = require("./syntax/tokenizer");
|
||||
var color_2 = require("./types/color");
|
||||
var angle_1 = require("./types/angle");
|
||||
var image_1 = require("./types/image");
|
||||
var opacity_1 = require("./property-descriptors/opacity");
|
||||
var text_decoration_color_1 = require("./property-descriptors/text-decoration-color");
|
||||
var text_decoration_line_1 = require("./property-descriptors/text-decoration-line");
|
||||
var length_percentage_1 = require("./types/length-percentage");
|
||||
var font_family_1 = require("./property-descriptors/font-family");
|
||||
var font_size_1 = require("./property-descriptors/font-size");
|
||||
var length_1 = require("./types/length");
|
||||
var font_weight_1 = require("./property-descriptors/font-weight");
|
||||
var font_variant_1 = require("./property-descriptors/font-variant");
|
||||
var font_style_1 = require("./property-descriptors/font-style");
|
||||
var bitwise_1 = require("../core/bitwise");
|
||||
var content_1 = require("./property-descriptors/content");
|
||||
var counter_increment_1 = require("./property-descriptors/counter-increment");
|
||||
var counter_reset_1 = require("./property-descriptors/counter-reset");
|
||||
var quotes_1 = require("./property-descriptors/quotes");
|
||||
var box_shadow_1 = require("./property-descriptors/box-shadow");
|
||||
var CSSParsedDeclaration = /** @class */ (function () {
|
||||
function CSSParsedDeclaration(declaration) {
|
||||
this.backgroundClip = parse(background_clip_1.backgroundClip, declaration.backgroundClip);
|
||||
this.backgroundColor = parse(background_color_1.backgroundColor, declaration.backgroundColor);
|
||||
this.backgroundImage = parse(background_image_1.backgroundImage, declaration.backgroundImage);
|
||||
this.backgroundOrigin = parse(background_origin_1.backgroundOrigin, declaration.backgroundOrigin);
|
||||
this.backgroundPosition = parse(background_position_1.backgroundPosition, declaration.backgroundPosition);
|
||||
this.backgroundRepeat = parse(background_repeat_1.backgroundRepeat, declaration.backgroundRepeat);
|
||||
this.backgroundSize = parse(background_size_1.backgroundSize, declaration.backgroundSize);
|
||||
this.borderTopColor = parse(border_color_1.borderTopColor, declaration.borderTopColor);
|
||||
this.borderRightColor = parse(border_color_1.borderRightColor, declaration.borderRightColor);
|
||||
this.borderBottomColor = parse(border_color_1.borderBottomColor, declaration.borderBottomColor);
|
||||
this.borderLeftColor = parse(border_color_1.borderLeftColor, declaration.borderLeftColor);
|
||||
this.borderTopLeftRadius = parse(border_radius_1.borderTopLeftRadius, declaration.borderTopLeftRadius);
|
||||
this.borderTopRightRadius = parse(border_radius_1.borderTopRightRadius, declaration.borderTopRightRadius);
|
||||
this.borderBottomRightRadius = parse(border_radius_1.borderBottomRightRadius, declaration.borderBottomRightRadius);
|
||||
this.borderBottomLeftRadius = parse(border_radius_1.borderBottomLeftRadius, declaration.borderBottomLeftRadius);
|
||||
this.borderTopStyle = parse(border_style_1.borderTopStyle, declaration.borderTopStyle);
|
||||
this.borderRightStyle = parse(border_style_1.borderRightStyle, declaration.borderRightStyle);
|
||||
this.borderBottomStyle = parse(border_style_1.borderBottomStyle, declaration.borderBottomStyle);
|
||||
this.borderLeftStyle = parse(border_style_1.borderLeftStyle, declaration.borderLeftStyle);
|
||||
this.borderTopWidth = parse(border_width_1.borderTopWidth, declaration.borderTopWidth);
|
||||
this.borderRightWidth = parse(border_width_1.borderRightWidth, declaration.borderRightWidth);
|
||||
this.borderBottomWidth = parse(border_width_1.borderBottomWidth, declaration.borderBottomWidth);
|
||||
this.borderLeftWidth = parse(border_width_1.borderLeftWidth, declaration.borderLeftWidth);
|
||||
this.boxShadow = parse(box_shadow_1.boxShadow, declaration.boxShadow);
|
||||
this.color = parse(color_1.color, declaration.color);
|
||||
this.display = parse(display_1.display, declaration.display);
|
||||
this.float = parse(float_1.float, declaration.cssFloat);
|
||||
this.fontFamily = parse(font_family_1.fontFamily, declaration.fontFamily);
|
||||
this.fontSize = parse(font_size_1.fontSize, declaration.fontSize);
|
||||
this.fontStyle = parse(font_style_1.fontStyle, declaration.fontStyle);
|
||||
this.fontVariant = parse(font_variant_1.fontVariant, declaration.fontVariant);
|
||||
this.fontWeight = parse(font_weight_1.fontWeight, declaration.fontWeight);
|
||||
this.letterSpacing = parse(letter_spacing_1.letterSpacing, declaration.letterSpacing);
|
||||
this.lineBreak = parse(line_break_1.lineBreak, declaration.lineBreak);
|
||||
this.lineHeight = parse(line_height_1.lineHeight, declaration.lineHeight);
|
||||
this.listStyleImage = parse(list_style_image_1.listStyleImage, declaration.listStyleImage);
|
||||
this.listStylePosition = parse(list_style_position_1.listStylePosition, declaration.listStylePosition);
|
||||
this.listStyleType = parse(list_style_type_1.listStyleType, declaration.listStyleType);
|
||||
this.marginTop = parse(margin_1.marginTop, declaration.marginTop);
|
||||
this.marginRight = parse(margin_1.marginRight, declaration.marginRight);
|
||||
this.marginBottom = parse(margin_1.marginBottom, declaration.marginBottom);
|
||||
this.marginLeft = parse(margin_1.marginLeft, declaration.marginLeft);
|
||||
this.opacity = parse(opacity_1.opacity, declaration.opacity);
|
||||
var overflowTuple = parse(overflow_1.overflow, declaration.overflow);
|
||||
this.overflowX = overflowTuple[0];
|
||||
this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];
|
||||
this.overflowWrap = parse(overflow_wrap_1.overflowWrap, declaration.overflowWrap);
|
||||
this.paddingTop = parse(padding_1.paddingTop, declaration.paddingTop);
|
||||
this.paddingRight = parse(padding_1.paddingRight, declaration.paddingRight);
|
||||
this.paddingBottom = parse(padding_1.paddingBottom, declaration.paddingBottom);
|
||||
this.paddingLeft = parse(padding_1.paddingLeft, declaration.paddingLeft);
|
||||
this.position = parse(position_1.position, declaration.position);
|
||||
this.textAlign = parse(text_align_1.textAlign, declaration.textAlign);
|
||||
this.textDecorationColor = parse(text_decoration_color_1.textDecorationColor, declaration.textDecorationColor || declaration.color);
|
||||
this.textDecorationLine = parse(text_decoration_line_1.textDecorationLine, declaration.textDecorationLine);
|
||||
this.textShadow = parse(text_shadow_1.textShadow, declaration.textShadow);
|
||||
this.textTransform = parse(text_transform_1.textTransform, declaration.textTransform);
|
||||
this.transform = parse(transform_1.transform, declaration.transform);
|
||||
this.transformOrigin = parse(transform_origin_1.transformOrigin, declaration.transformOrigin);
|
||||
this.visibility = parse(visibility_1.visibility, declaration.visibility);
|
||||
this.wordBreak = parse(word_break_1.wordBreak, declaration.wordBreak);
|
||||
this.zIndex = parse(z_index_1.zIndex, declaration.zIndex);
|
||||
}
|
||||
CSSParsedDeclaration.prototype.isVisible = function () {
|
||||
return this.display > 0 && this.opacity > 0 && this.visibility === visibility_1.VISIBILITY.VISIBLE;
|
||||
};
|
||||
CSSParsedDeclaration.prototype.isTransparent = function () {
|
||||
return color_2.isTransparent(this.backgroundColor);
|
||||
};
|
||||
CSSParsedDeclaration.prototype.isTransformed = function () {
|
||||
return this.transform !== null;
|
||||
};
|
||||
CSSParsedDeclaration.prototype.isPositioned = function () {
|
||||
return this.position !== position_1.POSITION.STATIC;
|
||||
};
|
||||
CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {
|
||||
return this.isPositioned() && !this.zIndex.auto;
|
||||
};
|
||||
CSSParsedDeclaration.prototype.isFloating = function () {
|
||||
return this.float !== float_1.FLOAT.NONE;
|
||||
};
|
||||
CSSParsedDeclaration.prototype.isInlineLevel = function () {
|
||||
return (bitwise_1.contains(this.display, 4 /* INLINE */) ||
|
||||
bitwise_1.contains(this.display, 33554432 /* INLINE_BLOCK */) ||
|
||||
bitwise_1.contains(this.display, 268435456 /* INLINE_FLEX */) ||
|
||||
bitwise_1.contains(this.display, 536870912 /* INLINE_GRID */) ||
|
||||
bitwise_1.contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||
|
||||
bitwise_1.contains(this.display, 134217728 /* INLINE_TABLE */));
|
||||
};
|
||||
return CSSParsedDeclaration;
|
||||
}());
|
||||
exports.CSSParsedDeclaration = CSSParsedDeclaration;
|
||||
var CSSParsedPseudoDeclaration = /** @class */ (function () {
|
||||
function CSSParsedPseudoDeclaration(declaration) {
|
||||
this.content = parse(content_1.content, declaration.content);
|
||||
this.quotes = parse(quotes_1.quotes, declaration.quotes);
|
||||
}
|
||||
return CSSParsedPseudoDeclaration;
|
||||
}());
|
||||
exports.CSSParsedPseudoDeclaration = CSSParsedPseudoDeclaration;
|
||||
var CSSParsedCounterDeclaration = /** @class */ (function () {
|
||||
function CSSParsedCounterDeclaration(declaration) {
|
||||
this.counterIncrement = parse(counter_increment_1.counterIncrement, declaration.counterIncrement);
|
||||
this.counterReset = parse(counter_reset_1.counterReset, declaration.counterReset);
|
||||
}
|
||||
return CSSParsedCounterDeclaration;
|
||||
}());
|
||||
exports.CSSParsedCounterDeclaration = CSSParsedCounterDeclaration;
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
var parse = function (descriptor, style) {
|
||||
var tokenizer = new tokenizer_1.Tokenizer();
|
||||
var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;
|
||||
tokenizer.write(value);
|
||||
var parser = new parser_1.Parser(tokenizer.read());
|
||||
switch (descriptor.type) {
|
||||
case IPropertyDescriptor_1.PropertyDescriptorParsingType.IDENT_VALUE:
|
||||
var token = parser.parseComponentValue();
|
||||
return descriptor.parse(parser_1.isIdentToken(token) ? token.value : descriptor.initialValue);
|
||||
case IPropertyDescriptor_1.PropertyDescriptorParsingType.VALUE:
|
||||
return descriptor.parse(parser.parseComponentValue());
|
||||
case IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST:
|
||||
return descriptor.parse(parser.parseComponentValues());
|
||||
case IPropertyDescriptor_1.PropertyDescriptorParsingType.TOKEN_VALUE:
|
||||
return parser.parseComponentValue();
|
||||
case IPropertyDescriptor_1.PropertyDescriptorParsingType.TYPE_VALUE:
|
||||
switch (descriptor.format) {
|
||||
case 'angle':
|
||||
return angle_1.angle.parse(parser.parseComponentValue());
|
||||
case 'color':
|
||||
return color_2.color.parse(parser.parseComponentValue());
|
||||
case 'image':
|
||||
return image_1.image.parse(parser.parseComponentValue());
|
||||
case 'length':
|
||||
var length_2 = parser.parseComponentValue();
|
||||
return length_1.isLength(length_2) ? length_2 : length_percentage_1.ZERO_LENGTH;
|
||||
case 'length-percentage':
|
||||
var value_1 = parser.parseComponentValue();
|
||||
return length_percentage_1.isLengthPercentage(value_1) ? value_1 : length_percentage_1.ZERO_LENGTH;
|
||||
}
|
||||
}
|
||||
throw new Error("Attempting to parse unsupported css format type " + descriptor.format);
|
||||
};
|
||||
//# sourceMappingURL=index.js.map
|
1
dist/lib/css/index.js.map
vendored
Normal file
1
dist/lib/css/index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
dist/lib/css/layout/__mocks__/bounds.js
vendored
Normal file
7
dist/lib/css/layout/__mocks__/bounds.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Bounds = jest.requireActual('../bounds').Bounds;
|
||||
exports.parseBounds = function () {
|
||||
return new exports.Bounds(0, 0, 200, 50);
|
||||
};
|
||||
//# sourceMappingURL=bounds.js.map
|
1
dist/lib/css/layout/__mocks__/bounds.js.map
vendored
Normal file
1
dist/lib/css/layout/__mocks__/bounds.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"bounds.js","sourceRoot":"","sources":["../../../../../src/css/layout/__mocks__/bounds.ts"],"names":[],"mappings":";;AAAc,QAAA,MAAM,GAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAC;AAC3C,QAAA,WAAW,GAAG;IACvB,OAAO,IAAI,cAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC,CAAC"}
|
32
dist/lib/css/layout/bounds.js
vendored
Normal file
32
dist/lib/css/layout/bounds.js
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var Bounds = /** @class */ (function () {
|
||||
function Bounds(x, y, w, h) {
|
||||
this.left = x;
|
||||
this.top = y;
|
||||
this.width = w;
|
||||
this.height = h;
|
||||
}
|
||||
Bounds.prototype.add = function (x, y, w, h) {
|
||||
return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);
|
||||
};
|
||||
Bounds.fromClientRect = function (clientRect) {
|
||||
return new Bounds(clientRect.left, clientRect.top, clientRect.width, clientRect.height);
|
||||
};
|
||||
return Bounds;
|
||||
}());
|
||||
exports.Bounds = Bounds;
|
||||
exports.parseBounds = function (node) {
|
||||
return Bounds.fromClientRect(node.getBoundingClientRect());
|
||||
};
|
||||
exports.parseDocumentSize = function (document) {
|
||||
var body = document.body;
|
||||
var documentElement = document.documentElement;
|
||||
if (!body || !documentElement) {
|
||||
throw new Error("Unable to get document size");
|
||||
}
|
||||
var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));
|
||||
var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));
|
||||
return new Bounds(0, 0, width, height);
|
||||
};
|
||||
//# sourceMappingURL=bounds.js.map
|
1
dist/lib/css/layout/bounds.js.map
vendored
Normal file
1
dist/lib/css/layout/bounds.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"bounds.js","sourceRoot":"","sources":["../../../../src/css/layout/bounds.ts"],"names":[],"mappings":";;AAAA;IAMI,gBAAY,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAClD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,oBAAG,GAAH,UAAI,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC1C,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;IAEM,qBAAc,GAArB,UAAsB,UAAsB;QACxC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5F,CAAC;IACL,aAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,wBAAM;AAsBN,QAAA,WAAW,GAAG,UAAC,IAAa;IACrC,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEW,QAAA,iBAAiB,GAAG,UAAC,QAAkB;IAChD,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,IAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;IAEjD,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE;QAC3B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAClD;IACD,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,EACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,EACvD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,CAC1D,CAAC;IAEF,IAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,EACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,EACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,CAC5D,CAAC;IAEF,OAAO,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3C,CAAC,CAAC"}
|
81
dist/lib/css/layout/text.js
vendored
Normal file
81
dist/lib/css/layout/text.js
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var overflow_wrap_1 = require("../property-descriptors/overflow-wrap");
|
||||
var css_line_break_1 = require("css-line-break");
|
||||
var bounds_1 = require("./bounds");
|
||||
var features_1 = require("../../core/features");
|
||||
var TextBounds = /** @class */ (function () {
|
||||
function TextBounds(text, bounds) {
|
||||
this.text = text;
|
||||
this.bounds = bounds;
|
||||
}
|
||||
return TextBounds;
|
||||
}());
|
||||
exports.TextBounds = TextBounds;
|
||||
exports.parseTextBounds = function (value, styles, node) {
|
||||
var textList = breakText(value, styles);
|
||||
var textBounds = [];
|
||||
var offset = 0;
|
||||
textList.forEach(function (text) {
|
||||
if (styles.textDecorationLine.length || text.trim().length > 0) {
|
||||
if (features_1.FEATURES.SUPPORT_RANGE_BOUNDS) {
|
||||
textBounds.push(new TextBounds(text, getRangeBounds(node, offset, text.length)));
|
||||
}
|
||||
else {
|
||||
var replacementNode = node.splitText(text.length);
|
||||
textBounds.push(new TextBounds(text, getWrapperBounds(node)));
|
||||
node = replacementNode;
|
||||
}
|
||||
}
|
||||
else if (!features_1.FEATURES.SUPPORT_RANGE_BOUNDS) {
|
||||
node = node.splitText(text.length);
|
||||
}
|
||||
offset += text.length;
|
||||
});
|
||||
return textBounds;
|
||||
};
|
||||
var getWrapperBounds = function (node) {
|
||||
var ownerDocument = node.ownerDocument;
|
||||
if (ownerDocument) {
|
||||
var wrapper = ownerDocument.createElement('html2canvaswrapper');
|
||||
wrapper.appendChild(node.cloneNode(true));
|
||||
var parentNode = node.parentNode;
|
||||
if (parentNode) {
|
||||
parentNode.replaceChild(wrapper, node);
|
||||
var bounds = bounds_1.parseBounds(wrapper);
|
||||
if (wrapper.firstChild) {
|
||||
parentNode.replaceChild(wrapper.firstChild, wrapper);
|
||||
}
|
||||
return bounds;
|
||||
}
|
||||
}
|
||||
return new bounds_1.Bounds(0, 0, 0, 0);
|
||||
};
|
||||
var getRangeBounds = function (node, offset, length) {
|
||||
var ownerDocument = node.ownerDocument;
|
||||
if (!ownerDocument) {
|
||||
throw new Error('Node has no owner document');
|
||||
}
|
||||
var range = ownerDocument.createRange();
|
||||
range.setStart(node, offset);
|
||||
range.setEnd(node, offset + length);
|
||||
return bounds_1.Bounds.fromClientRect(range.getBoundingClientRect());
|
||||
};
|
||||
var breakText = function (value, styles) {
|
||||
return styles.letterSpacing !== 0 ? css_line_break_1.toCodePoints(value).map(function (i) { return css_line_break_1.fromCodePoint(i); }) : breakWords(value, styles);
|
||||
};
|
||||
var breakWords = function (str, styles) {
|
||||
var breaker = css_line_break_1.LineBreaker(str, {
|
||||
lineBreak: styles.lineBreak,
|
||||
wordBreak: styles.overflowWrap === overflow_wrap_1.OVERFLOW_WRAP.BREAK_WORD ? 'break-word' : styles.wordBreak
|
||||
});
|
||||
var words = [];
|
||||
var bk;
|
||||
while (!(bk = breaker.next()).done) {
|
||||
if (bk.value) {
|
||||
words.push(bk.value.slice());
|
||||
}
|
||||
}
|
||||
return words;
|
||||
};
|
||||
//# sourceMappingURL=text.js.map
|
1
dist/lib/css/layout/text.js.map
vendored
Normal file
1
dist/lib/css/layout/text.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../src/css/layout/text.ts"],"names":[],"mappings":"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"}
|
33
dist/lib/css/property-descriptors/__tests__/background-tests.js
vendored
Normal file
33
dist/lib/css/property-descriptors/__tests__/background-tests.js
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var assert_1 = require("assert");
|
||||
var parser_1 = require("../../syntax/parser");
|
||||
var background_image_1 = require("../background-image");
|
||||
var image_1 = require("../../types/image");
|
||||
var color_1 = require("../../types/color");
|
||||
var angle_1 = require("../../types/angle");
|
||||
jest.mock('../../../core/cache-storage');
|
||||
jest.mock('../../../core/features');
|
||||
var backgroundImageParse = function (value) { return background_image_1.backgroundImage.parse(parser_1.Parser.parseValues(value)); };
|
||||
describe('property-descriptors', function () {
|
||||
describe('background-image', function () {
|
||||
it('none', function () { return assert_1.deepStrictEqual(backgroundImageParse('none'), []); });
|
||||
it('url(test.jpg), url(test2.jpg)', function () {
|
||||
return assert_1.deepStrictEqual(backgroundImageParse('url(http://example.com/test.jpg), url(http://example.com/test2.jpg)'), [
|
||||
{ url: 'http://example.com/test.jpg', type: image_1.CSSImageType.URL },
|
||||
{ url: 'http://example.com/test2.jpg', type: image_1.CSSImageType.URL }
|
||||
]);
|
||||
});
|
||||
it("linear-gradient(to bottom, rgba(255,255,0,0.5), rgba(0,0,255,0.5)), url('https://html2canvas.hertzen.com')", function () {
|
||||
return assert_1.deepStrictEqual(backgroundImageParse("linear-gradient(to bottom, rgba(255,255,0,0.5), rgba(0,0,255,0.5)), url('https://html2canvas.hertzen.com')"), [
|
||||
{
|
||||
angle: angle_1.deg(180),
|
||||
type: image_1.CSSImageType.LINEAR_GRADIENT,
|
||||
stops: [{ color: color_1.pack(255, 255, 0, 0.5), stop: null }, { color: color_1.pack(0, 0, 255, 0.5), stop: null }]
|
||||
},
|
||||
{ url: 'https://html2canvas.hertzen.com', type: image_1.CSSImageType.URL }
|
||||
]);
|
||||
});
|
||||
});
|
||||
});
|
||||
//# sourceMappingURL=background-tests.js.map
|
1
dist/lib/css/property-descriptors/__tests__/background-tests.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/__tests__/background-tests.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"background-tests.js","sourceRoot":"","sources":["../../../../../src/css/property-descriptors/__tests__/background-tests.ts"],"names":[],"mappings":";;AAAA,iCAAuC;AACvC,8CAA2C;AAC3C,wDAAoD;AACpD,2CAA+C;AAC/C,2CAAuC;AACvC,2CAAsC;AAEtC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACzC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AAEpC,IAAM,oBAAoB,GAAG,UAAC,KAAa,IAAK,OAAA,kCAAe,CAAC,KAAK,CAAC,eAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAhD,CAAgD,CAAC;AAEjG,QAAQ,CAAC,sBAAsB,EAAE;IAC7B,QAAQ,CAAC,kBAAkB,EAAE;QACzB,EAAE,CAAC,MAAM,EAAE,cAAM,OAAA,wBAAe,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAjD,CAAiD,CAAC,CAAC;QAEpE,EAAE,CAAC,+BAA+B,EAAE;YAChC,OAAA,wBAAe,CACX,oBAAoB,CAAC,qEAAqE,CAAC,EAC3F;gBACI,EAAC,GAAG,EAAE,6BAA6B,EAAE,IAAI,EAAE,oBAAY,CAAC,GAAG,EAAC;gBAC5D,EAAC,GAAG,EAAE,8BAA8B,EAAE,IAAI,EAAE,oBAAY,CAAC,GAAG,EAAC;aAChE,CACJ;QAND,CAMC,CAAC,CAAC;QAEP,EAAE,CAAC,4GAA4G,EAAE;YAC7G,OAAA,wBAAe,CACX,oBAAoB,CAChB,4GAA4G,CAC/G,EACD;gBACI;oBACI,KAAK,EAAE,WAAG,CAAC,GAAG,CAAC;oBACf,IAAI,EAAE,oBAAY,CAAC,eAAe;oBAClC,KAAK,EAAE,CAAC,EAAC,KAAK,EAAE,YAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC,EAAE,EAAC,KAAK,EAAE,YAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;iBAClG;gBACD,EAAC,GAAG,EAAE,iCAAiC,EAAE,IAAI,EAAE,oBAAY,CAAC,GAAG,EAAC;aACnE,CACJ;QAZD,CAYC,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
25
dist/lib/css/property-descriptors/__tests__/font-family.js
vendored
Normal file
25
dist/lib/css/property-descriptors/__tests__/font-family.js
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var assert_1 = require("assert");
|
||||
var parser_1 = require("../../syntax/parser");
|
||||
var font_family_1 = require("../font-family");
|
||||
var fontFamilyParse = function (value) { return font_family_1.fontFamily.parse(parser_1.Parser.parseValues(value)); };
|
||||
describe('property-descriptors', function () {
|
||||
describe('font-family', function () {
|
||||
it('sans-serif', function () { return assert_1.deepEqual(fontFamilyParse('sans-serif'), ['sans-serif']); });
|
||||
it('great fonts 40 library', function () {
|
||||
return assert_1.deepEqual(fontFamilyParse('great fonts 40 library'), ["'great fonts 40 library'"]);
|
||||
});
|
||||
it('preferred font, "quoted fallback font", font', function () {
|
||||
return assert_1.deepEqual(fontFamilyParse('preferred font, "quoted fallback font", font'), [
|
||||
"'preferred font'",
|
||||
"'quoted fallback font'",
|
||||
'font'
|
||||
]);
|
||||
});
|
||||
it("'escaping test\\'s font'", function () {
|
||||
return assert_1.deepEqual(fontFamilyParse("'escaping test\\'s font'"), ["'escaping test's font'"]);
|
||||
});
|
||||
});
|
||||
});
|
||||
//# sourceMappingURL=font-family.js.map
|
1
dist/lib/css/property-descriptors/__tests__/font-family.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/__tests__/font-family.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"font-family.js","sourceRoot":"","sources":["../../../../../src/css/property-descriptors/__tests__/font-family.ts"],"names":[],"mappings":";;AAAA,iCAAiC;AACjC,8CAA2C;AAC3C,8CAA0C;AAE1C,IAAM,eAAe,GAAG,UAAC,KAAa,IAAK,OAAA,wBAAU,CAAC,KAAK,CAAC,eAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAA3C,CAA2C,CAAC;AAEvF,QAAQ,CAAC,sBAAsB,EAAE;IAC7B,QAAQ,CAAC,aAAa,EAAE;QACpB,EAAE,CAAC,YAAY,EAAE,cAAM,OAAA,kBAAS,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAxD,CAAwD,CAAC,CAAC;QAEjF,EAAE,CAAC,wBAAwB,EAAE;YACzB,OAAA,kBAAS,CAAC,eAAe,CAAC,wBAAwB,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC;QAAlF,CAAkF,CAAC,CAAC;QAExF,EAAE,CAAC,8CAA8C,EAAE;YAC/C,OAAA,kBAAS,CAAC,eAAe,CAAC,8CAA8C,CAAC,EAAE;gBACvE,kBAAkB;gBAClB,wBAAwB;gBACxB,MAAM;aACT,CAAC;QAJF,CAIE,CAAC,CAAC;QAER,EAAE,CAAC,0BAA0B,EAAE;YAC3B,OAAA,kBAAS,CAAC,eAAe,CAAC,0BAA0B,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC;QAAlF,CAAkF,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
94
dist/lib/css/property-descriptors/__tests__/text-shadow.js
vendored
Normal file
94
dist/lib/css/property-descriptors/__tests__/text-shadow.js
vendored
Normal file
@ -0,0 +1,94 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var assert_1 = require("assert");
|
||||
var parser_1 = require("../../syntax/parser");
|
||||
var color_1 = require("../../types/color");
|
||||
var text_shadow_1 = require("../text-shadow");
|
||||
var tokenizer_1 = require("../../syntax/tokenizer");
|
||||
var length_percentage_1 = require("../../types/length-percentage");
|
||||
var textShadowParse = function (value) { return text_shadow_1.textShadow.parse(parser_1.Parser.parseValues(value)); };
|
||||
var colorParse = function (value) { return color_1.color.parse(parser_1.Parser.parseValue(value)); };
|
||||
var dimension = function (number, unit) { return ({
|
||||
flags: tokenizer_1.FLAG_INTEGER,
|
||||
number: number,
|
||||
unit: unit,
|
||||
type: tokenizer_1.TokenType.DIMENSION_TOKEN
|
||||
}); };
|
||||
describe('property-descriptors', function () {
|
||||
describe('text-shadow', function () {
|
||||
it('none', function () { return assert_1.deepStrictEqual(textShadowParse('none'), []); });
|
||||
it('1px 1px 2px pink', function () {
|
||||
return assert_1.deepStrictEqual(textShadowParse('1px 1px 2px pink'), [
|
||||
{
|
||||
color: colorParse('pink'),
|
||||
offsetX: dimension(1, 'px'),
|
||||
offsetY: dimension(1, 'px'),
|
||||
blur: dimension(2, 'px')
|
||||
}
|
||||
]);
|
||||
});
|
||||
it('#fc0 1px 0 10px', function () {
|
||||
return assert_1.deepStrictEqual(textShadowParse('#fc0 1px 0 10px'), [
|
||||
{
|
||||
color: colorParse('#fc0'),
|
||||
offsetX: dimension(1, 'px'),
|
||||
offsetY: length_percentage_1.ZERO_LENGTH,
|
||||
blur: dimension(10, 'px')
|
||||
}
|
||||
]);
|
||||
});
|
||||
it('5px 5px #558abb', function () {
|
||||
return assert_1.deepStrictEqual(textShadowParse('5px 5px #558abb'), [
|
||||
{
|
||||
color: colorParse('#558abb'),
|
||||
offsetX: dimension(5, 'px'),
|
||||
offsetY: dimension(5, 'px'),
|
||||
blur: length_percentage_1.ZERO_LENGTH
|
||||
}
|
||||
]);
|
||||
});
|
||||
it('white 2px 5px', function () {
|
||||
return assert_1.deepStrictEqual(textShadowParse('white 2px 5px'), [
|
||||
{
|
||||
color: colorParse('#fff'),
|
||||
offsetX: dimension(2, 'px'),
|
||||
offsetY: dimension(5, 'px'),
|
||||
blur: length_percentage_1.ZERO_LENGTH
|
||||
}
|
||||
]);
|
||||
});
|
||||
it('white 2px 5px', function () {
|
||||
return assert_1.deepStrictEqual(textShadowParse('5px 10px'), [
|
||||
{
|
||||
color: color_1.COLORS.TRANSPARENT,
|
||||
offsetX: dimension(5, 'px'),
|
||||
offsetY: dimension(10, 'px'),
|
||||
blur: length_percentage_1.ZERO_LENGTH
|
||||
}
|
||||
]);
|
||||
});
|
||||
it('1px 1px 2px red, 0 0 1em blue, 0 0 2em blue', function () {
|
||||
return assert_1.deepStrictEqual(textShadowParse('1px 1px 2px red, 0 0 1em blue, 0 0 2em blue'), [
|
||||
{
|
||||
color: colorParse('red'),
|
||||
offsetX: dimension(1, 'px'),
|
||||
offsetY: dimension(1, 'px'),
|
||||
blur: dimension(2, 'px')
|
||||
},
|
||||
{
|
||||
color: colorParse('blue'),
|
||||
offsetX: length_percentage_1.ZERO_LENGTH,
|
||||
offsetY: length_percentage_1.ZERO_LENGTH,
|
||||
blur: dimension(1, 'em')
|
||||
},
|
||||
{
|
||||
color: colorParse('blue'),
|
||||
offsetX: length_percentage_1.ZERO_LENGTH,
|
||||
offsetY: length_percentage_1.ZERO_LENGTH,
|
||||
blur: dimension(2, 'em')
|
||||
}
|
||||
]);
|
||||
});
|
||||
});
|
||||
});
|
||||
//# sourceMappingURL=text-shadow.js.map
|
1
dist/lib/css/property-descriptors/__tests__/text-shadow.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/__tests__/text-shadow.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"text-shadow.js","sourceRoot":"","sources":["../../../../../src/css/property-descriptors/__tests__/text-shadow.ts"],"names":[],"mappings":"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"}
|
25
dist/lib/css/property-descriptors/__tests__/transform-tests.js
vendored
Normal file
25
dist/lib/css/property-descriptors/__tests__/transform-tests.js
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var transform_1 = require("../transform");
|
||||
var parser_1 = require("../../syntax/parser");
|
||||
var assert_1 = require("assert");
|
||||
var parseValue = function (value) { return transform_1.transform.parse(parser_1.Parser.parseValue(value)); };
|
||||
describe('property-descriptors', function () {
|
||||
describe('transform', function () {
|
||||
it('none', function () { return assert_1.deepStrictEqual(parseValue('none'), null); });
|
||||
it('matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0)', function () {
|
||||
return assert_1.deepStrictEqual(parseValue('matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0)'), [1, 2, 3, 4, 5, 6]);
|
||||
});
|
||||
it('matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)', function () {
|
||||
return assert_1.deepStrictEqual(parseValue('matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)'), [
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0
|
||||
]);
|
||||
});
|
||||
});
|
||||
});
|
||||
//# sourceMappingURL=transform-tests.js.map
|
1
dist/lib/css/property-descriptors/__tests__/transform-tests.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/__tests__/transform-tests.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"transform-tests.js","sourceRoot":"","sources":["../../../../../src/css/property-descriptors/__tests__/transform-tests.ts"],"names":[],"mappings":";;AAAA,0CAAuC;AACvC,8CAA2C;AAC3C,iCAAuC;AACvC,IAAM,UAAU,GAAG,UAAC,KAAa,IAAK,OAAA,qBAAS,CAAC,KAAK,CAAC,eAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAzC,CAAyC,CAAC;AAEhF,QAAQ,CAAC,sBAAsB,EAAE;IAC7B,QAAQ,CAAC,WAAW,EAAE;QAClB,EAAE,CAAC,MAAM,EAAE,cAAM,OAAA,wBAAe,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAzC,CAAyC,CAAC,CAAC;QAC5D,EAAE,CAAC,sCAAsC,EAAE;YACvC,OAAA,wBAAe,CAAC,UAAU,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAAvF,CAAuF,CAAC,CAAC;QAC7F,EAAE,CAAC,0DAA0D,EAAE;YAC3D,OAAA,wBAAe,CAAC,UAAU,CAAC,0DAA0D,CAAC,EAAE;gBACpF,CAAC;gBACD,CAAC;gBACD,CAAC;gBACD,CAAC;gBACD,CAAC;gBACD,CAAC;aACJ,CAAC;QAPF,CAOE,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
30
dist/lib/css/property-descriptors/background-clip.js
vendored
Normal file
30
dist/lib/css/property-descriptors/background-clip.js
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
var BACKGROUND_CLIP;
|
||||
(function (BACKGROUND_CLIP) {
|
||||
BACKGROUND_CLIP[BACKGROUND_CLIP["BORDER_BOX"] = 0] = "BORDER_BOX";
|
||||
BACKGROUND_CLIP[BACKGROUND_CLIP["PADDING_BOX"] = 1] = "PADDING_BOX";
|
||||
BACKGROUND_CLIP[BACKGROUND_CLIP["CONTENT_BOX"] = 2] = "CONTENT_BOX";
|
||||
})(BACKGROUND_CLIP = exports.BACKGROUND_CLIP || (exports.BACKGROUND_CLIP = {}));
|
||||
exports.backgroundClip = {
|
||||
name: 'background-clip',
|
||||
initialValue: 'border-box',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
parse: function (tokens) {
|
||||
return tokens.map(function (token) {
|
||||
if (parser_1.isIdentToken(token)) {
|
||||
switch (token.value) {
|
||||
case 'padding-box':
|
||||
return BACKGROUND_CLIP.PADDING_BOX;
|
||||
case 'content-box':
|
||||
return BACKGROUND_CLIP.CONTENT_BOX;
|
||||
}
|
||||
}
|
||||
return BACKGROUND_CLIP.BORDER_BOX;
|
||||
});
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=background-clip.js.map
|
1
dist/lib/css/property-descriptors/background-clip.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/background-clip.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"background-clip.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/background-clip.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAC9F,2CAAwD;AACxD,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,iEAAc,CAAA;IACd,mEAAe,CAAA;IACf,mEAAe,CAAA;AACnB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAIY,QAAA,cAAc,GAA4C;IACnE,IAAI,EAAE,iBAAiB;IACvB,YAAY,EAAE,YAAY;IAC1B,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,KAAK,EAAE,UAAC,MAAkB;QACtB,OAAO,MAAM,CAAC,GAAG,CAAC,UAAA,KAAK;YACnB,IAAI,qBAAY,CAAC,KAAK,CAAC,EAAE;gBACrB,QAAQ,KAAK,CAAC,KAAK,EAAE;oBACjB,KAAK,aAAa;wBACd,OAAO,eAAe,CAAC,WAAW,CAAC;oBACvC,KAAK,aAAa;wBACd,OAAO,eAAe,CAAC,WAAW,CAAC;iBAC1C;aACJ;YACD,OAAO,eAAe,CAAC,UAAU,CAAC;QACtC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
|
11
dist/lib/css/property-descriptors/background-color.js
vendored
Normal file
11
dist/lib/css/property-descriptors/background-color.js
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
exports.backgroundColor = {
|
||||
name: "background-color",
|
||||
initialValue: 'transparent',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.TYPE_VALUE,
|
||||
format: 'color'
|
||||
};
|
||||
//# sourceMappingURL=background-color.js.map
|
1
dist/lib/css/property-descriptors/background-color.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/background-color.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"background-color.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/background-color.ts"],"names":[],"mappings":";;AAAA,8DAAmG;AAEtF,QAAA,eAAe,GAAiC;IACzD,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,aAAa;IAC3B,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,UAAU;IAC9C,MAAM,EAAE,OAAO;CAClB,CAAC"}
|
23
dist/lib/css/property-descriptors/background-image.js
vendored
Normal file
23
dist/lib/css/property-descriptors/background-image.js
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tokenizer_1 = require("../syntax/tokenizer");
|
||||
var image_1 = require("../types/image");
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
exports.backgroundImage = {
|
||||
name: 'background-image',
|
||||
initialValue: 'none',
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
prefix: false,
|
||||
parse: function (tokens) {
|
||||
if (tokens.length === 0) {
|
||||
return [];
|
||||
}
|
||||
var first = tokens[0];
|
||||
if (first.type === tokenizer_1.TokenType.IDENT_TOKEN && first.value === 'none') {
|
||||
return [];
|
||||
}
|
||||
return tokens.filter(function (value) { return parser_1.nonFunctionArgSeparator(value) && image_1.isSupportedImage(value); }).map(image_1.image.parse);
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=background-image.js.map
|
1
dist/lib/css/property-descriptors/background-image.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/background-image.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"background-image.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/background-image.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,wCAAkE;AAClE,8DAA8F;AAC9F,2CAAmE;AAEtD,QAAA,eAAe,GAAyC;IACjE,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,MAAM;IACpB,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,UAAC,MAAkB;QACtB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,EAAE,CAAC;SACb;QAED,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE;YAChE,OAAO,EAAE,CAAC;SACb;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,UAAA,KAAK,IAAI,OAAA,gCAAuB,CAAC,KAAK,CAAC,IAAI,wBAAgB,CAAC,KAAK,CAAC,EAAzD,CAAyD,CAAC,CAAC,GAAG,CAAC,aAAK,CAAC,KAAK,CAAC,CAAC;IAC9G,CAAC;CACJ,CAAC"}
|
24
dist/lib/css/property-descriptors/background-origin.js
vendored
Normal file
24
dist/lib/css/property-descriptors/background-origin.js
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
exports.backgroundOrigin = {
|
||||
name: 'background-origin',
|
||||
initialValue: 'border-box',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
parse: function (tokens) {
|
||||
return tokens.map(function (token) {
|
||||
if (parser_1.isIdentToken(token)) {
|
||||
switch (token.value) {
|
||||
case 'padding-box':
|
||||
return 1 /* PADDING_BOX */;
|
||||
case 'content-box':
|
||||
return 2 /* CONTENT_BOX */;
|
||||
}
|
||||
}
|
||||
return 0 /* BORDER_BOX */;
|
||||
});
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=background-origin.js.map
|
1
dist/lib/css/property-descriptors/background-origin.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/background-origin.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"background-origin.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/background-origin.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAC9F,2CAAwD;AAU3C,QAAA,gBAAgB,GAA8C;IACvE,IAAI,EAAE,mBAAmB;IACzB,YAAY,EAAE,YAAY;IAC1B,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,KAAK,EAAE,UAAC,MAAkB;QACtB,OAAO,MAAM,CAAC,GAAG,CAAC,UAAA,KAAK;YACnB,IAAI,qBAAY,CAAC,KAAK,CAAC,EAAE;gBACrB,QAAQ,KAAK,CAAC,KAAK,EAAE;oBACjB,KAAK,aAAa;wBACd,2BAAqC;oBACzC,KAAK,aAAa;wBACd,2BAAqC;iBAC5C;aACJ;YACD,0BAAoC;QACxC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
|
17
dist/lib/css/property-descriptors/background-position.js
vendored
Normal file
17
dist/lib/css/property-descriptors/background-position.js
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
var length_percentage_1 = require("../types/length-percentage");
|
||||
exports.backgroundPosition = {
|
||||
name: 'background-position',
|
||||
initialValue: '0% 0%',
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
prefix: false,
|
||||
parse: function (tokens) {
|
||||
return parser_1.parseFunctionArgs(tokens)
|
||||
.map(function (values) { return values.filter(length_percentage_1.isLengthPercentage); })
|
||||
.map(length_percentage_1.parseLengthPercentageTuple);
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=background-position.js.map
|
1
dist/lib/css/property-descriptors/background-position.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/background-position.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"background-position.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/background-position.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAC9F,2CAA6D;AAC7D,gEAAiH;AAKpG,QAAA,kBAAkB,GAAgD;IAC3E,IAAI,EAAE,qBAAqB;IAC3B,YAAY,EAAE,OAAO;IACrB,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,UAAC,MAAkB;QACtB,OAAO,0BAAiB,CAAC,MAAM,CAAC;aAC3B,GAAG,CAAC,UAAC,MAAkB,IAAK,OAAA,MAAM,CAAC,MAAM,CAAC,sCAAkB,CAAC,EAAjC,CAAiC,CAAC;aAC9D,GAAG,CAAC,8CAA0B,CAAC,CAAC;IACzC,CAAC;CACJ,CAAC"}
|
43
dist/lib/css/property-descriptors/background-repeat.js
vendored
Normal file
43
dist/lib/css/property-descriptors/background-repeat.js
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
var BACKGROUND_REPEAT;
|
||||
(function (BACKGROUND_REPEAT) {
|
||||
BACKGROUND_REPEAT[BACKGROUND_REPEAT["REPEAT"] = 0] = "REPEAT";
|
||||
BACKGROUND_REPEAT[BACKGROUND_REPEAT["NO_REPEAT"] = 1] = "NO_REPEAT";
|
||||
BACKGROUND_REPEAT[BACKGROUND_REPEAT["REPEAT_X"] = 2] = "REPEAT_X";
|
||||
BACKGROUND_REPEAT[BACKGROUND_REPEAT["REPEAT_Y"] = 3] = "REPEAT_Y";
|
||||
})(BACKGROUND_REPEAT = exports.BACKGROUND_REPEAT || (exports.BACKGROUND_REPEAT = {}));
|
||||
exports.backgroundRepeat = {
|
||||
name: 'background-repeat',
|
||||
initialValue: 'repeat',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
parse: function (tokens) {
|
||||
return parser_1.parseFunctionArgs(tokens)
|
||||
.map(function (values) {
|
||||
return values
|
||||
.filter(parser_1.isIdentToken)
|
||||
.map(function (token) { return token.value; })
|
||||
.join(' ');
|
||||
})
|
||||
.map(parseBackgroundRepeat);
|
||||
}
|
||||
};
|
||||
var parseBackgroundRepeat = function (value) {
|
||||
switch (value) {
|
||||
case 'no-repeat':
|
||||
return BACKGROUND_REPEAT.NO_REPEAT;
|
||||
case 'repeat-x':
|
||||
case 'repeat no-repeat':
|
||||
return BACKGROUND_REPEAT.REPEAT_X;
|
||||
case 'repeat-y':
|
||||
case 'no-repeat repeat':
|
||||
return BACKGROUND_REPEAT.REPEAT_Y;
|
||||
case 'repeat':
|
||||
default:
|
||||
return BACKGROUND_REPEAT.REPEAT;
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=background-repeat.js.map
|
1
dist/lib/css/property-descriptors/background-repeat.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/background-repeat.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"background-repeat.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/background-repeat.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAC9F,2CAA2E;AAG3E,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,6DAAU,CAAA;IACV,mEAAa,CAAA;IACb,iEAAY,CAAA;IACZ,iEAAY,CAAA;AAChB,CAAC,EALW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAK5B;AAEY,QAAA,gBAAgB,GAA8C;IACvE,IAAI,EAAE,mBAAmB;IACzB,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,KAAK,EAAE,UAAC,MAAkB;QACtB,OAAO,0BAAiB,CAAC,MAAM,CAAC;aAC3B,GAAG,CAAC,UAAA,MAAM;YACP,OAAA,MAAM;iBACD,MAAM,CAAC,qBAAY,CAAC;iBACpB,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,KAAK,EAAX,CAAW,CAAC;iBACzB,IAAI,CAAC,GAAG,CAAC;QAHd,CAGc,CACjB;aACA,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACpC,CAAC;CACJ,CAAC;AAEF,IAAM,qBAAqB,GAAG,UAAC,KAAa;IACxC,QAAQ,KAAK,EAAE;QACX,KAAK,WAAW;YACZ,OAAO,iBAAiB,CAAC,SAAS,CAAC;QACvC,KAAK,UAAU,CAAC;QAChB,KAAK,kBAAkB;YACnB,OAAO,iBAAiB,CAAC,QAAQ,CAAC;QACtC,KAAK,UAAU,CAAC;QAChB,KAAK,kBAAkB;YACnB,OAAO,iBAAiB,CAAC,QAAQ,CAAC;QACtC,KAAK,QAAQ,CAAC;QACd;YACI,OAAO,iBAAiB,CAAC,MAAM,CAAC;KACvC;AACL,CAAC,CAAC"}
|
24
dist/lib/css/property-descriptors/background-size.js
vendored
Normal file
24
dist/lib/css/property-descriptors/background-size.js
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
var length_percentage_1 = require("../types/length-percentage");
|
||||
var BACKGROUND_SIZE;
|
||||
(function (BACKGROUND_SIZE) {
|
||||
BACKGROUND_SIZE["AUTO"] = "auto";
|
||||
BACKGROUND_SIZE["CONTAIN"] = "contain";
|
||||
BACKGROUND_SIZE["COVER"] = "cover";
|
||||
})(BACKGROUND_SIZE = exports.BACKGROUND_SIZE || (exports.BACKGROUND_SIZE = {}));
|
||||
exports.backgroundSize = {
|
||||
name: 'background-size',
|
||||
initialValue: '0',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
parse: function (tokens) {
|
||||
return parser_1.parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });
|
||||
}
|
||||
};
|
||||
var isBackgroundSizeInfoToken = function (value) {
|
||||
return parser_1.isIdentToken(value) || length_percentage_1.isLengthPercentage(value);
|
||||
};
|
||||
//# sourceMappingURL=background-size.js.map
|
1
dist/lib/css/property-descriptors/background-size.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/background-size.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"background-size.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/background-size.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAC9F,2CAA2E;AAC3E,gEAAgF;AAGhF,IAAY,eAIX;AAJD,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,sCAAmB,CAAA;IACnB,kCAAe,CAAA;AACnB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAKY,QAAA,cAAc,GAA4C;IACnE,IAAI,EAAE,iBAAiB;IACvB,YAAY,EAAE,GAAG;IACjB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,KAAK,EAAE,UAAC,MAAkB;QACtB,OAAO,0BAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAxC,CAAwC,CAAC,CAAC;IAC7F,CAAC;CACJ,CAAC;AAEF,IAAM,yBAAyB,GAAG,UAAC,KAAe;IAC9C,OAAA,qBAAY,CAAC,KAAK,CAAC,IAAI,sCAAkB,CAAC,KAAK,CAAC;AAAhD,CAAgD,CAAC"}
|
15
dist/lib/css/property-descriptors/border-color.js
vendored
Normal file
15
dist/lib/css/property-descriptors/border-color.js
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var borderColorForSide = function (side) { return ({
|
||||
name: "border-" + side + "-color",
|
||||
initialValue: 'transparent',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.TYPE_VALUE,
|
||||
format: 'color'
|
||||
}); };
|
||||
exports.borderTopColor = borderColorForSide('top');
|
||||
exports.borderRightColor = borderColorForSide('right');
|
||||
exports.borderBottomColor = borderColorForSide('bottom');
|
||||
exports.borderLeftColor = borderColorForSide('left');
|
||||
//# sourceMappingURL=border-color.js.map
|
1
dist/lib/css/property-descriptors/border-color.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/border-color.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"border-color.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/border-color.ts"],"names":[],"mappings":";;AAAA,8DAAmG;AACnG,IAAM,kBAAkB,GAAG,UAAC,IAAY,IAAmC,OAAA,CAAC;IACxE,IAAI,EAAE,YAAU,IAAI,WAAQ;IAC5B,YAAY,EAAE,aAAa;IAC3B,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,UAAU;IAC9C,MAAM,EAAE,OAAO;CAClB,CAAC,EANyE,CAMzE,CAAC;AAEU,QAAA,cAAc,GAAiC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACzE,QAAA,gBAAgB,GAAiC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC7E,QAAA,iBAAiB,GAAiC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAC/E,QAAA,eAAe,GAAiC,kBAAkB,CAAC,MAAM,CAAC,CAAC"}
|
16
dist/lib/css/property-descriptors/border-radius.js
vendored
Normal file
16
dist/lib/css/property-descriptors/border-radius.js
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var length_percentage_1 = require("../types/length-percentage");
|
||||
var borderRadiusForSide = function (side) { return ({
|
||||
name: "border-radius-" + side,
|
||||
initialValue: '0 0',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
parse: function (tokens) { return length_percentage_1.parseLengthPercentageTuple(tokens.filter(length_percentage_1.isLengthPercentage)); }
|
||||
}); };
|
||||
exports.borderTopLeftRadius = borderRadiusForSide('top-left');
|
||||
exports.borderTopRightRadius = borderRadiusForSide('top-right');
|
||||
exports.borderBottomRightRadius = borderRadiusForSide('bottom-right');
|
||||
exports.borderBottomLeftRadius = borderRadiusForSide('bottom-left');
|
||||
//# sourceMappingURL=border-radius.js.map
|
1
dist/lib/css/property-descriptors/border-radius.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/border-radius.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"border-radius.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/border-radius.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAE9F,gEAAiH;AAGjH,IAAM,mBAAmB,GAAG,UAAC,IAAY,IAA4C,OAAA,CAAC;IAClF,IAAI,EAAE,mBAAiB,IAAM;IAC7B,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,KAAK,EAAE,UAAC,MAAkB,IAAmB,OAAA,8CAA0B,CAAC,MAAM,CAAC,MAAM,CAAC,sCAAkB,CAAC,CAAC,EAA7D,CAA6D;CAC7G,CAAC,EANmF,CAMnF,CAAC;AAEU,QAAA,mBAAmB,GAA0C,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC7F,QAAA,oBAAoB,GAA0C,mBAAmB,CAAC,WAAW,CAAC,CAAC;AAC/F,QAAA,uBAAuB,GAA0C,mBAAmB,CAAC,cAAc,CAAC,CAAC;AACrG,QAAA,sBAAsB,GAA0C,mBAAmB,CAAC,aAAa,CAAC,CAAC"}
|
26
dist/lib/css/property-descriptors/border-style.js
vendored
Normal file
26
dist/lib/css/property-descriptors/border-style.js
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var BORDER_STYLE;
|
||||
(function (BORDER_STYLE) {
|
||||
BORDER_STYLE[BORDER_STYLE["NONE"] = 0] = "NONE";
|
||||
BORDER_STYLE[BORDER_STYLE["SOLID"] = 1] = "SOLID";
|
||||
})(BORDER_STYLE = exports.BORDER_STYLE || (exports.BORDER_STYLE = {}));
|
||||
var borderStyleForSide = function (side) { return ({
|
||||
name: "border-" + side + "-style",
|
||||
initialValue: 'solid',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.IDENT_VALUE,
|
||||
parse: function (style) {
|
||||
switch (style) {
|
||||
case 'none':
|
||||
return BORDER_STYLE.NONE;
|
||||
}
|
||||
return BORDER_STYLE.SOLID;
|
||||
}
|
||||
}); };
|
||||
exports.borderTopStyle = borderStyleForSide('top');
|
||||
exports.borderRightStyle = borderStyleForSide('right');
|
||||
exports.borderBottomStyle = borderStyleForSide('bottom');
|
||||
exports.borderLeftStyle = borderStyleForSide('left');
|
||||
//# sourceMappingURL=border-style.js.map
|
1
dist/lib/css/property-descriptors/border-style.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/border-style.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"border-style.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/border-style.ts"],"names":[],"mappings":";;AAAA,8DAAoG;AACpG,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,+CAAQ,CAAA;IACR,iDAAS,CAAA;AACb,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED,IAAM,kBAAkB,GAAG,UAAC,IAAY,IAAkD,OAAA,CAAC;IACvF,IAAI,EAAE,YAAU,IAAI,WAAQ;IAC5B,YAAY,EAAE,OAAO;IACrB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,WAAW;IAC/C,KAAK,EAAE,UAAC,KAAa;QACjB,QAAQ,KAAK,EAAE;YACX,KAAK,MAAM;gBACP,OAAO,YAAY,CAAC,IAAI,CAAC;SAChC;QACD,OAAO,YAAY,CAAC,KAAK,CAAC;IAC9B,CAAC;CACJ,CAAC,EAZwF,CAYxF,CAAC;AAEU,QAAA,cAAc,GAAgD,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACxF,QAAA,gBAAgB,GAAgD,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5F,QAAA,iBAAiB,GAAgD,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAC9F,QAAA,eAAe,GAAgD,kBAAkB,CAAC,MAAM,CAAC,CAAC"}
|
21
dist/lib/css/property-descriptors/border-width.js
vendored
Normal file
21
dist/lib/css/property-descriptors/border-width.js
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
var borderWidthForSide = function (side) { return ({
|
||||
name: "border-" + side + "-width",
|
||||
initialValue: '0',
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.VALUE,
|
||||
prefix: false,
|
||||
parse: function (token) {
|
||||
if (parser_1.isDimensionToken(token)) {
|
||||
return token.number;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}); };
|
||||
exports.borderTopWidth = borderWidthForSide('top');
|
||||
exports.borderRightWidth = borderWidthForSide('right');
|
||||
exports.borderBottomWidth = borderWidthForSide('bottom');
|
||||
exports.borderLeftWidth = borderWidthForSide('left');
|
||||
//# sourceMappingURL=border-width.js.map
|
1
dist/lib/css/property-descriptors/border-width.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/border-width.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"border-width.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/border-width.ts"],"names":[],"mappings":";;AAAA,8DAA+F;AAC/F,2CAA4D;AAC5D,IAAM,kBAAkB,GAAG,UAAC,IAAY,IAAuC,OAAA,CAAC;IAC5E,IAAI,EAAE,YAAU,IAAI,WAAQ;IAC5B,YAAY,EAAE,GAAG;IACjB,IAAI,EAAE,mDAA6B,CAAC,KAAK;IACzC,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,UAAC,KAAe;QACnB,IAAI,yBAAgB,CAAC,KAAK,CAAC,EAAE;YACzB,OAAO,KAAK,CAAC,MAAM,CAAC;SACvB;QACD,OAAO,CAAC,CAAC;IACb,CAAC;CACJ,CAAC,EAX6E,CAW7E,CAAC;AAEU,QAAA,cAAc,GAAqC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC7E,QAAA,gBAAgB,GAAqC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AACjF,QAAA,iBAAiB,GAAqC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACnF,QAAA,eAAe,GAAqC,kBAAkB,CAAC,MAAM,CAAC,CAAC"}
|
55
dist/lib/css/property-descriptors/box-shadow.js
vendored
Normal file
55
dist/lib/css/property-descriptors/box-shadow.js
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
var length_percentage_1 = require("../types/length-percentage");
|
||||
var color_1 = require("../types/color");
|
||||
var length_1 = require("../types/length");
|
||||
exports.boxShadow = {
|
||||
name: 'box-shadow',
|
||||
initialValue: 'none',
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
prefix: false,
|
||||
parse: function (tokens) {
|
||||
if (tokens.length === 1 && parser_1.isIdentWithValue(tokens[0], 'none')) {
|
||||
return [];
|
||||
}
|
||||
return parser_1.parseFunctionArgs(tokens).map(function (values) {
|
||||
var shadow = {
|
||||
color: 0x000000ff,
|
||||
offsetX: length_percentage_1.ZERO_LENGTH,
|
||||
offsetY: length_percentage_1.ZERO_LENGTH,
|
||||
blur: length_percentage_1.ZERO_LENGTH,
|
||||
spread: length_percentage_1.ZERO_LENGTH,
|
||||
inset: false
|
||||
};
|
||||
var c = 0;
|
||||
for (var i = 0; i < values.length; i++) {
|
||||
var token = values[i];
|
||||
if (parser_1.isIdentWithValue(token, 'inset')) {
|
||||
shadow.inset = true;
|
||||
}
|
||||
else if (length_1.isLength(token)) {
|
||||
if (c === 0) {
|
||||
shadow.offsetX = token;
|
||||
}
|
||||
else if (c === 1) {
|
||||
shadow.offsetY = token;
|
||||
}
|
||||
else if (c === 2) {
|
||||
shadow.blur = token;
|
||||
}
|
||||
else {
|
||||
shadow.spread = token;
|
||||
}
|
||||
c++;
|
||||
}
|
||||
else {
|
||||
shadow.color = color_1.color.parse(token);
|
||||
}
|
||||
}
|
||||
return shadow;
|
||||
});
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=box-shadow.js.map
|
1
dist/lib/css/property-descriptors/box-shadow.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/box-shadow.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"box-shadow.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/box-shadow.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAC9F,2CAA+E;AAC/E,gEAAuD;AACvD,wCAA4C;AAC5C,0CAAiD;AAYpC,QAAA,SAAS,GAAuC;IACzD,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,MAAM;IACpB,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,UAAC,MAAkB;QACtB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,yBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE;YAC5D,OAAO,EAAE,CAAC;SACb;QAED,OAAO,0BAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAC,MAAkB;YACpD,IAAM,MAAM,GAAkB;gBAC1B,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,+BAAW;gBACpB,OAAO,EAAE,+BAAW;gBACpB,IAAI,EAAE,+BAAW;gBACjB,MAAM,EAAE,+BAAW;gBACnB,KAAK,EAAE,KAAK;aACf,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,yBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;oBAClC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;iBACvB;qBAAM,IAAI,iBAAQ,CAAC,KAAK,CAAC,EAAE;oBACxB,IAAI,CAAC,KAAK,CAAC,EAAE;wBACT,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;qBAC1B;yBAAM,IAAI,CAAC,KAAK,CAAC,EAAE;wBAChB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;qBAC1B;yBAAM,IAAI,CAAC,KAAK,CAAC,EAAE;wBAChB,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;qBACvB;yBAAM;wBACH,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;qBACzB;oBACD,CAAC,EAAE,CAAC;iBACP;qBAAM;oBACH,MAAM,CAAC,KAAK,GAAG,aAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACrC;aACJ;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC,CAAC;IACP,CAAC;CACJ,CAAC"}
|
11
dist/lib/css/property-descriptors/color.js
vendored
Normal file
11
dist/lib/css/property-descriptors/color.js
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
exports.color = {
|
||||
name: "color",
|
||||
initialValue: 'transparent',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.TYPE_VALUE,
|
||||
format: 'color'
|
||||
};
|
||||
//# sourceMappingURL=color.js.map
|
1
dist/lib/css/property-descriptors/color.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/color.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/color.ts"],"names":[],"mappings":";;AAAA,8DAAmG;AAEtF,QAAA,KAAK,GAAiC;IAC/C,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,aAAa;IAC3B,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,UAAU;IAC9C,MAAM,EAAE,OAAO;CAClB,CAAC"}
|
21
dist/lib/css/property-descriptors/content.js
vendored
Normal file
21
dist/lib/css/property-descriptors/content.js
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var tokenizer_1 = require("../syntax/tokenizer");
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
exports.content = {
|
||||
name: 'content',
|
||||
initialValue: 'none',
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
prefix: false,
|
||||
parse: function (tokens) {
|
||||
if (tokens.length === 0) {
|
||||
return [];
|
||||
}
|
||||
var first = tokens[0];
|
||||
if (first.type === tokenizer_1.TokenType.IDENT_TOKEN && first.value === 'none') {
|
||||
return [];
|
||||
}
|
||||
return tokens;
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=content.js.map
|
1
dist/lib/css/property-descriptors/content.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/content.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/content.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,8DAA8F;AAKjF,QAAA,OAAO,GAAqC;IACrD,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,MAAM;IACpB,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,UAAC,MAAkB;QACtB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,EAAE,CAAC;SACb;QAED,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE;YAChE,OAAO,EAAE,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAC"}
|
32
dist/lib/css/property-descriptors/counter-increment.js
vendored
Normal file
32
dist/lib/css/property-descriptors/counter-increment.js
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
var tokenizer_1 = require("../syntax/tokenizer");
|
||||
exports.counterIncrement = {
|
||||
name: 'counter-increment',
|
||||
initialValue: 'none',
|
||||
prefix: true,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
parse: function (tokens) {
|
||||
if (tokens.length === 0) {
|
||||
return null;
|
||||
}
|
||||
var first = tokens[0];
|
||||
if (first.type === tokenizer_1.TokenType.IDENT_TOKEN && first.value === 'none') {
|
||||
return null;
|
||||
}
|
||||
var increments = [];
|
||||
var filtered = tokens.filter(parser_1.nonWhiteSpace);
|
||||
for (var i = 0; i < filtered.length; i++) {
|
||||
var counter = filtered[i];
|
||||
var next = filtered[i + 1];
|
||||
if (counter.type === tokenizer_1.TokenType.IDENT_TOKEN) {
|
||||
var increment = next && parser_1.isNumberToken(next) ? next.number : 1;
|
||||
increments.push({ counter: counter.value, increment: increment });
|
||||
}
|
||||
}
|
||||
return increments;
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=counter-increment.js.map
|
1
dist/lib/css/property-descriptors/counter-increment.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/counter-increment.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"counter-increment.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/counter-increment.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAC9F,2CAAwE;AACxE,iDAA8C;AASjC,QAAA,gBAAgB,GAA8C;IACvE,IAAI,EAAE,mBAAmB;IACzB,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,KAAK,EAAE,UAAC,MAAkB;QACtB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC;SACf;QAED,IAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE;YAChE,OAAO,IAAI,CAAC;SACf;QAED,IAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAa,CAAC,CAAC;QAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAS,CAAC,WAAW,EAAE;gBACxC,IAAM,SAAS,GAAG,IAAI,IAAI,sBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChE,UAAU,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,WAAA,EAAC,CAAC,CAAC;aACxD;SACJ;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ,CAAC"}
|
27
dist/lib/css/property-descriptors/counter-reset.js
vendored
Normal file
27
dist/lib/css/property-descriptors/counter-reset.js
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
exports.counterReset = {
|
||||
name: 'counter-reset',
|
||||
initialValue: 'none',
|
||||
prefix: true,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
parse: function (tokens) {
|
||||
if (tokens.length === 0) {
|
||||
return [];
|
||||
}
|
||||
var resets = [];
|
||||
var filtered = tokens.filter(parser_1.nonWhiteSpace);
|
||||
for (var i = 0; i < filtered.length; i++) {
|
||||
var counter = filtered[i];
|
||||
var next = filtered[i + 1];
|
||||
if (parser_1.isIdentToken(counter) && counter.value !== 'none') {
|
||||
var reset = next && parser_1.isNumberToken(next) ? next.number : 0;
|
||||
resets.push({ counter: counter.value, reset: reset });
|
||||
}
|
||||
}
|
||||
return resets;
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=counter-reset.js.map
|
1
dist/lib/css/property-descriptors/counter-reset.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/counter-reset.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"counter-reset.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/counter-reset.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAC9F,2CAAsF;AASzE,QAAA,YAAY,GAA0C;IAC/D,IAAI,EAAE,eAAe;IACrB,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,KAAK,EAAE,UAAC,MAAkB;QACtB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,EAAE,CAAC;SACb;QAED,IAAM,MAAM,GAAG,EAAE,CAAC;QAClB,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAa,CAAC,CAAC;QAE9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,IAAI,qBAAY,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE;gBACnD,IAAM,KAAK,GAAG,IAAI,IAAI,sBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,MAAM,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,OAAA,EAAC,CAAC,CAAC;aAChD;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ,CAAC"}
|
81
dist/lib/css/property-descriptors/display.js
vendored
Normal file
81
dist/lib/css/property-descriptors/display.js
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
exports.display = {
|
||||
name: 'display',
|
||||
initialValue: 'inline-block',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
parse: function (tokens) {
|
||||
return tokens.filter(parser_1.isIdentToken).reduce(function (bit, token) {
|
||||
return bit | parseDisplayValue(token.value);
|
||||
}, 0 /* NONE */);
|
||||
}
|
||||
};
|
||||
var parseDisplayValue = function (display) {
|
||||
switch (display) {
|
||||
case 'block':
|
||||
return 2 /* BLOCK */;
|
||||
case 'inline':
|
||||
return 4 /* INLINE */;
|
||||
case 'run-in':
|
||||
return 8 /* RUN_IN */;
|
||||
case 'flow':
|
||||
return 16 /* FLOW */;
|
||||
case 'flow-root':
|
||||
return 32 /* FLOW_ROOT */;
|
||||
case 'table':
|
||||
return 64 /* TABLE */;
|
||||
case 'flex':
|
||||
case '-webkit-flex':
|
||||
return 128 /* FLEX */;
|
||||
case 'grid':
|
||||
case '-ms-grid':
|
||||
return 256 /* GRID */;
|
||||
case 'ruby':
|
||||
return 512 /* RUBY */;
|
||||
case 'subgrid':
|
||||
return 1024 /* SUBGRID */;
|
||||
case 'list-item':
|
||||
return 2048 /* LIST_ITEM */;
|
||||
case 'table-row-group':
|
||||
return 4096 /* TABLE_ROW_GROUP */;
|
||||
case 'table-header-group':
|
||||
return 8192 /* TABLE_HEADER_GROUP */;
|
||||
case 'table-footer-group':
|
||||
return 16384 /* TABLE_FOOTER_GROUP */;
|
||||
case 'table-row':
|
||||
return 32768 /* TABLE_ROW */;
|
||||
case 'table-cell':
|
||||
return 65536 /* TABLE_CELL */;
|
||||
case 'table-column-group':
|
||||
return 131072 /* TABLE_COLUMN_GROUP */;
|
||||
case 'table-column':
|
||||
return 262144 /* TABLE_COLUMN */;
|
||||
case 'table-caption':
|
||||
return 524288 /* TABLE_CAPTION */;
|
||||
case 'ruby-base':
|
||||
return 1048576 /* RUBY_BASE */;
|
||||
case 'ruby-text':
|
||||
return 2097152 /* RUBY_TEXT */;
|
||||
case 'ruby-base-container':
|
||||
return 4194304 /* RUBY_BASE_CONTAINER */;
|
||||
case 'ruby-text-container':
|
||||
return 8388608 /* RUBY_TEXT_CONTAINER */;
|
||||
case 'contents':
|
||||
return 16777216 /* CONTENTS */;
|
||||
case 'inline-block':
|
||||
return 33554432 /* INLINE_BLOCK */;
|
||||
case 'inline-list-item':
|
||||
return 67108864 /* INLINE_LIST_ITEM */;
|
||||
case 'inline-table':
|
||||
return 134217728 /* INLINE_TABLE */;
|
||||
case 'inline-flex':
|
||||
return 268435456 /* INLINE_FLEX */;
|
||||
case 'inline-grid':
|
||||
return 536870912 /* INLINE_GRID */;
|
||||
}
|
||||
return 0 /* NONE */;
|
||||
};
|
||||
//# sourceMappingURL=display.js.map
|
1
dist/lib/css/property-descriptors/display.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/display.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/display.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAC9F,2CAAwD;AAoC3C,QAAA,OAAO,GAAqC;IACrD,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,KAAK,EAAE,UAAC,MAAkB;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,qBAAY,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,KAAK;YACjD,OAAO,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,eAAe,CAAC;IACrB,CAAC;CACJ,CAAC;AAEF,IAAM,iBAAiB,GAAG,UAAC,OAAe;IACtC,QAAQ,OAAO,EAAE;QACb,KAAK,OAAO;YACR,qBAAqB;QACzB,KAAK,QAAQ;YACT,sBAAsB;QAC1B,KAAK,QAAQ;YACT,sBAAsB;QAC1B,KAAK,MAAM;YACP,qBAAoB;QACxB,KAAK,WAAW;YACZ,0BAAyB;QAC7B,KAAK,OAAO;YACR,sBAAqB;QACzB,KAAK,MAAM,CAAC;QACZ,KAAK,cAAc;YACf,sBAAoB;QACxB,KAAK,MAAM,CAAC;QACZ,KAAK,UAAU;YACX,sBAAoB;QACxB,KAAK,MAAM;YACP,sBAAoB;QACxB,KAAK,SAAS;YACV,0BAAuB;QAC3B,KAAK,WAAW;YACZ,4BAAyB;QAC7B,KAAK,iBAAiB;YAClB,kCAA+B;QACnC,KAAK,oBAAoB;YACrB,qCAAkC;QACtC,KAAK,oBAAoB;YACrB,sCAAkC;QACtC,KAAK,WAAW;YACZ,6BAAyB;QAC7B,KAAK,YAAY;YACb,8BAA0B;QAC9B,KAAK,oBAAoB;YACrB,uCAAkC;QACtC,KAAK,cAAc;YACf,iCAA4B;QAChC,KAAK,eAAe;YAChB,kCAA6B;QACjC,KAAK,WAAW;YACZ,+BAAyB;QAC7B,KAAK,WAAW;YACZ,+BAAyB;QAC7B,KAAK,qBAAqB;YACtB,yCAAmC;QACvC,KAAK,qBAAqB;YACtB,yCAAmC;QACvC,KAAK,UAAU;YACX,+BAAwB;QAC5B,KAAK,cAAc;YACf,mCAA4B;QAChC,KAAK,kBAAkB;YACnB,uCAAgC;QACpC,KAAK,cAAc;YACf,oCAA4B;QAChC,KAAK,aAAa;YACd,mCAA2B;QAC/B,KAAK,aAAa;YACd,mCAA2B;KAClC;IAED,oBAAoB;AACxB,CAAC,CAAC"}
|
31
dist/lib/css/property-descriptors/float.js
vendored
Normal file
31
dist/lib/css/property-descriptors/float.js
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var FLOAT;
|
||||
(function (FLOAT) {
|
||||
FLOAT[FLOAT["NONE"] = 0] = "NONE";
|
||||
FLOAT[FLOAT["LEFT"] = 1] = "LEFT";
|
||||
FLOAT[FLOAT["RIGHT"] = 2] = "RIGHT";
|
||||
FLOAT[FLOAT["INLINE_START"] = 3] = "INLINE_START";
|
||||
FLOAT[FLOAT["INLINE_END"] = 4] = "INLINE_END";
|
||||
})(FLOAT = exports.FLOAT || (exports.FLOAT = {}));
|
||||
exports.float = {
|
||||
name: 'float',
|
||||
initialValue: 'none',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.IDENT_VALUE,
|
||||
parse: function (float) {
|
||||
switch (float) {
|
||||
case 'left':
|
||||
return FLOAT.LEFT;
|
||||
case 'right':
|
||||
return FLOAT.RIGHT;
|
||||
case 'inline-start':
|
||||
return FLOAT.INLINE_START;
|
||||
case 'inline-end':
|
||||
return FLOAT.INLINE_END;
|
||||
}
|
||||
return FLOAT.NONE;
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=float.js.map
|
1
dist/lib/css/property-descriptors/float.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/float.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"float.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/float.ts"],"names":[],"mappings":";;AAAA,8DAAoG;AACpG,IAAY,KAMX;AAND,WAAY,KAAK;IACb,iCAAQ,CAAA;IACR,iCAAQ,CAAA;IACR,mCAAS,CAAA;IACT,iDAAgB,CAAA;IAChB,6CAAc,CAAA;AAClB,CAAC,EANW,KAAK,GAAL,aAAK,KAAL,aAAK,QAMhB;AAEY,QAAA,KAAK,GAAyC;IACvD,IAAI,EAAE,OAAO;IACb,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,WAAW;IAC/C,KAAK,EAAE,UAAC,KAAa;QACjB,QAAQ,KAAK,EAAE;YACX,KAAK,MAAM;gBACP,OAAO,KAAK,CAAC,IAAI,CAAC;YACtB,KAAK,OAAO;gBACR,OAAO,KAAK,CAAC,KAAK,CAAC;YACvB,KAAK,cAAc;gBACf,OAAO,KAAK,CAAC,YAAY,CAAC;YAC9B,KAAK,YAAY;gBACb,OAAO,KAAK,CAAC,UAAU,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC,IAAI,CAAC;IACtB,CAAC;CACJ,CAAC"}
|
34
dist/lib/css/property-descriptors/font-family.js
vendored
Normal file
34
dist/lib/css/property-descriptors/font-family.js
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var tokenizer_1 = require("../syntax/tokenizer");
|
||||
exports.fontFamily = {
|
||||
name: "font-family",
|
||||
initialValue: '',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
parse: function (tokens) {
|
||||
var accumulator = [];
|
||||
var results = [];
|
||||
tokens.forEach(function (token) {
|
||||
switch (token.type) {
|
||||
case tokenizer_1.TokenType.IDENT_TOKEN:
|
||||
case tokenizer_1.TokenType.STRING_TOKEN:
|
||||
accumulator.push(token.value);
|
||||
break;
|
||||
case tokenizer_1.TokenType.NUMBER_TOKEN:
|
||||
accumulator.push(token.number.toString());
|
||||
break;
|
||||
case tokenizer_1.TokenType.COMMA_TOKEN:
|
||||
results.push(accumulator.join(' '));
|
||||
accumulator.length = 0;
|
||||
break;
|
||||
}
|
||||
});
|
||||
if (accumulator.length) {
|
||||
results.push(accumulator.join(' '));
|
||||
}
|
||||
return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : "'" + result + "'"); });
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=font-family.js.map
|
1
dist/lib/css/property-descriptors/font-family.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/font-family.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"font-family.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/font-family.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAE9F,iDAA8C;AAMjC,QAAA,UAAU,GAAwC;IAC3D,IAAI,EAAE,aAAa;IACnB,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,KAAK,EAAE,UAAC,MAAkB;QACtB,IAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,CAAC,OAAO,CAAC,UAAA,KAAK;YAChB,QAAQ,KAAK,CAAC,IAAI,EAAE;gBAChB,KAAK,qBAAS,CAAC,WAAW,CAAC;gBAC3B,KAAK,qBAAS,CAAC,YAAY;oBACvB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC9B,MAAM;gBACV,KAAK,qBAAS,CAAC,YAAY;oBACvB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC1C,MAAM;gBACV,KAAK,qBAAS,CAAC,WAAW;oBACtB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;oBACvB,MAAM;aACb;QACL,CAAC,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,MAAM,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;SACvC;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAI,MAAM,MAAG,CAAC,EAArD,CAAqD,CAAC,CAAC;IACxF,CAAC;CACJ,CAAC"}
|
11
dist/lib/css/property-descriptors/font-size.js
vendored
Normal file
11
dist/lib/css/property-descriptors/font-size.js
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
exports.fontSize = {
|
||||
name: "font-size",
|
||||
initialValue: '0',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.TYPE_VALUE,
|
||||
format: 'length'
|
||||
};
|
||||
//# sourceMappingURL=font-size.js.map
|
1
dist/lib/css/property-descriptors/font-size.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/font-size.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"font-size.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/font-size.ts"],"names":[],"mappings":";;AAAA,8DAAmG;AAEtF,QAAA,QAAQ,GAAiC;IAClD,IAAI,EAAE,WAAW;IACjB,YAAY,EAAE,GAAG;IACjB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,UAAU;IAC9C,MAAM,EAAE,QAAQ;CACnB,CAAC"}
|
27
dist/lib/css/property-descriptors/font-style.js
vendored
Normal file
27
dist/lib/css/property-descriptors/font-style.js
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var FONT_STYLE;
|
||||
(function (FONT_STYLE) {
|
||||
FONT_STYLE["NORMAL"] = "normal";
|
||||
FONT_STYLE["ITALIC"] = "italic";
|
||||
FONT_STYLE["OBLIQUE"] = "oblique";
|
||||
})(FONT_STYLE = exports.FONT_STYLE || (exports.FONT_STYLE = {}));
|
||||
exports.fontStyle = {
|
||||
name: 'font-style',
|
||||
initialValue: 'normal',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.IDENT_VALUE,
|
||||
parse: function (overflow) {
|
||||
switch (overflow) {
|
||||
case 'oblique':
|
||||
return FONT_STYLE.OBLIQUE;
|
||||
case 'italic':
|
||||
return FONT_STYLE.ITALIC;
|
||||
case 'normal':
|
||||
default:
|
||||
return FONT_STYLE.NORMAL;
|
||||
}
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=font-style.js.map
|
1
dist/lib/css/property-descriptors/font-style.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/font-style.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"font-style.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/font-style.ts"],"names":[],"mappings":";;AAAA,8DAAoG;AACpG,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;AACvB,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB;AAEY,QAAA,SAAS,GAA8C;IAChE,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,WAAW;IAC/C,KAAK,EAAE,UAAC,QAAgB;QACpB,QAAQ,QAAQ,EAAE;YACd,KAAK,SAAS;gBACV,OAAO,UAAU,CAAC,OAAO,CAAC;YAC9B,KAAK,QAAQ;gBACT,OAAO,UAAU,CAAC,MAAM,CAAC;YAC7B,KAAK,QAAQ,CAAC;YACd;gBACI,OAAO,UAAU,CAAC,MAAM,CAAC;SAChC;IACL,CAAC;CACJ,CAAC"}
|
14
dist/lib/css/property-descriptors/font-variant.js
vendored
Normal file
14
dist/lib/css/property-descriptors/font-variant.js
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
exports.fontVariant = {
|
||||
name: 'font-variant',
|
||||
initialValue: 'none',
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
|
||||
prefix: false,
|
||||
parse: function (tokens) {
|
||||
return tokens.filter(parser_1.isIdentToken).map(function (token) { return token.value; });
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=font-variant.js.map
|
1
dist/lib/css/property-descriptors/font-variant.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/font-variant.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"font-variant.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/font-variant.ts"],"names":[],"mappings":";;AAAA,8DAA8F;AAC9F,2CAAwD;AAC3C,QAAA,WAAW,GAAsC;IAC1D,IAAI,EAAE,cAAc;IACpB,YAAY,EAAE,MAAM;IACpB,IAAI,EAAE,mDAA6B,CAAC,IAAI;IACxC,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,UAAC,MAAkB;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,qBAAY,CAAC,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,KAAK,EAAX,CAAW,CAAC,CAAC;IACjE,CAAC;CACJ,CAAC"}
|
26
dist/lib/css/property-descriptors/font-weight.js
vendored
Normal file
26
dist/lib/css/property-descriptors/font-weight.js
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
exports.fontWeight = {
|
||||
name: 'font-weight',
|
||||
initialValue: 'normal',
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.VALUE,
|
||||
prefix: false,
|
||||
parse: function (token) {
|
||||
if (parser_1.isNumberToken(token)) {
|
||||
return token.number;
|
||||
}
|
||||
if (parser_1.isIdentToken(token)) {
|
||||
switch (token.value) {
|
||||
case 'bold':
|
||||
return 700;
|
||||
case 'normal':
|
||||
default:
|
||||
return 400;
|
||||
}
|
||||
}
|
||||
return 400;
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=font-weight.js.map
|
1
dist/lib/css/property-descriptors/font-weight.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/font-weight.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"font-weight.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/font-weight.ts"],"names":[],"mappings":";;AAAA,8DAA+F;AAC/F,2CAAuE;AAC1D,QAAA,UAAU,GAAqC;IACxD,IAAI,EAAE,aAAa;IACnB,YAAY,EAAE,QAAQ;IACtB,IAAI,EAAE,mDAA6B,CAAC,KAAK;IACzC,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,UAAC,KAAe;QACnB,IAAI,sBAAa,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,KAAK,CAAC,MAAM,CAAC;SACvB;QAED,IAAI,qBAAY,CAAC,KAAK,CAAC,EAAE;YACrB,QAAQ,KAAK,CAAC,KAAK,EAAE;gBACjB,KAAK,MAAM;oBACP,OAAO,GAAG,CAAC;gBACf,KAAK,QAAQ,CAAC;gBACd;oBACI,OAAO,GAAG,CAAC;aAClB;SACJ;QAED,OAAO,GAAG,CAAC;IACf,CAAC;CACJ,CAAC"}
|
23
dist/lib/css/property-descriptors/letter-spacing.js
vendored
Normal file
23
dist/lib/css/property-descriptors/letter-spacing.js
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var tokenizer_1 = require("../syntax/tokenizer");
|
||||
exports.letterSpacing = {
|
||||
name: 'letter-spacing',
|
||||
initialValue: '0',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.VALUE,
|
||||
parse: function (token) {
|
||||
if (token.type === tokenizer_1.TokenType.IDENT_TOKEN && token.value === 'normal') {
|
||||
return 0;
|
||||
}
|
||||
if (token.type === tokenizer_1.TokenType.NUMBER_TOKEN) {
|
||||
return token.number;
|
||||
}
|
||||
if (token.type === tokenizer_1.TokenType.DIMENSION_TOKEN) {
|
||||
return token.number;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=letter-spacing.js.map
|
1
dist/lib/css/property-descriptors/letter-spacing.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/letter-spacing.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"letter-spacing.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/letter-spacing.ts"],"names":[],"mappings":";;AAAA,8DAA+F;AAE/F,iDAA8C;AACjC,QAAA,aAAa,GAAqC;IAC3D,IAAI,EAAE,gBAAgB;IACtB,YAAY,EAAE,GAAG;IACjB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,KAAK;IACzC,KAAK,EAAE,UAAC,KAAe;QACnB,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,WAAW,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;YAClE,OAAO,CAAC,CAAC;SACZ;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,YAAY,EAAE;YACvC,OAAO,KAAK,CAAC,MAAM,CAAC;SACvB;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,eAAe,EAAE;YAC1C,OAAO,KAAK,CAAC,MAAM,CAAC;SACvB;QAED,OAAO,CAAC,CAAC;IACb,CAAC;CACJ,CAAC"}
|
24
dist/lib/css/property-descriptors/line-break.js
vendored
Normal file
24
dist/lib/css/property-descriptors/line-break.js
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var LINE_BREAK;
|
||||
(function (LINE_BREAK) {
|
||||
LINE_BREAK["NORMAL"] = "normal";
|
||||
LINE_BREAK["STRICT"] = "strict";
|
||||
})(LINE_BREAK = exports.LINE_BREAK || (exports.LINE_BREAK = {}));
|
||||
exports.lineBreak = {
|
||||
name: 'line-break',
|
||||
initialValue: 'normal',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.IDENT_VALUE,
|
||||
parse: function (lineBreak) {
|
||||
switch (lineBreak) {
|
||||
case 'strict':
|
||||
return LINE_BREAK.STRICT;
|
||||
case 'normal':
|
||||
default:
|
||||
return LINE_BREAK.NORMAL;
|
||||
}
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=line-break.js.map
|
1
dist/lib/css/property-descriptors/line-break.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/line-break.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"line-break.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/line-break.ts"],"names":[],"mappings":";;AAAA,8DAAoG;AACpG,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;AACrB,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB;AAEY,QAAA,SAAS,GAA8C;IAChE,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,WAAW;IAC/C,KAAK,EAAE,UAAC,SAAiB;QACrB,QAAQ,SAAS,EAAE;YACf,KAAK,QAAQ;gBACT,OAAO,UAAU,CAAC,MAAM,CAAC;YAC7B,KAAK,QAAQ,CAAC;YACd;gBACI,OAAO,UAAU,CAAC,MAAM,CAAC;SAChC;IACL,CAAC;CACJ,CAAC"}
|
25
dist/lib/css/property-descriptors/line-height.js
vendored
Normal file
25
dist/lib/css/property-descriptors/line-height.js
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
|
||||
var parser_1 = require("../syntax/parser");
|
||||
var tokenizer_1 = require("../syntax/tokenizer");
|
||||
var length_percentage_1 = require("../types/length-percentage");
|
||||
exports.lineHeight = {
|
||||
name: 'line-height',
|
||||
initialValue: 'normal',
|
||||
prefix: false,
|
||||
type: IPropertyDescriptor_1.PropertyDescriptorParsingType.TOKEN_VALUE
|
||||
};
|
||||
exports.computeLineHeight = function (token, fontSize) {
|
||||
if (parser_1.isIdentToken(token) && token.value === 'normal') {
|
||||
return 1.2 * fontSize;
|
||||
}
|
||||
else if (token.type === tokenizer_1.TokenType.NUMBER_TOKEN) {
|
||||
return fontSize * token.number;
|
||||
}
|
||||
else if (length_percentage_1.isLengthPercentage(token)) {
|
||||
return length_percentage_1.getAbsoluteValue(token, fontSize);
|
||||
}
|
||||
return fontSize;
|
||||
};
|
||||
//# sourceMappingURL=line-height.js.map
|
1
dist/lib/css/property-descriptors/line-height.js.map
vendored
Normal file
1
dist/lib/css/property-descriptors/line-height.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"line-height.js","sourceRoot":"","sources":["../../../../src/css/property-descriptors/line-height.ts"],"names":[],"mappings":";;AAAA,8DAAoG;AACpG,2CAAwD;AACxD,iDAA8C;AAC9C,gEAAgF;AACnE,QAAA,UAAU,GAAkC;IACrD,IAAI,EAAE,aAAa;IACnB,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,mDAA6B,CAAC,WAAW;CAClD,CAAC;AAEW,QAAA,iBAAiB,GAAG,UAAC,KAAe,EAAE,QAAgB;IAC/D,IAAI,qBAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;QACjD,OAAO,GAAG,GAAG,QAAQ,CAAC;KACzB;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAS,CAAC,YAAY,EAAE;QAC9C,OAAO,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;KAClC;SAAM,IAAI,sCAAkB,CAAC,KAAK,CAAC,EAAE;QAClC,OAAO,oCAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAC5C;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC"}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user