@ni/spright-components 1.0.17 → 1.0.19
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/dist/all-components-bundle.js +30 -54
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +21 -49
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/utilities/style/display.d.ts +4 -2
- package/dist/esm/utilities/style/display.js +5 -3
- package/dist/esm/utilities/style/display.js.map +1 -1
- package/package.json +2 -2
|
@@ -1095,7 +1095,7 @@ const e=document.createElement("style"),t=function(){const e=document.querySelec
|
|
|
1095
1095
|
return e?e.getAttribute("content"):null}()
|
|
1096
1096
|
null!==t&&e.setAttribute("nonce",t),document.head.appendChild(e)
|
|
1097
1097
|
try{e.sheet.insertRule("foo:focus-visible {color:inherit}",0),Gt=!0}catch(e){Gt=!1}finally{document.head.removeChild(e)}return Gt}()?"focus-visible":"focus"
|
|
1098
|
-
class Ro extends mn{}const Fo=e=>`${To(e)}`,No=`:${Oo}`
|
|
1098
|
+
class Ro extends mn{}const Fo=e=>`${To(e)}:host{box-sizing:border-box;}*{box-sizing:border-box;}:host::before,:host::after,::before,::after{box-sizing:border-box;}`,No=`:${Oo}`
|
|
1099
1099
|
function Po(e,t,n){return isNaN(e)||e<=t?t:e>=n?n:e}function Lo(e,t,n){return isNaN(e)||e<=t?0:e>=n?1:e/(n-t)}function zo(e,t,n){return isNaN(e)?t:t+e*(n-t)}function Vo(e,t){const n=Math.pow(10,t)
|
|
1100
1100
|
return Math.round(e*n)/n}class Ho{constructor(e,t,n,i){this.r=e,this.g=t,this.b=n,this.a="number"!=typeof i||isNaN(i)?1:i}static fromObject(e){return!e||isNaN(e.r)||isNaN(e.g)||isNaN(e.b)?null:new Ho(e.r,e.g,e.b,e.a)}equalValue(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}toStringHexRGB(){return"#"+[this.r,this.g,this.b].map(this.formatHexValue).join("")}toStringHexRGBA(){return this.toStringHexRGB()+this.formatHexValue(this.a)}toStringHexARGB(){return"#"+[this.a,this.r,this.g,this.b].map(this.formatHexValue).join("")}toStringWebRGB(){return`rgb(${Math.round(zo(this.r,0,255))},${Math.round(zo(this.g,0,255))},${Math.round(zo(this.b,0,255))})`}toStringWebRGBA(){return`rgba(${Math.round(zo(this.r,0,255))},${Math.round(zo(this.g,0,255))},${Math.round(zo(this.b,0,255))},${Po(this.a,0,1)})`}roundToPrecision(e){return new Ho(Vo(this.r,e),Vo(this.g,e),Vo(this.b,e),Vo(this.a,e))}clamp(){return new Ho(Po(this.r,0,1),Po(this.g,0,1),Po(this.b,0,1),Po(this.a,0,1))}toObject(){return{r:this.r,g:this.g,b:this.b,a:this.a}}formatHexValue(e){return function(e){const t=Math.round(Po(e,0,255)).toString(16)
|
|
1101
1101
|
return 1===t.length?"0"+t:t}(zo(e,0,255))}}const Bo={aliceblue:{r:.941176,g:.972549,b:1},antiquewhite:{r:.980392,g:.921569,b:.843137},aqua:{r:0,g:1,b:1},aquamarine:{r:.498039,g:1,b:.831373},azure:{r:.941176,g:1,b:1},beige:{r:.960784,g:.960784,b:.862745},bisque:{r:1,g:.894118,b:.768627},black:{r:0,g:0,b:0},blanchedalmond:{r:1,g:.921569,b:.803922},blue:{r:0,g:0,b:1},blueviolet:{r:.541176,g:.168627,b:.886275},brown:{r:.647059,g:.164706,b:.164706},burlywood:{r:.870588,g:.721569,b:.529412},cadetblue:{r:.372549,g:.619608,b:.627451},chartreuse:{r:.498039,g:1,b:0},chocolate:{r:.823529,g:.411765,b:.117647},coral:{r:1,g:.498039,b:.313725},cornflowerblue:{r:.392157,g:.584314,b:.929412},cornsilk:{r:1,g:.972549,b:.862745},crimson:{r:.862745,g:.078431,b:.235294},cyan:{r:0,g:1,b:1},darkblue:{r:0,g:0,b:.545098},darkcyan:{r:0,g:.545098,b:.545098},darkgoldenrod:{r:.721569,g:.52549,b:.043137},darkgray:{r:.662745,g:.662745,b:.662745},darkgreen:{r:0,g:.392157,b:0},darkgrey:{r:.662745,g:.662745,b:.662745},darkkhaki:{r:.741176,g:.717647,b:.419608},darkmagenta:{r:.545098,g:0,b:.545098},darkolivegreen:{r:.333333,g:.419608,b:.184314},darkorange:{r:1,g:.54902,b:0},darkorchid:{r:.6,g:.196078,b:.8},darkred:{r:.545098,g:0,b:0},darksalmon:{r:.913725,g:.588235,b:.478431},darkseagreen:{r:.560784,g:.737255,b:.560784},darkslateblue:{r:.282353,g:.239216,b:.545098},darkslategray:{r:.184314,g:.309804,b:.309804},darkslategrey:{r:.184314,g:.309804,b:.309804},darkturquoise:{r:0,g:.807843,b:.819608},darkviolet:{r:.580392,g:0,b:.827451},deeppink:{r:1,g:.078431,b:.576471},deepskyblue:{r:0,g:.74902,b:1},dimgray:{r:.411765,g:.411765,b:.411765},dimgrey:{r:.411765,g:.411765,b:.411765},dodgerblue:{r:.117647,g:.564706,b:1},firebrick:{r:.698039,g:.133333,b:.133333},floralwhite:{r:1,g:.980392,b:.941176},forestgreen:{r:.133333,g:.545098,b:.133333},fuchsia:{r:1,g:0,b:1},gainsboro:{r:.862745,g:.862745,b:.862745},ghostwhite:{r:.972549,g:.972549,b:1},gold:{r:1,g:.843137,b:0},goldenrod:{r:.854902,g:.647059,b:.12549},gray:{r:.501961,g:.501961,b:.501961},green:{r:0,g:.501961,b:0},greenyellow:{r:.678431,g:1,b:.184314},grey:{r:.501961,g:.501961,b:.501961},honeydew:{r:.941176,g:1,b:.941176},hotpink:{r:1,g:.411765,b:.705882},indianred:{r:.803922,g:.360784,b:.360784},indigo:{r:.294118,g:0,b:.509804},ivory:{r:1,g:1,b:.941176},khaki:{r:.941176,g:.901961,b:.54902},lavender:{r:.901961,g:.901961,b:.980392},lavenderblush:{r:1,g:.941176,b:.960784},lawngreen:{r:.486275,g:.988235,b:0},lemonchiffon:{r:1,g:.980392,b:.803922},lightblue:{r:.678431,g:.847059,b:.901961},lightcoral:{r:.941176,g:.501961,b:.501961},lightcyan:{r:.878431,g:1,b:1},lightgoldenrodyellow:{r:.980392,g:.980392,b:.823529},lightgray:{r:.827451,g:.827451,b:.827451},lightgreen:{r:.564706,g:.933333,b:.564706},lightgrey:{r:.827451,g:.827451,b:.827451},lightpink:{r:1,g:.713725,b:.756863},lightsalmon:{r:1,g:.627451,b:.478431},lightseagreen:{r:.12549,g:.698039,b:.666667},lightskyblue:{r:.529412,g:.807843,b:.980392},lightslategray:{r:.466667,g:.533333,b:.6},lightslategrey:{r:.466667,g:.533333,b:.6},lightsteelblue:{r:.690196,g:.768627,b:.870588},lightyellow:{r:1,g:1,b:.878431},lime:{r:0,g:1,b:0},limegreen:{r:.196078,g:.803922,b:.196078},linen:{r:.980392,g:.941176,b:.901961},magenta:{r:1,g:0,b:1},maroon:{r:.501961,g:0,b:0},mediumaquamarine:{r:.4,g:.803922,b:.666667},mediumblue:{r:0,g:0,b:.803922},mediumorchid:{r:.729412,g:.333333,b:.827451},mediumpurple:{r:.576471,g:.439216,b:.858824},mediumseagreen:{r:.235294,g:.701961,b:.443137},mediumslateblue:{r:.482353,g:.407843,b:.933333},mediumspringgreen:{r:0,g:.980392,b:.603922},mediumturquoise:{r:.282353,g:.819608,b:.8},mediumvioletred:{r:.780392,g:.082353,b:.521569},midnightblue:{r:.098039,g:.098039,b:.439216},mintcream:{r:.960784,g:1,b:.980392},mistyrose:{r:1,g:.894118,b:.882353},moccasin:{r:1,g:.894118,b:.709804},navajowhite:{r:1,g:.870588,b:.678431},navy:{r:0,g:0,b:.501961},oldlace:{r:.992157,g:.960784,b:.901961},olive:{r:.501961,g:.501961,b:0},olivedrab:{r:.419608,g:.556863,b:.137255},orange:{r:1,g:.647059,b:0},orangered:{r:1,g:.270588,b:0},orchid:{r:.854902,g:.439216,b:.839216},palegoldenrod:{r:.933333,g:.909804,b:.666667},palegreen:{r:.596078,g:.984314,b:.596078},paleturquoise:{r:.686275,g:.933333,b:.933333},palevioletred:{r:.858824,g:.439216,b:.576471},papayawhip:{r:1,g:.937255,b:.835294},peachpuff:{r:1,g:.854902,b:.72549},peru:{r:.803922,g:.521569,b:.247059},pink:{r:1,g:.752941,b:.796078},plum:{r:.866667,g:.627451,b:.866667},powderblue:{r:.690196,g:.878431,b:.901961},purple:{r:.501961,g:0,b:.501961},red:{r:1,g:0,b:0},rosybrown:{r:.737255,g:.560784,b:.560784},royalblue:{r:.254902,g:.411765,b:.882353},saddlebrown:{r:.545098,g:.270588,b:.07451},salmon:{r:.980392,g:.501961,b:.447059},sandybrown:{r:.956863,g:.643137,b:.376471},seagreen:{r:.180392,g:.545098,b:.341176},seashell:{r:1,g:.960784,b:.933333},sienna:{r:.627451,g:.321569,b:.176471},silver:{r:.752941,g:.752941,b:.752941},skyblue:{r:.529412,g:.807843,b:.921569},slateblue:{r:.415686,g:.352941,b:.803922},slategray:{r:.439216,g:.501961,b:.564706},slategrey:{r:.439216,g:.501961,b:.564706},snow:{r:1,g:.980392,b:.980392},springgreen:{r:0,g:1,b:.498039},steelblue:{r:.27451,g:.509804,b:.705882},tan:{r:.823529,g:.705882,b:.54902},teal:{r:0,g:.501961,b:.501961},thistle:{r:.847059,g:.74902,b:.847059},tomato:{r:1,g:.388235,b:.278431},transparent:{r:0,g:0,b:0,a:0},turquoise:{r:.25098,g:.878431,b:.815686},violet:{r:.933333,g:.509804,b:.933333},wheat:{r:.960784,g:.870588,b:.701961},white:{r:1,g:1,b:1},whitesmoke:{r:.960784,g:.960784,b:.960784},yellow:{r:1,g:1,b:0},yellowgreen:{r:.603922,g:.803922,b:.196078}},qo=/^rgb\(\s*((?:(?:25[0-5]|2[0-4]\d|1\d\d|\d{1,2})\s*,\s*){2}(?:25[0-5]|2[0-4]\d|1\d\d|\d{1,2})\s*)\)$/i,Uo=/^rgba\(\s*((?:(?:25[0-5]|2[0-4]\d|1\d\d|\d{1,2})\s*,\s*){3}(?:0|1|0?\.\d*)\s*)\)$/i,jo=/^#((?:[0-9a-f]{6}|[0-9a-f]{3}))$/i,Wo=/^#((?:[0-9a-f]{8}|[0-9a-f]{4}))$/i
|
|
@@ -1179,7 +1179,6 @@ default:return t}}function Id(e){return Ed(e,ts,"#ff4646",rs)}function Dd(e){ret
|
|
|
1179
1179
|
${Fo("inline")}
|
|
1180
1180
|
|
|
1181
1181
|
:host {
|
|
1182
|
-
box-sizing: border-box;
|
|
1183
1182
|
font: ${zl};
|
|
1184
1183
|
}
|
|
1185
1184
|
|
|
@@ -1342,7 +1341,6 @@ class Bd{constructor(e,t,n){this.propertyName=e,this.value=t,this.styles=n}bind(
|
|
|
1342
1341
|
cursor: pointer;
|
|
1343
1342
|
outline: none;
|
|
1344
1343
|
border: none;
|
|
1345
|
-
box-sizing: border-box;
|
|
1346
1344
|
${""}
|
|
1347
1345
|
vertical-align: middle;
|
|
1348
1346
|
}
|
|
@@ -1352,7 +1350,6 @@ class Bd{constructor(e,t,n){this.propertyName=e,this.value=t,this.styles=n}bind(
|
|
|
1352
1350
|
height: 100%;
|
|
1353
1351
|
width: 100%;
|
|
1354
1352
|
border: ${ll} solid transparent;
|
|
1355
|
-
box-sizing: border-box;
|
|
1356
1353
|
color: inherit;
|
|
1357
1354
|
border-radius: inherit;
|
|
1358
1355
|
fill: inherit;
|
|
@@ -1386,10 +1383,9 @@ class Bd{constructor(e,t,n){this.propertyName=e,this.value=t,this.styles=n}bind(
|
|
|
1386
1383
|
width: 100%;
|
|
1387
1384
|
height: 100%;
|
|
1388
1385
|
pointer-events: none;
|
|
1389
|
-
box-sizing: border-box;
|
|
1390
1386
|
outline: 0px solid transparent;
|
|
1391
1387
|
color: transparent;
|
|
1392
|
-
background-clip:
|
|
1388
|
+
background-clip: border-box;
|
|
1393
1389
|
transition: outline ${kd} ease-in-out;
|
|
1394
1390
|
}
|
|
1395
1391
|
|
|
@@ -1684,7 +1680,6 @@ const Xd=xe`
|
|
|
1684
1680
|
display: grid;
|
|
1685
1681
|
contain: layout;
|
|
1686
1682
|
overflow: visible;
|
|
1687
|
-
box-sizing: border-box;
|
|
1688
1683
|
height: ${nl};
|
|
1689
1684
|
grid-template-columns: 1fr;
|
|
1690
1685
|
column-gap: 8px;
|
|
@@ -1780,7 +1775,6 @@ const Qd=xe`
|
|
|
1780
1775
|
|
|
1781
1776
|
:host {
|
|
1782
1777
|
position: relative;
|
|
1783
|
-
box-sizing: border-box;
|
|
1784
1778
|
font: ${Zc};
|
|
1785
1779
|
height: ${nl};
|
|
1786
1780
|
color: ${xc};
|
|
@@ -1915,7 +1909,6 @@ const nh=xe`
|
|
|
1915
1909
|
${Fo("grid")}
|
|
1916
1910
|
|
|
1917
1911
|
:host {
|
|
1918
|
-
box-sizing: border-box;
|
|
1919
1912
|
grid-template-columns: auto 1fr;
|
|
1920
1913
|
grid-template-rows: auto 1fr;
|
|
1921
1914
|
}
|
|
@@ -2006,7 +1999,6 @@ const sh=ke`
|
|
|
2006
1999
|
.positioning-region {
|
|
2007
2000
|
display: flex;
|
|
2008
2001
|
position: relative;
|
|
2009
|
-
box-sizing: border-box;
|
|
2010
2002
|
height: calc(${cl} * 2);
|
|
2011
2003
|
width: 100%;
|
|
2012
2004
|
}
|
|
@@ -2420,7 +2412,6 @@ const $m=xe`
|
|
|
2420
2412
|
${Fo("inline-block")}
|
|
2421
2413
|
|
|
2422
2414
|
:host {
|
|
2423
|
-
box-sizing: border-box;
|
|
2424
2415
|
font: ${zl};
|
|
2425
2416
|
--ni-private-breadcrumb-link-font-color: ${Vl};
|
|
2426
2417
|
--ni-private-breadcrumb-link-active-font-color: ${Gl};
|
|
@@ -2460,7 +2451,6 @@ const Em=xe`
|
|
|
2460
2451
|
|
|
2461
2452
|
:host {
|
|
2462
2453
|
height: ${nl};
|
|
2463
|
-
box-sizing: border-box;
|
|
2464
2454
|
padding-left: calc(4px - ${ll});
|
|
2465
2455
|
|
|
2466
2456
|
${""}
|
|
@@ -2619,7 +2609,6 @@ const Om=xe`
|
|
|
2619
2609
|
cursor: pointer;
|
|
2620
2610
|
outline: none;
|
|
2621
2611
|
border: none;
|
|
2622
|
-
box-sizing: border-box;
|
|
2623
2612
|
transition: box-shadow ${kd};
|
|
2624
2613
|
}
|
|
2625
2614
|
|
|
@@ -2803,7 +2792,6 @@ const Nm=xe`
|
|
|
2803
2792
|
.control {
|
|
2804
2793
|
width: calc(${nl} / 2);
|
|
2805
2794
|
height: calc(${nl} / 2);
|
|
2806
|
-
box-sizing: border-box;
|
|
2807
2795
|
flex-shrink: 0;
|
|
2808
2796
|
border: ${ll} solid ${za};
|
|
2809
2797
|
padding: 2px;
|
|
@@ -3021,7 +3009,6 @@ const jm="nimble-icon-arrow-expander-down",Wm="above",Gm="underline",Zm="outline
|
|
|
3021
3009
|
${Fo("inline-flex")}
|
|
3022
3010
|
|
|
3023
3011
|
:host {
|
|
3024
|
-
box-sizing: border-box;
|
|
3025
3012
|
color: ${xc};
|
|
3026
3013
|
font: ${wc};
|
|
3027
3014
|
height: ${nl};
|
|
@@ -3099,7 +3086,6 @@ const jm="nimble-icon-arrow-expander-down",Wm="above",Gm="underline",Zm="outline
|
|
|
3099
3086
|
|
|
3100
3087
|
.control {
|
|
3101
3088
|
align-items: center;
|
|
3102
|
-
box-sizing: border-box;
|
|
3103
3089
|
cursor: pointer;
|
|
3104
3090
|
display: flex;
|
|
3105
3091
|
min-height: 100%;
|
|
@@ -3126,7 +3112,6 @@ const jm="nimble-icon-arrow-expander-down",Wm="above",Gm="underline",Zm="outline
|
|
|
3126
3112
|
}
|
|
3127
3113
|
|
|
3128
3114
|
.listbox {
|
|
3129
|
-
box-sizing: border-box;
|
|
3130
3115
|
display: inline-flex;
|
|
3131
3116
|
flex-direction: column;
|
|
3132
3117
|
overflow-y: auto;
|
|
@@ -3327,7 +3312,7 @@ const jm="nimble-icon-arrow-expander-down",Wm="above",Gm="underline",Zm="outline
|
|
|
3327
3312
|
border-right: 2px solid rgba(${Va}, 0.15);
|
|
3328
3313
|
height: calc(${nl} - 12px);
|
|
3329
3314
|
align-self: center;
|
|
3330
|
-
|
|
3315
|
+
margin-left: 4px;
|
|
3331
3316
|
}
|
|
3332
3317
|
|
|
3333
3318
|
.dropdown-button {
|
|
@@ -3659,7 +3644,6 @@ const hg=xe`
|
|
|
3659
3644
|
}
|
|
3660
3645
|
|
|
3661
3646
|
.dialog-contents {
|
|
3662
|
-
box-sizing: border-box;
|
|
3663
3647
|
display: flex;
|
|
3664
3648
|
flex-direction: column;
|
|
3665
3649
|
position: absolute;
|
|
@@ -4218,7 +4202,7 @@ const Fv=xe`
|
|
|
4218
4202
|
}
|
|
4219
4203
|
|
|
4220
4204
|
::slotted(hr) {
|
|
4221
|
-
box-sizing:
|
|
4205
|
+
box-sizing: border-box;
|
|
4222
4206
|
height: 2px;
|
|
4223
4207
|
margin: ${ol};
|
|
4224
4208
|
border: none;
|
|
@@ -4337,7 +4321,6 @@ const Bv="nimble-menu-button",qv=xe`
|
|
|
4337
4321
|
:host {
|
|
4338
4322
|
contain: layout;
|
|
4339
4323
|
overflow: visible;
|
|
4340
|
-
box-sizing: border-box;
|
|
4341
4324
|
height: ${nl};
|
|
4342
4325
|
grid-template-columns: 1fr;
|
|
4343
4326
|
column-gap: 8px;
|
|
@@ -4510,7 +4493,6 @@ const jv="underline",Wv="outline",Gv="block",Zv=xe`
|
|
|
4510
4493
|
}
|
|
4511
4494
|
|
|
4512
4495
|
.root {
|
|
4513
|
-
box-sizing: border-box;
|
|
4514
4496
|
position: relative;
|
|
4515
4497
|
display: flex;
|
|
4516
4498
|
flex-direction: row;
|
|
@@ -4625,7 +4607,7 @@ const jv="underline",Wv="outline",Gv="block",Zv=xe`
|
|
|
4625
4607
|
|
|
4626
4608
|
.error-icon {
|
|
4627
4609
|
order: 1;
|
|
4628
|
-
|
|
4610
|
+
margin-right: ${ol};
|
|
4629
4611
|
}
|
|
4630
4612
|
`.withBehaviors(qd(jv,xe`
|
|
4631
4613
|
.root {
|
|
@@ -4786,7 +4768,6 @@ const Yv=xe`
|
|
|
4786
4768
|
position: relative;
|
|
4787
4769
|
width: calc(${nl} / 2);
|
|
4788
4770
|
height: calc(${nl} / 2);
|
|
4789
|
-
box-sizing: border-box;
|
|
4790
4771
|
flex-shrink: 0;
|
|
4791
4772
|
border: ${ll} solid ${za};
|
|
4792
4773
|
border-radius: 100%;
|
|
@@ -7392,7 +7373,6 @@ const R$="nimble-rich-text-mention-listbox",F$=G`
|
|
|
7392
7373
|
}
|
|
7393
7374
|
|
|
7394
7375
|
.container {
|
|
7395
|
-
box-sizing: border-box;
|
|
7396
7376
|
display: flex;
|
|
7397
7377
|
flex-direction: column;
|
|
7398
7378
|
position: relative;
|
|
@@ -7472,7 +7452,6 @@ const R$="nimble-rich-text-mention-listbox",F$=G`
|
|
|
7472
7452
|
padding: 8px;
|
|
7473
7453
|
${""}
|
|
7474
7454
|
padding-right: calc(${cl});
|
|
7475
|
-
box-sizing: border-box;
|
|
7476
7455
|
position: relative;
|
|
7477
7456
|
color: inherit;
|
|
7478
7457
|
}
|
|
@@ -7571,7 +7550,6 @@ const R$="nimble-rich-text-mention-listbox",F$=G`
|
|
|
7571
7550
|
${w$}::part(positioning-region) {
|
|
7572
7551
|
background: transparent;
|
|
7573
7552
|
padding-right: 8px;
|
|
7574
|
-
box-sizing: border-box;
|
|
7575
7553
|
gap: 0px;
|
|
7576
7554
|
height: var(--ni-private-rich-text-editor-footer-section-height);
|
|
7577
7555
|
}
|
|
@@ -8876,7 +8854,6 @@ const hT=G`
|
|
|
8876
8854
|
.viewer {
|
|
8877
8855
|
font: inherit;
|
|
8878
8856
|
outline: none;
|
|
8879
|
-
box-sizing: border-box;
|
|
8880
8857
|
position: relative;
|
|
8881
8858
|
color: inherit;
|
|
8882
8859
|
overflow-wrap: anywhere;
|
|
@@ -9477,7 +9454,6 @@ const IT="nimble-spinner",DT=xe`
|
|
|
9477
9454
|
display: flex;
|
|
9478
9455
|
height: var(--ni-private-switch-height);
|
|
9479
9456
|
width: calc(var(--ni-private-switch-height) * 2);
|
|
9480
|
-
box-sizing: border-box;
|
|
9481
9457
|
background-color: ${La};
|
|
9482
9458
|
border-radius: calc(var(--ni-private-switch-height) / 2);
|
|
9483
9459
|
align-items: center;
|
|
@@ -9506,7 +9482,6 @@ const IT="nimble-spinner",DT=xe`
|
|
|
9506
9482
|
justify-content: center;
|
|
9507
9483
|
align-items: center;
|
|
9508
9484
|
background-color: var(--ni-private-switch-indicator-background-color);
|
|
9509
|
-
box-sizing: border-box;
|
|
9510
9485
|
width: var(--ni-private-switch-indicator-size);
|
|
9511
9486
|
height: var(--ni-private-switch-indicator-size);
|
|
9512
9487
|
border-radius: calc(var(--ni-private-switch-indicator-size) / 2);
|
|
@@ -9632,7 +9607,6 @@ const OT=xe`
|
|
|
9632
9607
|
|
|
9633
9608
|
:host {
|
|
9634
9609
|
position: relative;
|
|
9635
|
-
box-sizing: border-box;
|
|
9636
9610
|
font: ${Zc};
|
|
9637
9611
|
height: ${nl};
|
|
9638
9612
|
color: ${xc};
|
|
@@ -9738,7 +9712,6 @@ const FT=xe`
|
|
|
9738
9712
|
${Fo("block")}
|
|
9739
9713
|
|
|
9740
9714
|
:host {
|
|
9741
|
-
box-sizing: border-box;
|
|
9742
9715
|
font: ${wc};
|
|
9743
9716
|
color: ${xc};
|
|
9744
9717
|
padding-top: ${rl};
|
|
@@ -10423,7 +10396,6 @@ const lR="nimble-table-header",cR=xe`
|
|
|
10423
10396
|
background-color: ${Ra};
|
|
10424
10397
|
height: calc(${nl} + 2 * ${ll});
|
|
10425
10398
|
border-top: calc(2 * ${ll}) solid transparent;
|
|
10426
|
-
box-sizing: border-box;
|
|
10427
10399
|
background-clip: padding-box;
|
|
10428
10400
|
}
|
|
10429
10401
|
|
|
@@ -10432,7 +10404,6 @@ const lR="nimble-table-header",cR=xe`
|
|
|
10432
10404
|
width: 100%;
|
|
10433
10405
|
height: ${nl};
|
|
10434
10406
|
pointer-events: none;
|
|
10435
|
-
box-sizing: border-box;
|
|
10436
10407
|
bottom: 0px;
|
|
10437
10408
|
position: absolute;
|
|
10438
10409
|
}
|
|
@@ -10451,9 +10422,13 @@ const lR="nimble-table-header",cR=xe`
|
|
|
10451
10422
|
|
|
10452
10423
|
.expand-collapse-button {
|
|
10453
10424
|
flex: 0 0 auto;
|
|
10454
|
-
|
|
10455
|
-
|
|
10456
|
-
${
|
|
10425
|
+
margin-left: max(
|
|
10426
|
+
calc(
|
|
10427
|
+
${sl} +
|
|
10428
|
+
(var(--ni-private-table-row-indent-level) - 1) *
|
|
10429
|
+
${nl}
|
|
10430
|
+
),
|
|
10431
|
+
0px
|
|
10457
10432
|
);
|
|
10458
10433
|
}
|
|
10459
10434
|
|
|
@@ -10465,9 +10440,13 @@ const lR="nimble-table-header",cR=xe`
|
|
|
10465
10440
|
display: flex;
|
|
10466
10441
|
align-items: center;
|
|
10467
10442
|
justify-content: center;
|
|
10468
|
-
|
|
10469
|
-
|
|
10470
|
-
${
|
|
10443
|
+
margin-left: max(
|
|
10444
|
+
calc(
|
|
10445
|
+
${sl} +
|
|
10446
|
+
(var(--ni-private-table-row-indent-level) - 1) *
|
|
10447
|
+
${nl}
|
|
10448
|
+
),
|
|
10449
|
+
0px
|
|
10471
10450
|
);
|
|
10472
10451
|
}
|
|
10473
10452
|
|
|
@@ -10687,7 +10666,6 @@ const yR="nimble-table-row",wR=xe`
|
|
|
10687
10666
|
align-items: center;
|
|
10688
10667
|
height: calc(${nl} + 2 * ${ll});
|
|
10689
10668
|
border-top: calc(2 * ${ll}) solid ${Ra};
|
|
10690
|
-
box-sizing: border-box;
|
|
10691
10669
|
grid-template-columns:
|
|
10692
10670
|
calc(
|
|
10693
10671
|
${nl} *
|
|
@@ -11595,7 +11573,6 @@ const PN=xe`
|
|
|
11595
11573
|
${Fo("grid")}
|
|
11596
11574
|
|
|
11597
11575
|
:host {
|
|
11598
|
-
box-sizing: border-box;
|
|
11599
11576
|
grid-template-columns: auto 1fr;
|
|
11600
11577
|
grid-template-rows: auto 1fr;
|
|
11601
11578
|
}
|
|
@@ -11646,7 +11623,6 @@ const zN=xe`
|
|
|
11646
11623
|
:host {
|
|
11647
11624
|
align-items: center;
|
|
11648
11625
|
height: ${nl};
|
|
11649
|
-
box-sizing: border-box;
|
|
11650
11626
|
font: ${wc};
|
|
11651
11627
|
color: ${xc};
|
|
11652
11628
|
}
|
|
@@ -11737,7 +11713,6 @@ const BN="outline",qN="block",UN=xe`
|
|
|
11737
11713
|
font: inherit;
|
|
11738
11714
|
flex-grow: 1;
|
|
11739
11715
|
outline: none;
|
|
11740
|
-
box-sizing: border-box;
|
|
11741
11716
|
position: relative;
|
|
11742
11717
|
color: inherit;
|
|
11743
11718
|
border-radius: 0px;
|
|
@@ -11919,7 +11894,6 @@ const GN="underline",ZN="outline",KN="block",XN="frameless",YN=xe`
|
|
|
11919
11894
|
}
|
|
11920
11895
|
|
|
11921
11896
|
.root {
|
|
11922
|
-
box-sizing: border-box;
|
|
11923
11897
|
position: relative;
|
|
11924
11898
|
display: flex;
|
|
11925
11899
|
flex-direction: row;
|
|
@@ -12205,7 +12179,6 @@ const eP=xe`
|
|
|
12205
12179
|
}
|
|
12206
12180
|
|
|
12207
12181
|
.tooltip {
|
|
12208
|
-
box-sizing: border-box;
|
|
12209
12182
|
flex-shrink: 0;
|
|
12210
12183
|
max-width: 440px;
|
|
12211
12184
|
box-shadow: ${gl};
|
|
@@ -12350,7 +12323,6 @@ class lP{constructor(e,t,n){this.ltr=e,this.rtl=t,this.source=n,this.attached=nu
|
|
|
12350
12323
|
.positioning-region {
|
|
12351
12324
|
display: flex;
|
|
12352
12325
|
position: relative;
|
|
12353
|
-
box-sizing: border-box;
|
|
12354
12326
|
height: calc(${cl} * 2);
|
|
12355
12327
|
}
|
|
12356
12328
|
|
|
@@ -13240,7 +13212,7 @@ function xq(e,t){return wq.set(e,t),e}function Cq(e){for(const[t,n]of dq)if(n.ca
|
|
|
13240
13212
|
return[{type:"HANDLER",name:t,value:i},o]}return[{type:"RAW",value:e},wq.get(e)||[]]}function kq(e){switch(e.type){case"HANDLER":return dq.get(e.name).deserialize(e.value)
|
|
13241
13213
|
case"RAW":return e.value}}function Sq(e,t,n){return new Promise((i=>{const o=new Array(4).fill(0).map((()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16))).join("-")
|
|
13242
13214
|
e.addEventListener("message",(function t(n){n.data&&n.data.id&&n.data.id===o&&(e.removeEventListener("message",t),i(n.data))})),e.start&&e.start(),e.postMessage(Object.assign({id:o},t),n)}))}let $q
|
|
13243
|
-
class Mq{constructor(e){this.wafermap=e,this.minDieDim=100}async setupWafer(e){if(void 0===this.matrixRenderer){const{matrixRenderer:e}=await(async()=>{if(void 0===$q){const e=new Blob(['var MatrixRenderer = (function (exports) {\n \'use strict\';\n\n /**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n const proxyMarker = Symbol("Comlink.proxy");\n const createEndpoint = Symbol("Comlink.endpoint");\n const releaseProxy = Symbol("Comlink.releaseProxy");\n const finalizer = Symbol("Comlink.finalizer");\n const throwMarker = Symbol("Comlink.thrown");\n const isObject = (val) => (typeof val === "object" && val !== null) || typeof val === "function";\n /**\n * Internal transfer handle to handle objects marked to proxy.\n */\n const proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n };\n /**\n * Internal transfer handler to handle thrown exceptions.\n */\n const throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n };\n /**\n * Allows customizing the serialization of certain values.\n */\n const transferHandlers = new Map([\n ["proxy", proxyTransferHandler],\n ["throw", throwTransferHandler],\n ]);\n function isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === "*") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n }\n function expose(obj, ep = globalThis, allowedOrigins = ["*"]) {\n ep.addEventListener("message", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin \'${ev.origin}\' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case "GET" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case "SET" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case "APPLY" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case "CONSTRUCT" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case "ENDPOINT" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case "RELEASE" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === "RELEASE" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener("message", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === "function") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError("Unserializable return value"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n }\n function isMessagePort(endpoint) {\n return endpoint.constructor.name === "MessagePort";\n }\n function closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n }\n function wrap(ep, target) {\n return createProxy(ep, [], target);\n }\n function throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error("Proxy has been released and is not useable");\n }\n }\n function releaseEndpoint(ep) {\n return requestResponseMessage(ep, {\n type: "RELEASE" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n }\n const proxyCounter = new WeakMap();\n const proxyFinalizers = "FinalizationRegistry" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\n function registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n }\n function unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n }\n function createProxy(ep, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n isProxyReleased = true;\n };\n }\n if (prop === "then") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, {\n type: "GET" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, {\n type: "SET" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, {\n type: "ENDPOINT" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === "bind") {\n return createProxy(ep, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: "APPLY" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: "CONSTRUCT" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n }\n function myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n }\n function processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n }\n const transferCache = new WeakMap();\n function transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n }\n function proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n }\n function toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: "HANDLER" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: "RAW" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n }\n function fromWireValue(value) {\n switch (value.type) {\n case "HANDLER" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case "RAW" /* WireValueType.RAW */:\n return value.value;\n }\n }\n function requestResponseMessage(ep, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n ep.addEventListener("message", function l(ev) {\n if (!ev.data || !ev.data.id || ev.data.id !== id) {\n return;\n }\n ep.removeEventListener("message", l);\n resolve(ev.data);\n });\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n }\n function generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join("-");\n }\n\n /* eslint-disable @typescript-eslint/member-ordering */\n /**\n * MatrixRenderer class is meant to be used within a Web Worker context,\n * using Comlink to facilitate communication between the main thread and the worker.\n * The MatrixRenderer class manages a matrix of dies, once an instance of MatrixRenderer is created,\n * it is exposed to the main thread using Comlink\'s `expose` method.\n * This setup is used in the wafer-map component to perform heavy computational duties\n */\n class MatrixRenderer {\n constructor() {\n this.values = Float64Array.from([]);\n this.scaledColumnIndices = Float64Array.from([]);\n this.scaledRowIndices = Float64Array.from([]);\n this.columnIndicesPositions = Int32Array.from([]);\n this.colorIndices = Int32Array.from([]);\n this.colors = [];\n this.colorValues = Float64Array.from([]);\n this.outsideRangeDieColor = \'rgba(218,223,236,1)\';\n this.fontSizeFactor = 0.8;\n this.renderConfig = {\n dieDimensions: {\n width: 0,\n height: 0\n },\n margin: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n verticalCoefficient: 1,\n horizontalCoefficient: 1,\n horizontalConstant: 0,\n verticalConstant: 0,\n gridMinX: 0,\n gridMaxX: 0,\n gridMinY: 0,\n gridMaxY: 0,\n labelsFontSize: 0,\n colorScale: [],\n dieLabelsSuffix: \'\',\n maxCharacters: 0\n };\n this.transformConfig = {\n transform: {\n k: 1,\n x: 0,\n y: 0\n },\n topLeftCanvasCorner: {\n x: 0,\n y: 0\n },\n bottomRightCanvasCorner: {\n x: 0,\n y: 0\n }\n };\n }\n isDieInGrid(x, y) {\n return (x >= this.renderConfig.gridMinX\n && x <= this.renderConfig.gridMaxX\n && y >= this.renderConfig.gridMinY\n && y <= this.renderConfig.gridMaxY);\n }\n calculateHorizontalScaledIndices(columnIndex) {\n return (this.renderConfig.horizontalCoefficient * columnIndex\n + this.renderConfig.horizontalConstant\n + this.renderConfig.margin.left);\n }\n calculateVerticalScaledIndices(rowIndex) {\n return (this.renderConfig.verticalCoefficient * rowIndex\n + this.renderConfig.verticalConstant\n + this.renderConfig.margin.top);\n }\n findColorIndex(value) {\n let index = -1;\n if (this.colorValues.length === 0 || this.colorValues[0] >= value) {\n return index;\n }\n for (let i = 0; i < this.colorValues.length; i++) {\n if (value <= this.colorValues[i]) {\n index = i;\n break;\n }\n }\n return index;\n }\n setMatrixData(columnIndices, rowIndices, valuesBuffer) {\n const scaledColumnIndex = [];\n const columnPositions = [];\n const scaledRowIndices = [];\n const values = [];\n const colorIndices = [];\n let prevXIndex;\n let dieCount = 0;\n for (let i = 0; i < columnIndices.length; i++) {\n const xIndex = columnIndices[i];\n const yIndex = rowIndices[i];\n if (this.isDieInGrid(xIndex, yIndex)) {\n if (xIndex !== prevXIndex) {\n scaledColumnIndex.push(this.calculateHorizontalScaledIndices(xIndex));\n columnPositions.push(dieCount);\n prevXIndex = xIndex;\n }\n scaledRowIndices.push(this.calculateVerticalScaledIndices(yIndex));\n const value = valuesBuffer[i];\n values.push(value);\n colorIndices.push(this.findColorIndex(value));\n dieCount += 1;\n }\n }\n this.scaledColumnIndices = Float64Array.from(scaledColumnIndex);\n this.columnIndicesPositions = Int32Array.from(columnPositions);\n this.scaledRowIndices = Float64Array.from(scaledRowIndices);\n this.values = Float64Array.from(values);\n this.colorIndices = Int32Array.from(colorIndices);\n }\n setRenderConfig(renderConfig) {\n this.renderConfig = renderConfig;\n this.colors = renderConfig.colorScale.map(marker => marker.color);\n this.colorValues = Float64Array.from(renderConfig.colorScale.map(marker => marker.value));\n }\n setTransformConfig(transformData) {\n this.transformConfig = transformData;\n }\n setCanvas(canvas) {\n this.canvas = canvas;\n this.context = canvas.getContext(\'2d\');\n }\n scaleCanvas() {\n this.context.translate(this.transformConfig.transform.x, this.transformConfig.transform.y);\n this.context.scale(this.transformConfig.transform.k, this.transformConfig.transform.k);\n }\n setCanvasDimensions(data) {\n this.canvas.width = data.width;\n this.canvas.height = data.height;\n }\n getCanvasDimensions() {\n return {\n width: this.canvas.width,\n height: this.canvas.height\n };\n }\n clearCanvas() {\n this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n }\n drawWafer() {\n this.context.restore();\n this.context.save();\n this.clearCanvas();\n this.scaleCanvas();\n for (let i = 0; i < this.scaledColumnIndices.length; i++) {\n const scaledX = this.scaledColumnIndices[i];\n if (!(scaledX >= this.transformConfig.topLeftCanvasCorner.x\n && scaledX < this.transformConfig.bottomRightCanvasCorner.x)) {\n continue;\n }\n // columnIndexPositions is used to get chunks to determine the start and end index of the column, it looks something like [0, 1, 4, 9, 12]\n // This means that the first column has a start index of 0 and an end index of 1, the second column has a start index of 1 and an end index of 4, and so on\n // scaledRowIndices is used when we reach the end of the columnIndexPositions, when columnIndexPositions is [0, 1, 4, 9, 12], scaledRowIndices is 13\n const columnEndIndex = this.columnIndicesPositions[i + 1] !== undefined\n ? this.columnIndicesPositions[i + 1]\n : this.scaledRowIndices.length;\n for (let columnStartIndex = this.columnIndicesPositions[i]; columnStartIndex < columnEndIndex; columnStartIndex++) {\n const scaledY = this.scaledRowIndices[columnStartIndex];\n if (!(scaledY >= this.transformConfig.topLeftCanvasCorner.y\n && scaledY < this.transformConfig.bottomRightCanvasCorner.y)) {\n continue;\n }\n // Fill style is temporary green for all dies, will be replaced with a color based on the value of the die in a future implementation\n this.context.fillStyle = this.colors[this.colorIndices[columnStartIndex]]\n ?? this.outsideRangeDieColor;\n this.context.fillRect(scaledX, scaledY, this.renderConfig.dieDimensions.width, this.renderConfig.dieDimensions.height);\n }\n }\n }\n drawText() {\n this.context.font = `${this.renderConfig.labelsFontSize.toString()}px sans-serif`;\n this.context.fillStyle = \'#ffffff\';\n this.context.textAlign = \'center\';\n this.context.lineCap = \'butt\';\n const approximateTextHeight = this.context.measureText(\'M\');\n for (let i = 0; i < this.scaledColumnIndices.length; i++) {\n const scaledX = this.scaledColumnIndices[i];\n if (!(scaledX >= this.transformConfig.topLeftCanvasCorner.x\n && scaledX < this.transformConfig.bottomRightCanvasCorner.x)) {\n continue;\n }\n // columnIndexPositions is used to get chunks to determine the start and end index of the column, it looks something like [0, 1, 4, 9, 12]\n // This means that the first column has a start index of 0 and an end index of 1, the second column has a start index of 1 and an end index of 4, and so on\n // scaledRowIndices is used when we reach the end of the columnIndexPositions, when columnIndexPositions is [0, 1, 4, 9, 12], scaledRowIndices is 13\n const columnEndIndex = this.columnIndicesPositions[i + 1] !== undefined\n ? this.columnIndicesPositions[i + 1]\n : this.scaledRowIndices.length;\n for (let columnStartIndex = this.columnIndicesPositions[i]; columnStartIndex < columnEndIndex; columnStartIndex++) {\n const scaledY = this.scaledRowIndices[columnStartIndex];\n if (!(scaledY >= this.transformConfig.topLeftCanvasCorner.y\n && scaledY < this.transformConfig.bottomRightCanvasCorner.y)) {\n continue;\n }\n let label = `${this.values[columnStartIndex] || \'NaN\'}${this.renderConfig.dieLabelsSuffix}`;\n if (label.length >= this.renderConfig.maxCharacters) {\n label = `${label.substring(0, this.renderConfig.maxCharacters)}…`;\n }\n this.context.fillText(label, scaledX + this.renderConfig.dieDimensions.width / 2, scaledY\n + this.renderConfig.dieDimensions.height / 2\n + approximateTextHeight.width / 2, this.renderConfig.dieDimensions.width * this.fontSizeFactor);\n }\n }\n }\n }\n expose(MatrixRenderer);\n\n exports.MatrixRenderer = MatrixRenderer;\n\n return exports;\n\n})({});\n'],{type:"text/javascript"})
|
|
13215
|
+
class Mq{constructor(e){this.wafermap=e,this.minDieDim=100}async setupWafer(e){if(void 0===this.matrixRenderer){const{matrixRenderer:e}=await(async()=>{if(void 0===$q){const e=new Blob(['var MatrixRenderer = (function (exports) {\n \'use strict\';\n\n /**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n const proxyMarker = Symbol("Comlink.proxy");\n const createEndpoint = Symbol("Comlink.endpoint");\n const releaseProxy = Symbol("Comlink.releaseProxy");\n const finalizer = Symbol("Comlink.finalizer");\n const throwMarker = Symbol("Comlink.thrown");\n const isObject = (val) => (typeof val === "object" && val !== null) || typeof val === "function";\n /**\n * Internal transfer handle to handle objects marked to proxy.\n */\n const proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n };\n /**\n * Internal transfer handler to handle thrown exceptions.\n */\n const throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n };\n /**\n * Allows customizing the serialization of certain values.\n */\n const transferHandlers = new Map([\n ["proxy", proxyTransferHandler],\n ["throw", throwTransferHandler],\n ]);\n function isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === "*") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n }\n function expose(obj, ep = globalThis, allowedOrigins = ["*"]) {\n ep.addEventListener("message", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin \'${ev.origin}\' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case "GET" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case "SET" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case "APPLY" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case "CONSTRUCT" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case "ENDPOINT" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case "RELEASE" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === "RELEASE" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener("message", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === "function") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError("Unserializable return value"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n }\n function isMessagePort(endpoint) {\n return endpoint.constructor.name === "MessagePort";\n }\n function closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n }\n function wrap(ep, target) {\n return createProxy(ep, [], target);\n }\n function throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error("Proxy has been released and is not useable");\n }\n }\n function releaseEndpoint(ep) {\n return requestResponseMessage(ep, {\n type: "RELEASE" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n }\n const proxyCounter = new WeakMap();\n const proxyFinalizers = "FinalizationRegistry" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\n function registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n }\n function unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n }\n function createProxy(ep, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n isProxyReleased = true;\n };\n }\n if (prop === "then") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, {\n type: "GET" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, {\n type: "SET" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, {\n type: "ENDPOINT" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === "bind") {\n return createProxy(ep, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: "APPLY" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: "CONSTRUCT" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n }\n function myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n }\n function processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n }\n const transferCache = new WeakMap();\n function transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n }\n function proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n }\n function toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: "HANDLER" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: "RAW" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n }\n function fromWireValue(value) {\n switch (value.type) {\n case "HANDLER" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case "RAW" /* WireValueType.RAW */:\n return value.value;\n }\n }\n function requestResponseMessage(ep, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n ep.addEventListener("message", function l(ev) {\n if (!ev.data || !ev.data.id || ev.data.id !== id) {\n return;\n }\n ep.removeEventListener("message", l);\n resolve(ev.data);\n });\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n }\n function generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join("-");\n }\n\n /**\n * MatrixRenderer class is meant to be used within a Web Worker context,\n * using Comlink to facilitate communication between the main thread and the worker.\n * The MatrixRenderer class manages a matrix of dies, once an instance of MatrixRenderer is created,\n * it is exposed to the main thread using Comlink\'s `expose` method.\n * This setup is used in the wafer-map component to perform heavy computational duties\n */\n class MatrixRenderer {\n constructor() {\n this.values = Float64Array.from([]);\n this.scaledColumnIndices = Float64Array.from([]);\n this.scaledRowIndices = Float64Array.from([]);\n this.columnIndicesPositions = Int32Array.from([]);\n this.colorIndices = Int32Array.from([]);\n this.colors = [];\n this.colorValues = Float64Array.from([]);\n this.outsideRangeDieColor = \'rgba(218,223,236,1)\';\n this.fontSizeFactor = 0.8;\n this.renderConfig = {\n dieDimensions: {\n width: 0,\n height: 0\n },\n margin: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n verticalCoefficient: 1,\n horizontalCoefficient: 1,\n horizontalConstant: 0,\n verticalConstant: 0,\n gridMinX: 0,\n gridMaxX: 0,\n gridMinY: 0,\n gridMaxY: 0,\n labelsFontSize: 0,\n colorScale: [],\n dieLabelsSuffix: \'\',\n maxCharacters: 0\n };\n this.transformConfig = {\n transform: {\n k: 1,\n x: 0,\n y: 0\n },\n topLeftCanvasCorner: {\n x: 0,\n y: 0\n },\n bottomRightCanvasCorner: {\n x: 0,\n y: 0\n }\n };\n }\n setMatrixData(columnIndices, rowIndices, valuesBuffer) {\n const scaledColumnIndex = [];\n const columnPositions = [];\n const scaledRowIndices = [];\n const values = [];\n const colorIndices = [];\n let prevXIndex;\n let dieCount = 0;\n for (let i = 0; i < columnIndices.length; i++) {\n const xIndex = columnIndices[i];\n const yIndex = rowIndices[i];\n if (this.isDieInGrid(xIndex, yIndex)) {\n if (xIndex !== prevXIndex) {\n scaledColumnIndex.push(this.calculateHorizontalScaledIndices(xIndex));\n columnPositions.push(dieCount);\n prevXIndex = xIndex;\n }\n scaledRowIndices.push(this.calculateVerticalScaledIndices(yIndex));\n const value = valuesBuffer[i];\n values.push(value);\n colorIndices.push(this.findColorIndex(value));\n dieCount += 1;\n }\n }\n this.scaledColumnIndices = Float64Array.from(scaledColumnIndex);\n this.columnIndicesPositions = Int32Array.from(columnPositions);\n this.scaledRowIndices = Float64Array.from(scaledRowIndices);\n this.values = Float64Array.from(values);\n this.colorIndices = Int32Array.from(colorIndices);\n }\n setRenderConfig(renderConfig) {\n this.renderConfig = renderConfig;\n this.colors = renderConfig.colorScale.map(marker => marker.color);\n this.colorValues = Float64Array.from(renderConfig.colorScale.map(marker => marker.value));\n }\n setTransformConfig(transformData) {\n this.transformConfig = transformData;\n }\n setCanvas(canvas) {\n this.canvas = canvas;\n this.context = canvas.getContext(\'2d\');\n }\n scaleCanvas() {\n this.context.translate(this.transformConfig.transform.x, this.transformConfig.transform.y);\n this.context.scale(this.transformConfig.transform.k, this.transformConfig.transform.k);\n }\n setCanvasDimensions(data) {\n this.canvas.width = data.width;\n this.canvas.height = data.height;\n }\n getCanvasDimensions() {\n return {\n width: this.canvas.width,\n height: this.canvas.height\n };\n }\n clearCanvas() {\n this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n }\n drawWafer() {\n this.context.restore();\n this.context.save();\n this.clearCanvas();\n this.scaleCanvas();\n for (let i = 0; i < this.scaledColumnIndices.length; i++) {\n const scaledX = this.scaledColumnIndices[i];\n if (!(scaledX >= this.transformConfig.topLeftCanvasCorner.x\n && scaledX < this.transformConfig.bottomRightCanvasCorner.x)) {\n continue;\n }\n // columnIndexPositions is used to get chunks to determine the start and end index of the column, it looks something like [0, 1, 4, 9, 12]\n // This means that the first column has a start index of 0 and an end index of 1, the second column has a start index of 1 and an end index of 4, and so on\n // scaledRowIndices is used when we reach the end of the columnIndexPositions, when columnIndexPositions is [0, 1, 4, 9, 12], scaledRowIndices is 13\n const columnEndIndex = this.columnIndicesPositions[i + 1] !== undefined\n ? this.columnIndicesPositions[i + 1]\n : this.scaledRowIndices.length;\n for (let columnStartIndex = this.columnIndicesPositions[i]; columnStartIndex < columnEndIndex; columnStartIndex++) {\n const scaledY = this.scaledRowIndices[columnStartIndex];\n if (!(scaledY >= this.transformConfig.topLeftCanvasCorner.y\n && scaledY < this.transformConfig.bottomRightCanvasCorner.y)) {\n continue;\n }\n // Fill style is temporary green for all dies, will be replaced with a color based on the value of the die in a future implementation\n this.context.fillStyle = this.colors[this.colorIndices[columnStartIndex]]\n ?? this.outsideRangeDieColor;\n this.context.fillRect(scaledX, scaledY, this.renderConfig.dieDimensions.width, this.renderConfig.dieDimensions.height);\n }\n }\n }\n drawText() {\n this.context.font = `${this.renderConfig.labelsFontSize.toString()}px sans-serif`;\n this.context.fillStyle = \'#ffffff\';\n this.context.textAlign = \'center\';\n this.context.lineCap = \'butt\';\n const approximateTextHeight = this.context.measureText(\'M\');\n for (let i = 0; i < this.scaledColumnIndices.length; i++) {\n const scaledX = this.scaledColumnIndices[i];\n if (!(scaledX >= this.transformConfig.topLeftCanvasCorner.x\n && scaledX < this.transformConfig.bottomRightCanvasCorner.x)) {\n continue;\n }\n // columnIndexPositions is used to get chunks to determine the start and end index of the column, it looks something like [0, 1, 4, 9, 12]\n // This means that the first column has a start index of 0 and an end index of 1, the second column has a start index of 1 and an end index of 4, and so on\n // scaledRowIndices is used when we reach the end of the columnIndexPositions, when columnIndexPositions is [0, 1, 4, 9, 12], scaledRowIndices is 13\n const columnEndIndex = this.columnIndicesPositions[i + 1] !== undefined\n ? this.columnIndicesPositions[i + 1]\n : this.scaledRowIndices.length;\n for (let columnStartIndex = this.columnIndicesPositions[i]; columnStartIndex < columnEndIndex; columnStartIndex++) {\n const scaledY = this.scaledRowIndices[columnStartIndex];\n if (!(scaledY >= this.transformConfig.topLeftCanvasCorner.y\n && scaledY < this.transformConfig.bottomRightCanvasCorner.y)) {\n continue;\n }\n let label = `${this.values[columnStartIndex] || \'NaN\'}${this.renderConfig.dieLabelsSuffix}`;\n if (label.length >= this.renderConfig.maxCharacters) {\n label = `${label.substring(0, this.renderConfig.maxCharacters)}…`;\n }\n this.context.fillText(label, scaledX + this.renderConfig.dieDimensions.width / 2, scaledY\n + this.renderConfig.dieDimensions.height / 2\n + approximateTextHeight.width / 2, this.renderConfig.dieDimensions.width * this.fontSizeFactor);\n }\n }\n }\n isDieInGrid(x, y) {\n return (x >= this.renderConfig.gridMinX\n && x <= this.renderConfig.gridMaxX\n && y >= this.renderConfig.gridMinY\n && y <= this.renderConfig.gridMaxY);\n }\n calculateHorizontalScaledIndices(columnIndex) {\n return (this.renderConfig.horizontalCoefficient * columnIndex\n + this.renderConfig.horizontalConstant\n + this.renderConfig.margin.left);\n }\n calculateVerticalScaledIndices(rowIndex) {\n return (this.renderConfig.verticalCoefficient * rowIndex\n + this.renderConfig.verticalConstant\n + this.renderConfig.margin.top);\n }\n findColorIndex(value) {\n let index = -1;\n if (this.colorValues.length === 0 || this.colorValues[0] >= value) {\n return index;\n }\n for (let i = 0; i < this.colorValues.length; i++) {\n if (value <= this.colorValues[i]) {\n index = i;\n break;\n }\n }\n return index;\n }\n }\n expose(MatrixRenderer);\n\n exports.MatrixRenderer = MatrixRenderer;\n\n return exports;\n\n})({});\n'],{type:"text/javascript"})
|
|
13244
13216
|
$q=URL.createObjectURL(e)}const e=new Worker($q),t=pq(e)
|
|
13245
13217
|
return{matrixRenderer:await new t,terminate:()=>e.terminate()}})()
|
|
13246
13218
|
this.matrixRenderer=e
|
|
@@ -13289,7 +13261,7 @@ this.canvas.width=i,this.canvas.height=n,this.canvasWidth=i,this.canvasHeight=n}
|
|
|
13289
13261
|
const Aq=Dq.compose({baseName:"wafer-map",template:vH,styles:bH})
|
|
13290
13262
|
yi.getOrCreate().withPrefix("nimble").register(Aq())
|
|
13291
13263
|
const Tq=xe`
|
|
13292
|
-
${Oq="inline-block",`${To(Oq)}`}
|
|
13264
|
+
${Oq="inline-block",`${To(Oq)}:host{box-sizing:border-box;}*{box-sizing:border-box;}:host::before,:host::after,::before,::after{box-sizing:border-box;}`}
|
|
13293
13265
|
|
|
13294
13266
|
:host {
|
|
13295
13267
|
border: 2px solid ${ja};
|