react-native-nano-icons 0.1.8 → 0.2.1

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.
Files changed (116) hide show
  1. package/README.md +64 -2
  2. package/android/src/main/java/com/nanoicons/NanoIconsFontLoaderModule.kt +63 -0
  3. package/android/src/main/java/com/nanoicons/NanoIconsPackage.kt +19 -2
  4. package/ios/NanoIconView.h +5 -0
  5. package/ios/NanoIconView.mm +35 -9
  6. package/ios/NanoIconsFontLoader.h +11 -0
  7. package/ios/NanoIconsFontLoader.mm +110 -0
  8. package/lib/commonjs/cli/build.d.ts +3 -0
  9. package/lib/commonjs/cli/build.js +8 -4
  10. package/lib/commonjs/cli/config.d.ts +1 -0
  11. package/lib/commonjs/cli/config.js +10 -0
  12. package/lib/commonjs/cli/expoConfig.d.ts +8 -0
  13. package/lib/commonjs/cli/expoConfig.js +34 -0
  14. package/lib/commonjs/cli/index.d.ts +2 -1
  15. package/lib/commonjs/cli/index.js +4 -1
  16. package/lib/commonjs/cli/link.js +32 -22
  17. package/lib/commonjs/plugin/src/types.d.ts +9 -0
  18. package/lib/commonjs/plugin/src/withNanoIconsFontLinking.d.ts +5 -0
  19. package/lib/commonjs/plugin/src/withNanoIconsFontLinking.js +24 -10
  20. package/lib/commonjs/scripts/cli.js +23 -11
  21. package/lib/commonjs/src/core/pipeline/config.d.ts +1 -0
  22. package/lib/commonjs/src/core/pipeline/managers.js +1 -2
  23. package/lib/commonjs/src/core/pipeline/run.js +1 -0
  24. package/lib/commonjs/src/core/svg/svg_dom.d.ts +1 -0
  25. package/lib/commonjs/src/core/svg/svg_dom.js +22 -17
  26. package/lib/commonjs/src/core/svg/svg_pathops.js +30 -16
  27. package/lib/commonjs/src/core/types.d.ts +3 -0
  28. package/lib/module/const/codegenPrimitives.js +2 -0
  29. package/lib/module/const/codegenPrimitives.js.map +1 -0
  30. package/lib/module/core/font/compile.js.map +1 -1
  31. package/lib/module/core/pipeline/config.js.map +1 -1
  32. package/lib/module/core/pipeline/managers.js.map +1 -1
  33. package/lib/module/core/pipeline/run.js +4 -1
  34. package/lib/module/core/pipeline/run.js.map +1 -1
  35. package/lib/module/core/svg/layers.js.map +1 -1
  36. package/lib/module/core/svg/svg_dom.js +19 -19
  37. package/lib/module/core/svg/svg_dom.js.map +1 -1
  38. package/lib/module/core/svg/svg_pathops.js.map +1 -1
  39. package/lib/module/createNanoIconsSet.js +2 -2
  40. package/lib/module/createNanoIconsSet.js.map +1 -1
  41. package/lib/module/createNanoIconsSet.native.js +43 -16
  42. package/lib/module/createNanoIconsSet.native.js.map +1 -1
  43. package/lib/module/createNanoIconsSet.shared.js +49 -20
  44. package/lib/module/createNanoIconsSet.shared.js.map +1 -1
  45. package/lib/module/createNanoIconsSet.web.js +78 -0
  46. package/lib/module/createNanoIconsSet.web.js.map +1 -0
  47. package/lib/module/loadDynamicFont.js +118 -0
  48. package/lib/module/loadDynamicFont.js.map +1 -0
  49. package/lib/module/specs/NanoIconViewNativeComponent.ts +9 -8
  50. package/lib/module/specs/NativeNanoIconsFontLoader.js +7 -0
  51. package/lib/module/specs/NativeNanoIconsFontLoader.js.map +1 -0
  52. package/lib/module/utils/glyphRuntime.js +37 -0
  53. package/lib/module/utils/glyphRuntime.js.map +1 -0
  54. package/lib/typescript/__tests__/glyphRuntime.unit.test.d.ts +2 -0
  55. package/lib/typescript/__tests__/glyphRuntime.unit.test.d.ts.map +1 -0
  56. package/lib/typescript/__tests__/link.unit.test.d.ts +3 -0
  57. package/lib/typescript/__tests__/link.unit.test.d.ts.map +1 -0
  58. package/lib/typescript/__tests__/loadDynamicFont.unit.test.d.ts +2 -0
  59. package/lib/typescript/__tests__/loadDynamicFont.unit.test.d.ts.map +1 -0
  60. package/lib/typescript/cli/build.d.ts +3 -0
  61. package/lib/typescript/cli/build.d.ts.map +1 -1
  62. package/lib/typescript/cli/link.d.ts +12 -0
  63. package/lib/typescript/cli/link.d.ts.map +1 -0
  64. package/lib/typescript/src/const/codegenPrimitives.d.ts +3 -0
  65. package/lib/typescript/src/const/codegenPrimitives.d.ts.map +1 -0
  66. package/lib/typescript/src/core/font/compile.d.ts.map +1 -1
  67. package/lib/typescript/src/core/pipeline/config.d.ts +1 -0
  68. package/lib/typescript/src/core/pipeline/config.d.ts.map +1 -1
  69. package/lib/typescript/src/core/pipeline/managers.d.ts.map +1 -1
  70. package/lib/typescript/src/core/pipeline/run.d.ts.map +1 -1
  71. package/lib/typescript/src/core/svg/svg_dom.d.ts +1 -0
  72. package/lib/typescript/src/core/svg/svg_dom.d.ts.map +1 -1
  73. package/lib/typescript/src/core/svg/svg_pathops.d.ts.map +1 -1
  74. package/lib/typescript/src/core/types.d.ts +3 -0
  75. package/lib/typescript/src/core/types.d.ts.map +1 -1
  76. package/lib/typescript/src/createNanoIconsSet.d.ts +1 -0
  77. package/lib/typescript/src/createNanoIconsSet.d.ts.map +1 -1
  78. package/lib/typescript/src/createNanoIconsSet.native.d.ts +1 -0
  79. package/lib/typescript/src/createNanoIconsSet.native.d.ts.map +1 -1
  80. package/lib/typescript/src/createNanoIconsSet.shared.d.ts +11 -0
  81. package/lib/typescript/src/createNanoIconsSet.shared.d.ts.map +1 -1
  82. package/lib/typescript/src/createNanoIconsSet.web.d.ts +7 -0
  83. package/lib/typescript/src/createNanoIconsSet.web.d.ts.map +1 -0
  84. package/lib/typescript/src/loadDynamicFont.d.ts +28 -0
  85. package/lib/typescript/src/loadDynamicFont.d.ts.map +1 -0
  86. package/lib/typescript/src/specs/NanoIconViewNativeComponent.d.ts +9 -8
  87. package/lib/typescript/src/specs/NanoIconViewNativeComponent.d.ts.map +1 -1
  88. package/lib/typescript/src/specs/NativeNanoIconsFontLoader.d.ts +8 -0
  89. package/lib/typescript/src/specs/NativeNanoIconsFontLoader.d.ts.map +1 -0
  90. package/lib/typescript/src/types.d.ts +7 -1
  91. package/lib/typescript/src/types.d.ts.map +1 -1
  92. package/lib/typescript/src/utils/glyphRuntime.d.ts +18 -0
  93. package/lib/typescript/src/utils/glyphRuntime.d.ts.map +1 -0
  94. package/package.json +8 -5
  95. package/plugin/src/types.ts +9 -0
  96. package/plugin/src/withNanoIconsFontLinking.ts +29 -10
  97. package/react-native-nano-icons.podspec +1 -1
  98. package/scripts/cli.ts +31 -11
  99. package/src/const/codegenPrimitives.ts +14 -0
  100. package/src/core/font/compile.ts +1 -2
  101. package/src/core/pipeline/config.ts +1 -0
  102. package/src/core/pipeline/managers.ts +5 -10
  103. package/src/core/pipeline/run.ts +11 -6
  104. package/src/core/svg/layers.ts +4 -4
  105. package/src/core/svg/svg_dom.ts +26 -23
  106. package/src/core/svg/svg_pathops.ts +50 -24
  107. package/src/core/types.ts +10 -2
  108. package/src/createNanoIconsSet.native.tsx +78 -26
  109. package/src/createNanoIconsSet.shared.tsx +93 -40
  110. package/src/createNanoIconsSet.tsx +9 -1
  111. package/src/createNanoIconsSet.web.tsx +109 -0
  112. package/src/loadDynamicFont.ts +162 -0
  113. package/src/specs/NanoIconViewNativeComponent.ts +9 -8
  114. package/src/specs/NativeNanoIconsFontLoader.ts +11 -0
  115. package/src/types.ts +5 -1
  116. package/src/utils/glyphRuntime.ts +46 -0
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { JSDOM } from 'jsdom';
3
+ import { DOMParser } from '@xmldom/xmldom';
4
4
  import { parseColor } from "../../utils/parse.js";
5
5
  // if the fill is implicit, walk ancestors for the first explicit fill value
6
6
  function resolveInheritedFill(el) {
@@ -75,20 +75,17 @@ export const parsePath = p => {
75
75
  };
76
76
  };
77
77
  export function parseFlattenedSvg(flattenedSvg, options) {
78
- const dom = new JSDOM(flattenedSvg);
79
- const doc = dom.window.document;
80
- const svgEl = doc.querySelector('svg');
78
+ const doc = new DOMParser().parseFromString(flattenedSvg, 'image/svg+xml');
79
+ const svgEl = doc.documentElement;
81
80
  const viewBoxRaw = svgEl?.getAttribute('viewBox')?.split(/\s+/).map(Number) ?? [0, 0, 100, 100];
82
- const viewBox = viewBoxRaw.length === 4 && viewBoxRaw.every(n => Number.isFinite(n)) ? [viewBoxRaw[0], viewBoxRaw[1], viewBoxRaw[2], viewBoxRaw[3]] : [0, 0, 100, 100];
83
- const pathEls = Array.from(doc.querySelectorAll('path'));
81
+ const viewBox = viewBoxRaw.length === 4 && viewBoxRaw.every(Number.isFinite) ? [viewBoxRaw[0], viewBoxRaw[1], viewBoxRaw[2], viewBoxRaw[3]] : [0, 0, 100, 100];
82
+ const pathEls = svgEl ? Array.from(svgEl.getElementsByTagName('path')) : [];
84
83
  const paths = pathEls.map(parsePath).filter(p => p.d.trim() !== '').map(p => {
85
84
  const {
86
85
  d,
87
86
  sanitized
88
87
  } = sanitizePathData(p.d);
89
- if (sanitized) {
90
- options?.onSanitize?.(p.d);
91
- }
88
+ if (sanitized) options?.onSanitize?.(p.d);
92
89
  return {
93
90
  ...p,
94
91
  d
@@ -117,6 +114,12 @@ export function validateSvg(content) {
117
114
  reason: '<filter> is not supported yet'
118
115
  };
119
116
  }
117
+ if (/<image[\s>]/i.test(content)) {
118
+ return {
119
+ valid: false,
120
+ reason: 'embedded raster <image> is not supported yet'
121
+ };
122
+ }
120
123
  return {
121
124
  valid: true
122
125
  };
@@ -134,17 +137,14 @@ export function extractOriginalEvenoddDs(svgContent) {
134
137
  if (!/<[^>]*fill-rule\s*=\s*["']evenodd/i.test(svgContent)) {
135
138
  return [];
136
139
  }
137
- const dom = new JSDOM(svgContent, {
138
- contentType: 'image/svg+xml'
139
- });
140
- const doc = dom.window.document;
141
- const results = [];
142
- const pathEls = doc.querySelectorAll('path[fill-rule="evenodd"], path[clip-rule="evenodd"]');
143
- for (const el of pathEls) {
140
+ const doc = new DOMParser().parseFromString(svgContent, 'image/svg+xml');
141
+ return Array.from(doc.getElementsByTagName('path')).reduce((acc, el) => {
142
+ const isEvenOdd = el.getAttribute('fill-rule') === 'evenodd' || el.getAttribute('clip-rule') === 'evenodd';
143
+ if (!isEvenOdd) return acc;
144
144
  const d = el.getAttribute('d');
145
- if (d) results.push(d);
146
- }
147
- return results;
145
+ if (d !== null && d !== '') acc.push(d);
146
+ return acc;
147
+ }, []);
148
148
  }
149
149
 
150
150
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["JSDOM","parseColor","resolveInheritedFill","el","current","parentElement","fill","getAttribute","calculateOpColor","opacity","resolvedFill","r","g","b","a","finalAlpha","toFixed","sanitizePathData","d","trimmed","trim","test","sanitized","withoutClose","replace","nums","match","length","x","y","parsePath","p","op","fillOp","fillRule","undefined","opVal","parseFloat","fillOpVal","combinedOpacity","parseFlattenedSvg","flattenedSvg","options","dom","doc","window","document","svgEl","querySelector","viewBoxRaw","split","map","Number","viewBox","every","n","isFinite","pathEls","Array","from","querySelectorAll","paths","filter","onSanitize","shouldSkipPath","f","toLowerCase","validateSvg","content","valid","reason","extractOriginalEvenoddDs","svgContent","contentType","results","push","restoreOriginalEvenoddDs","originalDs","oi","preprocessSvg"],"sourceRoot":"../../../../src","sources":["core/svg/svg_dom.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DOMParser","parseColor","resolveInheritedFill","el","current","parentElement","fill","getAttribute","calculateOpColor","opacity","resolvedFill","r","g","b","a","finalAlpha","toFixed","sanitizePathData","d","trimmed","trim","test","sanitized","withoutClose","replace","nums","match","length","x","y","parsePath","p","op","fillOp","fillRule","undefined","opVal","parseFloat","fillOpVal","combinedOpacity","parseFlattenedSvg","flattenedSvg","options","doc","parseFromString","svgEl","documentElement","viewBoxRaw","split","map","Number","viewBox","every","isFinite","pathEls","Array","from","getElementsByTagName","paths","filter","onSanitize","shouldSkipPath","f","toLowerCase","validateSvg","content","valid","reason","extractOriginalEvenoddDs","svgContent","reduce","acc","isEvenOdd","push","restoreOriginalEvenoddDs","originalDs","oi","preprocessSvg"],"sourceRoot":"../../../../src","sources":["core/svg/svg_dom.ts"],"mappings":"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","ignoreList":[]}
@@ -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","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":";;AAQA;;AAEA;AACA,MAAMA,GAAG,GAAG,IAAI;;AAEhB;AACA,SAASC,MAAMA,CAACC,CAAS,EAAEC,OAAO,GAAG,CAAC,EAAU;EAC9C,MAAMC,CAAC,GAAG,EAAE,IAAID,OAAO;EACvB,MAAME,CAAC,GAAGH,CAAC,GAAGE,CAAC;;EAEf;EACA,IAAI,CAACE,MAAM,CAACC,QAAQ,CAACF,CAAC,CAAC,EAAE,OAAOH,CAAC;EAEjC,MAAMM,KAAK,GAAGC,IAAI,CAACD,KAAK,CAACH,CAAC,CAAC;EAC3B,MAAMK,IAAI,GAAGL,CAAC,GAAGG,KAAK;;EAEtB;EACA,MAAMG,OAAO,GAAG,KAAK;EAErB,IAAIC,UAAkB;EACtB,IAAIH,IAAI,CAACI,GAAG,CAACH,IAAI,GAAG,GAAG,CAAC,GAAGC,OAAO,EAAE;IAClC;IACAC,UAAU,GAAGJ,KAAK,GAAG,CAAC,KAAK,CAAC,GAAGA,KAAK,GAAGA,KAAK,GAAG,CAAC;EAClD,CAAC,MAAM,IAAIC,IAAI,CAACI,GAAG,CAACH,IAAI,GAAG,GAAG,CAAC,GAAGC,OAAO,EAAE;IACzC;IACA,MAAMG,IAAI,GAAGL,IAAI,CAACK,IAAI,CAACT,CAAC,CAAC;IACzBO,UAAU,GAAGE,IAAI,GAAG,CAAC,KAAK,CAAC,GAAGA,IAAI,GAAGA,IAAI,GAAG,CAAC;EAC/C,CAAC,MAAM;IACLF,UAAU,GAAGH,IAAI,CAACM,KAAK,CAACV,CAAC,CAAC;EAC5B;EAEA,OAAOO,UAAU,GAAGR,CAAC;AACvB;AAEA,SAASY,MAAMA,CAACC,CAAQ,EAAoB;EAC1C,OAAO,CAACR,IAAI,CAACM,KAAK,CAACE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,EAAER,IAAI,CAACM,KAAK,CAACE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;AAC7E;AAEA,SAASC,IAAIA,CAACC,CAAQ,EAAEC,CAAQ,EAAW;EACzC,MAAMC,EAAE,GAAGL,MAAM,CAACG,CAAC,CAAC;EACpB,MAAMG,EAAE,GAAGN,MAAM,CAACI,CAAC,CAAC;EACpB,OAAOX,IAAI,CAACI,GAAG,CAACQ,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAGtB,GAAG,IAAIS,IAAI,CAACI,GAAG,CAACQ,EAAE,CAAC,CAAC,CAAC,GAAGC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAGtB,GAAG;AACvE;AAEA,SAASuB,kBAAkBA,CAACC,MAAwB,EAAU;EAC5D,IAAIA,MAAM,CAACC,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC;EAC/B,IAAIN,CAAC,GAAG,CAAC;EACT,KAAK,IAAIO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACC,MAAM,EAAEC,CAAC,EAAE,EAAE;IACtC,MAAM,CAACC,EAAE,EAAEC,EAAE,CAAC,GAAGJ,MAAM,CAACE,CAAC,CAAE;IAC3B,MAAM,CAACG,EAAE,EAAEC,EAAE,CAAC,GAAGN,MAAM,CAAC,CAACE,CAAC,GAAG,CAAC,IAAIF,MAAM,CAACC,MAAM,CAAE;IACjDN,CAAC,IAAIQ,EAAE,GAAGG,EAAE,GAAGD,EAAE,GAAGD,EAAE;EACxB;EACA,OAAOT,CAAC,GAAG,CAAC;AACd;AAEA,SAASY,+BAA+BA,CACtCC,WAA2B,EAC3BC,IAAa,EACbC,KAAK,GAAG,EAAE,EACF;EACR,IAAIC,EAAE,GAAG,CAAC;IACRC,EAAE,GAAG,CAAC;EACR,IAAIC,EAAE,GAAG,CAAC;IACRC,EAAE,GAAG,CAAC;EACR,MAAMC,GAAY,GAAG,EAAE;EACvB,MAAMC,GAAG,GAAGA,CAACtC,CAAS,EAAEuC,CAAS,KAAKF,GAAG,CAACG,IAAI,CAAC,CAACxC,CAAC,EAAEuC,CAAC,CAAC,CAAC;EAEtD,KAAK,MAAME,GAAG,IAAIX,WAAW,EAAE;IAC7B,MAAMY,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAE;IACjB,IAAIC,CAAC,KAAKX,IAAI,CAACY,IAAI,EAAE;MACnBV,EAAE,GAAGQ,GAAG,CAAC,CAAC,CAAE;MACZP,EAAE,GAAGO,GAAG,CAAC,CAAC,CAAE;MACZN,EAAE,GAAGF,EAAE;MACPG,EAAE,GAAGF,EAAE;MACPI,GAAG,CAACL,EAAE,EAAEC,EAAE,CAAC;IACb,CAAC,MAAM,IAAIQ,CAAC,KAAKX,IAAI,CAACa,IAAI,EAAE;MAC1BX,EAAE,GAAGQ,GAAG,CAAC,CAAC,CAAE;MACZP,EAAE,GAAGO,GAAG,CAAC,CAAC,CAAE;MACZH,GAAG,CAACL,EAAE,EAAEC,EAAE,CAAC;IACb,CAAC,MAAM,IAAIQ,CAAC,KAAKX,IAAI,CAACc,IAAI,EAAE;MAC1B,MAAMC,EAAE,GAAGb,EAAE;QACXc,EAAE,GAAGb,EAAE;MACT,MAAMT,EAAE,GAAGgB,GAAG,CAAC,CAAC,CAAE;QAChBf,EAAE,GAAGe,GAAG,CAAC,CAAC,CAAE;MACd,MAAMd,EAAE,GAAGc,GAAG,CAAC,CAAC,CAAE;QAChBb,EAAE,GAAGa,GAAG,CAAC,CAAC,CAAE;MACd,KAAK,IAAIjB,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIQ,KAAK,EAAER,CAAC,EAAE,EAAE;QAC/B,MAAMwB,CAAC,GAAGxB,CAAC,GAAGQ,KAAK;QACnB,MAAMiB,EAAE,GAAG,CAAC,GAAGD,CAAC;QAChB,MAAMhD,CAAC,GAAGiD,EAAE,GAAGA,EAAE,GAAGH,EAAE,GAAG,CAAC,GAAGG,EAAE,GAAGD,CAAC,GAAGvB,EAAE,GAAGuB,CAAC,GAAGA,CAAC,GAAGrB,EAAE;QACrD,MAAMY,CAAC,GAAGU,EAAE,GAAGA,EAAE,GAAGF,EAAE,GAAG,CAAC,GAAGE,EAAE,GAAGD,CAAC,GAAGtB,EAAE,GAAGsB,CAAC,GAAGA,CAAC,GAAGpB,EAAE;QACrDU,GAAG,CAACtC,CAAC,EAAEuC,CAAC,CAAC;MACX;MACAN,EAAE,GAAGN,EAAE;MACPO,EAAE,GAAGN,EAAE;IACT,CAAC,MAAM,IAAIc,CAAC,KAAKX,IAAI,CAACmB,KAAK,EAAE;MAC3B,MAAMJ,EAAE,GAAGb,EAAE;QACXc,EAAE,GAAGb,EAAE;MACT,MAAMT,EAAE,GAAGgB,GAAG,CAAC,CAAC,CAAE;QAChBf,EAAE,GAAGe,GAAG,CAAC,CAAC,CAAE;MACd,MAAMd,EAAE,GAAGc,GAAG,CAAC,CAAC,CAAE;QAChBb,EAAE,GAAGa,GAAG,CAAC,CAAC,CAAE;MACd,MAAMU,EAAE,GAAGV,GAAG,CAAC,CAAC,CAAE;QAChBW,EAAE,GAAGX,GAAG,CAAC,CAAC,CAAE;MACd,KAAK,IAAIjB,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIQ,KAAK,EAAER,CAAC,EAAE,EAAE;QAC/B,MAAMwB,CAAC,GAAGxB,CAAC,GAAGQ,KAAK;QACnB,MAAMiB,EAAE,GAAG,CAAC,GAAGD,CAAC;QAChB,MAAMhD,CAAC,GACLiD,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGH,EAAE,GACjB,CAAC,GAAGG,EAAE,GAAGA,EAAE,GAAGD,CAAC,GAAGvB,EAAE,GACpB,CAAC,GAAGwB,EAAE,GAAGD,CAAC,GAAGA,CAAC,GAAGrB,EAAE,GACnBqB,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAGG,EAAE;QAChB,MAAMZ,CAAC,GACLU,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGF,EAAE,GACjB,CAAC,GAAGE,EAAE,GAAGA,EAAE,GAAGD,CAAC,GAAGtB,EAAE,GACpB,CAAC,GAAGuB,EAAE,GAAGD,CAAC,GAAGA,CAAC,GAAGpB,EAAE,GACnBoB,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAGI,EAAE;QAChBd,GAAG,CAACtC,CAAC,EAAEuC,CAAC,CAAC;MACX;MACAN,EAAE,GAAGkB,EAAE;MACPjB,EAAE,GAAGkB,EAAE;IACT,CAAC,MAAM,IAAIV,CAAC,KAAKX,IAAI,CAACsB,KAAK,EAAE;MAC3Bf,GAAG,CAACH,EAAE,EAAEC,EAAE,CAAC;IACb;EACF;EAEA,IACEC,GAAG,CAACd,MAAM,KACTc,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAKA,GAAG,CAACA,GAAG,CAACd,MAAM,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,IACrCc,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAAKA,GAAG,CAACA,GAAG,CAACd,MAAM,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EACzC;IACAc,GAAG,CAACG,IAAI,CAAC,CAACH,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC;EACpC;EACA,OAAOhB,kBAAkB,CAACgB,GAAG,CAAC;AAChC;AAEA,SAASiB,aAAaA,CAACC,IAAoB,EAAExB,IAAa,EAAW;EACnE,MAAMyB,QAAiB,GAAG,EAAE;EAC5B,IAAIC,GAAiB,GAAG,IAAI;EAC5B,KAAK,MAAMhB,GAAG,IAAIc,IAAI,EAAE;IACtB,MAAMb,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAE;IACjB,IAAIC,CAAC,KAAKX,IAAI,CAACY,IAAI,EAAE;MACnB,IAAIc,GAAG,IAAIA,GAAG,CAAClC,MAAM,EAAEiC,QAAQ,CAAChB,IAAI,CAACiB,GAAG,CAAC;MACzCA,GAAG,GAAG,CAAChB,GAAG,CAAC;IACb,CAAC,MAAM,IAAIgB,GAAG,EAAE;MACdA,GAAG,CAACjB,IAAI,CAACC,GAAG,CAAC;IACf;EACF;EACA,IAAIgB,GAAG,IAAIA,GAAG,CAAClC,MAAM,EAAEiC,QAAQ,CAAChB,IAAI,CAACiB,GAAG,CAAC;EACzC,OAAOD,QAAQ;AACjB;AAEA,SAASE,YAAYA,CAAC5B,WAA2B,EAAEC,IAAa,EAAS;EACvE,OAAOD,WAAW,CAAC6B,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,KAAK7B,IAAI,CAACsB,KAAK,CAAC,GAC/C,CAAC,GAAGvB,WAAW,CAAC,GAChB,CAAC,GAAGA,WAAW,EAAE,CAACC,IAAI,CAACsB,KAAK,CAAC,CAAC;AACpC;AAEA,SAASQ,2BAA2BA,CAClC/B,WAAuC,EACvCC,IAAa,EACJ;EACT,IAAI,CAACD,WAAW,EAAEP,MAAM,EAAE,OAAO,KAAK;EACtC,MAAMrB,CAAC,GAAG4B,WAAW,CAAC,CAAC,CAAE;EACzB,IAAI5B,CAAC,CAAC,CAAC,CAAC,KAAK6B,IAAI,CAACY,IAAI,EAAE,OAAO,KAAK;EACpC,MAAMmB,KAAY,GAAG,CAAC5D,CAAC,CAAC,CAAC,CAAC,EAAGA,CAAC,CAAC,CAAC,CAAC,CAAE;EAEnC,KAAK,IAAIsB,CAAC,GAAGM,WAAW,CAACP,MAAM,GAAG,CAAC,EAAEC,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IAChD,MAAMiB,GAAG,GAAGX,WAAW,CAACN,CAAC,CAAE;IAC3B,MAAMkB,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAE;IACjB,IAAIC,CAAC,KAAKX,IAAI,CAACsB,KAAK,EAAE;IAEtB,IAAIU,GAAiB,GAAG,IAAI;IAC5B,IAAIrB,CAAC,KAAKX,IAAI,CAACa,IAAI,EAAEmB,GAAG,GAAG,CAACtB,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,KACzC,IAAIC,CAAC,KAAKX,IAAI,CAACc,IAAI,EAAEkB,GAAG,GAAG,CAACtB,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,KAC9C,IAAIC,CAAC,KAAKX,IAAI,CAACmB,KAAK,EAAEa,GAAG,GAAG,CAACtB,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,KAC/C;IAEL,OAAOzB,IAAI,CAAC+C,GAAG,EAAED,KAAK,CAAC;EACzB;EACA,OAAO,KAAK;AACd;AAoBA,SAASE,iBAAiBA,CACxBlC,WAA2B,EAC3BC,IAAa,EACsB;EACnC,MAAM6B,CAAC,GAAGF,YAAY,CAAC5B,WAAW,EAAEC,IAAI,CAAC;EACzC,MAAMkC,IAAI,GAAGL,CAAC,CAAC,CAAC,CAAE;EAClB,MAAMzB,EAAE,GAAG8B,IAAI,CAAC,CAAC,CAAE;IACjB7B,EAAE,GAAG6B,IAAI,CAAC,CAAC,CAAE;EAEf,IAAIC,IAAW,GAAG,CAAC/B,EAAE,EAAEC,EAAE,CAAC;EAC1B,MAAM+B,IAAe,GAAG,EAAE;EAE1B,KAAK,IAAI3C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGoC,CAAC,CAACrC,MAAM,EAAEC,CAAC,EAAE,EAAE;IACjC,MAAMiB,GAAG,GAAGmB,CAAC,CAACpC,CAAC,CAAE;IACjB,MAAMkB,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAE;IAEjB,IAAIC,CAAC,KAAKX,IAAI,CAACa,IAAI,EAAE;MACnB,MAAMmB,GAAU,GAAG,CAACtB,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE;MACrC0B,IAAI,CAAC3B,IAAI,CAAC;QAAE4B,IAAI,EAAE,GAAG;QAAEN,KAAK,EAAEI,IAAI;QAAEH,GAAG;QAAEM,SAAS,EAAE;MAAM,CAAC,CAAC;MAC5DH,IAAI,GAAGH,GAAG;IACZ,CAAC,MAAM,IAAIrB,CAAC,KAAKX,IAAI,CAACc,IAAI,EAAE;MAC1B,MAAMyB,IAAW,GAAG,CAAC7B,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE;MACtC,MAAMsB,GAAU,GAAG,CAACtB,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE;MACrC0B,IAAI,CAAC3B,IAAI,CAAC;QAAE4B,IAAI,EAAE,GAAG;QAAEN,KAAK,EAAEI,IAAI;QAAEI,IAAI;QAAEP,GAAG;QAAEM,SAAS,EAAE;MAAM,CAAC,CAAC;MAClEH,IAAI,GAAGH,GAAG;IACZ,CAAC,MAAM,IAAIrB,CAAC,KAAKX,IAAI,CAACmB,KAAK,EAAE;MAC3B,MAAMqB,EAAS,GAAG,CAAC9B,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE;MACpC,MAAM+B,EAAS,GAAG,CAAC/B,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE;MACpC,MAAMsB,GAAU,GAAG,CAACtB,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE;MACrC0B,IAAI,CAAC3B,IAAI,CAAC;QAAE4B,IAAI,EAAE,GAAG;QAAEN,KAAK,EAAEI,IAAI;QAAEK,EAAE;QAAEC,EAAE;QAAET,GAAG;QAAEM,SAAS,EAAE;MAAM,CAAC,CAAC;MACpEH,IAAI,GAAGH,GAAG;IACZ,CAAC,MAAM,IAAIrB,CAAC,KAAKX,IAAI,CAACsB,KAAK,EAAE;MAC3B,MAAMU,GAAU,GAAG,CAAC5B,EAAE,EAAEC,EAAE,CAAC;MAC3B,IAAI,CAACpB,IAAI,CAACkD,IAAI,EAAEH,GAAG,CAAC,EAAE;QACpBI,IAAI,CAAC3B,IAAI,CAAC;UAAE4B,IAAI,EAAE,GAAG;UAAEN,KAAK,EAAEI,IAAI;UAAEH,GAAG;UAAEM,SAAS,EAAE;QAAK,CAAC,CAAC;MAC7D;MACAH,IAAI,GAAGH,GAAG;IACZ;EACF;EAEA,OAAO;IAAED,KAAK,EAAE,CAAC3B,EAAE,EAAEC,EAAE,CAAC;IAAE+B;EAAK,CAAC;AAClC;AAEA,SAASM,gBAAgBA,CACvBN,IAAe,EACfO,OAAc,EACdC,mBAA4B,EACjB;EACX,IAAI,CAACR,IAAI,CAAC5C,MAAM,EAAE,OAAO4C,IAAI;EAE7B,KAAK,MAAMhE,CAAC,IAAIgE,IAAI,EAAEhE,CAAC,CAACkE,SAAS,GAAG,KAAK;EAEzC,MAAMH,IAAI,GAAGC,IAAI,CAACA,IAAI,CAAC5C,MAAM,GAAG,CAAC,CAAE;EACnC,MAAMqD,OAAO,GAAGV,IAAI,CAACH,GAAG;EACxB,IAAI,CAAC/C,IAAI,CAAC4D,OAAO,EAAEF,OAAO,CAAC,EAAE;IAC3BP,IAAI,CAAC3B,IAAI,CAAC;MAAE4B,IAAI,EAAE,GAAG;MAAEN,KAAK,EAAEc,OAAO;MAAEb,GAAG,EAAEW,OAAO;MAAEL,SAAS,EAAE;IAAM,CAAC,CAAC;EAC1E;EAEA,IAAI,CAACM,mBAAmB,EAAE;IACxBR,IAAI,CAACA,IAAI,CAAC5C,MAAM,GAAG,CAAC,CAAC,CAAE8C,SAAS,GAAG,IAAI;EACzC;EACA,OAAOF,IAAI;AACb;AAEA,SAASU,qBAAqBA,CAC5BH,OAAc,EACdP,IAAwB,EACxBpC,IAAa,EACN;EACP,MAAM+C,GAAU,GAAG,CAAC,CAAC/C,IAAI,CAACY,IAAI,EAAE5C,MAAM,CAAC2E,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE3E,MAAM,CAAC2E,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACxE,KAAK,MAAMvE,CAAC,IAAIgE,IAAI,EAAE;IACpB,IAAIhE,CAAC,CAACkE,SAAS,EAAE;IACjB,IAAIlE,CAAC,CAACiE,IAAI,KAAK,GAAG,EAAE;MAClBU,GAAG,CAACtC,IAAI,CAAC,CAACT,IAAI,CAACa,IAAI,EAAE7C,MAAM,CAACI,CAAC,CAAC4D,GAAG,CAAC,CAAC,CAAC,CAAC,EAAEhE,MAAM,CAACI,CAAC,CAAC4D,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC,MAAM,IAAI5D,CAAC,CAACiE,IAAI,KAAK,GAAG,EAAE;MACzBU,GAAG,CAACtC,IAAI,CAAC,CACPT,IAAI,CAACc,IAAI,EACT9C,MAAM,CAACI,CAAC,CAACmE,IAAI,CAAC,CAAC,CAAC,CAAC,EACjBvE,MAAM,CAACI,CAAC,CAACmE,IAAI,CAAC,CAAC,CAAC,CAAC,EACjBvE,MAAM,CAACI,CAAC,CAAC4D,GAAG,CAAC,CAAC,CAAC,CAAC,EAChBhE,MAAM,CAACI,CAAC,CAAC4D,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,CAAC;IACJ,CAAC,MAAM;MACLe,GAAG,CAACtC,IAAI,CAAC,CACPT,IAAI,CAACmB,KAAK,EACVnD,MAAM,CAACI,CAAC,CAACoE,EAAE,CAAC,CAAC,CAAC,CAAC,EACfxE,MAAM,CAACI,CAAC,CAACoE,EAAE,CAAC,CAAC,CAAC,CAAC,EACfxE,MAAM,CAACI,CAAC,CAACqE,EAAE,CAAC,CAAC,CAAC,CAAC,EACfzE,MAAM,CAACI,CAAC,CAACqE,EAAE,CAAC,CAAC,CAAC,CAAC,EACfzE,MAAM,CAACI,CAAC,CAAC4D,GAAG,CAAC,CAAC,CAAC,CAAC,EAChBhE,MAAM,CAACI,CAAC,CAAC4D,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,CAAC;IACJ;EACF;EACAe,GAAG,CAACtC,IAAI,CAAC,CAACT,IAAI,CAACsB,KAAK,CAAC,CAAC;EACtB,OAAOyB,GAAG;AACZ;AAEA,SAASC,6BAA6BA,CACpCjD,WAA2B,EAC3B6C,mBAA4B,EAC5B5C,IAAa,EACN;EACP,MAAM;IAAE+B,KAAK;IAAEK;EAAK,CAAC,GAAGH,iBAAiB,CAAClC,WAAW,EAAEC,IAAI,CAAC;EAE5D,MAAMiD,QAAmB,GAAGb,IAAI,CAC7Bc,KAAK,CAAC,CAAC,CACPC,OAAO,CAAC,CAAC,CACTC,GAAG,CAAEhF,CAAC,IAAK;IACV,IAAIA,CAAC,CAACiE,IAAI,KAAK,GAAG,EAAE;MAClB,OAAO;QAAEA,IAAI,EAAE,GAAG;QAAEN,KAAK,EAAE3D,CAAC,CAAC4D,GAAG;QAAEA,GAAG,EAAE5D,CAAC,CAAC2D,KAAK;QAAEO,SAAS,EAAE;MAAM,CAAC;IACpE;IACA,IAAIlE,CAAC,CAACiE,IAAI,KAAK,GAAG,EAAE;MAClB,OAAO;QACLA,IAAI,EAAE,GAAG;QACTN,KAAK,EAAE3D,CAAC,CAAC4D,GAAG;QACZO,IAAI,EAAEnE,CAAC,CAACmE,IAAI;QACZP,GAAG,EAAE5D,CAAC,CAAC2D,KAAK;QACZO,SAAS,EAAE;MACb,CAAC;IACH;IACA,OAAO;MACLD,IAAI,EAAE,GAAG;MACTN,KAAK,EAAE3D,CAAC,CAAC4D,GAAG;MACZQ,EAAE,EAAEpE,CAAC,CAACqE,EAAE;MACRA,EAAE,EAAErE,CAAC,CAACoE,EAAE;MACRR,GAAG,EAAE5D,CAAC,CAAC2D,KAAK;MACZO,SAAS,EAAE;IACb,CAAC;EACH,CAAC,CAAC;EAEJI,gBAAgB,CAACO,QAAQ,EAAElB,KAAK,EAAEa,mBAAmB,CAAC;EACtD,OAAOE,qBAAqB,CAACf,KAAK,EAAEkB,QAAQ,EAAEjD,IAAI,CAAC;AACrD;AAEA,SAASqD,0BAA0BA,CACjCtD,WAA2B,EAC3BuD,YAAmB,EACnBV,mBAA4B,EAC5B5C,IAAa,EACN;EACP,MAAM;IAAEoC;EAAK,CAAC,GAAGH,iBAAiB,CAAClC,WAAW,EAAEC,IAAI,CAAC;EAErD,IAAIuD,GAAG,GAAG,CAAC,CAAC;EACZ,KAAK,IAAI9D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2C,IAAI,CAAC5C,MAAM,EAAEC,CAAC,EAAE,EAAE;IACpC,IAAIR,IAAI,CAACmD,IAAI,CAAC3C,CAAC,CAAC,CAAEsC,KAAK,EAAEuB,YAAY,CAAC,EAAE;MACtCC,GAAG,GAAG9D,CAAC;MACP;IACF;EACF;EACA,IAAI8D,GAAG,KAAK,CAAC,CAAC,EAAE;IACd,KAAK,IAAI9D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2C,IAAI,CAAC5C,MAAM,EAAEC,CAAC,EAAE,EAAE;MACpC,IAAIR,IAAI,CAACmD,IAAI,CAAC3C,CAAC,CAAC,CAAEuC,GAAG,EAAEsB,YAAY,CAAC,EAAE;QACpCC,GAAG,GAAG,CAAC9D,CAAC,GAAG,CAAC,IAAI2C,IAAI,CAAC5C,MAAM;QAC3B;MACF;IACF;EACF;EACA,IAAI+D,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAGxD,WAAW,CAAC;EAEvC,MAAMyD,OAAO,GAAGpB,IAAI,CAACc,KAAK,CAACK,GAAG,CAAC,CAACE,MAAM,CAACrB,IAAI,CAACc,KAAK,CAAC,CAAC,EAAEK,GAAG,CAAC,CAAC;EAC1Db,gBAAgB,CAACc,OAAO,EAAEF,YAAY,EAAEV,mBAAmB,CAAC;EAC5D,OAAOE,qBAAqB,CAACQ,YAAY,EAAEE,OAAO,EAAExD,IAAI,CAAC;AAC3D;AAEA,SAAS0D,gBAAgBA,CACvBlC,IAAoB,EACpBxB,IAAa,EACa;EAC1B,MAAM+C,GAA6B,GAAG,EAAE;EACxC,KAAK,MAAMrC,GAAG,IAAIc,IAAI,EAAE;IACtB,MAAMb,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAE;IACjB,IAAIC,CAAC,KAAKX,IAAI,CAACY,IAAI,EAAEmC,GAAG,CAACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,KACpD,IAAIC,CAAC,KAAKX,IAAI,CAACa,IAAI,EAAEkC,GAAG,CAACtC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAACC,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,KACzD,IAAIC,CAAC,KAAKX,IAAI,CAACc,IAAI,EACtBiC,GAAG,CAACtC,IAAI,CAAC,CACP,CAAC,EACD,CACE,CAACC,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE,EAClB,CAACA,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE,CACnB,CACF,CAAC,CAAC,KACA,IAAIC,CAAC,KAAKX,IAAI,CAACmB,KAAK,EACvB4B,GAAG,CAACtC,IAAI,CAAC,CACP,CAAC,EACD,CACE,CAACC,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE,EAClB,CAACA,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE,EAClB,CAACA,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAC,CAAE,CACnB,CACF,CAAC,CAAC,KACA,IAAIC,CAAC,KAAKX,IAAI,CAACsB,KAAK,EAAEyB,GAAG,CAACtC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KACxC,MAAM,IAAIkD,KAAK,CAAC,4BAA4BhD,CAAC,EAAE,CAAC;EACvD;EACA,OAAOoC,GAAG;AACZ;AAEA,SAASa,QAAQA,CAACC,WAA6B,EAAe;EAC5D,OAAO;IAAE7E,CAAC,EAAE6E,WAAW;IAAEC,IAAI,EAAE;MAAEC,KAAK,EAAE;IAAG;EAAE,CAAC;AAChD;AAEA,SAASC,SAASA,CAACC,CAAc,EAAEC,OAAsB,EAAe;EACtE,MAAMC,EAAE,GAAGD,OAAO,CAACE,OAAO,CAACH,CAAC,CAACjF,CAAC,CAAC;EAC/B,MAAM+D,GAAG,GAAGa,QAAQ,CAACO,EAAE,CAAC;EACxBpB,GAAG,CAACe,IAAI,CAACC,KAAK,GAAGE,CAAC,CAACH,IAAI,EAAEC,KAAK,GAAGE,CAAC,CAACH,IAAI,CAACC,KAAK,CAACX,GAAG,CAAEjF,CAAC,IAAK,CAACA,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;EAC3E,OAAO4E,GAAG;AACZ;AAEA,SAASsB,UAAUA,CACjBC,MAAoC,EACpCC,MAAoC,EAC3B;EACT,MAAMxB,GAAY,GAAG,EAAE;EACvB,MAAMyB,UAAU,GAAIC,EAAS,IAAK;IAChC,KAAK,MAAMC,QAAQ,IAAI3B,GAAG,EAAE;MAC1B,IAAI9D,IAAI,CAACyF,QAAQ,EAAED,EAAE,CAAC,EAAE;IAC1B;IACA1B,GAAG,CAACtC,IAAI,CAACgE,EAAE,CAAC;EACd,CAAC;EACD,KAAK,MAAMtG,CAAC,IAAImG,MAAM,IAAI,EAAE,EAAEE,UAAU,CAACzF,MAAM,CAACZ,CAAC,CAAC,CAAC;EACnD,KAAK,MAAMA,CAAC,IAAIoG,MAAM,IAAI,EAAE,EAAEC,UAAU,CAACzF,MAAM,CAACZ,CAAC,CAAC,CAAC;EACnD,OAAO4E,GAAG;AACZ;AAEA,SAAS4B,iBAAiBA,CACxB5E,WAA2B,EAC3BC,IAAa,EACC;EACd,IAAI4E,IAAkB,GAAG,IAAI;EAC7B,KAAK,MAAMlE,GAAG,IAAIX,WAAW,EAAE;IAC7B,MAAMY,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAE;IACjB,MAAMH,GAAG,GAAGA,CAACtC,CAAS,EAAEuC,CAAS,KAAK;MACpC,MAAMxB,CAAQ,GAAG,CAACf,CAAC,EAAEuC,CAAC,CAAC;MACvB,IAAI,CAACoE,IAAI,EAAE;QACTA,IAAI,GAAG5F,CAAC;QACR;MACF;MACA,IAAIA,CAAC,CAAC,CAAC,CAAC,GAAG4F,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,EAAEA,IAAI,GAAG5F,CAAC,CAAC,KAC/B,IAAIR,IAAI,CAACI,GAAG,CAACI,CAAC,CAAC,CAAC,CAAC,GAAG4F,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI5F,CAAC,CAAC,CAAC,CAAC,GAAG4F,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,EAC/DA,IAAI,GAAG5F,CAAC;IACZ,CAAC;IAED,IAAI2B,CAAC,KAAKX,IAAI,CAACY,IAAI,EAAEL,GAAG,CAACG,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,KACtC,IAAIC,CAAC,KAAKX,IAAI,CAACa,IAAI,EAAEN,GAAG,CAACG,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,KAC3C,IAAIC,CAAC,KAAKX,IAAI,CAACc,IAAI,EAAEP,GAAG,CAACG,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC,KAC3C,IAAIC,CAAC,KAAKX,IAAI,CAACmB,KAAK,EAAEZ,GAAG,CAACG,GAAG,CAAC,CAAC,CAAC,EAAGA,GAAG,CAAC,CAAC,CAAE,CAAC;EAClD;EACA,OAAOkE,IAAI;AACb;;AAGA;AACA;AACA;;AAEA,SAASC,YAAYA,CAACX,OAAsB,EAAW;EACrD,OAAO;IACLtD,IAAI,EAAEsD,OAAO,CAACY,SAAS,IAAI,CAAC;IAC5BjE,IAAI,EAAEqD,OAAO,CAACa,SAAS,IAAI,CAAC;IAC5BjE,IAAI,EAAEoD,OAAO,CAACc,SAAS,IAAI,CAAC;IAC5BC,KAAK,EAAEf,OAAO,CAACgB,UAAU,IAAI,CAAC;IAC9B/D,KAAK,EAAE+C,OAAO,CAACiB,UAAU,IAAI,CAAC;IAC9B7D,KAAK,EAAE4C,OAAO,CAACkB,UAAU,IAAI;EAC/B,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CACxBtF,WAA2B,EAC3BuF,CAAU,EACVrF,KAAK,GAAG,CAAC,EACA;EACT,IAAIC,EAAE,GAAG,CAAC;IACRC,EAAE,GAAG,CAAC;EACR,IAAIC,EAAE,GAAG,CAAC;IACRC,EAAE,GAAG,CAAC;EACR,MAAMC,GAAY,GAAG,EAAE;EAEvB,KAAK,MAAMI,GAAG,IAAIX,WAAW,EAAE;IAC7B,MAAMY,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAE;IACjB,IAAIC,CAAC,KAAK2E,CAAC,CAAC1E,IAAI,EAAE;MAChBV,EAAE,GAAGQ,GAAG,CAAC,CAAC,CAAE;MACZP,EAAE,GAAGO,GAAG,CAAC,CAAC,CAAE;MACZN,EAAE,GAAGF,EAAE;MACPG,EAAE,GAAGF,EAAE;MACPG,GAAG,CAACG,IAAI,CAAC,CAACP,EAAE,EAAEC,EAAE,CAAC,CAAC;IACpB,CAAC,MAAM,IAAIQ,CAAC,KAAK2E,CAAC,CAACzE,IAAI,EAAE;MACvBX,EAAE,GAAGQ,GAAG,CAAC,CAAC,CAAE;MACZP,EAAE,GAAGO,GAAG,CAAC,CAAC,CAAE;MACZJ,GAAG,CAACG,IAAI,CAAC,CAACP,EAAE,EAAEC,EAAE,CAAC,CAAC;IACpB,CAAC,MAAM,IAAIQ,CAAC,KAAK2E,CAAC,CAACxE,IAAI,EAAE;MACvB,MAAMC,EAAE,GAAGb,EAAE;QACXc,EAAE,GAAGb,EAAE;MACT,MAAMT,EAAE,GAAGgB,GAAG,CAAC,CAAC,CAAE;QAChBf,EAAE,GAAGe,GAAG,CAAC,CAAC,CAAE;MACd,MAAMd,EAAE,GAAGc,GAAG,CAAC,CAAC,CAAE;QAChBb,EAAE,GAAGa,GAAG,CAAC,CAAC,CAAE;MACd,KAAK,IAAIjB,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIQ,KAAK,EAAER,CAAC,EAAE,EAAE;QAC/B,MAAMwB,CAAC,GAAGxB,CAAC,GAAGQ,KAAK;QACnB,MAAMiB,EAAE,GAAG,CAAC,GAAGD,CAAC;QAChBX,GAAG,CAACG,IAAI,CAAC,CAACS,EAAE,GAAGA,EAAE,GAAGH,EAAE,GAAG,CAAC,GAAGG,EAAE,GAAGD,CAAC,GAAGvB,EAAE,GAAGuB,CAAC,GAAGA,CAAC,GAAGrB,EAAE,EAAEsB,EAAE,GAAGA,EAAE,GAAGF,EAAE,GAAG,CAAC,GAAGE,EAAE,GAAGD,CAAC,GAAGtB,EAAE,GAAGsB,CAAC,GAAGA,CAAC,GAAGpB,EAAE,CAAC,CAAC;MACtG;MACAK,EAAE,GAAGN,EAAE;MACPO,EAAE,GAAGN,EAAE;IACT,CAAC,MAAM,IAAIc,CAAC,KAAK2E,CAAC,CAACnE,KAAK,EAAE;MACxB,MAAMJ,EAAE,GAAGb,EAAE;QACXc,EAAE,GAAGb,EAAE;MACT,MAAMT,EAAE,GAAGgB,GAAG,CAAC,CAAC,CAAE;QAChBf,EAAE,GAAGe,GAAG,CAAC,CAAC,CAAE;MACd,MAAMd,EAAE,GAAGc,GAAG,CAAC,CAAC,CAAE;QAChBb,EAAE,GAAGa,GAAG,CAAC,CAAC,CAAE;MACd,MAAMU,EAAE,GAAGV,GAAG,CAAC,CAAC,CAAE;QAChBW,EAAE,GAAGX,GAAG,CAAC,CAAC,CAAE;MACd,KAAK,IAAIjB,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIQ,KAAK,EAAER,CAAC,EAAE,EAAE;QAC/B,MAAMwB,CAAC,GAAGxB,CAAC,GAAGQ,KAAK;QACnB,MAAMiB,EAAE,GAAG,CAAC,GAAGD,CAAC;QAChBX,GAAG,CAACG,IAAI,CAAC,CACPS,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGH,EAAE,GAAG,CAAC,GAAGG,EAAE,GAAGA,EAAE,GAAGD,CAAC,GAAGvB,EAAE,GAAG,CAAC,GAAGwB,EAAE,GAAGD,CAAC,GAAGA,CAAC,GAAGrB,EAAE,GAAGqB,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAGG,EAAE,EAC/EF,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGF,EAAE,GAAG,CAAC,GAAGE,EAAE,GAAGA,EAAE,GAAGD,CAAC,GAAGtB,EAAE,GAAG,CAAC,GAAGuB,EAAE,GAAGD,CAAC,GAAGA,CAAC,GAAGpB,EAAE,GAAGoB,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAGI,EAAE,CAChF,CAAC;MACJ;MACAnB,EAAE,GAAGkB,EAAE;MACPjB,EAAE,GAAGkB,EAAE;IACT,CAAC,MAAM,IAAIV,CAAC,KAAK2E,CAAC,CAAChE,KAAK,EAAE;MACxB,IAAIpB,EAAE,KAAKE,EAAE,IAAID,EAAE,KAAKE,EAAE,EAAEC,GAAG,CAACG,IAAI,CAAC,CAACL,EAAE,EAAEC,EAAE,CAAC,CAAC;MAC9CH,EAAE,GAAGE,EAAE;MACPD,EAAE,GAAGE,EAAE;IACT;EACF;EACA,OAAOC,GAAG;AACZ;;AAEA;AACA;AACA;AACA,SAASiF,cAAcA,CAACC,EAAU,EAAEC,EAAU,EAAEC,IAAa,EAAW;EACtE,IAAIC,MAAM,GAAG,KAAK;EAClB,KAAK,IAAIlG,CAAC,GAAG,CAAC,EAAEmG,CAAC,GAAGF,IAAI,CAAClG,MAAM,GAAG,CAAC,EAAEC,CAAC,GAAGiG,IAAI,CAAClG,MAAM,EAAEoG,CAAC,GAAGnG,CAAC,EAAE,EAAE;IAC7D,MAAM,CAACoG,EAAE,EAAEC,EAAE,CAAC,GAAGJ,IAAI,CAACjG,CAAC,CAAE;IACzB,MAAM,CAACsG,EAAE,EAAEC,EAAE,CAAC,GAAGN,IAAI,CAACE,CAAC,CAAE;IACzB,IACEE,EAAE,GAAGL,EAAE,KAAKO,EAAE,GAAGP,EAAE,IACnBD,EAAE,GAAI,CAACO,EAAE,GAAGF,EAAE,KAAKJ,EAAE,GAAGK,EAAE,CAAC,IAAKE,EAAE,GAAGF,EAAE,CAAC,GAAGD,EAAE,EAC7C;MACAF,MAAM,GAAG,CAACA,MAAM;IAClB;EACF;EACA,OAAOA,MAAM;AACf;;AAEA;AACA;AACA;AACA,SAASM,qBAAqBA,CAAClG,WAA2B,EAAEuF,CAAU,EAAgB;EACpF,IAAIpF,EAAE,GAAG,CAAC;IACRC,EAAE,GAAG,CAAC;EACR,KAAK,MAAMO,GAAG,IAAIX,WAAW,EAAE;IAC7B,MAAMY,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAE;IACjB,IAAIC,CAAC,KAAK2E,CAAC,CAAC1E,IAAI,EAAE;MAChBV,EAAE,GAAGQ,GAAG,CAAC,CAAC,CAAE;MACZP,EAAE,GAAGO,GAAG,CAAC,CAAC,CAAE;IACd,CAAC,MAAM,IAAIC,CAAC,KAAK2E,CAAC,CAACzE,IAAI,EAAE;MACvB,OAAO,CAAC,CAACX,EAAE,GAAGQ,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,EAAE,CAACP,EAAE,GAAGO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC;IACjD,CAAC,MAAM,IAAIC,CAAC,KAAK2E,CAAC,CAACxE,IAAI,EAAE;MACvB,MAAMG,CAAC,GAAG,GAAG;QACXC,EAAE,GAAG,GAAG;MACV,OAAO,CACLA,EAAE,GAAGA,EAAE,GAAGhB,EAAE,GAAG,CAAC,GAAGgB,EAAE,GAAGD,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAE,GAAGO,CAAC,GAAGA,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAE,EACrDQ,EAAE,GAAGA,EAAE,GAAGf,EAAE,GAAG,CAAC,GAAGe,EAAE,GAAGD,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAE,GAAGO,CAAC,GAAGA,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAE,CACtD;IACH,CAAC,MAAM,IAAIC,CAAC,KAAK2E,CAAC,CAACnE,KAAK,EAAE;MACxB,MAAMF,CAAC,GAAG,GAAG;QACXC,EAAE,GAAG,GAAG;MACV,OAAO,CACLA,EAAE,IAAI,CAAC,GAAGhB,EAAE,GAAG,CAAC,GAAGgB,EAAE,IAAI,CAAC,GAAGD,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAE,GAAG,CAAC,GAAGQ,EAAE,GAAGD,CAAC,IAAI,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAE,GAAGO,CAAC,IAAI,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAE,EACvFQ,EAAE,IAAI,CAAC,GAAGf,EAAE,GAAG,CAAC,GAAGe,EAAE,IAAI,CAAC,GAAGD,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAE,GAAG,CAAC,GAAGQ,EAAE,GAAGD,CAAC,IAAI,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAE,GAAGO,CAAC,IAAI,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAE,CACxF;IACH;EACF;EACA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA,SAASwF,uBAAuBA,CAC9BC,WAA+E,EAC/Eb,CAAU,EACJ;EACN,MAAMc,CAAC,GAAGD,WAAW,CAAC3G,MAAM;EAC5B,IAAI4G,CAAC,KAAK,CAAC,EAAE;EAEb,MAAMC,SAAS,GAAGF,WAAW,CAAC/C,GAAG,CAAEkD,GAAG,IAAKjB,iBAAiB,CAACiB,GAAG,CAAC9E,IAAI,EAAE8D,CAAC,CAAC,CAAC;EAC1E,MAAMiB,SAAS,GAAGJ,WAAW,CAAC/C,GAAG,CAAEkD,GAAG,IAAKL,qBAAqB,CAACK,GAAG,CAAC9E,IAAI,EAAE8D,CAAC,CAAC,CAAC;EAC9E,MAAMkB,MAAM,GAAG,IAAIC,KAAK,CAASL,CAAC,CAAC,CAACM,IAAI,CAAC,CAAC,CAAC;EAE3C,KAAK,IAAIjH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2G,CAAC,EAAE3G,CAAC,EAAE,EAAE;IAC1B,MAAMgF,EAAE,GAAG8B,SAAS,CAAC9G,CAAC,CAAC;IACvB,IAAI,CAACgF,EAAE,EAAE;IACT,KAAK,IAAImB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGQ,CAAC,EAAER,CAAC,EAAE,EAAE;MAC1B,IAAInG,CAAC,KAAKmG,CAAC,EAAE;MACb,IAAIL,cAAc,CAACd,EAAE,CAAC,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE4B,SAAS,CAACT,CAAC,CAAE,CAAC,EAAE;QAC/CY,MAAM,CAAC/G,CAAC,CAAC,GAAG,CAAC+G,MAAM,CAAC/G,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;MAClC;IACF;EACF;EAEA,MAAMkH,YAAY,GAAGA,CACnBL,GAAkD,EAClDM,OAAgB,KACb;IACH,MAAM1H,CAAC,GAAGY,+BAA+B,CAACwG,GAAG,CAAC9E,IAAI,EAAE8D,CAAC,CAAC;IACtD,MAAMuB,KAAK,GAAG3H,CAAC,GAAG,CAAC;IACnB,IAAI0H,OAAO,KAAKC,KAAK,EAAE;MACrBP,GAAG,CAAC9E,IAAI,GAAGwB,6BAA6B,CAACsD,GAAG,CAAC9E,IAAI,EAAE8E,GAAG,CAAC1D,mBAAmB,EAAE0C,CAAC,CAAC;IAChF;EACF,CAAC;EAED,KAAK,IAAI7F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2G,CAAC,EAAE3G,CAAC,EAAE,EAAE;IAC1BkH,YAAY,CAACR,WAAW,CAAC1G,CAAC,CAAC,EAAG+G,MAAM,CAAC/G,CAAC,CAAC,GAAI,CAAC,KAAK,CAAC,CAAC;EACrD;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASqH,uBAAuBA,CACrC5C,OAAsB,EACtB6C,CAAS,EACD;EACR,MAAMzB,CAAC,GAAGT,YAAY,CAACX,OAAO,CAAC;;EAE/B;EACA,MAAMlF,CAAC,GAAGkF,OAAO,CAAC8C,aAAa,CAACD,CAAC,CAAC;EAClC,IAAI,CAAC/H,CAAC,EAAE,OAAO+H,CAAC;EAEhB,MAAME,YAAY,GAChB/C,OAAO,EAAEgD,QAAQ,EAAEC,OAAO,IAAIjD,OAAO,EAAEgD,QAAQ,EAAEE,QAAQ,IAAI,CAAC;EAChEpI,CAAC,CAACqI,WAAW,CAACJ,YAAY,CAAC;EAC3BjI,CAAC,CAACsI,QAAQ,CAAC,CAAC;;EAEZ;EACA,MAAMC,UAAU,GAAGvI,CAAC,CAACwI,WAAW,CAAC,CAAC;EAClCxI,CAAC,CAACyI,MAAM,GAAG,CAAC;EAEZ,MAAMtD,EAAE,GAAGD,OAAO,CAAC8C,aAAa,CAACO,UAAU,CAAC;EAC5C,IAAI,CAACpD,EAAE,EAAE,OAAOoD,UAAU;EAE1B,MAAM/F,IAAW,GAAG2C,EAAE,CAACuD,MAAM,CAAC,CAAC;EAC/BvD,EAAE,CAACsD,MAAM,GAAG,CAAC;EAEb,IAAIjG,IAAI,CAAChC,MAAM,KAAK,CAAC,EAAE,OAAO+H,UAAU;;EAExC;EACA,MAAMpB,WAAW,GAAG5E,aAAa,CAACC,IAAI,EAAE8D,CAAC,CAAC,CAAClC,GAAG,CAAEvB,CAAC,IAAK;IACpD,MAAMe,mBAAmB,GAAGd,2BAA2B,CAACD,CAAC,EAAEyD,CAAC,CAAC;IAC7D,MAAMqC,EAAE,GAAGhG,YAAY,CAACE,CAAC,EAAEyD,CAAC,CAAC;IAC7B,MAAMpG,CAAC,GAAGY,+BAA+B,CAAC6H,EAAE,EAAErC,CAAC,CAAC;IAChD,OAAO;MAAE9D,IAAI,EAAEmG,EAAE;MAAEC,IAAI,EAAEpJ,IAAI,CAACI,GAAG,CAACM,CAAC,CAAC;MAAE0D;IAAoB,CAAC;EAC7D,CAAC,CAAC;EAEFuD,WAAW,CAAC0B,IAAI,CAAC,CAAC5J,CAAC,EAAEuC,CAAC,KAAKA,CAAC,CAACoH,IAAI,GAAG3J,CAAC,CAAC2J,IAAI,CAAC;;EAE3C;EACA1B,uBAAuB,CAACC,WAAW,EAAEb,CAAC,CAAC;;EAEvC;EACA,MAAMwC,OAAO,GAAG3B,WAAW,CAAC4B,OAAO,CAAE9J,CAAC,IAAKA,CAAC,CAACuD,IAAI,CAAC;EAClD,MAAMwG,KAAe,GAAG,EAAE;EAC1B,KAAK,MAAMtH,GAAG,IAAIoH,OAAO,EAAE;IACzB,MAAMnH,CAAC,GAAGD,GAAG,CAAC,CAAC,CAAE;IACjB,IAAIC,CAAC,KAAK2E,CAAC,CAAC1E,IAAI,EAAEoH,KAAK,CAACvH,IAAI,CAAC,IAAIzC,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI1C,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,KAClE,IAAIC,CAAC,KAAK2E,CAAC,CAACzE,IAAI,EAAEmH,KAAK,CAACvH,IAAI,CAAC,IAAIzC,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI1C,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,KACvE,IAAIC,CAAC,KAAK2E,CAAC,CAACxE,IAAI,EACnBkH,KAAK,CAACvH,IAAI,CAAC,IAAIzC,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI1C,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI1C,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI1C,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,KACxF,IAAIC,CAAC,KAAK2E,CAAC,CAACnE,KAAK,EACpB6G,KAAK,CAACvH,IAAI,CACR,IAAIzC,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI1C,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI1C,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI1C,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI1C,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI1C,MAAM,CAAC0C,GAAG,CAAC,CAAC,CAAE,CAAC,EACpH,CAAC,CAAC,KACC,IAAIC,CAAC,KAAK2E,CAAC,CAAChE,KAAK,EAAE0G,KAAK,CAACvH,IAAI,CAAC,GAAG,CAAC;EACzC;EAEA,OAAOuH,KAAK,CAACC,IAAI,CAAC,GAAG,CAAC;AACxB;;AAEA;AACA,OAAO,SAASC,mBAAmBA,CAAChE,OAAsB,EAAE;EAC1D,MAAMlE,IAAa,GAAG6E,YAAY,CAACX,OAAO,CAAC;EAE3C,MAAM+C,YAAY,GAChB/C,OAAO,EAAEgD,QAAQ,EAAEC,OAAO,IAAIjD,OAAO,EAAEgD,QAAQ,EAAEE,QAAQ,IAAI,CAAC;EAChE,MAAMe,YAAY,GAChBjE,OAAO,EAAEgD,QAAQ,EAAEkB,OAAO,IAAIlE,OAAO,EAAEgD,QAAQ,EAAEmB,OAAO,IAAI,CAAC;EAE/D,SAASC,mBAAmBA,CAACrE,CAAc,EAAS;IAClD,MAAMsE,GAAG,GAAGtE,CAAC,CAACjF,CAAC,CAACwI,WAAW,CAAC,CAAC;IAC7B,MAAMrD,EAAE,GAAGD,OAAO,CAAC8C,aAAa,CAACuB,GAAG,CAAC;IACrC,MAAM/G,IAAI,GAAG2C,EAAE,GAAGA,EAAE,CAACuD,MAAM,CAAC,CAAC,GAAG,EAAE;IAClC,IAAIvD,EAAE,EAAEA,EAAE,CAACsD,MAAM,GAAG,CAAC;IACrB,OAAOjG,IAAI;EACb;EAEA,SAASgH,2BAA2BA,CAClChH,IAAW,EACXyC,CAAc,EACdwE,qBAAqB,GAAG,KAAK,EACtB;IACP,MAAM1E,KAAK,GAAG,CAACE,CAAC,CAACH,IAAI,EAAEC,KAAK,IAAI,EAAE,EAAEX,GAAG,CAAEjF,CAAC,IAAKY,MAAM,CAAC,CAACZ,CAAC,CAAC,CAAC,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAMuK,IAAI,GAAG,IAAIjC,KAAK,CAAC1C,KAAK,CAACvE,MAAM,CAAC,CAACkH,IAAI,CAAC,KAAK,CAAC;;IAEhD;IACA,MAAMP,WAAW,GAAG5E,aAAa,CAACC,IAAI,EAAExB,IAAI,CAAC,CAACoD,GAAG,CAAEvB,CAAC,IAAK;MACvD,MAAMe,mBAAmB,GAAGd,2BAA2B,CAACD,CAAC,EAAE7B,IAAI,CAAC;MAChE,MAAM2H,EAAE,GAAGhG,YAAY,CAACE,CAAC,EAAE7B,IAAI,CAAC;MAChC,MAAMd,CAAC,GAAGY,+BAA+B,CAAC6H,EAAE,EAAE3H,IAAI,CAAC,CAAC,CAAC;MACrD,OAAO;QAAEwB,IAAI,EAAEmG,EAAE;QAAEC,IAAI,EAAEpJ,IAAI,CAACI,GAAG,CAACM,CAAC,CAAC;QAAE0D;MAAoB,CAAC;IAC7D,CAAC,CAAC;;IAEF;IACAuD,WAAW,CAAC0B,IAAI,CAAC,CAAC5J,CAAC,EAAEuC,CAAC,KAAKA,CAAC,CAACoH,IAAI,GAAG3J,CAAC,CAAC2J,IAAI,CAAC;;IAE3C;IACA;IACA1B,uBAAuB,CAACC,WAAW,EAAEnG,IAAI,CAAC;;IAE1C;IACA;IACA;IACA,KAAK,MAAMsG,GAAG,IAAIH,WAAW,EAAE;MAC7B,IAAIwB,EAAE,GAAGrB,GAAG,CAAC9E,IAAI;MAEjB,KAAK,IAAI/B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGsE,KAAK,CAACvE,MAAM,EAAEC,CAAC,EAAE,EAAE;QACrC,IAAIiJ,IAAI,CAACjJ,CAAC,CAAC,EAAE;QACb,MAAMkJ,MAAM,GAAG5E,KAAK,CAACtE,CAAC,CAAE;QACxB,MAAM;UAAE2C;QAAK,CAAC,GAAGH,iBAAiB,CAAC0F,EAAE,EAAE3H,IAAI,CAAC;QAC5C,MAAM4I,KAAK,GAAGxG,IAAI,CAACR,IAAI,CACpBxD,CAAC,IAAKa,IAAI,CAACb,CAAC,CAAC2D,KAAK,EAAE4G,MAAM,CAAC,IAAI1J,IAAI,CAACb,CAAC,CAAC4D,GAAG,EAAE2G,MAAM,CACpD,CAAC;QACD,IAAIC,KAAK,EAAE;UACTF,IAAI,CAACjJ,CAAC,CAAC,GAAG,IAAI;UACdkI,EAAE,GAAGtE,0BAA0B,CAC7BsE,EAAE,EACFgB,MAAM,EACNrC,GAAG,CAAC1D,mBAAmB,EACvB5C,IACF,CAAC;UACD;QACF;MACF;;MAEA;MACA,IAAIyI,qBAAqB,EAAE;QACzB,MAAM7D,IAAI,GAAGD,iBAAiB,CAACgD,EAAE,EAAE3H,IAAI,CAAC;QACxC,IAAI4E,IAAI,EAAE;UACR+C,EAAE,GAAGtE,0BAA0B,CAC7BsE,EAAE,EACF/C,IAAI,EACJ0B,GAAG,CAAC1D,mBAAmB,EACvB5C,IACF,CAAC;QACH;MACF;MAEAsG,GAAG,CAAC9E,IAAI,GAAGmG,EAAE;IACf;IAEA,OAAOxB,WAAW,CAAC4B,OAAO,CAAE9J,CAAC,IAAKA,CAAC,CAACuD,IAAI,CAAC;EAC3C;EAEA,OAAO;IACLqH,WAAWA,CAACC,WAAmB,EAAe;MAC5C,MAAM9J,CAAC,GAAGkF,OAAO,CAACE,OAAO,CAAC,CAAC;MAC3BpF,CAAC,CAACqI,WAAW,CAACyB,WAAW,KAAK,CAAC,GAAG7B,YAAY,GAAGkB,YAAY,CAAC;MAC9D,OAAOvE,QAAQ,CAAC5E,CAAC,CAAC;IACpB,CAAC;IAED+J,UAAUA,CAAC9E,CAAc,EAAe;MACtC,OAAOD,SAAS,CAACC,CAAC,EAAEC,OAAO,CAAC;IAC9B,CAAC;IAED8E,WAAWA,CAAC/E,CAAc,EAAQ;MAChCA,CAAC,EAAEjF,CAAC,EAAEyI,MAAM,GAAG,CAAC;IAClB,CAAC;IAEDwB,aAAaA,CAAChF,CAAc,EAAU;MACpC,MAAMiF,EAAE,GAAGjF,CAAC,CAACjF,CAAC,CAACmK,WAAW,GAAG,CAAC;MAC9B,OAAOD,EAAE,KAAKjC,YAAY,GAAG,CAAC,GAAG,CAAC;IACpC,CAAC;IAEDmC,aAAaA,CAACnF,CAAc,EAAE6E,WAAmB,EAAQ;MACvD7E,CAAC,CAACjF,CAAC,CAACqI,WAAW,CAACyB,WAAW,KAAK,CAAC,GAAG7B,YAAY,GAAGkB,YAAY,CAAC;MAChE,OAAO,IAAI;IACb,CAAC;IAEDkB,OAAOA,CAACpF,CAAc,EAAEhG,CAAS,EAAEuC,CAAS,EAAQ;MAClDyD,CAAC,CAACjF,CAAC,CAACsK,MAAM,CAACrL,CAAC,EAAEuC,CAAC,CAAC;MAChByD,CAAC,CAACH,IAAI,CAACC,KAAK,CAACtD,IAAI,CAAC1B,MAAM,CAAC,CAACd,CAAC,EAAEuC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED+I,OAAOA,CAACtF,CAAc,EAAEhG,CAAS,EAAEuC,CAAS,EAAQ;MAClDyD,CAAC,CAACjF,CAAC,CAACwK,MAAM,CAACvL,CAAC,EAAEuC,CAAC,CAAC;IAClB,CAAC;IAEDiJ,OAAOA,CACLxF,CAAc,EACdvE,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,EAAU,EACJ;MACNoE,CAAC,CAACjF,CAAC,CAAC0K,MAAM,CAAChK,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,CAAC;IAC5B,CAAC;IAED8J,QAAQA,CACN1F,CAAc,EACdvE,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,EAAU,EACVuB,EAAU,EACVC,EAAU,EACJ;MACN4C,CAAC,CAACjF,CAAC,CAAC4K,OAAO,CAAClK,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEuB,EAAE,EAAEC,EAAE,CAAC;IACrC,CAAC;IAEDwI,KAAKA,CAAC5F,CAAc,EAAQ;MAC1BA,CAAC,CAACjF,CAAC,CAAC6K,KAAK,CAAC,CAAC;IACb,CAAC;IAEDvC,QAAQA,CAACrD,CAAc,EAAE6F,UAAU,GAAG,KAAK,EAAW;MACpD,IAAI;QACF;QACA7F,CAAC,CAACjF,CAAC,CAACsI,QAAQ,CAAC,CAAC;;QAEd;QACA,MAAMiB,GAAG,GAAGtE,CAAC,CAACjF,CAAC,CAACwI,WAAW,CAAC,CAAC;QAC7B,MAAMrD,EAAE,GAAGD,OAAO,CAAC8C,aAAa,CAACuB,GAAG,CAAC;QACrC,IAAIpE,EAAE,EAAE;UACN;UACAF,CAAC,CAACjF,CAAC,CAACyI,MAAM,GAAG,CAAC;UACdxD,CAAC,CAACjF,CAAC,GAAGmF,EAAE;QACV;QAEA,IAAI2F,UAAU,EAAE7F,CAAC,CAACjF,CAAC,CAACqI,WAAW,CAACc,YAAY,CAAC;QAC7C,OAAO,IAAI;MACb,CAAC,CAAC,MAAM;QACN,OAAO,KAAK;MACd;IACF,CAAC;IAED4B,MAAMA,CACJ9F,CAAc,EACd+F,KAAa,EACbC,MAAc,EACdC,OAAe,EACfC,UAAkB,EAClBC,SAAkB,EAClBC,UAAkB,EACL;MACb,MAAMC,IAAI,GAAGpG,OAAO,CAACqG,SAAS,IAAI,CAAC,CAAC;MACpC,MAAMC,KAAK,GAAGtG,OAAO,CAACuG,UAAU,IAAI,CAAC,CAAC;MAEtC,MAAMC,GAAG,GACPT,MAAM,KAAK,CAAC,GACRK,IAAI,CAACK,KAAK,IAAI,CAAC,GACfV,MAAM,KAAK,CAAC,GACZK,IAAI,CAACM,MAAM,IAAI,CAAC,GAChBN,IAAI,CAACO,IAAI,IAAI,CAAC;MAEpB,MAAM5C,IAAI,GACRiC,OAAO,KAAK,CAAC,GACTM,KAAK,CAACG,KAAK,IAAI,CAAC,GAChBT,OAAO,KAAK,CAAC,GACbM,KAAK,CAACM,KAAK,IAAI,CAAC,GAChBN,KAAK,CAACO,KAAK,IAAI,CAAC;MAEtB,MAAMC,IAAI,GAAG9G,OAAO,CAACE,OAAO,CAACH,CAAC,CAACjF,CAAC,CAAC;MAEjC,IAAI;QACF,IACEyH,KAAK,CAACwE,OAAO,CAACb,SAAS,CAAC,IACxBA,SAAS,CAAC5K,MAAM,KAAK,CAAC,IACtB,OAAOwL,IAAI,CAACE,IAAI,KAAK,UAAU,EAC/B;UACAF,IAAI,CAACE,IAAI,CACP7M,MAAM,CAAC+L,SAAS,CAAC,CAAC,CAAC,CAAC,EACpB/L,MAAM,CAAC+L,SAAS,CAAC,CAAC,CAAC,CAAC,EACpBC,UAAU,IAAI,CAChB,CAAC;QACH;QAEA,IAAIc,OAAO,GAAGH,IAAI,CAACjB,MAAM,CAAC;UACxBC,KAAK;UACLU,GAAG;UACHzC,IAAI;UACJmD,WAAW,EAAEjB;QACf,CAAC,CAAC;QACF,IAAI,CAACgB,OAAO,IAAI,OAAOA,OAAO,CAACzD,MAAM,KAAK,UAAU,EAAEyD,OAAO,GAAGH,IAAI;QAEpE,IAAIG,OAAO,KAAKH,IAAI,EAAEA,IAAI,CAACvD,MAAM,GAAG,CAAC;QAErC,MAAM4D,OAAO,GAAGzH,QAAQ,CAACuH,OAAO,CAAC;QACjCE,OAAO,CAACvH,IAAI,CAACC,KAAK,GAAG,EAAE;QACvB,OAAOsH,OAAO;MAChB,CAAC,CAAC,MAAM;QACN,MAAMA,OAAO,GAAGzH,QAAQ,CAACoH,IAAI,CAAC;QAC9BK,OAAO,CAACvH,IAAI,CAACC,KAAK,GAAG,EAAE;QACvB,OAAOsH,OAAO;MAChB;IACF,CAAC;IAEDC,uBAAuBA,CAACC,EAAe,EAAEC,IAAY,EAAQ;MAC3D;IAAA,CACD;IAEDC,SAASA,CACPxH,CAAc,EACd/E,CAAS,EACTC,CAAS,EACT0C,CAAS,EACTkF,CAAS,EACT2E,CAAS,EACTC,CAAS,EACI;MACb,MAAM3M,CAAC,GAAGkF,OAAO,CAACE,OAAO,CAACH,CAAC,CAACjF,CAAC,CAAC;MAC9BA,CAAC,CAACyM,SAAS,CAACvM,CAAC,EAAE2C,CAAC,EAAE6J,CAAC,EAAEvM,CAAC,EAAE4H,CAAC,EAAE4E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAEtC,MAAMN,OAAO,GAAGzH,QAAQ,CAAC5E,CAAC,CAAC;MAC3BqM,OAAO,CAACvH,IAAI,CAACC,KAAK,GAAG,CAACE,CAAC,CAACH,IAAI,EAAEC,KAAK,IAAI,EAAE,EAAEX,GAAG,CAAC,CAAC,CAACnF,CAAC,EAAEuC,CAAC,CAAC,KACpDzB,MAAM,CAAC,CAACG,CAAC,GAAGjB,CAAC,GAAG4D,CAAC,GAAGrB,CAAC,GAAGkL,CAAC,EAAEvM,CAAC,GAAGlB,CAAC,GAAG8I,CAAC,GAAGvG,CAAC,GAAGmL,CAAC,CAAC,CAC/C,CAAC;MACD,OAAON,OAAO;IAChB,CAAC;IAEDO,EAAEA,CACAC,OAAoB,EACpBC,OAAoB,EACpBC,KAAa,EACO;MACpB,IAAI;QACF,MAAMC,GAAG,GAAG9H,OAAO,CAAC+H,MAAM,IAAI,CAAC,CAAC;QAChC,MAAML,EAAE,GACNG,KAAK,KAAK,CAAC,GACPC,GAAG,CAACE,SAAS,IAAI,CAAC,GAClBH,KAAK,KAAK,CAAC,GACXC,GAAG,CAACG,UAAU,IAAI,CAAC,GACnBH,GAAG,CAACI,KAAK,IAAI,CAAC;QAEpB,MAAMrJ,GAAG,GAAGmB,OAAO,CAACmI,UAAU,CAACR,OAAO,CAAC7M,CAAC,EAAE8M,OAAO,CAAC9M,CAAC,EAAE4M,EAAE,CAAC;QACxD,IAAI,CAAC7I,GAAG,EAAE,OAAO,IAAI;QAErB,MAAMsI,OAAO,GAAGzH,QAAQ,CAACb,GAAG,CAAC;QAC7BsI,OAAO,CAACvH,IAAI,CAACC,KAAK,GAAGM,UAAU,CAC7BwH,OAAO,CAAC/H,IAAI,EAAEC,KAAK,EACnB+H,OAAO,CAAChI,IAAI,EAAEC,KAChB,CAAC;QACD,OAAOsH,OAAO;MAChB,CAAC,CAAC,MAAM;QACN,OAAO,IAAI;MACb;IACF,CAAC;IAEDiB,MAAMA,CAACrI,CAAc,EAAoC;MACvD,MAAMsI,CAAC,GAAGtI,CAAC,CAACjF,CAAC,CAACwN,SAAS,CAAC,CAAC;MACzB,OAAO,CAACD,CAAC,CAACE,KAAK,EAAEF,CAAC,CAACG,IAAI,EAAEH,CAAC,CAACI,MAAM,EAAEJ,CAAC,CAACK,OAAO,CAAC;IAC/C,CAAC;IAEDC,IAAIA,CAAC5I,CAAc,EAAU;MAC3B,IAAI;QACF,MAAMzC,IAAI,GAAG8G,mBAAmB,CAACrE,CAAC,CAAC;QACnC,MAAMxC,QAAQ,GAAGF,aAAa,CAACC,IAAI,EAAExB,IAAI,CAAC;QAC1C,IAAI8M,KAAK,GAAG,CAAC;QACb,KAAK,MAAMjL,CAAC,IAAIJ,QAAQ,EAAE;UACxB,MAAMkG,EAAE,GAAGhG,YAAY,CAACE,CAAC,EAAE7B,IAAI,CAAC;UAChC8M,KAAK,IAAItO,IAAI,CAACI,GAAG,CAACkB,+BAA+B,CAAC6H,EAAE,EAAE3H,IAAI,CAAC,CAAC;QAC9D;QACA,OAAO8M,KAAK;MACd,CAAC,CAAC,MAAM;QACN,OAAO,GAAG;MACZ;IACF,CAAC;IAEDC,aAAaA,CAAC9I,CAAc,EAA4B;MACtD,MAAMzC,IAAI,GAAG8G,mBAAmB,CAACrE,CAAC,CAAC;MACnC,MAAMwE,qBAAqB,GAAG,CAACxE,CAAC,CAACH,IAAI,EAAEC,KAAK,EAAEvE,MAAM,IAAI,CAAC,MAAM,CAAC;MAChE,MAAMwN,UAAU,GAAGxE,2BAA2B,CAC5ChH,IAAI,EACJyC,CAAC,EACDwE,qBACF,CAAC;MACD,OAAO/E,gBAAgB,CAACsJ,UAAU,EAAEhN,IAAI,CAAC;IAC3C;EACF,CAAC;AACH","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":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { createJSIconSet } from "./createNanoIconsSet.shared.js";
4
4
  export { shallowEqualColor } from "./utils/shallowEqualColor.js";
5
- export function createIconSet(glyphMap) {
6
- return createJSIconSet(glyphMap);
5
+ export function createIconSet(glyphMap, font) {
6
+ return createJSIconSet(glyphMap, font);
7
7
  }
8
8
  //# sourceMappingURL=createNanoIconsSet.js.map
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["createJSIconSet","shallowEqualColor","createIconSet","glyphMap","font"],"sourceRoot":"../../src","sources":["createNanoIconsSet.tsx"],"mappings":";;AAEA,SAASA,eAAe,QAAQ,gCAA6B;AAG7D,SAASC,iBAAiB,QAAQ,8BAA2B;AAS7D,OAAO,SAASC,aAAaA,CAC3BC,QAAY,EACZC,IAAc,EACK;EACnB,OAAOJ,eAAe,CAACG,QAAQ,EAAEC,IAAI,CAAC;AACxC","ignoreList":[]}
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  import { memo, useMemo } from 'react';
4
- import { PixelRatio, UIManager, processColor } from 'react-native';
4
+ import { PixelRatio, UIManager, View, processColor } from 'react-native';
5
5
  import { shallowEqualColor } from "./utils/shallowEqualColor.js";
6
+ import { DEFAULT_ICON_SIZE, resolveGlyphEntry, createLayerColorResolver } from "./utils/glyphRuntime.js";
6
7
  import NanoIconViewNative from './specs/NanoIconViewNativeComponent';
7
- import { createJSIconSet } from "./createNanoIconsSet.shared.js";
8
+ import { createJSIconSet, warnIfLinkingMismatch } from "./createNanoIconsSet.shared.js";
9
+ import { loadDynamicFont, useDynamicFontPending } from "./loadDynamicFont.js";
8
10
  import { jsx as _jsx } from "react/jsx-runtime";
9
11
  export { shallowEqualColor };
10
- const DEFAULT_ICON_SIZE = 12;
11
12
  const HAS_NATIVE_IMPL = UIManager.hasViewManagerConfig('NanoIconView');
12
13
 
13
14
  // Shared processColor cache — avoids redundant color parsing for repeated
@@ -21,15 +22,21 @@ function cachedProcessColor(color) {
21
22
  }
22
23
  return result;
23
24
  }
24
- export function createIconSet(glyphMap) {
25
+ export function createIconSet(glyphMap, font) {
25
26
  if (!HAS_NATIVE_IMPL) {
26
- return createJSIconSet(glyphMap);
27
+ return createJSIconSet(glyphMap, font);
27
28
  }
28
29
  const fontFamilyBasename = glyphMap.m.f;
29
30
  const unitsPerEm = glyphMap.m.u;
30
- const resolveEntry = name => {
31
- return glyphMap.i[name] ?? [unitsPerEm, [[63, 'black']]];
32
- };
31
+ warnIfLinkingMismatch(fontFamilyBasename, glyphMap.m.l, font);
32
+
33
+ // dynamically linked font - register and hide icons until ready
34
+ const managed = glyphMap.m.l === 'd' && font != null;
35
+ if (managed) {
36
+ void loadDynamicFont(fontFamilyBasename, font).catch(err => {
37
+ if (__DEV__) console.warn(`[react-native-nano-icons] Failed to load dynamic font "${fontFamilyBasename}".`, err);
38
+ });
39
+ }
33
40
 
34
41
  // Pre-compute per-icon static data (codepoints, default colors) once at set creation
35
42
  // Avoids layers.map() + processColor per icon mount
@@ -60,13 +67,16 @@ export function createIconSet(glyphMap) {
60
67
  accessible,
61
68
  accessibilityLabel,
62
69
  accessibilityRole = 'image',
70
+ accessibilityElementsHidden,
71
+ importantForAccessibility,
63
72
  testID,
64
73
  ref
65
74
  }) => {
66
75
  const fontScale = allowFontScaling ? PixelRatio.getFontScale() : 1;
67
- const [adv, layers] = resolveEntry(name);
76
+ const [adv, layers] = resolveGlyphEntry(glyphMap, name);
68
77
  const scaledSize = size * fontScale;
69
78
  const width = adv / unitsPerEm * scaledSize;
79
+ const pending = useDynamicFontPending(managed, fontFamilyBasename);
70
80
  const nameStr = name;
71
81
  const codepoints = getCodepoints(nameStr, layers);
72
82
  const processedColors = useMemo(() => {
@@ -74,17 +84,28 @@ export function createIconSet(glyphMap) {
74
84
  if (color === undefined || color === null) {
75
85
  return getDefaultColors(nameStr, layers);
76
86
  }
77
- const colorArray = Array.isArray(color) ? color : [color];
78
- const lastPaletteColor = colorArray.length ? colorArray[colorArray.length - 1] : undefined;
79
- return layers.map(([, srcColor], i) => {
80
- const layerColor = colorArray[i] ?? lastPaletteColor ?? srcColor ?? 'black';
81
- return cachedProcessColor(layerColor);
82
- });
87
+ const resolveColor = createLayerColorResolver(color);
88
+ return layers.map(([, srcColor], i) => cachedProcessColor(resolveColor(i, srcColor)));
83
89
  }, [nameStr, color]);
84
90
  const nativeStyle = useMemo(() => [{
85
91
  width,
86
92
  height: scaledSize
87
93
  }, style], [scaledSize, width, style]);
94
+
95
+ // Hide-until-ready: while the dynamic font is registering, render a
96
+ // placeholder. The native view mounts only once the font is registered.
97
+ if (pending) {
98
+ return /*#__PURE__*/_jsx(View, {
99
+ ref: ref,
100
+ style: nativeStyle,
101
+ accessible: accessible,
102
+ accessibilityRole: accessibilityRole,
103
+ accessibilityLabel: accessibilityLabel ?? name,
104
+ accessibilityElementsHidden: accessibilityElementsHidden,
105
+ importantForAccessibility: importantForAccessibility,
106
+ testID: testID
107
+ });
108
+ }
88
109
  return /*#__PURE__*/_jsx(NanoIconViewNative, {
89
110
  ref: ref,
90
111
  fontFamily: fontFamilyBasename,
@@ -99,10 +120,16 @@ export function createIconSet(glyphMap) {
99
120
  accessible: accessible,
100
121
  accessibilityRole: accessibilityRole,
101
122
  accessibilityLabel: accessibilityLabel ?? name,
123
+ accessibilityElementsHidden: accessibilityElementsHidden,
124
+ importantForAccessibility: importantForAccessibility,
102
125
  testID: testID
103
126
  });
104
127
  }, (prev, next) => prev.name === next.name && prev.size === next.size && prev.allowFontScaling === next.allowFontScaling && prev.style === next.style && shallowEqualColor(prev.color, next.color));
105
128
  Icon.displayName = `NanoIcon(${fontFamilyBasename})`;
106
- return Icon;
129
+ const IconComp = Icon;
130
+ IconComp.loadFont = override => glyphMap.m.l === 'd' ? loadDynamicFont(fontFamilyBasename, override ?? font, {
131
+ force: true
132
+ }) : Promise.resolve();
133
+ return IconComp;
107
134
  }
108
135
  //# sourceMappingURL=createNanoIconsSet.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useMemo","PixelRatio","UIManager","processColor","shallowEqualColor","NanoIconViewNative","createJSIconSet","jsx","_jsx","DEFAULT_ICON_SIZE","HAS_NATIVE_IMPL","hasViewManagerConfig","processedColorCache","Map","cachedProcessColor","color","result","get","undefined","set","createIconSet","glyphMap","fontFamilyBasename","m","f","unitsPerEm","u","resolveEntry","name","i","codepointsCache","defaultColorsCache","getCodepoints","layers","cp","map","c","getDefaultColors","colors","srcColor","Icon","size","style","allowFontScaling","accessible","accessibilityLabel","accessibilityRole","testID","ref","fontScale","getFontScale","adv","scaledSize","width","nameStr","codepoints","processedColors","colorArray","Array","isArray","lastPaletteColor","length","layerColor","nativeStyle","height","fontFamily","fontSize","advanceWidth","iconWidth","iconHeight","prev","next","displayName"],"sourceRoot":"../../src","sources":["createNanoIconsSet.native.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useMemo","PixelRatio","UIManager","View","processColor","shallowEqualColor","DEFAULT_ICON_SIZE","resolveGlyphEntry","createLayerColorResolver","NanoIconViewNative","createJSIconSet","warnIfLinkingMismatch","loadDynamicFont","useDynamicFontPending","jsx","_jsx","HAS_NATIVE_IMPL","hasViewManagerConfig","processedColorCache","Map","cachedProcessColor","color","result","get","undefined","set","createIconSet","glyphMap","font","fontFamilyBasename","m","f","unitsPerEm","u","l","managed","catch","err","__DEV__","console","warn","codepointsCache","defaultColorsCache","getCodepoints","name","layers","cp","map","c","getDefaultColors","colors","srcColor","Icon","size","style","allowFontScaling","accessible","accessibilityLabel","accessibilityRole","accessibilityElementsHidden","importantForAccessibility","testID","ref","fontScale","getFontScale","adv","scaledSize","width","pending","nameStr","codepoints","processedColors","resolveColor","i","nativeStyle","height","fontFamily","fontSize","advanceWidth","iconWidth","iconHeight","prev","next","displayName","IconComp","loadFont","override","force","Promise","resolve"],"sourceRoot":"../../src","sources":["createNanoIconsSet.native.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,16 +3,48 @@
3
3
  import { memo, useMemo } from 'react';
4
4
  import { PixelRatio, Platform, Text, View } from 'react-native';
5
5
  import { shallowEqualColor } from "./utils/shallowEqualColor.js";
6
+ import { DEFAULT_ICON_SIZE, resolveGlyphEntry, createCharCache, createLayerColorResolver } from "./utils/glyphRuntime.js";
7
+ import { loadDynamicFont, useDynamicFontPending } from "./loadDynamicFont.js";
6
8
  import { jsx as _jsx } from "react/jsx-runtime";
7
9
  export { shallowEqualColor };
8
- const DEFAULT_ICON_SIZE = 12;
10
+
11
+ /**
12
+ * Warn when the `font` argument and the glyphmap's linking mode are inconsistent.
13
+ *
14
+ * - Dynamic glyphmap without a `font` arg: caller probably forgot to pass it; icons
15
+ * will render as tofu until the host app loads a font under family `fontFamily`.
16
+ * - Static glyphmap with a `font` arg: argument is ignored, font is bundled natively.
17
+ *
18
+ * Fires once per `createIconSet` call (not per render).
19
+ */
20
+ export function warnIfLinkingMismatch(fontFamily, linking, font) {
21
+ if (!__DEV__) return;
22
+ const isDynamic = linking === 'd';
23
+ if (isDynamic && font == null) {
24
+ console.warn(`[react-native-nano-icons] "${fontFamily}" is built with dynamic linking ` + `but no font was passed to createIconSet. Icons will render as tofu ` + `until a font is loaded and registered under family "${fontFamily}".`);
25
+ return;
26
+ }
27
+ if (!isDynamic && font != null) {
28
+ console.warn(`[react-native-nano-icons] "${fontFamily}" is built with static linking; ` + `the font argument passed to createIconSet is ignored. ` + `Set linking: 'dynamic' in your config to opt into OTA delivery.`);
29
+ }
30
+ }
9
31
 
10
32
  /**
11
33
  * JS implementation using <View> + <Text> layers.
12
34
  * Used on web and as a fallback when native component is unavailable (e.g. Expo Go).
13
35
  */
14
- export function createJSIconSet(glyphMap) {
36
+
37
+ export function createJSIconSet(glyphMap, font) {
15
38
  const fontBasename = glyphMap.m.f;
39
+ warnIfLinkingMismatch(fontBasename, glyphMap.m.l, font);
40
+
41
+ // dynamically linked font - register and hide icons until ready
42
+ const managed = glyphMap.m.l === 'd' && font != null;
43
+ if (managed) {
44
+ void loadDynamicFont(fontBasename, font).catch(err => {
45
+ if (__DEV__) console.warn(`[react-native-nano-icons] Failed to load dynamic font "${fontBasename}".`, err);
46
+ });
47
+ }
16
48
  const fontReference = Platform.select({
17
49
  windows: `/Assets/${fontBasename}`,
18
50
  default: fontBasename
@@ -26,18 +58,7 @@ export function createJSIconSet(glyphMap) {
26
58
  bottom: 0
27
59
  };
28
60
  const unitsPerEm = glyphMap.m.u;
29
- const resolveEntry = name => {
30
- return glyphMap.i[name] ?? [unitsPerEm, [[63, 'black']]];
31
- };
32
- const codepointCache = new Map();
33
- const getChar = codepoint => {
34
- let ch = codepointCache.get(codepoint);
35
- if (ch === undefined) {
36
- ch = String.fromCodePoint(codepoint);
37
- codepointCache.set(codepoint, ch);
38
- }
39
- return ch;
40
- };
61
+ const getChar = createCharCache();
41
62
  const Icon = /*#__PURE__*/memo(({
42
63
  name,
43
64
  size = DEFAULT_ICON_SIZE,
@@ -47,15 +68,17 @@ export function createJSIconSet(glyphMap) {
47
68
  accessible,
48
69
  accessibilityLabel,
49
70
  accessibilityRole = 'image',
71
+ accessibilityElementsHidden,
72
+ importantForAccessibility,
50
73
  testID,
51
74
  ref
52
75
  }) => {
53
76
  const fontScale = allowFontScaling ? PixelRatio.getFontScale() : 1;
54
- const [adv, layers] = resolveEntry(name);
77
+ const [adv, layers] = resolveGlyphEntry(glyphMap, name);
55
78
  const scaledSize = size * fontScale;
56
79
  const width = adv / unitsPerEm * scaledSize;
57
- const colorArray = Array.isArray(color) ? color : [color];
58
- const lastPaletteColor = colorArray?.length ? colorArray[colorArray.length - 1] : undefined;
80
+ const pending = useDynamicFontPending(managed, fontBasename);
81
+ const resolveColor = createLayerColorResolver(color);
59
82
  const containerStyle = useMemo(() => [{
60
83
  height: scaledSize,
61
84
  width,
@@ -70,9 +93,11 @@ export function createJSIconSet(glyphMap) {
70
93
  accessible: accessible,
71
94
  accessibilityRole: accessibilityRole,
72
95
  accessibilityLabel: accessibilityLabel ?? name,
96
+ accessibilityElementsHidden: accessibilityElementsHidden,
97
+ importantForAccessibility: importantForAccessibility,
73
98
  testID: testID,
74
- children: layers.map(([codepoint, srcColor], i) => {
75
- const layerColor = colorArray?.[i] ?? lastPaletteColor ?? srcColor ?? 'black';
99
+ children: pending ? null : layers.map(([codepoint, srcColor], i) => {
100
+ const layerColor = resolveColor(i, srcColor);
76
101
  return /*#__PURE__*/_jsx(Text, {
77
102
  selectable: false,
78
103
  accessible: false,
@@ -86,6 +111,10 @@ export function createJSIconSet(glyphMap) {
86
111
  });
87
112
  }, (prev, next) => prev.name === next.name && prev.size === next.size && prev.allowFontScaling === next.allowFontScaling && prev.style === next.style && shallowEqualColor(prev.color, next.color));
88
113
  Icon.displayName = `NanoIcon(${fontBasename})`;
89
- return Icon;
114
+ const IconComp = Icon;
115
+ IconComp.loadFont = override => glyphMap.m.l === 'd' ? loadDynamicFont(fontBasename, override ?? font, {
116
+ force: true
117
+ }) : Promise.resolve();
118
+ return IconComp;
90
119
  }
91
120
  //# sourceMappingURL=createNanoIconsSet.shared.js.map