@ni/nimble-components 26.0.0 → 27.0.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.
- package/dist/all-components-bundle.js +498 -112
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +7825 -7751
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/src/theme-provider/design-token-comments.d.ts +1 -1
- package/dist/esm/src/theme-provider/design-tokens.d.ts +23 -23
- package/dist/esm/src/wafer-map/index.d.ts +9 -1
- package/dist/esm/src/wafer-map/modules/experimental/worker-renderer.d.ts +3 -1
- package/dist/esm/src/wafer-map/modules/zoom-handler.d.ts +2 -0
- package/dist/esm/src/wafer-map/workers/matrix-renderer.d.ts +1 -1
- package/dist/esm/theme-provider/design-token-comments.d.ts +1 -1
- package/dist/esm/theme-provider/design-token-comments.js +1 -24
- package/dist/esm/theme-provider/design-token-comments.js.map +1 -1
- package/dist/esm/theme-provider/design-token-names.js +1 -24
- package/dist/esm/theme-provider/design-token-names.js.map +1 -1
- package/dist/esm/theme-provider/design-tokens.d.ts +23 -23
- package/dist/esm/theme-provider/design-tokens.js +32 -55
- package/dist/esm/theme-provider/design-tokens.js.map +1 -1
- package/dist/esm/wafer-map/index.d.ts +9 -1
- package/dist/esm/wafer-map/index.js +6 -11
- package/dist/esm/wafer-map/index.js.map +1 -1
- package/dist/esm/wafer-map/modules/experimental/worker-renderer.d.ts +3 -1
- package/dist/esm/wafer-map/modules/experimental/worker-renderer.js +52 -2
- package/dist/esm/wafer-map/modules/experimental/worker-renderer.js.map +1 -1
- package/dist/esm/wafer-map/modules/prerendering.js +5 -3
- package/dist/esm/wafer-map/modules/prerendering.js.map +1 -1
- package/dist/esm/wafer-map/modules/wafer-map-update-tracker.js +14 -3
- package/dist/esm/wafer-map/modules/wafer-map-update-tracker.js.map +1 -1
- package/dist/esm/wafer-map/modules/zoom-handler.d.ts +2 -0
- package/dist/esm/wafer-map/modules/zoom-handler.js +10 -0
- package/dist/esm/wafer-map/modules/zoom-handler.js.map +1 -1
- package/dist/esm/wafer-map/styles.js +10 -5
- package/dist/esm/wafer-map/styles.js.map +1 -1
- package/dist/esm/wafer-map/template.js +2 -1
- package/dist/esm/wafer-map/template.js.map +1 -1
- package/dist/esm/wafer-map/workers/matrix-renderer.d.ts +1 -1
- package/dist/esm/wafer-map/workers/matrix-renderer.js +1 -1
- package/dist/esm/wafer-map/workers/matrix-renderer.js.map +1 -1
- package/dist/tokens-internal.scss +0 -138
- package/dist/tokens.scss +0 -69
- package/package.json +2 -1
|
@@ -4532,7 +4532,7 @@
|
|
|
4532
4532
|
const context = this.context;
|
|
4533
4533
|
for (let i = 0, ii = params.length; i < ii; ++i) {
|
|
4534
4534
|
current = params[i];
|
|
4535
|
-
if (!isObject$
|
|
4535
|
+
if (!isObject$2(current)) {
|
|
4536
4536
|
continue;
|
|
4537
4537
|
}
|
|
4538
4538
|
if (isRegistry(current)) {
|
|
@@ -4547,7 +4547,7 @@
|
|
|
4547
4547
|
jj = keys.length;
|
|
4548
4548
|
for (; j < jj; ++j) {
|
|
4549
4549
|
value = current[keys[j]];
|
|
4550
|
-
if (!isObject$
|
|
4550
|
+
if (!isObject$2(value)) {
|
|
4551
4551
|
continue;
|
|
4552
4552
|
}
|
|
4553
4553
|
// note: we could remove this if-branch and call this.register directly
|
|
@@ -4882,7 +4882,7 @@
|
|
|
4882
4882
|
return [resolver.resolve(handler, requestor)];
|
|
4883
4883
|
}
|
|
4884
4884
|
const defaultFriendlyName = "(anonymous)";
|
|
4885
|
-
function isObject$
|
|
4885
|
+
function isObject$2(value) {
|
|
4886
4886
|
return (typeof value === "object" && value !== null) || typeof value === "function";
|
|
4887
4887
|
}
|
|
4888
4888
|
/**
|
|
@@ -16333,7 +16333,7 @@
|
|
|
16333
16333
|
|
|
16334
16334
|
/**
|
|
16335
16335
|
* Do not edit directly
|
|
16336
|
-
* Generated on
|
|
16336
|
+
* Generated on Fri, 26 Apr 2024 07:57:56 GMT
|
|
16337
16337
|
*/
|
|
16338
16338
|
|
|
16339
16339
|
const Information100DarkUi = "#a46eff";
|
|
@@ -16531,7 +16531,6 @@
|
|
|
16531
16531
|
headlinePlus1FontSize: 'headline-plus-1-font-size',
|
|
16532
16532
|
headlinePlus1FontWeight: 'headline-plus-1-font-weight',
|
|
16533
16533
|
headlinePlus1FontLineHeight: 'headline-plus-1-font-line-height',
|
|
16534
|
-
headlinePlus1FallbackFontFamily: 'headline-plus-1-fallback-font-family',
|
|
16535
16534
|
headlineFont: 'headline-font',
|
|
16536
16535
|
headlineFontColor: 'headline-font-color',
|
|
16537
16536
|
headlineDisabledFontColor: 'headline-disabled-font-color',
|
|
@@ -16539,7 +16538,6 @@
|
|
|
16539
16538
|
headlineFontSize: 'headline-font-size',
|
|
16540
16539
|
headlineFontWeight: 'headline-font-weight',
|
|
16541
16540
|
headlineFontLineHeight: 'headline-font-line-height',
|
|
16542
|
-
headlineFallbackFontFamily: 'headline-fallback-font-family',
|
|
16543
16541
|
tableHeaderFont: 'table-header-font',
|
|
16544
16542
|
tableHeaderFontColor: 'table-header-font-color',
|
|
16545
16543
|
tableHeaderDisabledFontColor: 'table-header-disabled-font-color',
|
|
@@ -16547,7 +16545,6 @@
|
|
|
16547
16545
|
tableHeaderFontSize: 'table-header-font-size',
|
|
16548
16546
|
tableHeaderFontWeight: 'table-header-font-weight',
|
|
16549
16547
|
tableHeaderFontLineHeight: 'table-header-font-line-height',
|
|
16550
|
-
tableHeaderFallbackFontFamily: 'table-header-fallback-font-family',
|
|
16551
16548
|
titlePlus2Font: 'title-plus-2-font',
|
|
16552
16549
|
titlePlus2FontColor: 'title-plus-2-font-color',
|
|
16553
16550
|
titlePlus2DisabledFontColor: 'title-plus-2-disabled-font-color',
|
|
@@ -16555,7 +16552,6 @@
|
|
|
16555
16552
|
titlePlus2FontSize: 'title-plus-2-font-size',
|
|
16556
16553
|
titlePlus2FontWeight: 'title-plus-2-font-weight',
|
|
16557
16554
|
titlePlus2FontLineHeight: 'title-plus-2-font-line-height',
|
|
16558
|
-
titlePlus2FallbackFontFamily: 'title-plus-2-fallback-font-family',
|
|
16559
16555
|
titlePlus1Font: 'title-plus-1-font',
|
|
16560
16556
|
titlePlus1FontColor: 'title-plus-1-font-color',
|
|
16561
16557
|
titlePlus1DisabledFontColor: 'title-plus-1-disabled-font-color',
|
|
@@ -16563,7 +16559,6 @@
|
|
|
16563
16559
|
titlePlus1FontSize: 'title-plus-1-font-size',
|
|
16564
16560
|
titlePlus1FontWeight: 'title-plus-1-font-weight',
|
|
16565
16561
|
titlePlus1FontLineHeight: 'title-plus-1-font-line-height',
|
|
16566
|
-
titlePlus1FallbackFontFamily: 'title-plus-1-fallback-font-family',
|
|
16567
16562
|
titleFont: 'title-font',
|
|
16568
16563
|
titleFontColor: 'title-font-color',
|
|
16569
16564
|
titleDisabledFontColor: 'title-disabled-font-color',
|
|
@@ -16571,7 +16566,6 @@
|
|
|
16571
16566
|
titleFontSize: 'title-font-size',
|
|
16572
16567
|
titleFontWeight: 'title-font-weight',
|
|
16573
16568
|
titleFontLineHeight: 'title-font-line-height',
|
|
16574
|
-
titleFallbackFontFamily: 'title-fallback-font-family',
|
|
16575
16569
|
subtitlePlus1Font: 'subtitle-plus-1-font',
|
|
16576
16570
|
subtitlePlus1FontColor: 'subtitle-plus-1-font-color',
|
|
16577
16571
|
subtitlePlus1DisabledFontColor: 'subtitle-plus-1-disabled-font-color',
|
|
@@ -16579,7 +16573,6 @@
|
|
|
16579
16573
|
subtitlePlus1FontSize: 'subtitle-plus-1-font-size',
|
|
16580
16574
|
subtitlePlus1FontWeight: 'subtitle-plus-1-font-weight',
|
|
16581
16575
|
subtitlePlus1FontLineHeight: 'subtitle-plus-1-font-line-height',
|
|
16582
|
-
subtitlePlus1FallbackFontFamily: 'subtitle-plus-1-fallback-font-family',
|
|
16583
16576
|
subtitleFont: 'subtitle-font',
|
|
16584
16577
|
subtitleFontColor: 'subtitle-font-color',
|
|
16585
16578
|
subtitleDisabledFontColor: 'subtitle-disabled-font-color',
|
|
@@ -16587,7 +16580,6 @@
|
|
|
16587
16580
|
subtitleFontSize: 'subtitle-font-size',
|
|
16588
16581
|
subtitleFontWeight: 'subtitle-font-weight',
|
|
16589
16582
|
subtitleFontLineHeight: 'subtitle-font-line-height',
|
|
16590
|
-
subtitleFallbackFontFamily: 'subtitle-fallback-font-family',
|
|
16591
16583
|
linkFont: 'link-font',
|
|
16592
16584
|
linkFontColor: 'link-font-color',
|
|
16593
16585
|
linkDisabledFontColor: 'link-disabled-font-color',
|
|
@@ -16595,7 +16587,6 @@
|
|
|
16595
16587
|
linkFontSize: 'link-font-size',
|
|
16596
16588
|
linkFontWeight: 'link-font-weight',
|
|
16597
16589
|
linkFontLineHeight: 'link-font-line-height',
|
|
16598
|
-
linkFallbackFontFamily: 'link-fallback-font-family',
|
|
16599
16590
|
linkActiveFont: 'link-active-font',
|
|
16600
16591
|
linkActiveFontColor: 'link-active-font-color',
|
|
16601
16592
|
linkActiveDisabledFontColor: 'link-active-disabled-font-color',
|
|
@@ -16603,7 +16594,6 @@
|
|
|
16603
16594
|
linkActiveFontSize: 'link-active-font-size',
|
|
16604
16595
|
linkActiveFontWeight: 'link-active-font-weight',
|
|
16605
16596
|
linkActiveFontLineHeight: 'link-active-font-line-height',
|
|
16606
|
-
linkActiveFallbackFontFamily: 'link-active-fallback-font-family',
|
|
16607
16597
|
linkProminentFont: 'link-prominent-font',
|
|
16608
16598
|
linkProminentFontColor: 'link-prominent-font-color',
|
|
16609
16599
|
linkProminentDisabledFontColor: 'link-prominent-disabled-font-color',
|
|
@@ -16611,7 +16601,6 @@
|
|
|
16611
16601
|
linkProminentFontSize: 'link-prominent-font-size',
|
|
16612
16602
|
linkProminentFontWeight: 'link-prominent-font-weight',
|
|
16613
16603
|
linkProminentFontLineHeight: 'link-prominent-font-line-height',
|
|
16614
|
-
linkProminentFallbackFontFamily: 'link-prominent-fallback-font-family',
|
|
16615
16604
|
linkActiveProminentFont: 'link-active-prominent-font',
|
|
16616
16605
|
linkActiveProminentFontColor: 'link-active-prominent-font-color',
|
|
16617
16606
|
linkActiveProminentDisabledFontColor: 'link-active-prominent-disabled-font-color',
|
|
@@ -16619,7 +16608,6 @@
|
|
|
16619
16608
|
linkActiveProminentFontSize: 'link-active-prominent-font-size',
|
|
16620
16609
|
linkActiveProminentFontWeight: 'link-active-prominent-font-weight',
|
|
16621
16610
|
linkActiveProminentFontLineHeight: 'link-active-prominent-font-line-height',
|
|
16622
|
-
linkActiveProminentFallbackFontFamily: 'link-active-prominent-fallback-font-family',
|
|
16623
16611
|
placeholderFont: 'placeholder-font',
|
|
16624
16612
|
placeholderFontColor: 'placeholder-font-color',
|
|
16625
16613
|
placeholderDisabledFontColor: 'placeholder-disabled-font-color',
|
|
@@ -16627,7 +16615,6 @@
|
|
|
16627
16615
|
placeholderFontSize: 'placeholder-font-size',
|
|
16628
16616
|
placeholderFontWeight: 'placeholder-font-weight',
|
|
16629
16617
|
placeholderFontLineHeight: 'placeholder-font-line-height',
|
|
16630
|
-
placeholderFallbackFontFamily: 'placeholder-fallback-font-family',
|
|
16631
16618
|
bodyFont: 'body-font',
|
|
16632
16619
|
bodyFontColor: 'body-font-color',
|
|
16633
16620
|
bodyDisabledFontColor: 'body-disabled-font-color',
|
|
@@ -16635,7 +16622,6 @@
|
|
|
16635
16622
|
bodyFontSize: 'body-font-size',
|
|
16636
16623
|
bodyFontWeight: 'body-font-weight',
|
|
16637
16624
|
bodyFontLineHeight: 'body-font-line-height',
|
|
16638
|
-
bodyFallbackFontFamily: 'body-fallback-font-family',
|
|
16639
16625
|
bodyEmphasizedFont: 'body-emphasized-font',
|
|
16640
16626
|
bodyEmphasizedFontColor: 'body-emphasized-font-color',
|
|
16641
16627
|
bodyEmphasizedDisabledFontColor: 'body-emphasized-disabled-font-color',
|
|
@@ -16643,7 +16629,6 @@
|
|
|
16643
16629
|
bodyEmphasizedFontSize: 'body-emphasized-font-size',
|
|
16644
16630
|
bodyEmphasizedFontWeight: 'body-emphasized-font-weight',
|
|
16645
16631
|
bodyEmphasizedFontLineHeight: 'body-emphasized-font-line-height',
|
|
16646
|
-
bodyEmphasizedFallbackFontFamily: 'body-emphasized-fallback-font-family',
|
|
16647
16632
|
bodyPlus1Font: 'body-plus-1-font',
|
|
16648
16633
|
bodyPlus1FontColor: 'body-plus-1-font-color',
|
|
16649
16634
|
bodyPlus1DisabledFontColor: 'body-plus-1-disabled-font-color',
|
|
@@ -16651,7 +16636,6 @@
|
|
|
16651
16636
|
bodyPlus1FontSize: 'body-plus-1-font-size',
|
|
16652
16637
|
bodyPlus1FontWeight: 'body-plus-1-font-weight',
|
|
16653
16638
|
bodyPlus1FontLineHeight: 'body-plus-1-font-line-height',
|
|
16654
|
-
bodyPlus1FallbackFontFamily: 'body-plus-1-fallback-font-family',
|
|
16655
16639
|
bodyPlus1EmphasizedFont: 'body-plus-1-emphasized-font',
|
|
16656
16640
|
bodyPlus1EmphasizedFontColor: 'body-plus-1-emphasized-font-color',
|
|
16657
16641
|
bodyPlus1EmphasizedDisabledFontColor: 'body-plus-1-emphasized-disabled-font-color',
|
|
@@ -16659,7 +16643,6 @@
|
|
|
16659
16643
|
bodyPlus1EmphasizedFontSize: 'body-plus-1-emphasized-font-size',
|
|
16660
16644
|
bodyPlus1EmphasizedFontWeight: 'body-plus-1-emphasized-font-weight',
|
|
16661
16645
|
bodyPlus1EmphasizedFontLineHeight: 'body-plus-1-emphasized-font-line-height',
|
|
16662
|
-
bodyPlus1EmphasizedFallbackFontFamily: 'body-plus-1-emphasized-fallback-font-family',
|
|
16663
16646
|
groupHeaderFont: 'group-header-font',
|
|
16664
16647
|
groupHeaderFontColor: 'group-header-font-color',
|
|
16665
16648
|
groupHeaderDisabledFontColor: 'group-header-disabled-font-color',
|
|
@@ -16667,7 +16650,6 @@
|
|
|
16667
16650
|
groupHeaderFontSize: 'group-header-font-size',
|
|
16668
16651
|
groupHeaderFontWeight: 'group-header-font-weight',
|
|
16669
16652
|
groupHeaderFontLineHeight: 'group-header-font-line-height',
|
|
16670
|
-
groupHeaderFallbackFontFamily: 'group-header-fallback-font-family',
|
|
16671
16653
|
controlLabelFont: 'control-label-font',
|
|
16672
16654
|
controlLabelFontColor: 'control-label-font-color',
|
|
16673
16655
|
controlLabelDisabledFontColor: 'control-label-disabled-font-color',
|
|
@@ -16675,7 +16657,6 @@
|
|
|
16675
16657
|
controlLabelFontSize: 'control-label-font-size',
|
|
16676
16658
|
controlLabelFontWeight: 'control-label-font-weight',
|
|
16677
16659
|
controlLabelFontLineHeight: 'control-label-font-line-height',
|
|
16678
|
-
controlLabelFallbackFontFamily: 'control-label-fallback-font-family',
|
|
16679
16660
|
buttonLabelFont: 'button-label-font',
|
|
16680
16661
|
buttonLabelFontColor: 'button-label-font-color',
|
|
16681
16662
|
buttonLabelDisabledFontColor: 'button-label-disabled-font-color',
|
|
@@ -16683,7 +16664,6 @@
|
|
|
16683
16664
|
buttonLabelFontSize: 'button-label-font-size',
|
|
16684
16665
|
buttonLabelFontWeight: 'button-label-font-weight',
|
|
16685
16666
|
buttonLabelFontLineHeight: 'button-label-font-line-height',
|
|
16686
|
-
buttonLabelFallbackFontFamily: 'button-label-fallback-font-family',
|
|
16687
16667
|
tooltipCaptionFont: 'tooltip-caption-font',
|
|
16688
16668
|
tooltipCaptionFontColor: 'tooltip-caption-font-color',
|
|
16689
16669
|
tooltipCaptionDisabledFontColor: 'tooltip-caption-disabled-font-color',
|
|
@@ -16691,7 +16671,6 @@
|
|
|
16691
16671
|
tooltipCaptionFontSize: 'tooltip-caption-font-size',
|
|
16692
16672
|
tooltipCaptionFontWeight: 'tooltip-caption-font-weight',
|
|
16693
16673
|
tooltipCaptionFontLineHeight: 'tooltip-caption-font-line-height',
|
|
16694
|
-
tooltipCaptionFallbackFontFamily: 'tooltip-caption-fallback-font-family',
|
|
16695
16674
|
tooltipBackgroundColor: 'tooltip-background-color',
|
|
16696
16675
|
errorTextFont: 'error-text-font',
|
|
16697
16676
|
errorTextFontColor: 'error-text-font-color',
|
|
@@ -16700,7 +16679,6 @@
|
|
|
16700
16679
|
errorTextFontSize: 'error-text-font-size',
|
|
16701
16680
|
errorTextFontWeight: 'error-text-font-weight',
|
|
16702
16681
|
errorTextFontLineHeight: 'error-text-font-line-height',
|
|
16703
|
-
errorTextFallbackFontFamily: 'error-text-fallback-font-family',
|
|
16704
16682
|
tableRowBorderColor: 'table-row-border-color',
|
|
16705
16683
|
elevation1BoxShadow: 'elevation-1-box-shadow',
|
|
16706
16684
|
elevation2BoxShadow: 'elevation-2-box-shadow',
|
|
@@ -16712,8 +16690,7 @@
|
|
|
16712
16690
|
mentionFontFamily: 'mention-font-family',
|
|
16713
16691
|
mentionFontSize: 'mention-font-size',
|
|
16714
16692
|
mentionFontWeight: 'mention-font-weight',
|
|
16715
|
-
mentionFontLineHeight: 'mention-font-line-height'
|
|
16716
|
-
mentionFallbackFontFamily: 'mention-fallback-font-family'
|
|
16693
|
+
mentionFontLineHeight: 'mention-font-line-height'
|
|
16717
16694
|
};
|
|
16718
16695
|
const prefix = 'ni-nimble';
|
|
16719
16696
|
const styleNameFromTokenName = (tokenName) => `${prefix}-${tokenName}`;
|
|
@@ -16897,27 +16874,6 @@
|
|
|
16897
16874
|
.register(nimbleDesignSystemProvider());
|
|
16898
16875
|
const themeProviderTag = 'nimble-theme-provider';
|
|
16899
16876
|
|
|
16900
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
16901
|
-
const Headline1FallbackFontFamily = 'Noto Serif Fallback';
|
|
16902
|
-
const Headline2FallbackFontFamily = 'Noto Serif Fallback';
|
|
16903
|
-
const Title1FallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16904
|
-
const Title2FallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16905
|
-
const Title3FallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16906
|
-
const Subtitle1FallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16907
|
-
const Subtitle2FallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16908
|
-
const LinkFallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16909
|
-
const PlaceholderFallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16910
|
-
const BodyFallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16911
|
-
const Body2FallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16912
|
-
const BodyEmphasizedFallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16913
|
-
const BodyEmphasized2FallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16914
|
-
const GroupLabel1FallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16915
|
-
const ControlLabel1FallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16916
|
-
const ButtonLabel1FallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16917
|
-
const TooltipCaptionFallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16918
|
-
const ErrorLightUiFallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16919
|
-
const GridHeaderFallbackFontFamily = 'Source Sans Pro Fallback';
|
|
16920
|
-
/* eslint-enable @typescript-eslint/naming-convention */
|
|
16921
16877
|
// Color Tokens
|
|
16922
16878
|
const actionRgbPartialColor = DesignToken.create(styleNameFromTokenName(tokenNames.actionRgbPartialColor)).withDefault((element) => hexToRgbPartial(getColorForTheme(element, Black91, Black15, White)));
|
|
16923
16879
|
const applicationBackgroundColor = DesignToken.create(styleNameFromTokenName(tokenNames.applicationBackgroundColor)).withDefault((element) => getColorForTheme(element, White, Black85, ForestGreen));
|
|
@@ -16978,29 +16934,29 @@
|
|
|
16978
16934
|
const elevation2BoxShadow = DesignToken.create(styleNameFromTokenName(tokenNames.elevation2BoxShadow)).withDefault((element) => `0px 2px 4px ${hexToRgbaCssColor(getColorForTheme(element, Black, Black, Black), 0.16)}`);
|
|
16979
16935
|
const elevation3BoxShadow = DesignToken.create(styleNameFromTokenName(tokenNames.elevation3BoxShadow)).withDefault((element) => `0px 4px 8px ${hexToRgbaCssColor(getColorForTheme(element, Black, Black, Black), 0.3)}`);
|
|
16980
16936
|
// Font Tokens
|
|
16981
|
-
createFontTokens(tokenNames.headlineFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Headline1Family, Headline1Weight, Headline1Size, Headline1LineHeight
|
|
16982
|
-
createFontTokens(tokenNames.headlinePlus1Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Headline2Family, Headline2Weight, Headline2Size, Headline2LineHeight
|
|
16983
|
-
createFontTokens(tokenNames.titlePlus2Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Title3Family, Title3Weight, Title3Size, Title3LineHeight
|
|
16984
|
-
const [titlePlus1Font, titlePlus1FontColor, titlePlus1DisabledFontColor, titlePlus1FontFamily, titlePlus1FontWeight, titlePlus1FontSize, titlePlus1FontLineHeight
|
|
16985
|
-
createFontTokens(tokenNames.titleFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Title1Family, Title1Weight, Title1Size, Title1LineHeight
|
|
16986
|
-
const [subtitlePlus1Font, subtitlePlus1FontColor, subtitlePlus1DisabledFontColor, subtitlePlus1FontFamily, subtitlePlus1FontWeight, subtitlePlus1FontSize, subtitlePlus1FontLineHeight
|
|
16987
|
-
const [subtitleFont, subtitleFontColor, subtitleDisabledFontColor, subtitleFontFamily, subtitleFontWeight, subtitleFontSize, subtitleFontLineHeight
|
|
16988
|
-
const [linkFont, linkFontColor, linkDisabledFontColor, linkFontFamily, linkFontWeight, linkFontSize, linkFontLineHeight
|
|
16989
|
-
const [linkActiveFont, linkActiveFontColor, linkActiveDisabledFontColor, linkActiveFontFamily, linkActiveFontWeight, linkActiveFontSize, linkActiveFontLineHeight
|
|
16990
|
-
const [linkProminentFont, linkProminentFontColor, linkProminentDisabledFontColor, linkProminentFontFamily, linkProminentFontWeight, linkProminentFontSize, linkProminentFontLineHeight
|
|
16991
|
-
const [linkActiveProminentFont, linkActiveProminentFontColor, linkActiveProminentDisabledFontColor, linkActiveProminentFontFamily, linkActiveProminentFontWeight, linkActiveProminentFontSize, linkActiveProminentFontLineHeight
|
|
16992
|
-
const [placeholderFont, placeholderFontColor, placeholderDisabledFontColor, placeholderFontFamily, placeholderFontWeight, placeholderFontSize, placeholderFontLineHeight
|
|
16993
|
-
const [bodyFont, bodyFontColor, bodyDisabledFontColor, bodyFontFamily, bodyFontWeight, bodyFontSize, bodyFontLineHeight
|
|
16994
|
-
const [bodyEmphasizedFont, bodyEmphasizedFontColor, bodyEmphasizedDisabledFontColor, bodyEmphasizedFontFamily, bodyEmphasizedFontWeight, bodyEmphasizedFontSize, bodyEmphasizedFontLineHeight
|
|
16995
|
-
createFontTokens(tokenNames.bodyPlus1Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Body2Family, Body2Weight, Body2Size, Body2LineHeight
|
|
16996
|
-
createFontTokens(tokenNames.bodyPlus1EmphasizedFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), BodyEmphasized2Family, BodyEmphasized2Weight, BodyEmphasized2Size, BodyEmphasized2LineHeight
|
|
16997
|
-
const [groupHeaderFont, groupHeaderFontColor, groupHeaderDisabledFontColor, groupHeaderFontFamily, groupHeaderFontWeight, groupHeaderFontSize, groupHeaderFontLineHeight
|
|
16998
|
-
const [controlLabelFont, controlLabelFontColor, controlLabelDisabledFontColor, controlLabelFontFamily, controlLabelFontWeight, controlLabelFontSize, controlLabelFontLineHeight
|
|
16999
|
-
const [buttonLabelFont, buttonLabelFontColor, buttonLabelDisabledFontColor, buttonLabelFontFamily, buttonLabelFontWeight, buttonLabelFontSize, buttonLabelFontLineHeight
|
|
17000
|
-
const [tooltipCaptionFont, tooltipCaptionFontColor, tooltipCaptionDisabledFontColor, tooltipCaptionFontFamily, tooltipCaptionFontWeight, tooltipCaptionFontSize, tooltipCaptionFontLineHeight
|
|
17001
|
-
const [errorTextFont, errorTextFontColor, errorTextDisabledFontColor, errorTextFontFamily, errorTextFontWeight, errorTextFontSize, errorTextFontLineHeight
|
|
17002
|
-
const [tableHeaderFont, tableHeaderFontColor, tableHeaderDisabledFontColor, tableHeaderFontFamily, tableHeaderFontWeight, tableHeaderFontSize, tableHeaderFontLineHeight
|
|
17003
|
-
createFontTokens(tokenNames.mentionFont, (element) => getColorForTheme(element, DigitalGreenDark, PowerGreen, PowerGreen), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), BodyFamily, BodyEmphasizedWeight, BodySize, BodyLineHeight
|
|
16937
|
+
createFontTokens(tokenNames.headlineFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Headline1Family, Headline1Weight, Headline1Size, Headline1LineHeight);
|
|
16938
|
+
createFontTokens(tokenNames.headlinePlus1Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Headline2Family, Headline2Weight, Headline2Size, Headline2LineHeight);
|
|
16939
|
+
createFontTokens(tokenNames.titlePlus2Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Title3Family, Title3Weight, Title3Size, Title3LineHeight);
|
|
16940
|
+
const [titlePlus1Font, titlePlus1FontColor, titlePlus1DisabledFontColor, titlePlus1FontFamily, titlePlus1FontWeight, titlePlus1FontSize, titlePlus1FontLineHeight] = createFontTokens(tokenNames.titlePlus1Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Title2Family, Title2Weight, Title2Size, Title2LineHeight);
|
|
16941
|
+
createFontTokens(tokenNames.titleFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Title1Family, Title1Weight, Title1Size, Title1LineHeight);
|
|
16942
|
+
const [subtitlePlus1Font, subtitlePlus1FontColor, subtitlePlus1DisabledFontColor, subtitlePlus1FontFamily, subtitlePlus1FontWeight, subtitlePlus1FontSize, subtitlePlus1FontLineHeight] = createFontTokens(tokenNames.subtitlePlus1Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Subtitle2Family, Subtitle2Weight, Subtitle2Size, Subtitle2LineHeight);
|
|
16943
|
+
const [subtitleFont, subtitleFontColor, subtitleDisabledFontColor, subtitleFontFamily, subtitleFontWeight, subtitleFontSize, subtitleFontLineHeight] = createFontTokens(tokenNames.subtitleFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Subtitle1Family, Subtitle1Weight, Subtitle1Size, Subtitle1LineHeight);
|
|
16944
|
+
const [linkFont, linkFontColor, linkDisabledFontColor, linkFontFamily, linkFontWeight, linkFontSize, linkFontLineHeight] = createFontTokens(tokenNames.linkFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), LinkLightUiFamily, LinkLightUiWeight, LinkLightUiSize, LinkLineHeight);
|
|
16945
|
+
const [linkActiveFont, linkActiveFontColor, linkActiveDisabledFontColor, linkActiveFontFamily, linkActiveFontWeight, linkActiveFontSize, linkActiveFontLineHeight] = createFontTokens(tokenNames.linkActiveFont, (element) => getColorForTheme(element, DigitalGreenLight, DigitalGreenLight, hexToRgbaCssColor(White, 0.6)), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), LinkLightUiFamily, LinkLightUiWeight, LinkLightUiSize, LinkLineHeight);
|
|
16946
|
+
const [linkProminentFont, linkProminentFontColor, linkProminentDisabledFontColor, linkProminentFontFamily, linkProminentFontWeight, linkProminentFontSize, linkProminentFontLineHeight] = createFontTokens(tokenNames.linkProminentFont, (element) => getColorForTheme(element, DigitalGreenDark105, PowerGreen, PowerGreen), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), LinkLightUiFamily, LinkLightUiWeight, LinkLightUiSize, LinkLineHeight);
|
|
16947
|
+
const [linkActiveProminentFont, linkActiveProminentFontColor, linkActiveProminentDisabledFontColor, linkActiveProminentFontFamily, linkActiveProminentFontWeight, linkActiveProminentFontSize, linkActiveProminentFontLineHeight] = createFontTokens(tokenNames.linkActiveProminentFont, (element) => getColorForTheme(element, DigitalGreenLight, DigitalGreenLight, hexToRgbaCssColor(White, 0.6)), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), LinkLightUiFamily, LinkLightUiWeight, LinkLightUiSize, LinkLineHeight);
|
|
16948
|
+
const [placeholderFont, placeholderFontColor, placeholderDisabledFontColor, placeholderFontFamily, placeholderFontWeight, placeholderFontSize, placeholderFontLineHeight] = createFontTokens(tokenNames.placeholderFont, (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.6), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), PlaceholderFamily, PlaceholderWeight, PlaceholderSize, PlaceholderLineHeight);
|
|
16949
|
+
const [bodyFont, bodyFontColor, bodyDisabledFontColor, bodyFontFamily, bodyFontWeight, bodyFontSize, bodyFontLineHeight] = createFontTokens(tokenNames.bodyFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), BodyFamily, BodyWeight, BodySize, BodyLineHeight);
|
|
16950
|
+
const [bodyEmphasizedFont, bodyEmphasizedFontColor, bodyEmphasizedDisabledFontColor, bodyEmphasizedFontFamily, bodyEmphasizedFontWeight, bodyEmphasizedFontSize, bodyEmphasizedFontLineHeight] = createFontTokens(tokenNames.bodyEmphasizedFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), BodyEmphasizedFamily, BodyEmphasizedWeight, BodyEmphasizedSize, BodyEmphasizedLineHeight);
|
|
16951
|
+
createFontTokens(tokenNames.bodyPlus1Font, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), Body2Family, Body2Weight, Body2Size, Body2LineHeight);
|
|
16952
|
+
createFontTokens(tokenNames.bodyPlus1EmphasizedFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), BodyEmphasized2Family, BodyEmphasized2Weight, BodyEmphasized2Size, BodyEmphasized2LineHeight);
|
|
16953
|
+
const [groupHeaderFont, groupHeaderFontColor, groupHeaderDisabledFontColor, groupHeaderFontFamily, groupHeaderFontWeight, groupHeaderFontSize, groupHeaderFontLineHeight] = createFontTokens(tokenNames.groupHeaderFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), GroupLabel1Family, GroupLabel1Weight, GroupLabel1Size, GroupLabel1LineHeight);
|
|
16954
|
+
const [controlLabelFont, controlLabelFontColor, controlLabelDisabledFontColor, controlLabelFontFamily, controlLabelFontWeight, controlLabelFontSize, controlLabelFontLineHeight] = createFontTokens(tokenNames.controlLabelFont, (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.6), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), ControlLabel1Family, ControlLabel1Weight, ControlLabel1Size, ControlLabel1LineHeight);
|
|
16955
|
+
const [buttonLabelFont, buttonLabelFontColor, buttonLabelDisabledFontColor, buttonLabelFontFamily, buttonLabelFontWeight, buttonLabelFontSize, buttonLabelFontLineHeight] = createFontTokens(tokenNames.buttonLabelFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), ButtonLabel1Family, ButtonLabel1Weight, ButtonLabel1Size, ButtonLabel1LineHeight);
|
|
16956
|
+
const [tooltipCaptionFont, tooltipCaptionFontColor, tooltipCaptionDisabledFontColor, tooltipCaptionFontFamily, tooltipCaptionFontWeight, tooltipCaptionFontSize, tooltipCaptionFontLineHeight] = createFontTokens(tokenNames.tooltipCaptionFont, (element) => getDefaultFontColorForTheme(element), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), TooltipCaptionFamily, TooltipCaptionWeight, TooltipCaptionSize, TooltipCaptionLineHeight);
|
|
16957
|
+
const [errorTextFont, errorTextFontColor, errorTextDisabledFontColor, errorTextFontFamily, errorTextFontWeight, errorTextFontSize, errorTextFontLineHeight] = createFontTokens(tokenNames.errorTextFont, (element) => getFailColorForTheme(element), (element) => hexToRgbaCssColor(getFailColorForTheme(element), 0.3), ErrorLightUiFamily, ErrorLightUiWeight, ErrorLightUiSize, TooltipCaptionLineHeight);
|
|
16958
|
+
const [tableHeaderFont, tableHeaderFontColor, tableHeaderDisabledFontColor, tableHeaderFontFamily, tableHeaderFontWeight, tableHeaderFontSize, tableHeaderFontLineHeight] = createFontTokens(tokenNames.tableHeaderFont, (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.6), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), GridHeaderFamily, GridHeaderWeight, GridHeaderSize, TooltipCaptionLineHeight);
|
|
16959
|
+
createFontTokens(tokenNames.mentionFont, (element) => getColorForTheme(element, DigitalGreenDark, PowerGreen, PowerGreen), (element) => hexToRgbaCssColor(getDefaultFontColorForTheme(element), 0.3), BodyFamily, BodyEmphasizedWeight, BodySize, BodyLineHeight);
|
|
17004
16960
|
// Font Transform Tokens
|
|
17005
16961
|
const groupHeaderTextTransform = DesignToken.create(styleNameFromTokenName(tokenNames.groupHeaderTextTransform)).withDefault('uppercase');
|
|
17006
16962
|
// Animation Tokens
|
|
@@ -17012,16 +16968,16 @@
|
|
|
17012
16968
|
const { r, g, b } = parseColorHexRGB(hexValue);
|
|
17013
16969
|
return `${r * 255}, ${g * 255}, ${b * 255}`;
|
|
17014
16970
|
}
|
|
17015
|
-
function createFontTokens(fontTokenName, colorFunction, disabledColorFunction, family, weight, size, lineHeight
|
|
16971
|
+
function createFontTokens(fontTokenName, colorFunction, disabledColorFunction, family, weight, size, lineHeight) {
|
|
17016
16972
|
if (fontTokenName === ''
|
|
17017
16973
|
|| family === ''
|
|
17018
16974
|
|| weight === ''
|
|
17019
16975
|
|| size === ''
|
|
17020
|
-
|| lineHeight === ''
|
|
17021
|
-
|| fallbackFamily === '') {
|
|
16976
|
+
|| lineHeight === '') {
|
|
17022
16977
|
throw new Error('createFontTokens parameter unexpectedly set to empty string');
|
|
17023
16978
|
}
|
|
17024
|
-
const
|
|
16979
|
+
const familyWithFallback = `${family}, ${family} Fallback`;
|
|
16980
|
+
const fontToken = DesignToken.create(styleNameFromTokenName(fontTokenName)).withDefault(`${weight} ${size}/${lineHeight} ${familyWithFallback}`);
|
|
17025
16981
|
const fontNameParts = fontTokenName.split('-font');
|
|
17026
16982
|
const tokenPrefixWithoutFont = fontNameParts[0];
|
|
17027
16983
|
if (tokenPrefixWithoutFont === undefined || fontNameParts[1] !== '') {
|
|
@@ -17029,11 +16985,10 @@
|
|
|
17029
16985
|
}
|
|
17030
16986
|
const fontColorToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-color`)).withDefault((element) => colorFunction(element));
|
|
17031
16987
|
const fontDisabledColorToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-disabled-font-color`)).withDefault((element) => disabledColorFunction(element));
|
|
17032
|
-
const fontFamilyToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-family`)).withDefault(
|
|
17033
|
-
const fontWeightToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-weight`)).withDefault(
|
|
17034
|
-
const fontSizeToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-size`)).withDefault(
|
|
17035
|
-
const fontLineHeightToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-line-height`)).withDefault(
|
|
17036
|
-
const fontFallbackFamilyToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-fallback-font-family`)).withDefault(`${fallbackFamily}`);
|
|
16988
|
+
const fontFamilyToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-family`)).withDefault(familyWithFallback);
|
|
16989
|
+
const fontWeightToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-weight`)).withDefault(weight);
|
|
16990
|
+
const fontSizeToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-size`)).withDefault(size);
|
|
16991
|
+
const fontLineHeightToken = DesignToken.create(styleNameFromTokenName(`${tokenPrefixWithoutFont}-font-line-height`)).withDefault(lineHeight);
|
|
17037
16992
|
return [
|
|
17038
16993
|
fontToken,
|
|
17039
16994
|
fontColorToken,
|
|
@@ -17041,8 +16996,7 @@
|
|
|
17041
16996
|
fontFamilyToken,
|
|
17042
16997
|
fontWeightToken,
|
|
17043
16998
|
fontSizeToken,
|
|
17044
|
-
fontLineHeightToken
|
|
17045
|
-
fontFallbackFamilyToken
|
|
16999
|
+
fontLineHeightToken
|
|
17046
17000
|
];
|
|
17047
17001
|
}
|
|
17048
17002
|
function getColorForTheme(element, lightThemeColor, darkThemeColor, colorThemeColor) {
|
|
@@ -30531,7 +30485,7 @@
|
|
|
30531
30485
|
return null;
|
|
30532
30486
|
return inside;
|
|
30533
30487
|
}
|
|
30534
|
-
function wrap(tr, range, wrappers) {
|
|
30488
|
+
function wrap$1(tr, range, wrappers) {
|
|
30535
30489
|
let content = Fragment.empty;
|
|
30536
30490
|
for (let i = wrappers.length - 1; i >= 0; i--) {
|
|
30537
30491
|
if (content.size) {
|
|
@@ -31449,7 +31403,7 @@
|
|
|
31449
31403
|
probably be computed with [`findWrapping`](https://prosemirror.net/docs/ref/#transform.findWrapping).
|
|
31450
31404
|
*/
|
|
31451
31405
|
wrap(range, wrappers) {
|
|
31452
|
-
wrap(this, range, wrappers);
|
|
31406
|
+
wrap$1(this, range, wrappers);
|
|
31453
31407
|
return this;
|
|
31454
31408
|
}
|
|
31455
31409
|
/**
|
|
@@ -50686,7 +50640,7 @@ img.ProseMirror-separator {
|
|
|
50686
50640
|
|
|
50687
50641
|
function _class (obj) { return Object.prototype.toString.call(obj) }
|
|
50688
50642
|
function isString (obj) { return _class(obj) === '[object String]' }
|
|
50689
|
-
function isObject (obj) { return _class(obj) === '[object Object]' }
|
|
50643
|
+
function isObject$1 (obj) { return _class(obj) === '[object Object]' }
|
|
50690
50644
|
function isRegExp (obj) { return _class(obj) === '[object RegExp]' }
|
|
50691
50645
|
function isFunction$1 (obj) { return _class(obj) === '[object Function]' }
|
|
50692
50646
|
|
|
@@ -50848,7 +50802,7 @@ img.ProseMirror-separator {
|
|
|
50848
50802
|
|
|
50849
50803
|
self.__compiled__[name] = compiled;
|
|
50850
50804
|
|
|
50851
|
-
if (isObject(val)) {
|
|
50805
|
+
if (isObject$1(val)) {
|
|
50852
50806
|
if (isRegExp(val.validate)) {
|
|
50853
50807
|
compiled.validate = createValidator(val.validate);
|
|
50854
50808
|
} else if (isFunction$1(val.validate)) {
|
|
@@ -74793,7 +74747,8 @@ img.ProseMirror-separator {
|
|
|
74793
74747
|
</g>
|
|
74794
74748
|
</g>
|
|
74795
74749
|
</svg>
|
|
74796
|
-
<canvas class="wafer
|
|
74750
|
+
<canvas class="main-wafer" ${ref('canvas')}></canvas>
|
|
74751
|
+
<canvas class="worker-wafer" ${ref('workerCanvas')}></canvas>
|
|
74797
74752
|
<svg class="hover-layer">
|
|
74798
74753
|
<rect
|
|
74799
74754
|
class="hover-rect ${x => x.hoverOpacity}"
|
|
@@ -74812,6 +74767,16 @@ img.ProseMirror-separator {
|
|
|
74812
74767
|
height: 500px;
|
|
74813
74768
|
}
|
|
74814
74769
|
|
|
74770
|
+
.main-wafer {
|
|
74771
|
+
display: inline-block;
|
|
74772
|
+
position: absolute;
|
|
74773
|
+
}
|
|
74774
|
+
|
|
74775
|
+
.worker-wafer {
|
|
74776
|
+
display: inline-block;
|
|
74777
|
+
position: absolute;
|
|
74778
|
+
}
|
|
74779
|
+
|
|
74815
74780
|
.wafer-map-container {
|
|
74816
74781
|
width: 100%;
|
|
74817
74782
|
height: 100%;
|
|
@@ -74858,11 +74823,6 @@ img.ProseMirror-separator {
|
|
|
74858
74823
|
stroke: ${borderColor};
|
|
74859
74824
|
}
|
|
74860
74825
|
|
|
74861
|
-
.wafer-map-canvas {
|
|
74862
|
-
display: inline-block;
|
|
74863
|
-
position: absolute;
|
|
74864
|
-
}
|
|
74865
|
-
|
|
74866
74826
|
.hover-layer {
|
|
74867
74827
|
position: absolute;
|
|
74868
74828
|
pointer-events: none;
|
|
@@ -76057,9 +76017,11 @@ img.ProseMirror-separator {
|
|
|
76057
76017
|
updateDiesRenderInfo() {
|
|
76058
76018
|
this.d3ColorScale = this.createD3ColorScale(this.wafermap.colorScale, this.wafermap.colorScaleMode);
|
|
76059
76019
|
const isDieRenderInfo = (info) => info !== null;
|
|
76060
|
-
|
|
76061
|
-
.
|
|
76062
|
-
|
|
76020
|
+
if (this.wafermap.diesTable === undefined) {
|
|
76021
|
+
this._diesRenderInfo = this.wafermap.dies
|
|
76022
|
+
.map(die => this.computeDieRenderInfo(die))
|
|
76023
|
+
.filter(isDieRenderInfo);
|
|
76024
|
+
}
|
|
76063
76025
|
}
|
|
76064
76026
|
computeDieRenderInfo(die) {
|
|
76065
76027
|
const margin = this.wafermap.dataManager.margin;
|
|
@@ -76661,17 +76623,28 @@ img.ProseMirror-separator {
|
|
|
76661
76623
|
* After the update is finished, all the tracked items are reset.
|
|
76662
76624
|
*/
|
|
76663
76625
|
queueUpdate() {
|
|
76664
|
-
if (!this.wafermap.$fastController.isConnected) {
|
|
76626
|
+
if (!this.wafermap.$fastController.isConnected || this.updateQueued) {
|
|
76665
76627
|
return;
|
|
76666
76628
|
}
|
|
76667
|
-
|
|
76668
|
-
|
|
76629
|
+
this.updateQueued = true;
|
|
76630
|
+
if (this.wafermap.currentTask === undefined) {
|
|
76669
76631
|
DOM.queueUpdate(() => {
|
|
76670
76632
|
this.wafermap.update();
|
|
76671
76633
|
this.untrackAll();
|
|
76672
76634
|
this.updateQueued = false;
|
|
76673
76635
|
});
|
|
76674
76636
|
}
|
|
76637
|
+
else {
|
|
76638
|
+
void (async () => {
|
|
76639
|
+
await this.wafermap.currentTask;
|
|
76640
|
+
DOM.queueUpdate(() => {
|
|
76641
|
+
this.wafermap.update();
|
|
76642
|
+
this.untrackAll();
|
|
76643
|
+
this.updateQueued = false;
|
|
76644
|
+
this.wafermap.currentTask = undefined;
|
|
76645
|
+
});
|
|
76646
|
+
})();
|
|
76647
|
+
}
|
|
76675
76648
|
}
|
|
76676
76649
|
}
|
|
76677
76650
|
|
|
@@ -77331,6 +77304,367 @@ img.ProseMirror-separator {
|
|
|
77331
77304
|
}
|
|
77332
77305
|
}
|
|
77333
77306
|
|
|
77307
|
+
/**
|
|
77308
|
+
* @license
|
|
77309
|
+
* Copyright 2019 Google LLC
|
|
77310
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
77311
|
+
*/
|
|
77312
|
+
const proxyMarker = Symbol("Comlink.proxy");
|
|
77313
|
+
const createEndpoint = Symbol("Comlink.endpoint");
|
|
77314
|
+
const releaseProxy = Symbol("Comlink.releaseProxy");
|
|
77315
|
+
const finalizer = Symbol("Comlink.finalizer");
|
|
77316
|
+
const throwMarker = Symbol("Comlink.thrown");
|
|
77317
|
+
const isObject = (val) => (typeof val === "object" && val !== null) || typeof val === "function";
|
|
77318
|
+
/**
|
|
77319
|
+
* Internal transfer handle to handle objects marked to proxy.
|
|
77320
|
+
*/
|
|
77321
|
+
const proxyTransferHandler = {
|
|
77322
|
+
canHandle: (val) => isObject(val) && val[proxyMarker],
|
|
77323
|
+
serialize(obj) {
|
|
77324
|
+
const { port1, port2 } = new MessageChannel();
|
|
77325
|
+
expose(obj, port1);
|
|
77326
|
+
return [port2, [port2]];
|
|
77327
|
+
},
|
|
77328
|
+
deserialize(port) {
|
|
77329
|
+
port.start();
|
|
77330
|
+
return wrap(port);
|
|
77331
|
+
},
|
|
77332
|
+
};
|
|
77333
|
+
/**
|
|
77334
|
+
* Internal transfer handler to handle thrown exceptions.
|
|
77335
|
+
*/
|
|
77336
|
+
const throwTransferHandler = {
|
|
77337
|
+
canHandle: (value) => isObject(value) && throwMarker in value,
|
|
77338
|
+
serialize({ value }) {
|
|
77339
|
+
let serialized;
|
|
77340
|
+
if (value instanceof Error) {
|
|
77341
|
+
serialized = {
|
|
77342
|
+
isError: true,
|
|
77343
|
+
value: {
|
|
77344
|
+
message: value.message,
|
|
77345
|
+
name: value.name,
|
|
77346
|
+
stack: value.stack,
|
|
77347
|
+
},
|
|
77348
|
+
};
|
|
77349
|
+
}
|
|
77350
|
+
else {
|
|
77351
|
+
serialized = { isError: false, value };
|
|
77352
|
+
}
|
|
77353
|
+
return [serialized, []];
|
|
77354
|
+
},
|
|
77355
|
+
deserialize(serialized) {
|
|
77356
|
+
if (serialized.isError) {
|
|
77357
|
+
throw Object.assign(new Error(serialized.value.message), serialized.value);
|
|
77358
|
+
}
|
|
77359
|
+
throw serialized.value;
|
|
77360
|
+
},
|
|
77361
|
+
};
|
|
77362
|
+
/**
|
|
77363
|
+
* Allows customizing the serialization of certain values.
|
|
77364
|
+
*/
|
|
77365
|
+
const transferHandlers = new Map([
|
|
77366
|
+
["proxy", proxyTransferHandler],
|
|
77367
|
+
["throw", throwTransferHandler],
|
|
77368
|
+
]);
|
|
77369
|
+
function isAllowedOrigin(allowedOrigins, origin) {
|
|
77370
|
+
for (const allowedOrigin of allowedOrigins) {
|
|
77371
|
+
if (origin === allowedOrigin || allowedOrigin === "*") {
|
|
77372
|
+
return true;
|
|
77373
|
+
}
|
|
77374
|
+
if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {
|
|
77375
|
+
return true;
|
|
77376
|
+
}
|
|
77377
|
+
}
|
|
77378
|
+
return false;
|
|
77379
|
+
}
|
|
77380
|
+
function expose(obj, ep = globalThis, allowedOrigins = ["*"]) {
|
|
77381
|
+
ep.addEventListener("message", function callback(ev) {
|
|
77382
|
+
if (!ev || !ev.data) {
|
|
77383
|
+
return;
|
|
77384
|
+
}
|
|
77385
|
+
if (!isAllowedOrigin(allowedOrigins, ev.origin)) {
|
|
77386
|
+
console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);
|
|
77387
|
+
return;
|
|
77388
|
+
}
|
|
77389
|
+
const { id, type, path } = Object.assign({ path: [] }, ev.data);
|
|
77390
|
+
const argumentList = (ev.data.argumentList || []).map(fromWireValue);
|
|
77391
|
+
let returnValue;
|
|
77392
|
+
try {
|
|
77393
|
+
const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);
|
|
77394
|
+
const rawValue = path.reduce((obj, prop) => obj[prop], obj);
|
|
77395
|
+
switch (type) {
|
|
77396
|
+
case "GET" /* MessageType.GET */:
|
|
77397
|
+
{
|
|
77398
|
+
returnValue = rawValue;
|
|
77399
|
+
}
|
|
77400
|
+
break;
|
|
77401
|
+
case "SET" /* MessageType.SET */:
|
|
77402
|
+
{
|
|
77403
|
+
parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);
|
|
77404
|
+
returnValue = true;
|
|
77405
|
+
}
|
|
77406
|
+
break;
|
|
77407
|
+
case "APPLY" /* MessageType.APPLY */:
|
|
77408
|
+
{
|
|
77409
|
+
returnValue = rawValue.apply(parent, argumentList);
|
|
77410
|
+
}
|
|
77411
|
+
break;
|
|
77412
|
+
case "CONSTRUCT" /* MessageType.CONSTRUCT */:
|
|
77413
|
+
{
|
|
77414
|
+
const value = new rawValue(...argumentList);
|
|
77415
|
+
returnValue = proxy(value);
|
|
77416
|
+
}
|
|
77417
|
+
break;
|
|
77418
|
+
case "ENDPOINT" /* MessageType.ENDPOINT */:
|
|
77419
|
+
{
|
|
77420
|
+
const { port1, port2 } = new MessageChannel();
|
|
77421
|
+
expose(obj, port2);
|
|
77422
|
+
returnValue = transfer(port1, [port1]);
|
|
77423
|
+
}
|
|
77424
|
+
break;
|
|
77425
|
+
case "RELEASE" /* MessageType.RELEASE */:
|
|
77426
|
+
{
|
|
77427
|
+
returnValue = undefined;
|
|
77428
|
+
}
|
|
77429
|
+
break;
|
|
77430
|
+
default:
|
|
77431
|
+
return;
|
|
77432
|
+
}
|
|
77433
|
+
}
|
|
77434
|
+
catch (value) {
|
|
77435
|
+
returnValue = { value, [throwMarker]: 0 };
|
|
77436
|
+
}
|
|
77437
|
+
Promise.resolve(returnValue)
|
|
77438
|
+
.catch((value) => {
|
|
77439
|
+
return { value, [throwMarker]: 0 };
|
|
77440
|
+
})
|
|
77441
|
+
.then((returnValue) => {
|
|
77442
|
+
const [wireValue, transferables] = toWireValue(returnValue);
|
|
77443
|
+
ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);
|
|
77444
|
+
if (type === "RELEASE" /* MessageType.RELEASE */) {
|
|
77445
|
+
// detach and deactive after sending release response above.
|
|
77446
|
+
ep.removeEventListener("message", callback);
|
|
77447
|
+
closeEndPoint(ep);
|
|
77448
|
+
if (finalizer in obj && typeof obj[finalizer] === "function") {
|
|
77449
|
+
obj[finalizer]();
|
|
77450
|
+
}
|
|
77451
|
+
}
|
|
77452
|
+
})
|
|
77453
|
+
.catch((error) => {
|
|
77454
|
+
// Send Serialization Error To Caller
|
|
77455
|
+
const [wireValue, transferables] = toWireValue({
|
|
77456
|
+
value: new TypeError("Unserializable return value"),
|
|
77457
|
+
[throwMarker]: 0,
|
|
77458
|
+
});
|
|
77459
|
+
ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);
|
|
77460
|
+
});
|
|
77461
|
+
});
|
|
77462
|
+
if (ep.start) {
|
|
77463
|
+
ep.start();
|
|
77464
|
+
}
|
|
77465
|
+
}
|
|
77466
|
+
function isMessagePort(endpoint) {
|
|
77467
|
+
return endpoint.constructor.name === "MessagePort";
|
|
77468
|
+
}
|
|
77469
|
+
function closeEndPoint(endpoint) {
|
|
77470
|
+
if (isMessagePort(endpoint))
|
|
77471
|
+
endpoint.close();
|
|
77472
|
+
}
|
|
77473
|
+
function wrap(ep, target) {
|
|
77474
|
+
return createProxy(ep, [], target);
|
|
77475
|
+
}
|
|
77476
|
+
function throwIfProxyReleased(isReleased) {
|
|
77477
|
+
if (isReleased) {
|
|
77478
|
+
throw new Error("Proxy has been released and is not useable");
|
|
77479
|
+
}
|
|
77480
|
+
}
|
|
77481
|
+
function releaseEndpoint(ep) {
|
|
77482
|
+
return requestResponseMessage(ep, {
|
|
77483
|
+
type: "RELEASE" /* MessageType.RELEASE */,
|
|
77484
|
+
}).then(() => {
|
|
77485
|
+
closeEndPoint(ep);
|
|
77486
|
+
});
|
|
77487
|
+
}
|
|
77488
|
+
const proxyCounter = new WeakMap();
|
|
77489
|
+
const proxyFinalizers = "FinalizationRegistry" in globalThis &&
|
|
77490
|
+
new FinalizationRegistry((ep) => {
|
|
77491
|
+
const newCount = (proxyCounter.get(ep) || 0) - 1;
|
|
77492
|
+
proxyCounter.set(ep, newCount);
|
|
77493
|
+
if (newCount === 0) {
|
|
77494
|
+
releaseEndpoint(ep);
|
|
77495
|
+
}
|
|
77496
|
+
});
|
|
77497
|
+
function registerProxy(proxy, ep) {
|
|
77498
|
+
const newCount = (proxyCounter.get(ep) || 0) + 1;
|
|
77499
|
+
proxyCounter.set(ep, newCount);
|
|
77500
|
+
if (proxyFinalizers) {
|
|
77501
|
+
proxyFinalizers.register(proxy, ep, proxy);
|
|
77502
|
+
}
|
|
77503
|
+
}
|
|
77504
|
+
function unregisterProxy(proxy) {
|
|
77505
|
+
if (proxyFinalizers) {
|
|
77506
|
+
proxyFinalizers.unregister(proxy);
|
|
77507
|
+
}
|
|
77508
|
+
}
|
|
77509
|
+
function createProxy(ep, path = [], target = function () { }) {
|
|
77510
|
+
let isProxyReleased = false;
|
|
77511
|
+
const proxy = new Proxy(target, {
|
|
77512
|
+
get(_target, prop) {
|
|
77513
|
+
throwIfProxyReleased(isProxyReleased);
|
|
77514
|
+
if (prop === releaseProxy) {
|
|
77515
|
+
return () => {
|
|
77516
|
+
unregisterProxy(proxy);
|
|
77517
|
+
releaseEndpoint(ep);
|
|
77518
|
+
isProxyReleased = true;
|
|
77519
|
+
};
|
|
77520
|
+
}
|
|
77521
|
+
if (prop === "then") {
|
|
77522
|
+
if (path.length === 0) {
|
|
77523
|
+
return { then: () => proxy };
|
|
77524
|
+
}
|
|
77525
|
+
const r = requestResponseMessage(ep, {
|
|
77526
|
+
type: "GET" /* MessageType.GET */,
|
|
77527
|
+
path: path.map((p) => p.toString()),
|
|
77528
|
+
}).then(fromWireValue);
|
|
77529
|
+
return r.then.bind(r);
|
|
77530
|
+
}
|
|
77531
|
+
return createProxy(ep, [...path, prop]);
|
|
77532
|
+
},
|
|
77533
|
+
set(_target, prop, rawValue) {
|
|
77534
|
+
throwIfProxyReleased(isProxyReleased);
|
|
77535
|
+
// FIXME: ES6 Proxy Handler `set` methods are supposed to return a
|
|
77536
|
+
// boolean. To show good will, we return true asynchronously ¯\_(ツ)_/¯
|
|
77537
|
+
const [value, transferables] = toWireValue(rawValue);
|
|
77538
|
+
return requestResponseMessage(ep, {
|
|
77539
|
+
type: "SET" /* MessageType.SET */,
|
|
77540
|
+
path: [...path, prop].map((p) => p.toString()),
|
|
77541
|
+
value,
|
|
77542
|
+
}, transferables).then(fromWireValue);
|
|
77543
|
+
},
|
|
77544
|
+
apply(_target, _thisArg, rawArgumentList) {
|
|
77545
|
+
throwIfProxyReleased(isProxyReleased);
|
|
77546
|
+
const last = path[path.length - 1];
|
|
77547
|
+
if (last === createEndpoint) {
|
|
77548
|
+
return requestResponseMessage(ep, {
|
|
77549
|
+
type: "ENDPOINT" /* MessageType.ENDPOINT */,
|
|
77550
|
+
}).then(fromWireValue);
|
|
77551
|
+
}
|
|
77552
|
+
// We just pretend that `bind()` didn’t happen.
|
|
77553
|
+
if (last === "bind") {
|
|
77554
|
+
return createProxy(ep, path.slice(0, -1));
|
|
77555
|
+
}
|
|
77556
|
+
const [argumentList, transferables] = processArguments(rawArgumentList);
|
|
77557
|
+
return requestResponseMessage(ep, {
|
|
77558
|
+
type: "APPLY" /* MessageType.APPLY */,
|
|
77559
|
+
path: path.map((p) => p.toString()),
|
|
77560
|
+
argumentList,
|
|
77561
|
+
}, transferables).then(fromWireValue);
|
|
77562
|
+
},
|
|
77563
|
+
construct(_target, rawArgumentList) {
|
|
77564
|
+
throwIfProxyReleased(isProxyReleased);
|
|
77565
|
+
const [argumentList, transferables] = processArguments(rawArgumentList);
|
|
77566
|
+
return requestResponseMessage(ep, {
|
|
77567
|
+
type: "CONSTRUCT" /* MessageType.CONSTRUCT */,
|
|
77568
|
+
path: path.map((p) => p.toString()),
|
|
77569
|
+
argumentList,
|
|
77570
|
+
}, transferables).then(fromWireValue);
|
|
77571
|
+
},
|
|
77572
|
+
});
|
|
77573
|
+
registerProxy(proxy, ep);
|
|
77574
|
+
return proxy;
|
|
77575
|
+
}
|
|
77576
|
+
function myFlat(arr) {
|
|
77577
|
+
return Array.prototype.concat.apply([], arr);
|
|
77578
|
+
}
|
|
77579
|
+
function processArguments(argumentList) {
|
|
77580
|
+
const processed = argumentList.map(toWireValue);
|
|
77581
|
+
return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];
|
|
77582
|
+
}
|
|
77583
|
+
const transferCache = new WeakMap();
|
|
77584
|
+
function transfer(obj, transfers) {
|
|
77585
|
+
transferCache.set(obj, transfers);
|
|
77586
|
+
return obj;
|
|
77587
|
+
}
|
|
77588
|
+
function proxy(obj) {
|
|
77589
|
+
return Object.assign(obj, { [proxyMarker]: true });
|
|
77590
|
+
}
|
|
77591
|
+
function toWireValue(value) {
|
|
77592
|
+
for (const [name, handler] of transferHandlers) {
|
|
77593
|
+
if (handler.canHandle(value)) {
|
|
77594
|
+
const [serializedValue, transferables] = handler.serialize(value);
|
|
77595
|
+
return [
|
|
77596
|
+
{
|
|
77597
|
+
type: "HANDLER" /* WireValueType.HANDLER */,
|
|
77598
|
+
name,
|
|
77599
|
+
value: serializedValue,
|
|
77600
|
+
},
|
|
77601
|
+
transferables,
|
|
77602
|
+
];
|
|
77603
|
+
}
|
|
77604
|
+
}
|
|
77605
|
+
return [
|
|
77606
|
+
{
|
|
77607
|
+
type: "RAW" /* WireValueType.RAW */,
|
|
77608
|
+
value,
|
|
77609
|
+
},
|
|
77610
|
+
transferCache.get(value) || [],
|
|
77611
|
+
];
|
|
77612
|
+
}
|
|
77613
|
+
function fromWireValue(value) {
|
|
77614
|
+
switch (value.type) {
|
|
77615
|
+
case "HANDLER" /* WireValueType.HANDLER */:
|
|
77616
|
+
return transferHandlers.get(value.name).deserialize(value.value);
|
|
77617
|
+
case "RAW" /* WireValueType.RAW */:
|
|
77618
|
+
return value.value;
|
|
77619
|
+
}
|
|
77620
|
+
}
|
|
77621
|
+
function requestResponseMessage(ep, msg, transfers) {
|
|
77622
|
+
return new Promise((resolve) => {
|
|
77623
|
+
const id = generateUUID();
|
|
77624
|
+
ep.addEventListener("message", function l(ev) {
|
|
77625
|
+
if (!ev.data || !ev.data.id || ev.data.id !== id) {
|
|
77626
|
+
return;
|
|
77627
|
+
}
|
|
77628
|
+
ep.removeEventListener("message", l);
|
|
77629
|
+
resolve(ev.data);
|
|
77630
|
+
});
|
|
77631
|
+
if (ep.start) {
|
|
77632
|
+
ep.start();
|
|
77633
|
+
}
|
|
77634
|
+
ep.postMessage(Object.assign({ id }, msg), transfers);
|
|
77635
|
+
});
|
|
77636
|
+
}
|
|
77637
|
+
function generateUUID() {
|
|
77638
|
+
return new Array(4)
|
|
77639
|
+
.fill(0)
|
|
77640
|
+
.map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))
|
|
77641
|
+
.join("-");
|
|
77642
|
+
}
|
|
77643
|
+
|
|
77644
|
+
// eslint-disable-next-line no-template-curly-in-string
|
|
77645
|
+
const workerCode = "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.columnIndexes = Int32Array.from([]);\n this.rowIndexes = Int32Array.from([]);\n this.values = Float64Array.from([]);\n this.scaledColumnIndex = Float64Array.from([]);\n this.scaledRowIndex = Float64Array.from([]);\n this.columnIndexPositions = Int32Array.from([]);\n this.scaleX = 1;\n this.scaleY = 1;\n this.baseX = 1;\n this.baseY = 1;\n this.dieDimensions = { width: 1, height: 1 };\n this.transform = { k: 1, x: 0, y: 0 };\n this.smallestMarginPossible = 20;\n this.margin = {\n top: this.smallestMarginPossible,\n right: this.smallestMarginPossible,\n bottom: this.smallestMarginPossible,\n left: this.smallestMarginPossible\n };\n }\n calculateXScaledIndex(columnIndex) {\n return this.scaleX * columnIndex + this.baseX + this.margin.left;\n }\n calculateYScaledIndex(rowIndex) {\n return this.scaleY * rowIndex + this.baseY + this.margin.top;\n }\n setColumnIndexes(columnIndexes) {\n this.columnIndexes = columnIndexes;\n if (columnIndexes.length === 0 || this.columnIndexes[0] === undefined) {\n return;\n }\n const scaledColumnIndex = [\n this.calculateXScaledIndex(this.columnIndexes[0])\n ];\n const columnPositions = [0];\n let prev = this.columnIndexes[0];\n for (let i = 1; i < this.columnIndexes.length; i++) {\n const xIndex = this.columnIndexes[i];\n if (xIndex && xIndex !== prev) {\n const scaledX = this.calculateXScaledIndex(this.columnIndexes[i]);\n scaledColumnIndex.push(scaledX);\n columnPositions.push(i);\n prev = xIndex;\n }\n }\n this.scaledColumnIndex = Float64Array.from(scaledColumnIndex);\n this.columnIndexPositions = Int32Array.from(columnPositions);\n }\n setRowIndexes(rowIndexesBuffer) {\n this.rowIndexes = rowIndexesBuffer;\n this.scaledRowIndex = new Float64Array(this.rowIndexes.length);\n for (let i = 0; i < this.rowIndexes.length; i++) {\n this.scaledRowIndex[i] = this.calculateYScaledIndex(this.rowIndexes[i]);\n }\n }\n setMargin(margin) {\n this.margin = margin;\n }\n setCanvasCorners(topLeft, bottomRight) {\n this.topLeftCanvasCorner = topLeft;\n this.bottomRightCanvasCorner = bottomRight;\n }\n setDiesDimensions(data) {\n this.dieDimensions = { width: data.width, height: data.height };\n }\n setScaling(scaleX, scaleY) {\n this.scaleX = scaleX;\n this.scaleY = scaleY;\n }\n setBases(baseX, baseY) {\n this.baseX = baseX;\n this.baseY = baseY;\n }\n setTransform(transform) {\n this.transform = transform;\n }\n setCanvas(canvas) {\n this.canvas = canvas;\n this.context = canvas.getContext('2d');\n }\n getMatrix() {\n return {\n columnIndexes: this.columnIndexes,\n rowIndexes: this.rowIndexes,\n values: this.values\n };\n }\n emptyMatrix() {\n this.columnIndexes = Int32Array.from([]);\n this.rowIndexes = Int32Array.from([]);\n this.values = Float64Array.from([]);\n }\n scaleCanvas() {\n this.context.translate(this.transform.x, this.transform.y);\n this.context.scale(this.transform.k, this.transform.k);\n }\n updateMatrix(data) {\n this.columnIndexes = Int32Array.from(data.columnIndexes);\n this.rowIndexes = Int32Array.from(data.rowIndexes);\n this.values = Float64Array.from(data.values);\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 if (this.topLeftCanvasCorner === undefined\n || this.bottomRightCanvasCorner === undefined) {\n throw new Error('Canvas corners are not set');\n }\n for (let i = 0; i < this.scaledColumnIndex.length; i++) {\n const scaledX = this.scaledColumnIndex[i];\n if (!(scaledX >= this.topLeftCanvasCorner.x\n && scaledX < this.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 // scaledRowIndex is used when we reach the end of the columnIndexPositions, when columnIndexPositions is [0, 1, 4, 9, 12], scaledRowIndex is 13\n const columnEndIndex = this.columnIndexPositions[i + 1] !== undefined\n ? this.columnIndexPositions[i + 1]\n : this.scaledRowIndex.length;\n for (let columnStartIndex = this.columnIndexPositions[i]; columnStartIndex < columnEndIndex; columnStartIndex++) {\n const scaledY = this.scaledRowIndex[columnStartIndex];\n if (!(scaledY >= this.topLeftCanvasCorner.y\n && scaledY < this.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 = 'Green';\n this.context.fillRect(scaledX, scaledY, this.dieDimensions.width, this.dieDimensions.height);\n }\n }\n }\n }\n expose(MatrixRenderer);\n\n exports.MatrixRenderer = MatrixRenderer;\n\n return exports;\n\n})({});\n";
|
|
77646
|
+
|
|
77647
|
+
let url;
|
|
77648
|
+
/**
|
|
77649
|
+
* Asynchronously creates and returns a Remote<MatrixRenderer> instance.
|
|
77650
|
+
* This function simplifies the process of creating and accessing MatrixRenderer instances.
|
|
77651
|
+
*/
|
|
77652
|
+
const createMatrixRenderer = async () => {
|
|
77653
|
+
if (url === undefined) {
|
|
77654
|
+
const blob = new Blob([workerCode], { type: 'text/javascript' });
|
|
77655
|
+
url = URL.createObjectURL(blob);
|
|
77656
|
+
}
|
|
77657
|
+
const worker = new Worker(url);
|
|
77658
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
77659
|
+
const RemoteMatrixRenderer = wrap(worker);
|
|
77660
|
+
const matrixRenderer = await new RemoteMatrixRenderer();
|
|
77661
|
+
const terminate = () => worker.terminate();
|
|
77662
|
+
return {
|
|
77663
|
+
matrixRenderer,
|
|
77664
|
+
terminate
|
|
77665
|
+
};
|
|
77666
|
+
};
|
|
77667
|
+
|
|
77334
77668
|
/**
|
|
77335
77669
|
* Responsible for drawing the dies inside the wafer map, adding dieText and scaling the canvas
|
|
77336
77670
|
*/
|
|
@@ -77338,8 +77672,56 @@ img.ProseMirror-separator {
|
|
|
77338
77672
|
constructor(wafermap) {
|
|
77339
77673
|
this.wafermap = wafermap;
|
|
77340
77674
|
}
|
|
77341
|
-
|
|
77342
|
-
|
|
77675
|
+
async setupWafer() {
|
|
77676
|
+
if (this.matrixRenderer === undefined) {
|
|
77677
|
+
const { matrixRenderer } = await createMatrixRenderer();
|
|
77678
|
+
this.matrixRenderer = matrixRenderer;
|
|
77679
|
+
const offscreenCanvas = this.wafermap.workerCanvas.transferControlToOffscreen();
|
|
77680
|
+
await this.matrixRenderer.setCanvas(transfer(offscreenCanvas, [offscreenCanvas]));
|
|
77681
|
+
}
|
|
77682
|
+
await this.matrixRenderer.setCanvasDimensions({
|
|
77683
|
+
width: this.wafermap.canvasWidth ?? 0,
|
|
77684
|
+
height: this.wafermap.canvasHeight ?? 0
|
|
77685
|
+
});
|
|
77686
|
+
await this.matrixRenderer.setDiesDimensions(this.wafermap.experimentalDataManager.dieDimensions);
|
|
77687
|
+
const scaleX = this.wafermap.experimentalDataManager.horizontalScale(1)
|
|
77688
|
+
- this.wafermap.experimentalDataManager.horizontalScale(0);
|
|
77689
|
+
const scaleY = this.wafermap.experimentalDataManager.verticalScale(1)
|
|
77690
|
+
- this.wafermap.experimentalDataManager.verticalScale(0);
|
|
77691
|
+
await this.matrixRenderer.setScaling(scaleX, scaleY);
|
|
77692
|
+
await this.matrixRenderer.setBases(this.wafermap.experimentalDataManager.horizontalScale(0), this.wafermap.experimentalDataManager.verticalScale(0));
|
|
77693
|
+
await this.matrixRenderer.setMargin(this.wafermap.experimentalDataManager.margin);
|
|
77694
|
+
if (this.wafermap.diesTable === undefined) {
|
|
77695
|
+
await this.matrixRenderer.setColumnIndexes(Int32Array.from([]));
|
|
77696
|
+
await this.matrixRenderer.setRowIndexes(Int32Array.from([]));
|
|
77697
|
+
return;
|
|
77698
|
+
}
|
|
77699
|
+
const columnIndexes = this.wafermap.diesTable
|
|
77700
|
+
.getChild('colIndex')
|
|
77701
|
+
.toArray();
|
|
77702
|
+
await this.matrixRenderer.setColumnIndexes(columnIndexes);
|
|
77703
|
+
const rowIndexes = this.wafermap.diesTable
|
|
77704
|
+
.getChild('rowIndex')
|
|
77705
|
+
.toArray();
|
|
77706
|
+
await this.matrixRenderer.setRowIndexes(rowIndexes);
|
|
77707
|
+
}
|
|
77708
|
+
async drawWafer() {
|
|
77709
|
+
await this.matrixRenderer.setTransform(this.wafermap.transform);
|
|
77710
|
+
const topLeftCanvasCorner = this.wafermap.transform.invert([0, 0]);
|
|
77711
|
+
const bottomRightCanvasCorner = this.wafermap.transform.invert([
|
|
77712
|
+
this.wafermap.canvasWidth,
|
|
77713
|
+
this.wafermap.canvasHeight
|
|
77714
|
+
]);
|
|
77715
|
+
await this.matrixRenderer.setCanvasCorners({
|
|
77716
|
+
x: topLeftCanvasCorner[0]
|
|
77717
|
+
- this.wafermap.experimentalDataManager.dieDimensions.width,
|
|
77718
|
+
y: topLeftCanvasCorner[1]
|
|
77719
|
+
- this.wafermap.experimentalDataManager.dieDimensions.height
|
|
77720
|
+
}, {
|
|
77721
|
+
x: bottomRightCanvasCorner[0],
|
|
77722
|
+
y: bottomRightCanvasCorner[1]
|
|
77723
|
+
});
|
|
77724
|
+
await this.matrixRenderer.drawWafer();
|
|
77343
77725
|
this.renderHover();
|
|
77344
77726
|
}
|
|
77345
77727
|
renderHover() {
|
|
@@ -77545,6 +77927,9 @@ img.ProseMirror-separator {
|
|
|
77545
77927
|
this.onWheelMove = (event) => {
|
|
77546
77928
|
event.preventDefault();
|
|
77547
77929
|
};
|
|
77930
|
+
this.wafermapNotifier = Observable.getNotifier(this.wafermap);
|
|
77931
|
+
this.wafermapNotifier.subscribe(this, 'canvasWidth');
|
|
77932
|
+
this.wafermapNotifier.subscribe(this, 'canvasHeight');
|
|
77548
77933
|
}
|
|
77549
77934
|
/**
|
|
77550
77935
|
* @internal
|
|
@@ -77562,6 +77947,12 @@ img.ProseMirror-separator {
|
|
|
77562
77947
|
zoom().on('zoom', null)(select(this.wafermap));
|
|
77563
77948
|
this.wafermap.removeEventListener('wheel', this.onWheelMove);
|
|
77564
77949
|
}
|
|
77950
|
+
handleChange(source, propertyName) {
|
|
77951
|
+
if (source === this.wafermap
|
|
77952
|
+
&& (propertyName === 'canvasWidth' || propertyName === 'canvasHeight')) {
|
|
77953
|
+
this.createZoomBehavior();
|
|
77954
|
+
}
|
|
77955
|
+
}
|
|
77565
77956
|
createZoomBehavior() {
|
|
77566
77957
|
zoom()
|
|
77567
77958
|
.scaleExtent(this.scaleExtent)
|
|
@@ -77663,27 +78054,25 @@ img.ProseMirror-separator {
|
|
|
77663
78054
|
* @internal
|
|
77664
78055
|
* Experimental update function called when an update is queued.
|
|
77665
78056
|
*/
|
|
77666
|
-
experimentalUpdate() {
|
|
78057
|
+
async experimentalUpdate() {
|
|
77667
78058
|
if (this.validity.invalidDiesTableSchema) {
|
|
77668
78059
|
return;
|
|
77669
78060
|
}
|
|
77670
78061
|
if (this.waferMapUpdateTracker.requiresEventsUpdate) {
|
|
77671
|
-
// zoom translateExtent needs to be recalculated when canvas size changes
|
|
77672
|
-
this.zoomHandler.disconnect();
|
|
77673
78062
|
if (this.waferMapUpdateTracker.requiresContainerDimensionsUpdate
|
|
77674
78063
|
|| this.waferMapUpdateTracker.requiresScalesUpdate) {
|
|
77675
78064
|
this.experimentalDataManager.updateComputations();
|
|
77676
|
-
this.workerRenderer.
|
|
78065
|
+
await this.workerRenderer.setupWafer();
|
|
78066
|
+
await this.workerRenderer.drawWafer();
|
|
77677
78067
|
}
|
|
77678
78068
|
else if (this.waferMapUpdateTracker.requiresLabelsFontSizeUpdate
|
|
77679
78069
|
|| this.waferMapUpdateTracker.requiresDiesRenderInfoUpdate) {
|
|
77680
78070
|
this.experimentalDataManager.updatePrerendering();
|
|
77681
|
-
this.workerRenderer.drawWafer();
|
|
78071
|
+
await this.workerRenderer.drawWafer();
|
|
77682
78072
|
}
|
|
77683
78073
|
else if (this.waferMapUpdateTracker.requiresDrawnWaferUpdate) {
|
|
77684
|
-
this.workerRenderer.drawWafer();
|
|
78074
|
+
await this.workerRenderer.drawWafer();
|
|
77685
78075
|
}
|
|
77686
|
-
this.zoomHandler.connect();
|
|
77687
78076
|
}
|
|
77688
78077
|
else if (this.waferMapUpdateTracker.requiresRenderHoverUpdate) {
|
|
77689
78078
|
this.workerRenderer.renderHover();
|
|
@@ -77700,12 +78089,10 @@ img.ProseMirror-separator {
|
|
|
77700
78089
|
update() {
|
|
77701
78090
|
this.validate();
|
|
77702
78091
|
if (this.isExperimentalUpdate()) {
|
|
77703
|
-
this.experimentalUpdate();
|
|
78092
|
+
this.currentTask = this.experimentalUpdate();
|
|
77704
78093
|
return;
|
|
77705
78094
|
}
|
|
77706
78095
|
if (this.waferMapUpdateTracker.requiresEventsUpdate) {
|
|
77707
|
-
// zoom translateExtent needs to be recalculated when canvas size changes
|
|
77708
|
-
this.zoomHandler.disconnect();
|
|
77709
78096
|
if (this.waferMapUpdateTracker.requiresContainerDimensionsUpdate) {
|
|
77710
78097
|
this.dataManager.updateContainerDimensions();
|
|
77711
78098
|
this.renderer.updateSortedDiesAndDrawWafer();
|
|
@@ -77725,7 +78112,6 @@ img.ProseMirror-separator {
|
|
|
77725
78112
|
else if (this.waferMapUpdateTracker.requiresDrawnWaferUpdate) {
|
|
77726
78113
|
this.renderer.drawWafer();
|
|
77727
78114
|
}
|
|
77728
|
-
this.zoomHandler.connect();
|
|
77729
78115
|
}
|
|
77730
78116
|
else if (this.waferMapUpdateTracker.requiresRenderHoverUpdate) {
|
|
77731
78117
|
this.renderer.renderHover();
|