react-native-nano-icons 0.1.2 → 0.1.3
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/README.md +20 -164
- package/android/build.gradle +28 -0
- package/android/src/main/java/com/nanoicons/NanoIconView.kt +78 -0
- package/android/src/main/java/com/nanoicons/NanoIconViewManager.kt +84 -0
- package/android/src/main/java/com/nanoicons/NanoIconsPackage.kt +22 -0
- package/ios/NanoIconView.h +4 -0
- package/ios/NanoIconView.mm +246 -0
- package/lib/commonjs/cli/build.js +1 -1
- package/lib/commonjs/cli/config.d.ts +2 -2
- package/lib/commonjs/cli/config.js +7 -6
- package/lib/commonjs/scripts/cli.js +15 -5
- package/lib/commonjs/src/core/font/compile.d.ts +13 -2
- package/lib/commonjs/src/core/font/compile.js +49 -46
- package/lib/commonjs/src/core/pipeline/managers.js +19 -3
- package/lib/commonjs/src/core/pipeline/run.js +121 -32
- package/lib/commonjs/src/core/svg/layers.d.ts +16 -0
- package/lib/commonjs/src/core/svg/layers.js +27 -0
- package/lib/commonjs/src/core/svg/svg_dom.d.ts +29 -1
- package/lib/commonjs/src/core/svg/svg_dom.js +78 -2
- package/lib/commonjs/src/core/svg/svg_pathops.d.ts +11 -0
- package/lib/commonjs/src/core/svg/svg_pathops.js +209 -19
- package/lib/commonjs/src/core/types.d.ts +30 -15
- package/lib/module/core/font/compile.js +52 -41
- package/lib/module/core/font/compile.js.map +1 -1
- package/lib/module/core/pipeline/managers.js +17 -3
- package/lib/module/core/pipeline/managers.js.map +1 -1
- package/lib/module/core/pipeline/run.js +131 -44
- package/lib/module/core/pipeline/run.js.map +1 -1
- package/lib/module/core/shims/picosvg-0.22.3-py3-none-any.whl +0 -0
- package/lib/module/core/svg/layers.js +34 -0
- package/lib/module/core/svg/layers.js.map +1 -1
- package/lib/module/core/svg/svg_dom.js +91 -4
- package/lib/module/core/svg/svg_dom.js.map +1 -1
- package/lib/module/core/svg/svg_pathops.js +203 -19
- package/lib/module/core/svg/svg_pathops.js.map +1 -1
- package/lib/module/createNanoIconsSet.js +3 -79
- package/lib/module/createNanoIconsSet.js.map +1 -1
- package/lib/module/createNanoIconsSet.native.js +68 -0
- package/lib/module/createNanoIconsSet.native.js.map +1 -0
- package/lib/module/createNanoIconsSet.shared.js +91 -0
- package/lib/module/createNanoIconsSet.shared.js.map +1 -0
- package/lib/module/index.js +1 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/specs/NanoIconViewNativeComponent.ts +15 -0
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/shallowEqualColor.js +15 -0
- package/lib/module/utils/shallowEqualColor.js.map +1 -0
- package/lib/typescript/src/core/font/compile.d.ts +13 -2
- package/lib/typescript/src/core/font/compile.d.ts.map +1 -1
- package/lib/typescript/src/core/pipeline/managers.d.ts.map +1 -1
- package/lib/typescript/src/core/pipeline/run.d.ts.map +1 -1
- package/lib/typescript/src/core/svg/layers.d.ts +16 -0
- package/lib/typescript/src/core/svg/layers.d.ts.map +1 -1
- package/lib/typescript/src/core/svg/svg_dom.d.ts +29 -1
- package/lib/typescript/src/core/svg/svg_dom.d.ts.map +1 -1
- package/lib/typescript/src/core/svg/svg_pathops.d.ts +11 -0
- package/lib/typescript/src/core/svg/svg_pathops.d.ts.map +1 -1
- package/lib/typescript/src/core/types.d.ts +30 -15
- package/lib/typescript/src/core/types.d.ts.map +1 -1
- package/lib/typescript/src/createNanoIconsSet.d.ts +5 -18
- package/lib/typescript/src/createNanoIconsSet.d.ts.map +1 -1
- package/lib/typescript/src/createNanoIconsSet.native.d.ts +7 -0
- package/lib/typescript/src/createNanoIconsSet.native.d.ts.map +1 -0
- package/lib/typescript/src/createNanoIconsSet.shared.d.ts +11 -0
- package/lib/typescript/src/createNanoIconsSet.shared.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/NanoIconViewNativeComponent.d.ts +14 -0
- package/lib/typescript/src/specs/NanoIconViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +19 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils/shallowEqualColor.d.ts +4 -0
- package/lib/typescript/src/utils/shallowEqualColor.d.ts.map +1 -0
- package/package.json +22 -5
- package/react-native-nano-icons.podspec +18 -0
- package/scripts/cli.ts +14 -5
- package/src/core/font/compile.ts +65 -61
- package/src/core/pipeline/managers.ts +26 -3
- package/src/core/pipeline/run.ts +156 -38
- package/src/core/shims/picosvg-0.22.3-py3-none-any.whl +0 -0
- package/src/core/svg/layers.ts +44 -0
- package/src/core/svg/svg_dom.ts +96 -4
- package/src/core/svg/svg_pathops.ts +245 -27
- package/src/core/types.ts +21 -10
- package/src/createNanoIconsSet.native.tsx +108 -0
- package/src/createNanoIconsSet.shared.tsx +121 -0
- package/src/createNanoIconsSet.tsx +7 -126
- package/src/index.ts +1 -2
- package/src/specs/NanoIconViewNativeComponent.ts +15 -0
- package/src/types.ts +27 -0
- package/src/utils/shallowEqualColor.ts +17 -0
|
@@ -347,9 +347,12 @@ function bestStartMinYMinX(contourCmds, VERB) {
|
|
|
347
347
|
return best;
|
|
348
348
|
}
|
|
349
349
|
|
|
350
|
-
//
|
|
351
|
-
|
|
352
|
-
|
|
350
|
+
// ---------------------------------------------------------------------------
|
|
351
|
+
// Containment helpers (module-level for reuse by fixPathWinding)
|
|
352
|
+
// ---------------------------------------------------------------------------
|
|
353
|
+
|
|
354
|
+
function buildVerbMap(PathKit) {
|
|
355
|
+
return {
|
|
353
356
|
MOVE: PathKit.MOVE_VERB ?? 0,
|
|
354
357
|
LINE: PathKit.LINE_VERB ?? 1,
|
|
355
358
|
QUAD: PathKit.QUAD_VERB ?? 2,
|
|
@@ -357,6 +360,200 @@ export function buildPathopsBackend(PathKit) {
|
|
|
357
360
|
CUBIC: PathKit.CUBIC_VERB ?? 4,
|
|
358
361
|
CLOSE: PathKit.CLOSE_VERB ?? 5
|
|
359
362
|
};
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Convert contour commands to a polyline by sampling curves.
|
|
367
|
+
* Used for ray-casting containment tests.
|
|
368
|
+
*/
|
|
369
|
+
function contourToPolyline(contourCmds, V, steps = 8) {
|
|
370
|
+
let cx = 0,
|
|
371
|
+
cy = 0;
|
|
372
|
+
let sx = 0,
|
|
373
|
+
sy = 0;
|
|
374
|
+
const pts = [];
|
|
375
|
+
for (const cmd of contourCmds) {
|
|
376
|
+
const v = cmd[0];
|
|
377
|
+
if (v === V.MOVE) {
|
|
378
|
+
cx = cmd[1];
|
|
379
|
+
cy = cmd[2];
|
|
380
|
+
sx = cx;
|
|
381
|
+
sy = cy;
|
|
382
|
+
pts.push([cx, cy]);
|
|
383
|
+
} else if (v === V.LINE) {
|
|
384
|
+
cx = cmd[1];
|
|
385
|
+
cy = cmd[2];
|
|
386
|
+
pts.push([cx, cy]);
|
|
387
|
+
} else if (v === V.QUAD) {
|
|
388
|
+
const x0 = cx,
|
|
389
|
+
y0 = cy;
|
|
390
|
+
const x1 = cmd[1],
|
|
391
|
+
y1 = cmd[2];
|
|
392
|
+
const x2 = cmd[3],
|
|
393
|
+
y2 = cmd[4];
|
|
394
|
+
for (let i = 1; i <= steps; i++) {
|
|
395
|
+
const t = i / steps;
|
|
396
|
+
const mt = 1 - t;
|
|
397
|
+
pts.push([mt * mt * x0 + 2 * mt * t * x1 + t * t * x2, mt * mt * y0 + 2 * mt * t * y1 + t * t * y2]);
|
|
398
|
+
}
|
|
399
|
+
cx = x2;
|
|
400
|
+
cy = y2;
|
|
401
|
+
} else if (v === V.CUBIC) {
|
|
402
|
+
const x0 = cx,
|
|
403
|
+
y0 = cy;
|
|
404
|
+
const x1 = cmd[1],
|
|
405
|
+
y1 = cmd[2];
|
|
406
|
+
const x2 = cmd[3],
|
|
407
|
+
y2 = cmd[4];
|
|
408
|
+
const x3 = cmd[5],
|
|
409
|
+
y3 = cmd[6];
|
|
410
|
+
for (let i = 1; i <= steps; i++) {
|
|
411
|
+
const t = i / steps;
|
|
412
|
+
const mt = 1 - t;
|
|
413
|
+
pts.push([mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3, mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3]);
|
|
414
|
+
}
|
|
415
|
+
cx = x3;
|
|
416
|
+
cy = y3;
|
|
417
|
+
} else if (v === V.CLOSE) {
|
|
418
|
+
if (cx !== sx || cy !== sy) pts.push([sx, sy]);
|
|
419
|
+
cx = sx;
|
|
420
|
+
cy = sy;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
return pts;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
/**
|
|
427
|
+
* Ray-casting point-in-polygon test.
|
|
428
|
+
*/
|
|
429
|
+
function pointInPolygon(px, py, poly) {
|
|
430
|
+
let inside = false;
|
|
431
|
+
for (let i = 0, j = poly.length - 1; i < poly.length; j = i++) {
|
|
432
|
+
const [xi, yi] = poly[i];
|
|
433
|
+
const [xj, yj] = poly[j];
|
|
434
|
+
if (yi > py !== yj > py && px < (xj - xi) * (py - yi) / (yj - yi) + xi) {
|
|
435
|
+
inside = !inside;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
return inside;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* Get a representative point on the contour boundary (midpoint of first segment).
|
|
443
|
+
*/
|
|
444
|
+
function getContourSamplePoint(contourCmds, V) {
|
|
445
|
+
let cx = 0,
|
|
446
|
+
cy = 0;
|
|
447
|
+
for (const cmd of contourCmds) {
|
|
448
|
+
const v = cmd[0];
|
|
449
|
+
if (v === V.MOVE) {
|
|
450
|
+
cx = cmd[1];
|
|
451
|
+
cy = cmd[2];
|
|
452
|
+
} else if (v === V.LINE) {
|
|
453
|
+
return [(cx + cmd[1]) / 2, (cy + cmd[2]) / 2];
|
|
454
|
+
} else if (v === V.QUAD) {
|
|
455
|
+
const t = 0.5,
|
|
456
|
+
mt = 0.5;
|
|
457
|
+
return [mt * mt * cx + 2 * mt * t * cmd[1] + t * t * cmd[3], mt * mt * cy + 2 * mt * t * cmd[2] + t * t * cmd[4]];
|
|
458
|
+
} else if (v === V.CUBIC) {
|
|
459
|
+
const t = 0.5,
|
|
460
|
+
mt = 0.5;
|
|
461
|
+
return [mt ** 3 * cx + 3 * mt ** 2 * t * cmd[1] + 3 * mt * t ** 2 * cmd[3] + t ** 3 * cmd[5], mt ** 3 * cy + 3 * mt ** 2 * t * cmd[2] + 3 * mt * t ** 2 * cmd[4] + t ** 3 * cmd[6]];
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
return null;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* Apply containment-based winding fix to contour objects.
|
|
469
|
+
* Even nesting depth = CCW (outer), odd = CW (hole).
|
|
470
|
+
*/
|
|
471
|
+
function applyContainmentWinding(contourObjs, V) {
|
|
472
|
+
const n = contourObjs.length;
|
|
473
|
+
if (n === 0) return;
|
|
474
|
+
const polylines = contourObjs.map(obj => contourToPolyline(obj.cmds, V));
|
|
475
|
+
const samplePts = contourObjs.map(obj => getContourSamplePoint(obj.cmds, V));
|
|
476
|
+
const depths = new Array(n).fill(0);
|
|
477
|
+
for (let i = 0; i < n; i++) {
|
|
478
|
+
const pt = samplePts[i];
|
|
479
|
+
if (!pt) continue;
|
|
480
|
+
for (let j = 0; j < n; j++) {
|
|
481
|
+
if (i === j) continue;
|
|
482
|
+
if (pointInPolygon(pt[0], pt[1], polylines[j])) {
|
|
483
|
+
depths[i] = (depths[i] ?? 0) + 1;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
const ensureOrient = (obj, wantCCW) => {
|
|
488
|
+
const a = approxSignedAreaFromContourCmds(obj.cmds, V);
|
|
489
|
+
const isCCW = a > 0;
|
|
490
|
+
if (wantCCW !== isCCW) {
|
|
491
|
+
obj.cmds = reverseClosedContourKeepStart(obj.cmds, obj.explicitCloseWanted, V);
|
|
492
|
+
}
|
|
493
|
+
};
|
|
494
|
+
for (let i = 0; i < n; i++) {
|
|
495
|
+
ensureOrient(contourObjs[i], depths[i] % 2 === 0);
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
/**
|
|
500
|
+
* Convert a path `d` string with evenodd fill semantics to an equivalent
|
|
501
|
+
* path that renders identically under nonzero winding.
|
|
502
|
+
*
|
|
503
|
+
* Steps:
|
|
504
|
+
* 1. Parse via PathKit, set fill type to EVENODD, simplify (resolve topology)
|
|
505
|
+
* 2. Split into contours, compute containment depths
|
|
506
|
+
* 3. Fix winding: even depth = CCW (outer), odd depth = CW (hole)
|
|
507
|
+
* 4. Reconstruct d string
|
|
508
|
+
*/
|
|
509
|
+
export function convertEvenoddToWinding(PathKit, d) {
|
|
510
|
+
const V = buildVerbMap(PathKit);
|
|
511
|
+
|
|
512
|
+
// 1. Parse and simplify with EVENODD fill type
|
|
513
|
+
const p = PathKit.FromSVGString(d);
|
|
514
|
+
if (!p) return d;
|
|
515
|
+
const FILL_EVENODD = PathKit?.FillType?.EVENODD ?? PathKit?.FillType?.EVEN_ODD ?? 1;
|
|
516
|
+
p.setFillType(FILL_EVENODD);
|
|
517
|
+
p.simplify();
|
|
518
|
+
|
|
519
|
+
// Get the simplified SVG string and re-parse for command access
|
|
520
|
+
const simplified = p.toSVGString();
|
|
521
|
+
p.delete?.();
|
|
522
|
+
const p2 = PathKit.FromSVGString(simplified);
|
|
523
|
+
if (!p2) return simplified;
|
|
524
|
+
const cmds = p2.toCmds();
|
|
525
|
+
p2.delete?.();
|
|
526
|
+
if (cmds.length === 0) return simplified;
|
|
527
|
+
|
|
528
|
+
// 2. Split into contours
|
|
529
|
+
const contourObjs = splitContours(cmds, V).map(c => {
|
|
530
|
+
const explicitCloseWanted = explicitCloseWantedFromCmds(c, V);
|
|
531
|
+
const cc = ensureClosed(c, V);
|
|
532
|
+
const a = approxSignedAreaFromContourCmds(cc, V);
|
|
533
|
+
return {
|
|
534
|
+
cmds: cc,
|
|
535
|
+
absA: Math.abs(a),
|
|
536
|
+
explicitCloseWanted
|
|
537
|
+
};
|
|
538
|
+
});
|
|
539
|
+
contourObjs.sort((x, y) => y.absA - x.absA);
|
|
540
|
+
|
|
541
|
+
// 3. Fix winding via containment analysis
|
|
542
|
+
applyContainmentWinding(contourObjs, V);
|
|
543
|
+
|
|
544
|
+
// 4. Reconstruct d string from fixed commands
|
|
545
|
+
const allCmds = contourObjs.flatMap(x => x.cmds);
|
|
546
|
+
const parts = [];
|
|
547
|
+
for (const cmd of allCmds) {
|
|
548
|
+
const v = cmd[0];
|
|
549
|
+
if (v === V.MOVE) parts.push(`M${roundN(cmd[1])} ${roundN(cmd[2])}`);else if (v === V.LINE) parts.push(`L${roundN(cmd[1])} ${roundN(cmd[2])}`);else if (v === V.QUAD) parts.push(`Q${roundN(cmd[1])} ${roundN(cmd[2])} ${roundN(cmd[3])} ${roundN(cmd[4])}`);else if (v === V.CUBIC) parts.push(`C${roundN(cmd[1])} ${roundN(cmd[2])} ${roundN(cmd[3])} ${roundN(cmd[4])} ${roundN(cmd[5])} ${roundN(cmd[6])}`);else if (v === V.CLOSE) parts.push('Z');
|
|
550
|
+
}
|
|
551
|
+
return parts.join(' ');
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
// proxy to for picosvg to interatc with pathkit
|
|
555
|
+
export function buildPathopsBackend(PathKit) {
|
|
556
|
+
const VERB = buildVerbMap(PathKit);
|
|
360
557
|
const FILL_EVENODD = PathKit?.FillType?.EVENODD ?? PathKit?.FillType?.EVEN_ODD ?? 1;
|
|
361
558
|
const FILL_WINDING = PathKit?.FillType?.WINDING ?? PathKit?.FillType?.NONZERO ?? 0;
|
|
362
559
|
function cmdsViaSvgRoundtrip(h) {
|
|
@@ -385,22 +582,9 @@ export function buildPathopsBackend(PathKit) {
|
|
|
385
582
|
// Big-to-small ordering gives deterministic outer→inner ordering.
|
|
386
583
|
contourObjs.sort((x, y) => y.absA - x.absA);
|
|
387
584
|
|
|
388
|
-
//
|
|
389
|
-
// -
|
|
390
|
-
|
|
391
|
-
const ensureOrient = (obj, wantCCW) => {
|
|
392
|
-
const a = approxSignedAreaFromContourCmds(obj.cmds, VERB);
|
|
393
|
-
const isCCW = a > 0;
|
|
394
|
-
if (wantCCW !== isCCW) {
|
|
395
|
-
obj.cmds = reverseClosedContourKeepStart(obj.cmds, obj.explicitCloseWanted, VERB);
|
|
396
|
-
}
|
|
397
|
-
};
|
|
398
|
-
if (contourObjs.length) {
|
|
399
|
-
ensureOrient(contourObjs[0], true);
|
|
400
|
-
for (let i = 1; i < contourObjs.length; i++) {
|
|
401
|
-
ensureOrient(contourObjs[i], false);
|
|
402
|
-
}
|
|
403
|
-
}
|
|
585
|
+
// Containment-based winding: compute nesting depth per contour via
|
|
586
|
+
// ray-casting point-in-polygon. Even depth = outer (CCW), odd = hole (CW).
|
|
587
|
+
applyContainmentWinding(contourObjs, VERB);
|
|
404
588
|
|
|
405
589
|
// Rotate starts deterministically:
|
|
406
590
|
// 1) If we have recorded MOVE points, try to rotate contour to a move point that lies on it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EPS","roundN","x","ndigits","m","s","Number","isFinite","floor","Math","frac","TIE_EPS","roundedInt","abs","ceil","round","normPt","p","eqPt","a","b","aa","bb","signedAreaPolyline","points","length","i","x1","y1","x2","y2","approxSignedAreaFromContourCmds","contourCmds","VERB","steps","cx","cy","sx","sy","pts","add","y","push","cmd","v","MOVE","LINE","QUAD","x0","y0","t","mt","CUBIC","x3","y3","CLOSE","splitContours","cmds","contours","cur","ensureClosed","some","c","explicitCloseWantedFromCmds","start","end","contourToSegments","move","last","segs","type","synthetic","ctrl","c1","c2","applyClosePolicy","startPt","explicitCloseWanted","lastEnd","segmentsToContourCmds","out","reverseClosedContourKeepStart","reversed","slice","reverse","map","rotateClosedContourToStart","desiredStart","idx","rotated","concat","cmdsToVerbPoints","Error","wrapPath","pathkitPath","meta","moves","cloneWrap","h","PathKit","p2","NewPath","mergeMoves","aMoves","bMoves","pushUnique","pt","existing","bestStartMinYMinX","best","buildPathopsBackend","MOVE_VERB","LINE_VERB","QUAD_VERB","CONIC","CONIC_VERB","CUBIC_VERB","CLOSE_VERB","FILL_EVENODD","FillType","EVENODD","EVEN_ODD","FILL_WINDING","WINDING","NONZERO","cmdsViaSvgRoundtrip","svg","toSVGString","FromSVGString","toCmds","delete","normalizeSortRotateContours","preferStrokeCanonical","used","Array","fill","contourObjs","cc","absA","sort","ensureOrient","obj","wantCCW","isCCW","target","found","flatMap","create_path","fillTypeInt","setFillType","clone_path","delete_path","get_fill_type","ft","getFillType","set_fill_type","move_to","moveTo","line_to","lineTo","quad_to","quadTo","cubic_to","cubicTo","close","simplify","fixWinding","stroke","width","capInt","joinInt","miterLimit","dashArray","dashOffset","Caps","StrokeCap","Joins","StrokeJoin","cap","ROUND","SQUARE","BUTT","join","BEVEL","MITER","work","isArray","dash","stroked","miter_limit","wrapped","convert_conics_to_quads","_h","_tol","transform","d","e","f","op","aHandle","bHandle","opInt","Ops","PathOp","INTERSECT","DIFFERENCE","UNION","MakeFromOp","bounds","r","getBounds","fLeft","fTop","fRight","fBottom","area","total","iter_segments","normalized"],"sourceRoot":"../../../../src","sources":["core/svg/svg_pathops.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["EPS","roundN","x","ndigits","m","s","Number","isFinite","floor","Math","frac","TIE_EPS","roundedInt","abs","ceil","round","normPt","p","eqPt","a","b","aa","bb","signedAreaPolyline","points","length","i","x1","y1","x2","y2","approxSignedAreaFromContourCmds","contourCmds","VERB","steps","cx","cy","sx","sy","pts","add","y","push","cmd","v","MOVE","LINE","QUAD","x0","y0","t","mt","CUBIC","x3","y3","CLOSE","splitContours","cmds","contours","cur","ensureClosed","some","c","explicitCloseWantedFromCmds","start","end","contourToSegments","move","last","segs","type","synthetic","ctrl","c1","c2","applyClosePolicy","startPt","explicitCloseWanted","lastEnd","segmentsToContourCmds","out","reverseClosedContourKeepStart","reversed","slice","reverse","map","rotateClosedContourToStart","desiredStart","idx","rotated","concat","cmdsToVerbPoints","Error","wrapPath","pathkitPath","meta","moves","cloneWrap","h","PathKit","p2","NewPath","mergeMoves","aMoves","bMoves","pushUnique","pt","existing","bestStartMinYMinX","best","buildVerbMap","MOVE_VERB","LINE_VERB","QUAD_VERB","CONIC","CONIC_VERB","CUBIC_VERB","CLOSE_VERB","contourToPolyline","V","pointInPolygon","px","py","poly","inside","j","xi","yi","xj","yj","getContourSamplePoint","applyContainmentWinding","contourObjs","n","polylines","obj","samplePts","depths","Array","fill","ensureOrient","wantCCW","isCCW","convertEvenoddToWinding","d","FromSVGString","FILL_EVENODD","FillType","EVENODD","EVEN_ODD","setFillType","simplify","simplified","toSVGString","delete","toCmds","cc","absA","sort","allCmds","flatMap","parts","join","buildPathopsBackend","FILL_WINDING","WINDING","NONZERO","cmdsViaSvgRoundtrip","svg","normalizeSortRotateContours","preferStrokeCanonical","used","target","found","create_path","fillTypeInt","clone_path","delete_path","get_fill_type","ft","getFillType","set_fill_type","move_to","moveTo","line_to","lineTo","quad_to","quadTo","cubic_to","cubicTo","close","fixWinding","stroke","width","capInt","joinInt","miterLimit","dashArray","dashOffset","Caps","StrokeCap","Joins","StrokeJoin","cap","ROUND","SQUARE","BUTT","BEVEL","MITER","work","isArray","dash","stroked","miter_limit","wrapped","convert_conics_to_quads","_h","_tol","transform","e","f","op","aHandle","bHandle","opInt","Ops","PathOp","INTERSECT","DIFFERENCE","UNION","MakeFromOp","bounds","r","getBounds","fLeft","fTop","fRight","fBottom","area","total","iter_segments","normalized"],"sourceRoot":"../../../../src","sources":["core/svg/svg_pathops.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,84 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
-
const DEFAULT_ICON_SIZE = 12;
|
|
3
|
+
import { createJSIconSet } from "./createNanoIconsSet.shared.js";
|
|
4
|
+
export { shallowEqualColor } from "./utils/shallowEqualColor.js";
|
|
7
5
|
export function createIconSet(glyphMap) {
|
|
8
|
-
|
|
9
|
-
const fontReference = Platform.select({
|
|
10
|
-
windows: `/Assets/${fontBasename}`,
|
|
11
|
-
android: fontBasename,
|
|
12
|
-
default: fontBasename
|
|
13
|
-
});
|
|
14
|
-
const styleOverrides = {
|
|
15
|
-
fontFamily: fontReference,
|
|
16
|
-
fontWeight: 'normal',
|
|
17
|
-
fontStyle: 'normal',
|
|
18
|
-
position: 'absolute',
|
|
19
|
-
includeFontPadding: false,
|
|
20
|
-
bottom: 0
|
|
21
|
-
};
|
|
22
|
-
const resolveEntry = name => {
|
|
23
|
-
return glyphMap.icons[name] ?? {
|
|
24
|
-
adv: glyphMap.meta.upm,
|
|
25
|
-
layers: [{
|
|
26
|
-
codepoint: 63,
|
|
27
|
-
color: 'black'
|
|
28
|
-
}] // "?"
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
const Icon = ({
|
|
32
|
-
name,
|
|
33
|
-
size = DEFAULT_ICON_SIZE,
|
|
34
|
-
colorPalette,
|
|
35
|
-
style,
|
|
36
|
-
allowFontScaling = true,
|
|
37
|
-
innerRef,
|
|
38
|
-
...props
|
|
39
|
-
}) => {
|
|
40
|
-
const {
|
|
41
|
-
fontScale
|
|
42
|
-
} = useWindowDimensions();
|
|
43
|
-
const entry = resolveEntry(name);
|
|
44
|
-
const layers = entry.layers ?? [];
|
|
45
|
-
const scaledSize = allowFontScaling ? size * fontScale : size;
|
|
46
|
-
const width = entry.adv / glyphMap.meta.upm * scaledSize;
|
|
47
|
-
const containerProps = {
|
|
48
|
-
style: {
|
|
49
|
-
height: scaledSize,
|
|
50
|
-
width,
|
|
51
|
-
bottom: 0
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
const lastPaletteColor = colorPalette?.length ? colorPalette[colorPalette.length - 1] : undefined;
|
|
55
|
-
return /*#__PURE__*/_jsx(View, {
|
|
56
|
-
nativeID: `nano-icon-container-${String(name)}`,
|
|
57
|
-
ref: innerRef,
|
|
58
|
-
...containerProps,
|
|
59
|
-
children: layers.map(({
|
|
60
|
-
codepoint,
|
|
61
|
-
color: srcColor
|
|
62
|
-
}, i) => {
|
|
63
|
-
const layerColor = colorPalette?.[i] ?? lastPaletteColor ?? srcColor ?? 'black';
|
|
64
|
-
return /*#__PURE__*/_jsx(Text, {
|
|
65
|
-
selectable: false,
|
|
66
|
-
...props,
|
|
67
|
-
allowFontScaling: allowFontScaling,
|
|
68
|
-
style: [style, styleOverrides, {
|
|
69
|
-
fontSize: size,
|
|
70
|
-
color: layerColor
|
|
71
|
-
}],
|
|
72
|
-
children: String.fromCodePoint(codepoint)
|
|
73
|
-
}, `${codepoint}-${i}`);
|
|
74
|
-
})
|
|
75
|
-
});
|
|
76
|
-
};
|
|
77
|
-
const WrappedIcon = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/_jsx(Icon, {
|
|
78
|
-
innerRef: ref,
|
|
79
|
-
...props
|
|
80
|
-
}));
|
|
81
|
-
WrappedIcon.displayName = `NanoIcon(${fontBasename})`;
|
|
82
|
-
return WrappedIcon;
|
|
6
|
+
return createJSIconSet(glyphMap);
|
|
83
7
|
}
|
|
84
8
|
//# sourceMappingURL=createNanoIconsSet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["createJSIconSet","shallowEqualColor","createIconSet","glyphMap"],"sourceRoot":"../../src","sources":["createNanoIconsSet.tsx"],"mappings":";;AAEA,SAASA,eAAe,QAAQ,gCAA6B;AAG7D,SAASC,iBAAiB,QAAQ,8BAA2B;AAE7D,OAAO,SAASC,aAAaA,CAC3BC,QAAY,EACO;EACnB,OAAOH,eAAe,CAACG,QAAQ,CAAC;AAClC","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useMemo } from 'react';
|
|
4
|
+
import { PixelRatio, UIManager, processColor } from 'react-native';
|
|
5
|
+
import { shallowEqualColor } from "./utils/shallowEqualColor.js";
|
|
6
|
+
import NanoIconViewNative from './specs/NanoIconViewNativeComponent';
|
|
7
|
+
import { createJSIconSet } from "./createNanoIconsSet.shared.js";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
export { shallowEqualColor };
|
|
10
|
+
const DEFAULT_ICON_SIZE = 12;
|
|
11
|
+
const HAS_NATIVE_IMPL = UIManager.hasViewManagerConfig('NanoIconView');
|
|
12
|
+
export function createIconSet(glyphMap) {
|
|
13
|
+
if (!HAS_NATIVE_IMPL) {
|
|
14
|
+
return createJSIconSet(glyphMap);
|
|
15
|
+
}
|
|
16
|
+
const fontFamilyBasename = glyphMap.m.f;
|
|
17
|
+
const unitsPerEm = glyphMap.m.u;
|
|
18
|
+
const resolveEntry = name => {
|
|
19
|
+
return glyphMap.i[name] ?? [unitsPerEm, [[63, 'black']]];
|
|
20
|
+
};
|
|
21
|
+
const Icon = /*#__PURE__*/memo(({
|
|
22
|
+
name,
|
|
23
|
+
size = DEFAULT_ICON_SIZE,
|
|
24
|
+
color,
|
|
25
|
+
style,
|
|
26
|
+
allowFontScaling = true,
|
|
27
|
+
accessible,
|
|
28
|
+
accessibilityLabel,
|
|
29
|
+
accessibilityRole = 'image',
|
|
30
|
+
testID,
|
|
31
|
+
ref
|
|
32
|
+
}) => {
|
|
33
|
+
const fontScale = allowFontScaling ? PixelRatio.getFontScale() : 1;
|
|
34
|
+
const [adv, layers] = resolveEntry(name);
|
|
35
|
+
const scaledSize = size * fontScale;
|
|
36
|
+
const width = adv / unitsPerEm * scaledSize;
|
|
37
|
+
const colorArray = Array.isArray(color) ? color : [color];
|
|
38
|
+
const lastPaletteColor = colorArray?.length ? colorArray[colorArray.length - 1] : undefined;
|
|
39
|
+
const codepoints = useMemo(() => layers.map(([cp]) => cp), [name]);
|
|
40
|
+
const processedColors = useMemo(() => layers.map(([, srcColor], i) => {
|
|
41
|
+
const layerColor = colorArray?.[i] ?? lastPaletteColor ?? srcColor ?? 'black';
|
|
42
|
+
return processColor(layerColor) ?? 0xff000000;
|
|
43
|
+
}), [name, color]);
|
|
44
|
+
const nativeStyle = useMemo(() => [{
|
|
45
|
+
width,
|
|
46
|
+
height: scaledSize
|
|
47
|
+
}, style], [scaledSize, width, style]);
|
|
48
|
+
return /*#__PURE__*/_jsx(NanoIconViewNative, {
|
|
49
|
+
ref: ref,
|
|
50
|
+
fontFamily: fontFamilyBasename,
|
|
51
|
+
codepoints: codepoints,
|
|
52
|
+
colors: processedColors,
|
|
53
|
+
fontSize: size,
|
|
54
|
+
advanceWidth: adv,
|
|
55
|
+
unitsPerEm: unitsPerEm,
|
|
56
|
+
iconWidth: width,
|
|
57
|
+
iconHeight: scaledSize,
|
|
58
|
+
style: nativeStyle,
|
|
59
|
+
accessible: accessible,
|
|
60
|
+
accessibilityRole: accessibilityRole,
|
|
61
|
+
accessibilityLabel: accessibilityLabel ?? name,
|
|
62
|
+
testID: testID
|
|
63
|
+
});
|
|
64
|
+
}, (prev, next) => prev.name === next.name && prev.size === next.size && prev.allowFontScaling === next.allowFontScaling && prev.style === next.style && shallowEqualColor(prev.color, next.color));
|
|
65
|
+
Icon.displayName = `NanoIcon(${fontFamilyBasename})`;
|
|
66
|
+
return Icon;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=createNanoIconsSet.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useMemo","PixelRatio","UIManager","processColor","shallowEqualColor","NanoIconViewNative","createJSIconSet","jsx","_jsx","DEFAULT_ICON_SIZE","HAS_NATIVE_IMPL","hasViewManagerConfig","createIconSet","glyphMap","fontFamilyBasename","m","f","unitsPerEm","u","resolveEntry","name","i","Icon","size","color","style","allowFontScaling","accessible","accessibilityLabel","accessibilityRole","testID","ref","fontScale","getFontScale","adv","layers","scaledSize","width","colorArray","Array","isArray","lastPaletteColor","length","undefined","codepoints","map","cp","processedColors","srcColor","layerColor","nativeStyle","height","fontFamily","colors","fontSize","advanceWidth","iconWidth","iconHeight","prev","next","displayName"],"sourceRoot":"../../src","sources":["createNanoIconsSet.native.tsx"],"mappings":"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","ignoreList":[]}
|