mapshaper 0.6.62 → 0.6.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mapshaper.js +50 -36
- package/package.json +1 -1
- package/www/mapshaper.js +50 -36
package/mapshaper.js
CHANGED
|
@@ -13419,7 +13419,7 @@
|
|
|
13419
13419
|
|
|
13420
13420
|
// Accepts a single value or a list of four values. List order is l,b,t,r
|
|
13421
13421
|
function convertFourSides(opt, crs, bounds) {
|
|
13422
|
-
var arr = opt.split(',');
|
|
13422
|
+
var arr = opt.includes(',') ? opt.split(',') : opt.split(' ');
|
|
13423
13423
|
if (arr.length == 1) {
|
|
13424
13424
|
arr = [arr[0], arr[0], arr[0], arr[0]];
|
|
13425
13425
|
} else if (arr.length != 4) {
|
|
@@ -39328,58 +39328,74 @@ ${svg}
|
|
|
39328
39328
|
print(str);
|
|
39329
39329
|
};
|
|
39330
39330
|
|
|
39331
|
-
function resetControlFlow(job) {
|
|
39332
|
-
job.control = null;
|
|
39333
|
-
}
|
|
39334
|
-
|
|
39335
39331
|
function stopJob(job) {
|
|
39336
|
-
|
|
39332
|
+
job.stopped = true;
|
|
39337
39333
|
}
|
|
39338
39334
|
|
|
39339
39335
|
function jobIsStopped(job) {
|
|
39340
|
-
return
|
|
39336
|
+
return job.stopped === true;
|
|
39341
39337
|
}
|
|
39342
39338
|
|
|
39343
39339
|
function inControlBlock(job) {
|
|
39344
|
-
return
|
|
39340
|
+
return getStack(job).length > 0;
|
|
39341
|
+
}
|
|
39342
|
+
|
|
39343
|
+
function enterBlock(job) {
|
|
39344
|
+
var stack = getStack(job);
|
|
39345
|
+
// skip over a block if it is inside an inactive branch
|
|
39346
|
+
stack.push({
|
|
39347
|
+
active: false,
|
|
39348
|
+
complete: !inActiveBranch(job)
|
|
39349
|
+
});
|
|
39350
|
+
}
|
|
39351
|
+
|
|
39352
|
+
function leaveBlock(job) {
|
|
39353
|
+
var stack = getStack(job);
|
|
39354
|
+
stack.pop();
|
|
39345
39355
|
}
|
|
39346
39356
|
|
|
39347
39357
|
function enterActiveBranch(job) {
|
|
39348
|
-
var
|
|
39349
|
-
|
|
39350
|
-
|
|
39351
|
-
state.complete = true;
|
|
39358
|
+
var block = getCurrentBlock(job);
|
|
39359
|
+
block.active = true;
|
|
39360
|
+
block.complete = true;
|
|
39352
39361
|
}
|
|
39353
39362
|
|
|
39354
39363
|
function enterInactiveBranch(job) {
|
|
39355
|
-
var
|
|
39356
|
-
|
|
39357
|
-
|
|
39364
|
+
var block = getCurrentBlock(job);
|
|
39365
|
+
block.active = false;
|
|
39366
|
+
}
|
|
39367
|
+
|
|
39368
|
+
function blockIsComplete(job) {
|
|
39369
|
+
var block = getCurrentBlock(job);
|
|
39370
|
+
return block.complete;
|
|
39358
39371
|
}
|
|
39359
39372
|
|
|
39360
|
-
function
|
|
39361
|
-
|
|
39373
|
+
function getCurrentBlock(job) {
|
|
39374
|
+
var stack = getStack(job);
|
|
39375
|
+
return stack[stack.length-1];
|
|
39362
39376
|
}
|
|
39363
39377
|
|
|
39378
|
+
// A branch is considered to be active if it and all its parents are active
|
|
39379
|
+
// (Main branch is considered to be active)
|
|
39364
39380
|
function inActiveBranch(job) {
|
|
39365
|
-
|
|
39381
|
+
var stack = getStack(job);
|
|
39382
|
+
return stack.length === 0 || stack.every(block => block.active);
|
|
39366
39383
|
}
|
|
39367
39384
|
|
|
39368
|
-
function
|
|
39369
|
-
|
|
39385
|
+
function getStack(job) {
|
|
39386
|
+
job.control = job.control || {stack: []};
|
|
39387
|
+
return job.control.stack;
|
|
39370
39388
|
}
|
|
39371
39389
|
|
|
39372
39390
|
function skipCommand(cmdName, job) {
|
|
39373
39391
|
// allow all control commands to run
|
|
39374
39392
|
if (jobIsStopped(job)) return true;
|
|
39375
39393
|
if (isControlFlowCommand(cmdName)) return false;
|
|
39376
|
-
return
|
|
39394
|
+
return !inActiveBranch(job);
|
|
39377
39395
|
}
|
|
39378
39396
|
|
|
39379
39397
|
cmd.if = function(job, opts) {
|
|
39380
|
-
|
|
39381
|
-
stop('Nested -if commands are not supported.');
|
|
39382
|
-
}
|
|
39398
|
+
enterBlock(job);
|
|
39383
39399
|
evaluateIf(job, opts);
|
|
39384
39400
|
};
|
|
39385
39401
|
|
|
@@ -39394,7 +39410,7 @@ ${svg}
|
|
|
39394
39410
|
if (!inControlBlock(job)) {
|
|
39395
39411
|
stop('-else command must be preceded by an -if command.');
|
|
39396
39412
|
}
|
|
39397
|
-
if (
|
|
39413
|
+
if (blockIsComplete(job)) {
|
|
39398
39414
|
enterInactiveBranch(job);
|
|
39399
39415
|
} else {
|
|
39400
39416
|
enterActiveBranch(job);
|
|
@@ -39405,7 +39421,7 @@ ${svg}
|
|
|
39405
39421
|
if (!inControlBlock(job)) {
|
|
39406
39422
|
stop('-endif command must be preceded by an -if command.');
|
|
39407
39423
|
}
|
|
39408
|
-
|
|
39424
|
+
leaveBlock(job);
|
|
39409
39425
|
};
|
|
39410
39426
|
|
|
39411
39427
|
function isControlFlowCommand(cmd) {
|
|
@@ -39413,21 +39429,14 @@ ${svg}
|
|
|
39413
39429
|
}
|
|
39414
39430
|
|
|
39415
39431
|
function test(catalog, opts) {
|
|
39416
|
-
// var targ = getTargetLayer(catalog, opts);
|
|
39417
39432
|
if (opts.expression) {
|
|
39418
39433
|
return compileIfCommandExpression(opts.expression, catalog, opts)();
|
|
39419
39434
|
}
|
|
39420
|
-
// if (opts.empty) {
|
|
39421
|
-
// return layerIsEmpty(targ.layer);
|
|
39422
|
-
// }
|
|
39423
|
-
// if (opts.not_empty) {
|
|
39424
|
-
// return !layerIsEmpty(targ.layer);
|
|
39425
|
-
// }
|
|
39426
39435
|
return true;
|
|
39427
39436
|
}
|
|
39428
39437
|
|
|
39429
39438
|
function evaluateIf(job, opts) {
|
|
39430
|
-
if (!
|
|
39439
|
+
if (!blockIsComplete(job) && test(job.catalog, opts)) {
|
|
39431
39440
|
enterActiveBranch(job);
|
|
39432
39441
|
} else {
|
|
39433
39442
|
enterInactiveBranch(job);
|
|
@@ -42113,7 +42122,12 @@ ${svg}
|
|
|
42113
42122
|
function applyReplacements(template, replacements) {
|
|
42114
42123
|
var parts = parseTemplateParts(template);
|
|
42115
42124
|
return parts.reduce(function(memo, s, i) {
|
|
42116
|
-
|
|
42125
|
+
if (i % 2 == 1) {
|
|
42126
|
+
memo += replacements.length ? replacements.shift() : '';
|
|
42127
|
+
} else {
|
|
42128
|
+
memo += s;
|
|
42129
|
+
}
|
|
42130
|
+
return memo;
|
|
42117
42131
|
}, '');
|
|
42118
42132
|
}
|
|
42119
42133
|
|
|
@@ -44978,7 +44992,7 @@ ${svg}
|
|
|
44978
44992
|
});
|
|
44979
44993
|
}
|
|
44980
44994
|
|
|
44981
|
-
var version = "0.6.
|
|
44995
|
+
var version = "0.6.63";
|
|
44982
44996
|
|
|
44983
44997
|
// Parse command line args into commands and run them
|
|
44984
44998
|
// Function takes an optional Node-style callback. A Promise is returned if no callback is given.
|
package/package.json
CHANGED
package/www/mapshaper.js
CHANGED
|
@@ -13419,7 +13419,7 @@
|
|
|
13419
13419
|
|
|
13420
13420
|
// Accepts a single value or a list of four values. List order is l,b,t,r
|
|
13421
13421
|
function convertFourSides(opt, crs, bounds) {
|
|
13422
|
-
var arr = opt.split(',');
|
|
13422
|
+
var arr = opt.includes(',') ? opt.split(',') : opt.split(' ');
|
|
13423
13423
|
if (arr.length == 1) {
|
|
13424
13424
|
arr = [arr[0], arr[0], arr[0], arr[0]];
|
|
13425
13425
|
} else if (arr.length != 4) {
|
|
@@ -39328,58 +39328,74 @@ ${svg}
|
|
|
39328
39328
|
print(str);
|
|
39329
39329
|
};
|
|
39330
39330
|
|
|
39331
|
-
function resetControlFlow(job) {
|
|
39332
|
-
job.control = null;
|
|
39333
|
-
}
|
|
39334
|
-
|
|
39335
39331
|
function stopJob(job) {
|
|
39336
|
-
|
|
39332
|
+
job.stopped = true;
|
|
39337
39333
|
}
|
|
39338
39334
|
|
|
39339
39335
|
function jobIsStopped(job) {
|
|
39340
|
-
return
|
|
39336
|
+
return job.stopped === true;
|
|
39341
39337
|
}
|
|
39342
39338
|
|
|
39343
39339
|
function inControlBlock(job) {
|
|
39344
|
-
return
|
|
39340
|
+
return getStack(job).length > 0;
|
|
39341
|
+
}
|
|
39342
|
+
|
|
39343
|
+
function enterBlock(job) {
|
|
39344
|
+
var stack = getStack(job);
|
|
39345
|
+
// skip over a block if it is inside an inactive branch
|
|
39346
|
+
stack.push({
|
|
39347
|
+
active: false,
|
|
39348
|
+
complete: !inActiveBranch(job)
|
|
39349
|
+
});
|
|
39350
|
+
}
|
|
39351
|
+
|
|
39352
|
+
function leaveBlock(job) {
|
|
39353
|
+
var stack = getStack(job);
|
|
39354
|
+
stack.pop();
|
|
39345
39355
|
}
|
|
39346
39356
|
|
|
39347
39357
|
function enterActiveBranch(job) {
|
|
39348
|
-
var
|
|
39349
|
-
|
|
39350
|
-
|
|
39351
|
-
state.complete = true;
|
|
39358
|
+
var block = getCurrentBlock(job);
|
|
39359
|
+
block.active = true;
|
|
39360
|
+
block.complete = true;
|
|
39352
39361
|
}
|
|
39353
39362
|
|
|
39354
39363
|
function enterInactiveBranch(job) {
|
|
39355
|
-
var
|
|
39356
|
-
|
|
39357
|
-
|
|
39364
|
+
var block = getCurrentBlock(job);
|
|
39365
|
+
block.active = false;
|
|
39366
|
+
}
|
|
39367
|
+
|
|
39368
|
+
function blockIsComplete(job) {
|
|
39369
|
+
var block = getCurrentBlock(job);
|
|
39370
|
+
return block.complete;
|
|
39358
39371
|
}
|
|
39359
39372
|
|
|
39360
|
-
function
|
|
39361
|
-
|
|
39373
|
+
function getCurrentBlock(job) {
|
|
39374
|
+
var stack = getStack(job);
|
|
39375
|
+
return stack[stack.length-1];
|
|
39362
39376
|
}
|
|
39363
39377
|
|
|
39378
|
+
// A branch is considered to be active if it and all its parents are active
|
|
39379
|
+
// (Main branch is considered to be active)
|
|
39364
39380
|
function inActiveBranch(job) {
|
|
39365
|
-
|
|
39381
|
+
var stack = getStack(job);
|
|
39382
|
+
return stack.length === 0 || stack.every(block => block.active);
|
|
39366
39383
|
}
|
|
39367
39384
|
|
|
39368
|
-
function
|
|
39369
|
-
|
|
39385
|
+
function getStack(job) {
|
|
39386
|
+
job.control = job.control || {stack: []};
|
|
39387
|
+
return job.control.stack;
|
|
39370
39388
|
}
|
|
39371
39389
|
|
|
39372
39390
|
function skipCommand(cmdName, job) {
|
|
39373
39391
|
// allow all control commands to run
|
|
39374
39392
|
if (jobIsStopped(job)) return true;
|
|
39375
39393
|
if (isControlFlowCommand(cmdName)) return false;
|
|
39376
|
-
return
|
|
39394
|
+
return !inActiveBranch(job);
|
|
39377
39395
|
}
|
|
39378
39396
|
|
|
39379
39397
|
cmd.if = function(job, opts) {
|
|
39380
|
-
|
|
39381
|
-
stop('Nested -if commands are not supported.');
|
|
39382
|
-
}
|
|
39398
|
+
enterBlock(job);
|
|
39383
39399
|
evaluateIf(job, opts);
|
|
39384
39400
|
};
|
|
39385
39401
|
|
|
@@ -39394,7 +39410,7 @@ ${svg}
|
|
|
39394
39410
|
if (!inControlBlock(job)) {
|
|
39395
39411
|
stop('-else command must be preceded by an -if command.');
|
|
39396
39412
|
}
|
|
39397
|
-
if (
|
|
39413
|
+
if (blockIsComplete(job)) {
|
|
39398
39414
|
enterInactiveBranch(job);
|
|
39399
39415
|
} else {
|
|
39400
39416
|
enterActiveBranch(job);
|
|
@@ -39405,7 +39421,7 @@ ${svg}
|
|
|
39405
39421
|
if (!inControlBlock(job)) {
|
|
39406
39422
|
stop('-endif command must be preceded by an -if command.');
|
|
39407
39423
|
}
|
|
39408
|
-
|
|
39424
|
+
leaveBlock(job);
|
|
39409
39425
|
};
|
|
39410
39426
|
|
|
39411
39427
|
function isControlFlowCommand(cmd) {
|
|
@@ -39413,21 +39429,14 @@ ${svg}
|
|
|
39413
39429
|
}
|
|
39414
39430
|
|
|
39415
39431
|
function test(catalog, opts) {
|
|
39416
|
-
// var targ = getTargetLayer(catalog, opts);
|
|
39417
39432
|
if (opts.expression) {
|
|
39418
39433
|
return compileIfCommandExpression(opts.expression, catalog, opts)();
|
|
39419
39434
|
}
|
|
39420
|
-
// if (opts.empty) {
|
|
39421
|
-
// return layerIsEmpty(targ.layer);
|
|
39422
|
-
// }
|
|
39423
|
-
// if (opts.not_empty) {
|
|
39424
|
-
// return !layerIsEmpty(targ.layer);
|
|
39425
|
-
// }
|
|
39426
39435
|
return true;
|
|
39427
39436
|
}
|
|
39428
39437
|
|
|
39429
39438
|
function evaluateIf(job, opts) {
|
|
39430
|
-
if (!
|
|
39439
|
+
if (!blockIsComplete(job) && test(job.catalog, opts)) {
|
|
39431
39440
|
enterActiveBranch(job);
|
|
39432
39441
|
} else {
|
|
39433
39442
|
enterInactiveBranch(job);
|
|
@@ -42113,7 +42122,12 @@ ${svg}
|
|
|
42113
42122
|
function applyReplacements(template, replacements) {
|
|
42114
42123
|
var parts = parseTemplateParts(template);
|
|
42115
42124
|
return parts.reduce(function(memo, s, i) {
|
|
42116
|
-
|
|
42125
|
+
if (i % 2 == 1) {
|
|
42126
|
+
memo += replacements.length ? replacements.shift() : '';
|
|
42127
|
+
} else {
|
|
42128
|
+
memo += s;
|
|
42129
|
+
}
|
|
42130
|
+
return memo;
|
|
42117
42131
|
}, '');
|
|
42118
42132
|
}
|
|
42119
42133
|
|
|
@@ -44978,7 +44992,7 @@ ${svg}
|
|
|
44978
44992
|
});
|
|
44979
44993
|
}
|
|
44980
44994
|
|
|
44981
|
-
var version = "0.6.
|
|
44995
|
+
var version = "0.6.63";
|
|
44982
44996
|
|
|
44983
44997
|
// Parse command line args into commands and run them
|
|
44984
44998
|
// Function takes an optional Node-style callback. A Promise is returned if no callback is given.
|