@ni/nimble-components 24.0.0 → 24.1.0
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 +378 -73
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +498 -471
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/.storybook/blocks/StoryLayout.d.ts +51 -0
- package/dist/esm/src/all-components.d.ts +63 -0
- package/dist/esm/src/anchor/index.d.ts +36 -0
- package/dist/esm/src/anchor/styles.d.ts +1 -0
- package/dist/esm/src/anchor/template.d.ts +4 -0
- package/dist/esm/src/anchor/types.d.ts +9 -0
- package/dist/esm/src/anchor-base/index.d.ts +6 -0
- package/dist/esm/src/anchor-button/index.d.ts +37 -0
- package/dist/esm/src/anchor-button/styles.d.ts +1 -0
- package/dist/esm/src/anchor-button/template.d.ts +4 -0
- package/dist/esm/src/anchor-button/types.d.ts +5 -0
- package/dist/esm/src/anchor-menu-item/index.d.ts +36 -0
- package/dist/esm/src/anchor-menu-item/styles.d.ts +1 -0
- package/dist/esm/src/anchor-menu-item/template.d.ts +4 -0
- package/dist/esm/src/anchor-tab/index.d.ts +30 -0
- package/dist/esm/src/anchor-tab/styles.d.ts +1 -0
- package/dist/esm/src/anchor-tab/template.d.ts +4 -0
- package/dist/esm/src/anchor-tabs/index.d.ts +60 -0
- package/dist/esm/src/anchor-tabs/styles.d.ts +1 -0
- package/dist/esm/src/anchor-tabs/template.d.ts +4 -0
- package/dist/esm/src/anchor-tree-item/index.d.ts +57 -0
- package/dist/esm/src/anchor-tree-item/styles.d.ts +1 -0
- package/dist/esm/src/anchor-tree-item/template.d.ts +4 -0
- package/dist/esm/src/anchored-region/index.d.ts +12 -0
- package/dist/esm/src/anchored-region/styles.d.ts +1 -0
- package/dist/esm/src/banner/index.d.ts +47 -0
- package/dist/esm/src/banner/styles.d.ts +1 -0
- package/dist/esm/src/banner/template.d.ts +2 -0
- package/dist/esm/src/banner/types.d.ts +19 -0
- package/dist/esm/src/breadcrumb/index.d.ts +14 -0
- package/dist/esm/src/breadcrumb/styles.d.ts +1 -0
- package/dist/esm/src/breadcrumb/types.d.ts +9 -0
- package/dist/esm/src/breadcrumb-item/index.d.ts +12 -0
- package/dist/esm/src/breadcrumb-item/styles.d.ts +1 -0
- package/dist/esm/src/button/index.d.ts +32 -0
- package/dist/esm/src/button/styles.d.ts +1 -0
- package/dist/esm/src/button/types.d.ts +7 -0
- package/dist/esm/src/card/index.d.ts +12 -0
- package/dist/esm/src/card/styles.d.ts +1 -0
- package/dist/esm/src/card/template.d.ts +2 -0
- package/dist/esm/src/card-button/index.d.ts +18 -0
- package/dist/esm/src/card-button/styles.d.ts +1 -0
- package/dist/esm/src/checkbox/index.d.ts +12 -0
- package/dist/esm/src/checkbox/styles.d.ts +1 -0
- package/dist/esm/src/combobox/index.d.ts +82 -0
- package/dist/esm/src/combobox/styles.d.ts +1 -0
- package/dist/esm/src/combobox/template.d.ts +4 -0
- package/dist/esm/src/combobox/types.d.ts +2 -0
- package/dist/esm/src/dialog/index.d.ts +70 -0
- package/dist/esm/src/dialog/styles.d.ts +1 -0
- package/dist/esm/src/dialog/template.d.ts +2 -0
- package/dist/esm/src/drawer/index.d.ts +55 -0
- package/dist/esm/src/drawer/styles.d.ts +1 -0
- package/dist/esm/src/drawer/template.d.ts +2 -0
- package/dist/esm/src/drawer/types.d.ts +5 -0
- package/dist/esm/src/icon-base/index.d.ts +19 -0
- package/dist/esm/src/icon-base/styles.d.ts +1 -0
- package/dist/esm/src/icon-base/template.d.ts +2 -0
- package/dist/esm/src/icon-base/types.d.ts +12 -0
- package/dist/esm/src/icons/add.d.ts +13 -0
- package/dist/esm/src/icons/all-icons.d.ts +185 -0
- package/dist/esm/src/icons/arrow-down-right-and-arrow-up-left.d.ts +13 -0
- package/dist/esm/src/icons/arrow-down.d.ts +13 -0
- package/dist/esm/src/icons/arrow-expander-down.d.ts +13 -0
- package/dist/esm/src/icons/arrow-expander-left.d.ts +13 -0
- package/dist/esm/src/icons/arrow-expander-right.d.ts +13 -0
- package/dist/esm/src/icons/arrow-expander-up.d.ts +13 -0
- package/dist/esm/src/icons/arrow-in-circle.d.ts +13 -0
- package/dist/esm/src/icons/arrow-left-from-line.d.ts +13 -0
- package/dist/esm/src/icons/arrow-out-circle.d.ts +13 -0
- package/dist/esm/src/icons/arrow-partial-rotate-left.d.ts +13 -0
- package/dist/esm/src/icons/arrow-right-to-line.d.ts +13 -0
- package/dist/esm/src/icons/arrow-rotate-right.d.ts +13 -0
- package/dist/esm/src/icons/arrow-u-rotate-left.d.ts +13 -0
- package/dist/esm/src/icons/arrow-up-left-and-arrow-down-right.d.ts +13 -0
- package/dist/esm/src/icons/arrow-up-right-from-square.d.ts +13 -0
- package/dist/esm/src/icons/arrow-up.d.ts +13 -0
- package/dist/esm/src/icons/arrows-maximize.d.ts +13 -0
- package/dist/esm/src/icons/arrows-repeat.d.ts +13 -0
- package/dist/esm/src/icons/at.d.ts +13 -0
- package/dist/esm/src/icons/bars.d.ts +13 -0
- package/dist/esm/src/icons/bell-and-comment.d.ts +13 -0
- package/dist/esm/src/icons/bell-circle.d.ts +13 -0
- package/dist/esm/src/icons/bell-solid-circle.d.ts +13 -0
- package/dist/esm/src/icons/bell.d.ts +13 -0
- package/dist/esm/src/icons/block-with-ribbon.d.ts +13 -0
- package/dist/esm/src/icons/bold-b.d.ts +13 -0
- package/dist/esm/src/icons/book-magnifying-glass.d.ts +13 -0
- package/dist/esm/src/icons/calendar-check-lines.d.ts +13 -0
- package/dist/esm/src/icons/calendar-day.d.ts +13 -0
- package/dist/esm/src/icons/calendar.d.ts +13 -0
- package/dist/esm/src/icons/chart-diagram-child-focus.d.ts +13 -0
- package/dist/esm/src/icons/chart-diagram-parent-focus-two-child.d.ts +13 -0
- package/dist/esm/src/icons/chart-diagram-parent-focus.d.ts +13 -0
- package/dist/esm/src/icons/chart-diagram.d.ts +13 -0
- package/dist/esm/src/icons/check-dot.d.ts +13 -0
- package/dist/esm/src/icons/check-large.d.ts +13 -0
- package/dist/esm/src/icons/check.d.ts +13 -0
- package/dist/esm/src/icons/circle-broken.d.ts +13 -0
- package/dist/esm/src/icons/circle-check.d.ts +13 -0
- package/dist/esm/src/icons/circle-filled.d.ts +13 -0
- package/dist/esm/src/icons/circle-partial-broken.d.ts +13 -0
- package/dist/esm/src/icons/circle-slash.d.ts +13 -0
- package/dist/esm/src/icons/circle-x.d.ts +13 -0
- package/dist/esm/src/icons/circle.d.ts +13 -0
- package/dist/esm/src/icons/clipboard.d.ts +13 -0
- package/dist/esm/src/icons/clock-cog.d.ts +13 -0
- package/dist/esm/src/icons/clock-exclamation.d.ts +13 -0
- package/dist/esm/src/icons/clock-triangle.d.ts +13 -0
- package/dist/esm/src/icons/clock.d.ts +13 -0
- package/dist/esm/src/icons/clone.d.ts +13 -0
- package/dist/esm/src/icons/cloud-upload.d.ts +13 -0
- package/dist/esm/src/icons/cloud-with-arrow.d.ts +13 -0
- package/dist/esm/src/icons/cloud.d.ts +13 -0
- package/dist/esm/src/icons/cog-database-inset.d.ts +13 -0
- package/dist/esm/src/icons/cog-database.d.ts +13 -0
- package/dist/esm/src/icons/cog-small-cog.d.ts +13 -0
- package/dist/esm/src/icons/cog-zoomed.d.ts +13 -0
- package/dist/esm/src/icons/cog.d.ts +13 -0
- package/dist/esm/src/icons/comment.d.ts +13 -0
- package/dist/esm/src/icons/computer-and-monitor.d.ts +13 -0
- package/dist/esm/src/icons/copy-text.d.ts +13 -0
- package/dist/esm/src/icons/copy.d.ts +13 -0
- package/dist/esm/src/icons/dashboard-builder-legend.d.ts +13 -0
- package/dist/esm/src/icons/dashboard-builder-templates.d.ts +13 -0
- package/dist/esm/src/icons/dashboard-builder-tile.d.ts +13 -0
- package/dist/esm/src/icons/dashboard-builder.d.ts +13 -0
- package/dist/esm/src/icons/database-check.d.ts +13 -0
- package/dist/esm/src/icons/database.d.ts +13 -0
- package/dist/esm/src/icons/desktop.d.ts +13 -0
- package/dist/esm/src/icons/donut-chart.d.ts +13 -0
- package/dist/esm/src/icons/dot-solid-dot-stroke-measurement.d.ts +13 -0
- package/dist/esm/src/icons/dot-solid-dot-stroke.d.ts +13 -0
- package/dist/esm/src/icons/down-right-from-square.d.ts +13 -0
- package/dist/esm/src/icons/download.d.ts +13 -0
- package/dist/esm/src/icons/electronic-chip-zoomed.d.ts +13 -0
- package/dist/esm/src/icons/exclamation-mark.d.ts +13 -0
- package/dist/esm/src/icons/eye-dash.d.ts +13 -0
- package/dist/esm/src/icons/eye.d.ts +13 -0
- package/dist/esm/src/icons/fancy-a.d.ts +13 -0
- package/dist/esm/src/icons/file-arrow-curved-right.d.ts +13 -0
- package/dist/esm/src/icons/file-drawer.d.ts +13 -0
- package/dist/esm/src/icons/file-search.d.ts +13 -0
- package/dist/esm/src/icons/file.d.ts +13 -0
- package/dist/esm/src/icons/filter.d.ts +13 -0
- package/dist/esm/src/icons/floppy-disk-checkmark.d.ts +13 -0
- package/dist/esm/src/icons/floppy-disk-pen.d.ts +13 -0
- package/dist/esm/src/icons/floppy-disk-star-arrow-right.d.ts +13 -0
- package/dist/esm/src/icons/floppy-disk-three-dots.d.ts +13 -0
- package/dist/esm/src/icons/floppy-disk.d.ts +13 -0
- package/dist/esm/src/icons/folder-open.d.ts +13 -0
- package/dist/esm/src/icons/folder.d.ts +13 -0
- package/dist/esm/src/icons/forward-slash.d.ts +13 -0
- package/dist/esm/src/icons/four-dots-square.d.ts +13 -0
- package/dist/esm/src/icons/function.d.ts +13 -0
- package/dist/esm/src/icons/gauge-simple.d.ts +13 -0
- package/dist/esm/src/icons/grid-three-by-three.d.ts +13 -0
- package/dist/esm/src/icons/grid-two-by-two.d.ts +13 -0
- package/dist/esm/src/icons/hammer.d.ts +13 -0
- package/dist/esm/src/icons/hashtag.d.ts +13 -0
- package/dist/esm/src/icons/home.d.ts +13 -0
- package/dist/esm/src/icons/horizontal-triangle-outline.d.ts +13 -0
- package/dist/esm/src/icons/hourglass.d.ts +13 -0
- package/dist/esm/src/icons/indent.d.ts +13 -0
- package/dist/esm/src/icons/indeterminant-checkbox.d.ts +13 -0
- package/dist/esm/src/icons/info-circle.d.ts +13 -0
- package/dist/esm/src/icons/info.d.ts +13 -0
- package/dist/esm/src/icons/inward-squares-three.d.ts +13 -0
- package/dist/esm/src/icons/italic-i.d.ts +13 -0
- package/dist/esm/src/icons/key.d.ts +13 -0
- package/dist/esm/src/icons/laptop.d.ts +13 -0
- package/dist/esm/src/icons/layer-group.d.ts +13 -0
- package/dist/esm/src/icons/lightning-bolt.d.ts +13 -0
- package/dist/esm/src/icons/link-cancel.d.ts +13 -0
- package/dist/esm/src/icons/link.d.ts +13 -0
- package/dist/esm/src/icons/list-tree-database.d.ts +13 -0
- package/dist/esm/src/icons/list-tree.d.ts +13 -0
- package/dist/esm/src/icons/list.d.ts +13 -0
- package/dist/esm/src/icons/lock.d.ts +13 -0
- package/dist/esm/src/icons/magnifying-glass.d.ts +13 -0
- package/dist/esm/src/icons/markdown.d.ts +13 -0
- package/dist/esm/src/icons/minus-wide.d.ts +13 -0
- package/dist/esm/src/icons/minus.d.ts +13 -0
- package/dist/esm/src/icons/mobile.d.ts +13 -0
- package/dist/esm/src/icons/ni.d.ts +13 -0
- package/dist/esm/src/icons/notebook.d.ts +13 -0
- package/dist/esm/src/icons/number-list.d.ts +13 -0
- package/dist/esm/src/icons/outdent.d.ts +13 -0
- package/dist/esm/src/icons/outward-squares-three.d.ts +13 -0
- package/dist/esm/src/icons/paste.d.ts +13 -0
- package/dist/esm/src/icons/pause.d.ts +13 -0
- package/dist/esm/src/icons/pencil.d.ts +13 -0
- package/dist/esm/src/icons/play.d.ts +13 -0
- package/dist/esm/src/icons/pot-with-lid.d.ts +13 -0
- package/dist/esm/src/icons/question.d.ts +13 -0
- package/dist/esm/src/icons/rectangle-check-lines.d.ts +13 -0
- package/dist/esm/src/icons/running-arrow.d.ts +13 -0
- package/dist/esm/src/icons/screen-check-lines-calendar.d.ts +13 -0
- package/dist/esm/src/icons/screen-check-lines.d.ts +13 -0
- package/dist/esm/src/icons/server.d.ts +13 -0
- package/dist/esm/src/icons/share-nodes.d.ts +13 -0
- package/dist/esm/src/icons/shield-check.d.ts +13 -0
- package/dist/esm/src/icons/shield-xmark.d.ts +13 -0
- package/dist/esm/src/icons/signal-bars.d.ts +13 -0
- package/dist/esm/src/icons/sine-graph.d.ts +13 -0
- package/dist/esm/src/icons/skip-arrow.d.ts +13 -0
- package/dist/esm/src/icons/spinner.d.ts +13 -0
- package/dist/esm/src/icons/square-check.d.ts +13 -0
- package/dist/esm/src/icons/square-t.d.ts +13 -0
- package/dist/esm/src/icons/square-x.d.ts +13 -0
- package/dist/esm/src/icons/stop-square.d.ts +13 -0
- package/dist/esm/src/icons/systemlink.d.ts +13 -0
- package/dist/esm/src/icons/t.d.ts +13 -0
- package/dist/esm/src/icons/tablet.d.ts +13 -0
- package/dist/esm/src/icons/tag.d.ts +13 -0
- package/dist/esm/src/icons/tags.d.ts +13 -0
- package/dist/esm/src/icons/target-crosshairs-progress.d.ts +13 -0
- package/dist/esm/src/icons/target-crosshairs.d.ts +13 -0
- package/dist/esm/src/icons/three-circles-ascending-container.d.ts +13 -0
- package/dist/esm/src/icons/three-dots-line.d.ts +13 -0
- package/dist/esm/src/icons/three-vertical-lines.d.ts +13 -0
- package/dist/esm/src/icons/thumbtack.d.ts +13 -0
- package/dist/esm/src/icons/tile-size.d.ts +13 -0
- package/dist/esm/src/icons/times.d.ts +13 -0
- package/dist/esm/src/icons/trash.d.ts +13 -0
- package/dist/esm/src/icons/triangle-filled.d.ts +13 -0
- package/dist/esm/src/icons/triangle-two-lines-horizontal.d.ts +13 -0
- package/dist/esm/src/icons/triangle.d.ts +13 -0
- package/dist/esm/src/icons/true-false-rectangle.d.ts +13 -0
- package/dist/esm/src/icons/two-squares-in-brackets.d.ts +13 -0
- package/dist/esm/src/icons/two-triangles-between-lines.d.ts +13 -0
- package/dist/esm/src/icons/unlink.d.ts +13 -0
- package/dist/esm/src/icons/unlock.d.ts +13 -0
- package/dist/esm/src/icons/up-right-from-square.d.ts +13 -0
- package/dist/esm/src/icons/upload.d.ts +13 -0
- package/dist/esm/src/icons/user.d.ts +13 -0
- package/dist/esm/src/icons/watch.d.ts +13 -0
- package/dist/esm/src/icons/waveform.d.ts +13 -0
- package/dist/esm/src/icons/webvi-custom.d.ts +13 -0
- package/dist/esm/src/icons/webvi-host.d.ts +13 -0
- package/dist/esm/src/icons/window-code.d.ts +13 -0
- package/dist/esm/src/icons/window-text.d.ts +13 -0
- package/dist/esm/src/icons/wrench-hammer.d.ts +13 -0
- package/dist/esm/src/icons/xmark-check.d.ts +13 -0
- package/dist/esm/src/icons/xmark.d.ts +13 -0
- package/dist/esm/src/label-provider/base/index.d.ts +19 -0
- package/dist/esm/src/label-provider/core/index.d.ts +41 -0
- package/dist/esm/src/label-provider/core/label-token-defaults.d.ts +6 -0
- package/dist/esm/src/label-provider/core/label-tokens.d.ts +9 -0
- package/dist/esm/src/label-provider/rich-text/index.d.ts +29 -0
- package/dist/esm/src/label-provider/rich-text/label-token-defaults.d.ts +6 -0
- package/dist/esm/src/label-provider/rich-text/label-tokens.d.ts +5 -0
- package/dist/esm/src/label-provider/table/index.d.ts +65 -0
- package/dist/esm/src/label-provider/table/label-token-defaults.d.ts +6 -0
- package/dist/esm/src/label-provider/table/label-tokens.d.ts +17 -0
- package/dist/esm/src/list-option/index.d.ts +37 -0
- package/dist/esm/src/list-option/styles.d.ts +1 -0
- package/dist/esm/src/list-option/template.d.ts +8 -0
- package/dist/esm/src/listbox/index.d.ts +12 -0
- package/dist/esm/src/listbox/styles.d.ts +1 -0
- package/dist/esm/src/mapping/base/index.d.ts +10 -0
- package/dist/esm/src/mapping/base/template.d.ts +1 -0
- package/dist/esm/src/mapping/base/types.d.ts +3 -0
- package/dist/esm/src/mapping/icon/index.d.ts +27 -0
- package/dist/esm/src/mapping/spinner/index.d.ts +16 -0
- package/dist/esm/src/mapping/text/index.d.ts +16 -0
- package/dist/esm/src/mapping/user/index.d.ts +15 -0
- package/dist/esm/src/menu/index.d.ts +13 -0
- package/dist/esm/src/menu/styles.d.ts +1 -0
- package/dist/esm/src/menu-button/index.d.ts +54 -0
- package/dist/esm/src/menu-button/styles.d.ts +1 -0
- package/dist/esm/src/menu-button/template.d.ts +2 -0
- package/dist/esm/src/menu-button/types.d.ts +22 -0
- package/dist/esm/src/menu-item/index.d.ts +12 -0
- package/dist/esm/src/menu-item/styles.d.ts +1 -0
- package/dist/esm/src/number-field/index.d.ts +25 -0
- package/dist/esm/src/number-field/styles.d.ts +1 -0
- package/dist/esm/src/number-field/types.d.ts +9 -0
- package/dist/esm/src/patterns/button/styles.d.ts +2 -0
- package/dist/esm/src/patterns/button/types.d.ts +49 -0
- package/dist/esm/src/patterns/dialog/types.d.ts +6 -0
- package/dist/esm/src/patterns/dropdown/styles.d.ts +1 -0
- package/dist/esm/src/patterns/dropdown/types.d.ts +33 -0
- package/dist/esm/src/patterns/error/styles.d.ts +1 -0
- package/dist/esm/src/patterns/error/template.d.ts +2 -0
- package/dist/esm/src/patterns/error/types.d.ts +10 -0
- package/dist/esm/src/patterns/expand-collapse/styles.d.ts +1 -0
- package/dist/esm/src/radio/index.d.ts +12 -0
- package/dist/esm/src/radio/styles.d.ts +1 -0
- package/dist/esm/src/radio-group/index.d.ts +14 -0
- package/dist/esm/src/radio-group/styles.d.ts +1 -0
- package/dist/esm/src/rich-text/base/index.d.ts +49 -0
- package/dist/esm/src/rich-text/base/types.d.ts +5 -0
- package/dist/esm/src/rich-text/editor/index.d.ts +270 -0
- package/dist/esm/src/rich-text/editor/models/create-tiptap-editor.d.ts +5 -0
- package/dist/esm/src/rich-text/editor/styles.d.ts +1 -0
- package/dist/esm/src/rich-text/editor/template.d.ts +2 -0
- package/dist/esm/src/rich-text/editor/testing/rich-text-editor-utils.d.ts +6 -0
- package/dist/esm/src/rich-text/editor/testing/rich-text-editor.pageobject.d.ts +75 -0
- package/dist/esm/src/rich-text/editor/testing/types.d.ts +31 -0
- package/dist/esm/src/rich-text/editor/types.d.ts +27 -0
- package/dist/esm/src/rich-text/mention-listbox/index.d.ts +116 -0
- package/dist/esm/src/rich-text/mention-listbox/styles.d.ts +1 -0
- package/dist/esm/src/rich-text/mention-listbox/template.d.ts +2 -0
- package/dist/esm/src/rich-text/mention-listbox/types.d.ts +7 -0
- package/dist/esm/src/rich-text/models/configuration.d.ts +10 -0
- package/dist/esm/src/rich-text/models/editor-configuration.d.ts +10 -0
- package/dist/esm/src/rich-text/models/markdown-parser-mention-configuration.d.ts +14 -0
- package/dist/esm/src/rich-text/models/markdown-parser.d.ts +30 -0
- package/dist/esm/src/rich-text/models/markdown-serializer.d.ts +10 -0
- package/dist/esm/src/rich-text/models/mention-extension-configuration.d.ts +19 -0
- package/dist/esm/src/rich-text/models/rich-text-tracker.d.ts +19 -0
- package/dist/esm/src/rich-text/models/rich-text-validator.d.ts +15 -0
- package/dist/esm/src/rich-text/models/testing/markdown-parser-utils.d.ts +5 -0
- package/dist/esm/src/rich-text/viewer/index.d.ts +37 -0
- package/dist/esm/src/rich-text/viewer/styles.d.ts +1 -0
- package/dist/esm/src/rich-text/viewer/template.d.ts +2 -0
- package/dist/esm/src/rich-text/viewer/testing/rich-text-viewer.pageobject.d.ts +27 -0
- package/dist/esm/src/rich-text-mention/base/index.d.ts +56 -0
- package/dist/esm/src/rich-text-mention/base/models/mapping-config.d.ts +8 -0
- package/dist/esm/src/rich-text-mention/base/models/mention-internals.d.ts +45 -0
- package/dist/esm/src/rich-text-mention/base/models/mention-validator.d.ts +33 -0
- package/dist/esm/src/rich-text-mention/base/template.d.ts +2 -0
- package/dist/esm/src/rich-text-mention/base/types.d.ts +10 -0
- package/dist/esm/src/rich-text-mention/base/view/index.d.ts +20 -0
- package/dist/esm/src/rich-text-mention/users/index.d.ts +21 -0
- package/dist/esm/src/rich-text-mention/users/models/mapping-user-config.d.ts +6 -0
- package/dist/esm/src/rich-text-mention/users/models/rich-text-mention-users-validator.d.ts +16 -0
- package/dist/esm/src/rich-text-mention/users/view/index.d.ts +12 -0
- package/dist/esm/src/rich-text-mention/users/view/styles.d.ts +1 -0
- package/dist/esm/src/rich-text-mention/users/view/template.d.ts +2 -0
- package/dist/esm/src/rich-text-mention/users/view/testing/rich-text-mention-users-view.pageobject.d.ts +9 -0
- package/dist/esm/src/select/index.d.ts +281 -0
- package/dist/esm/src/select/models/select-form-associated.d.ts +16 -0
- package/dist/esm/src/select/styles.d.ts +1 -0
- package/dist/esm/src/select/template.d.ts +4 -0
- package/dist/esm/src/select/testing/select.pageobject.d.ts +39 -0
- package/dist/esm/src/select/types.d.ts +14 -0
- package/dist/esm/src/spinner/index.d.ts +20 -0
- package/dist/esm/src/spinner/styles.d.ts +1 -0
- package/dist/esm/src/spinner/template.d.ts +2 -0
- package/dist/esm/src/spinner/types.d.ts +9 -0
- package/dist/esm/src/switch/index.d.ts +12 -0
- package/dist/esm/src/switch/styles.d.ts +1 -0
- package/dist/esm/src/switch/template.d.ts +2 -0
- package/dist/esm/src/tab/index.d.ts +12 -0
- package/dist/esm/src/tab/styles.d.ts +1 -0
- package/dist/esm/src/tab-panel/index.d.ts +12 -0
- package/dist/esm/src/tab-panel/styles.d.ts +1 -0
- package/dist/esm/src/table/components/cell/index.d.ts +30 -0
- package/dist/esm/src/table/components/cell/styles.d.ts +1 -0
- package/dist/esm/src/table/components/cell/template.d.ts +2 -0
- package/dist/esm/src/table/components/group-row/index.d.ts +42 -0
- package/dist/esm/src/table/components/group-row/styles.d.ts +1 -0
- package/dist/esm/src/table/components/group-row/template.d.ts +2 -0
- package/dist/esm/src/table/components/header/index.d.ts +20 -0
- package/dist/esm/src/table/components/header/styles.d.ts +1 -0
- package/dist/esm/src/table/components/header/template.d.ts +2 -0
- package/dist/esm/src/table/components/row/index.d.ts +89 -0
- package/dist/esm/src/table/components/row/styles.d.ts +1 -0
- package/dist/esm/src/table/components/row/template.d.ts +2 -0
- package/dist/esm/src/table/index.d.ts +225 -0
- package/dist/esm/src/table/models/array-to-tree.d.ts +17 -0
- package/dist/esm/src/table/models/data-hierarchy-manager.d.ts +15 -0
- package/dist/esm/src/table/models/expansion-manager.d.ts +33 -0
- package/dist/esm/src/table/models/interactive-selection-manager.d.ts +18 -0
- package/dist/esm/src/table/models/selection-managers/disabled-selection-manager.d.ts +11 -0
- package/dist/esm/src/table/models/selection-managers/multi-selection-manager.d.ts +20 -0
- package/dist/esm/src/table/models/selection-managers/selection-manager-base.d.ts +19 -0
- package/dist/esm/src/table/models/selection-managers/single-selection-manager.d.ts +11 -0
- package/dist/esm/src/table/models/sort-operations.d.ts +7 -0
- package/dist/esm/src/table/models/table-layout-manager.d.ts +42 -0
- package/dist/esm/src/table/models/table-update-tracker.d.ts +33 -0
- package/dist/esm/src/table/models/table-validator.d.ts +32 -0
- package/dist/esm/src/table/models/virtualizer.d.ts +27 -0
- package/dist/esm/src/table/styles.d.ts +1 -0
- package/dist/esm/src/table/template.d.ts +2 -0
- package/dist/esm/src/table/testing/table.pageobject.d.ts +112 -0
- package/dist/esm/src/table/types.d.ts +186 -0
- package/dist/esm/src/table-column/anchor/cell-view/index.d.ts +22 -0
- package/dist/esm/src/table-column/anchor/cell-view/styles.d.ts +1 -0
- package/dist/esm/src/table-column/anchor/cell-view/template.d.ts +2 -0
- package/dist/esm/src/table-column/anchor/index.d.ts +77 -0
- package/dist/esm/src/table-column/base/cell-view/index.d.ts +22 -0
- package/dist/esm/src/table-column/base/cell-view/template.d.ts +3 -0
- package/dist/esm/src/table-column/base/group-header-view/index.d.ts +15 -0
- package/dist/esm/src/table-column/base/group-header-view/template.d.ts +3 -0
- package/dist/esm/src/table-column/base/index.d.ts +35 -0
- package/dist/esm/src/table-column/base/models/column-internals.d.ts +124 -0
- package/dist/esm/src/table-column/base/models/column-validator.d.ts +19 -0
- package/dist/esm/src/table-column/base/styles.d.ts +1 -0
- package/dist/esm/src/table-column/base/template.d.ts +2 -0
- package/dist/esm/src/table-column/base/types.d.ts +38 -0
- package/dist/esm/src/table-column/date-text/cell-view/index.d.ts +14 -0
- package/dist/esm/src/table-column/date-text/group-header-view/index.d.ts +15 -0
- package/dist/esm/src/table-column/date-text/index.d.ts +73 -0
- package/dist/esm/src/table-column/date-text/models/format-helper.d.ts +2 -0
- package/dist/esm/src/table-column/date-text/models/table-column-date-text-validator.d.ts +11 -0
- package/dist/esm/src/table-column/date-text/testing/table-column-date-text.pageobject.d.ts +8 -0
- package/dist/esm/src/table-column/date-text/types.d.ts +23 -0
- package/dist/esm/src/table-column/duration-text/cell-view/index.d.ts +14 -0
- package/dist/esm/src/table-column/duration-text/group-header-view/index.d.ts +15 -0
- package/dist/esm/src/table-column/duration-text/index.d.ts +26 -0
- package/dist/esm/src/table-column/duration-text/models/duration-formatter.d.ts +14 -0
- package/dist/esm/src/table-column/duration-text/testing/table-column-duration-text.pageobject.d.ts +8 -0
- package/dist/esm/src/table-column/enum-base/index.d.ts +50 -0
- package/dist/esm/src/table-column/enum-base/models/mapping-config.d.ts +7 -0
- package/dist/esm/src/table-column/enum-base/models/mapping-icon-config.d.ts +15 -0
- package/dist/esm/src/table-column/enum-base/models/mapping-key-resolver.d.ts +8 -0
- package/dist/esm/src/table-column/enum-base/models/mapping-spinner-config.d.ts +7 -0
- package/dist/esm/src/table-column/enum-base/models/mapping-text-config.d.ts +6 -0
- package/dist/esm/src/table-column/enum-base/models/table-column-enum-base-validator.d.ts +15 -0
- package/dist/esm/src/table-column/enum-base/styles.d.ts +1 -0
- package/dist/esm/src/table-column/enum-base/template.d.ts +3 -0
- package/dist/esm/src/table-column/enum-base/types.d.ts +10 -0
- package/dist/esm/src/table-column/enum-text/cell-view/index.d.ts +14 -0
- package/dist/esm/src/table-column/enum-text/group-header-view/index.d.ts +15 -0
- package/dist/esm/src/table-column/enum-text/index.d.ts +43 -0
- package/dist/esm/src/table-column/enum-text/models/table-column-enum-text-validator.d.ts +16 -0
- package/dist/esm/src/table-column/icon/cell-view/index.d.ts +23 -0
- package/dist/esm/src/table-column/icon/cell-view/template.d.ts +2 -0
- package/dist/esm/src/table-column/icon/group-header-view/index.d.ts +21 -0
- package/dist/esm/src/table-column/icon/group-header-view/styles.d.ts +1 -0
- package/dist/esm/src/table-column/icon/group-header-view/template.d.ts +2 -0
- package/dist/esm/src/table-column/icon/index.d.ts +43 -0
- package/dist/esm/src/table-column/icon/models/table-column-icon-validator.d.ts +19 -0
- package/dist/esm/src/table-column/mixins/fractional-width-column.d.ts +11 -0
- package/dist/esm/src/table-column/mixins/groupable-column.d.ts +11 -0
- package/dist/esm/src/table-column/mixins/placeholder.d.ts +9 -0
- package/dist/esm/src/table-column/number-text/cell-view/index.d.ts +15 -0
- package/dist/esm/src/table-column/number-text/group-header-view/index.d.ts +15 -0
- package/dist/esm/src/table-column/number-text/index.d.ts +53 -0
- package/dist/esm/src/table-column/number-text/models/number-text-unit-format.d.ts +23 -0
- package/dist/esm/src/table-column/number-text/models/table-column-number-text-validator.d.ts +16 -0
- package/dist/esm/src/table-column/number-text/template.d.ts +2 -0
- package/dist/esm/src/table-column/number-text/types.d.ts +18 -0
- package/dist/esm/src/table-column/testing/table-column-formatted-text.pageobject.d.ts +14 -0
- package/dist/esm/src/table-column/text/cell-view/index.d.ts +14 -0
- package/dist/esm/src/table-column/text/group-header-view/index.d.ts +15 -0
- package/dist/esm/src/table-column/text/index.d.ts +20 -0
- package/dist/esm/src/table-column/text-base/cell-view/index.d.ts +37 -0
- package/dist/esm/src/table-column/text-base/cell-view/styles.d.ts +1 -0
- package/dist/esm/src/table-column/text-base/cell-view/template.d.ts +2 -0
- package/dist/esm/src/table-column/text-base/cell-view/types.d.ts +8 -0
- package/dist/esm/src/table-column/text-base/group-header-view/index.d.ts +29 -0
- package/dist/esm/src/table-column/text-base/group-header-view/styles.d.ts +1 -0
- package/dist/esm/src/table-column/text-base/group-header-view/template.d.ts +2 -0
- package/dist/esm/src/table-column/text-base/index.d.ts +25 -0
- package/dist/esm/src/tabs/index.d.ts +13 -0
- package/dist/esm/src/tabs/styles.d.ts +1 -0
- package/dist/esm/src/tabs-toolbar/index.d.ts +12 -0
- package/dist/esm/src/tabs-toolbar/styles.d.ts +1 -0
- package/dist/esm/src/tabs-toolbar/template.d.ts +2 -0
- package/dist/esm/src/testing/async-helpers.d.ts +10 -0
- package/dist/esm/src/text-area/index.d.ts +68 -0
- package/dist/esm/src/text-area/styles.d.ts +1 -0
- package/dist/esm/src/text-area/template.d.ts +4 -0
- package/dist/esm/src/text-area/types.d.ts +7 -0
- package/dist/esm/src/text-field/index.d.ts +32 -0
- package/dist/esm/src/text-field/styles.d.ts +1 -0
- package/dist/esm/src/text-field/types.d.ts +15 -0
- package/dist/esm/src/theme-provider/design-token-comments.d.ts +6 -0
- package/dist/esm/src/theme-provider/design-token-names.d.ts +19 -0
- package/dist/esm/src/theme-provider/design-tokens-static.d.ts +10 -0
- package/dist/esm/src/theme-provider/design-tokens.d.ts +83 -0
- package/dist/esm/src/theme-provider/index.d.ts +30 -0
- package/dist/esm/src/theme-provider/styles.d.ts +1 -0
- package/dist/esm/src/theme-provider/template.d.ts +2 -0
- package/dist/esm/src/theme-provider/types.d.ts +6 -0
- package/dist/esm/src/toggle-button/index.d.ts +36 -0
- package/dist/esm/src/toggle-button/styles.d.ts +1 -0
- package/dist/esm/src/toggle-button/template.d.ts +4 -0
- package/dist/esm/src/toggle-button/types.d.ts +5 -0
- package/dist/esm/src/toolbar/index.d.ts +12 -0
- package/dist/esm/src/toolbar/styles.d.ts +1 -0
- package/dist/esm/src/tooltip/index.d.ts +20 -0
- package/dist/esm/src/tooltip/styles.d.ts +1 -0
- package/dist/esm/src/tooltip/template.d.ts +2 -0
- package/dist/esm/src/tooltip/types.d.ts +10 -0
- package/dist/esm/src/tree-item/index.d.ts +23 -0
- package/dist/esm/src/tree-item/styles.d.ts +1 -0
- package/dist/esm/src/tree-view/index.d.ts +29 -0
- package/dist/esm/src/tree-view/styles.d.ts +1 -0
- package/dist/esm/src/tree-view/template.d.ts +2 -0
- package/dist/esm/src/tree-view/types.d.ts +8 -0
- package/dist/esm/src/unit/base/template.d.ts +1 -0
- package/dist/esm/src/unit/base/unit.d.ts +9 -0
- package/dist/esm/src/unit/byte/index.d.ts +19 -0
- package/dist/esm/src/unit/volt/index.d.ts +13 -0
- package/dist/esm/src/utilities/directive/overflow.d.ts +36 -0
- package/dist/esm/src/utilities/models/converter.d.ts +2 -0
- package/dist/esm/src/utilities/models/document-element-lang.d.ts +9 -0
- package/dist/esm/src/utilities/models/string-normalizers.d.ts +5 -0
- package/dist/esm/src/utilities/models/tracker.d.ts +21 -0
- package/dist/esm/src/utilities/models/update-tracker.d.ts +7 -0
- package/dist/esm/src/utilities/models/validator.d.ts +11 -0
- package/dist/esm/src/utilities/style/accessibly-hidden.d.ts +6 -0
- package/dist/esm/src/utilities/style/appearance.d.ts +11 -0
- package/dist/esm/src/utilities/style/colors.d.ts +8 -0
- package/dist/esm/src/utilities/style/direction.d.ts +34 -0
- package/dist/esm/src/utilities/style/focus.d.ts +11 -0
- package/dist/esm/src/utilities/style/multivalue-property-stylesheet-behavior.d.ts +37 -0
- package/dist/esm/src/utilities/style/prefers-reduced-motion.d.ts +4 -0
- package/dist/esm/src/utilities/style/theme.d.ts +37 -0
- package/dist/esm/src/utilities/style/types.d.ts +5 -0
- package/dist/esm/src/utilities/style/user-select.d.ts +5 -0
- package/dist/esm/src/utilities/unit-format/decimal-unit-format.d.ts +19 -0
- package/dist/esm/src/utilities/unit-format/default-unit-format.d.ts +22 -0
- package/dist/esm/src/utilities/unit-format/scaled-unit/scaled-unit.d.ts +16 -0
- package/dist/esm/src/utilities/unit-format/scaled-unit-format/intl-number-format-scaled-unit-format.d.ts +11 -0
- package/dist/esm/src/utilities/unit-format/scaled-unit-format/manually-translated-scaled-unit-format.d.ts +43 -0
- package/dist/esm/src/utilities/unit-format/scaled-unit-format/scaled-unit-format.d.ts +10 -0
- package/dist/esm/src/utilities/unit-format/unit-format.d.ts +16 -0
- package/dist/esm/src/utilities/unit-format/unit-scale/byte-1024-unit-scale.d.ts +9 -0
- package/dist/esm/src/utilities/unit-format/unit-scale/byte-unit-scale.d.ts +9 -0
- package/dist/esm/src/utilities/unit-format/unit-scale/passthrough-unit-scale.d.ts +9 -0
- package/dist/esm/src/utilities/unit-format/unit-scale/unit-scale.d.ts +15 -0
- package/dist/esm/src/utilities/unit-format/unit-scale/utilities/metrix-prefixes.d.ts +1 -0
- package/dist/esm/src/utilities/unit-format/unit-scale/volt-unit-scale.d.ts +9 -0
- package/dist/esm/src/utilities/wait-until-custom-elements-defined-async.d.ts +1 -0
- package/dist/esm/src/wafer-map/index.d.ts +146 -0
- package/dist/esm/src/wafer-map/modules/computations.d.ts +39 -0
- package/dist/esm/src/wafer-map/modules/create-matrix-renderer.d.ts +10 -0
- package/dist/esm/src/wafer-map/modules/data-manager.d.ts +30 -0
- package/dist/esm/src/wafer-map/modules/experimental/computations.d.ts +31 -0
- package/dist/esm/src/wafer-map/modules/experimental/data-manager.d.ts +27 -0
- package/dist/esm/src/wafer-map/modules/experimental/hover-handler.d.ts +23 -0
- package/dist/esm/src/wafer-map/modules/experimental/worker-renderer.d.ts +12 -0
- package/dist/esm/src/wafer-map/modules/hover-handler.d.ts +20 -0
- package/dist/esm/src/wafer-map/modules/prerendering.d.ts +30 -0
- package/dist/esm/src/wafer-map/modules/rendering.d.ts +19 -0
- package/dist/esm/src/wafer-map/modules/wafer-map-update-tracker.d.ts +25 -0
- package/dist/esm/src/wafer-map/modules/wafer-map-validator.d.ts +16 -0
- package/dist/esm/src/wafer-map/modules/zoom-handler.d.ts +20 -0
- package/dist/esm/src/wafer-map/styles.d.ts +1 -0
- package/dist/esm/src/wafer-map/template.d.ts +2 -0
- package/dist/esm/src/wafer-map/types.d.ts +73 -0
- package/dist/esm/src/wafer-map/workers/matrix-renderer.d.ts +1 -0
- package/dist/esm/table-column/anchor/cell-view/index.d.ts +2 -0
- package/dist/esm/table-column/anchor/cell-view/index.js +12 -0
- package/dist/esm/table-column/anchor/cell-view/index.js.map +1 -1
- package/dist/esm/table-column/anchor/cell-view/styles.js +6 -1
- package/dist/esm/table-column/anchor/cell-view/styles.js.map +1 -1
- package/dist/esm/table-column/anchor/cell-view/template.js +1 -0
- package/dist/esm/table-column/anchor/cell-view/template.js.map +1 -1
- package/dist/esm/table-column/anchor/index.d.ts +5 -0
- package/dist/esm/table-column/anchor/index.js +7 -2
- package/dist/esm/table-column/anchor/index.js.map +1 -1
- package/dist/esm/table-column/date-text/cell-view/index.d.ts +1 -3
- package/dist/esm/table-column/date-text/cell-view/index.js +0 -6
- package/dist/esm/table-column/date-text/cell-view/index.js.map +1 -1
- package/dist/esm/table-column/date-text/index.d.ts +3 -1
- package/dist/esm/table-column/date-text/index.js +5 -1
- package/dist/esm/table-column/date-text/index.js.map +1 -1
- package/dist/esm/table-column/duration-text/cell-view/index.d.ts +1 -3
- package/dist/esm/table-column/duration-text/cell-view/index.js +0 -6
- package/dist/esm/table-column/duration-text/cell-view/index.js.map +1 -1
- package/dist/esm/table-column/duration-text/index.d.ts +3 -1
- package/dist/esm/table-column/duration-text/index.js +8 -9
- package/dist/esm/table-column/duration-text/index.js.map +1 -1
- package/dist/esm/table-column/enum-base/index.d.ts +2 -1
- package/dist/esm/table-column/enum-base/index.js.map +1 -1
- package/dist/esm/table-column/enum-text/cell-view/index.d.ts +1 -3
- package/dist/esm/table-column/enum-text/cell-view/index.js +0 -6
- package/dist/esm/table-column/enum-text/cell-view/index.js.map +1 -1
- package/dist/esm/table-column/mixins/placeholder.d.ts +9 -0
- package/dist/esm/table-column/mixins/placeholder.js +16 -0
- package/dist/esm/table-column/mixins/placeholder.js.map +1 -0
- package/dist/esm/table-column/number-text/cell-view/index.d.ts +2 -3
- package/dist/esm/table-column/number-text/cell-view/index.js +1 -4
- package/dist/esm/table-column/number-text/cell-view/index.js.map +1 -1
- package/dist/esm/table-column/number-text/index.d.ts +3 -1
- package/dist/esm/table-column/number-text/index.js +5 -1
- package/dist/esm/table-column/number-text/index.js.map +1 -1
- package/dist/esm/table-column/text/cell-view/index.d.ts +1 -1
- package/dist/esm/table-column/text/cell-view/index.js +1 -1
- package/dist/esm/table-column/text/cell-view/index.js.map +1 -1
- package/dist/esm/table-column/text/index.d.ts +3 -1
- package/dist/esm/table-column/text/index.js +5 -0
- package/dist/esm/table-column/text/index.js.map +1 -1
- package/dist/esm/table-column/text-base/cell-view/index.d.ts +20 -1
- package/dist/esm/table-column/text-base/cell-view/index.js +34 -0
- package/dist/esm/table-column/text-base/cell-view/index.js.map +1 -1
- package/dist/esm/table-column/text-base/cell-view/styles.js +6 -1
- package/dist/esm/table-column/text-base/cell-view/styles.js.map +1 -1
- package/dist/esm/table-column/text-base/cell-view/template.d.ts +1 -1
- package/dist/esm/table-column/text-base/cell-view/template.js +5 -3
- package/dist/esm/table-column/text-base/cell-view/template.js.map +1 -1
- package/dist/esm/table-column/text-base/index.d.ts +3 -0
- package/dist/esm/table-column/text-base/index.js +2 -1
- package/dist/esm/table-column/text-base/index.js.map +1 -1
- package/dist/esm/wafer-map/index.d.ts +7 -1
- package/dist/esm/wafer-map/index.js +10 -1
- package/dist/esm/wafer-map/index.js.map +1 -1
- package/dist/esm/wafer-map/modules/experimental/computations.d.ts +31 -0
- package/dist/esm/wafer-map/modules/experimental/computations.js +158 -0
- package/dist/esm/wafer-map/modules/experimental/computations.js.map +1 -0
- package/dist/esm/wafer-map/modules/experimental/data-manager.d.ts +27 -0
- package/dist/esm/wafer-map/modules/experimental/data-manager.js +59 -0
- package/dist/esm/wafer-map/modules/experimental/data-manager.js.map +1 -0
- package/dist/esm/wafer-map/modules/experimental/hover-handler.js +22 -14
- package/dist/esm/wafer-map/modules/experimental/hover-handler.js.map +1 -1
- package/dist/esm/wafer-map/modules/hover-handler.js +22 -13
- package/dist/esm/wafer-map/modules/hover-handler.js.map +1 -1
- package/dist/esm/wafer-map/modules/prerendering.js +1 -1
- package/dist/esm/wafer-map/modules/prerendering.js.map +1 -1
- package/package.json +17 -14
|
@@ -5,6 +5,7 @@ import { zoomIdentity } from 'd3-zoom';
|
|
|
5
5
|
import { template } from './template';
|
|
6
6
|
import { styles } from './styles';
|
|
7
7
|
import { DataManager } from './modules/data-manager';
|
|
8
|
+
import { DataManager as ExperimentalDataManager } from './modules/experimental/data-manager';
|
|
8
9
|
import { RenderingModule } from './modules/rendering';
|
|
9
10
|
import { HoverDieOpacity, WaferMapColorScaleMode, WaferMapOrientation, WaferMapOriginLocation } from './types';
|
|
10
11
|
import { WaferMapUpdateTracker } from './modules/wafer-map-update-tracker';
|
|
@@ -37,7 +38,12 @@ export class WaferMap extends FoundationElement {
|
|
|
37
38
|
/**
|
|
38
39
|
* @internal
|
|
39
40
|
*/
|
|
40
|
-
this.
|
|
41
|
+
this.stableDataManager = new DataManager(this.asRequiredFieldsWaferMap);
|
|
42
|
+
/**
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
this.experimentalDataManager = new ExperimentalDataManager(this.asRequiredFieldsWaferMap);
|
|
46
|
+
this.dataManager = this.stableDataManager;
|
|
41
47
|
/**
|
|
42
48
|
* @internal
|
|
43
49
|
*/
|
|
@@ -123,6 +129,9 @@ export class WaferMap extends FoundationElement {
|
|
|
123
129
|
if (this.waferMapUpdateTracker.requiresEventsUpdate) {
|
|
124
130
|
// zoom translateExtent needs to be recalculated when canvas size changes
|
|
125
131
|
this.zoomHandler.disconnect();
|
|
132
|
+
this.dataManager = this.isExperimentalRenderer()
|
|
133
|
+
? this.experimentalDataManager
|
|
134
|
+
: this.stableDataManager;
|
|
126
135
|
if (this.waferMapUpdateTracker.requiresContainerDimensionsUpdate) {
|
|
127
136
|
this.dataManager.updateContainerDimensions();
|
|
128
137
|
this.renderer.updateSortedDiesAndDrawWafer();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wafer-map/index.ts"],"names":[],"mappings":";AAAA,OAAO,EACH,IAAI,EACJ,uBAAuB,EACvB,UAAU,EACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAiB,MAAM,SAAS,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAEH,eAAe,EAEf,sBAAsB,EAEtB,mBAAmB,EACnB,sBAAsB,EAGzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,IAAI,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAQrD;;GAEG;AACH,MAAM,OAAO,QAEX,SAAQ,iBAAiB;IAF3B;;QAGI;;;WAGG;QACa,0BAAqB,GAA0B,IAAI,qBAAqB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAGjH,mBAAc,GAA2B,sBAAsB,CAAC,UAAU,CAAC;QAG3E,aAAQ,GAAY,SAAS,CAAC;QAG9B,aAAQ,GAAY,SAAS,CAAC;QAG9B,aAAQ,GAAY,SAAS,CAAC;QAG9B,aAAQ,GAAY,SAAS,CAAC;QAG9B,gBAAW,GAAwB,mBAAmB,CAAC,GAAG,CAAC;QAG3D,kBAAa,GAAG,CAAC,CAAC;QAGlB,oBAAe,GAAG,KAAK,CAAC;QAGxB,oBAAe,GAAG,EAAE,CAAC;QAGrB,mBAAc,GAA2B,sBAAsB,CAAC,MAAM,CAAC;QAiB9E;;WAEG;QACa,gBAAW,GAAgB,IAAI,WAAW,CACtD,IAAI,CAAC,wBAAwB,CAChC,CAAC;QAEF;;WAEG;QACa,iBAAY,GAAG,IAAI,eAAe,CAC9C,IAAI,CAAC,wBAAwB,CAChC,CAAC;QAEF;;WAEG;QACa,mBAAc,GAAG,IAAI,cAAc,CAC/C,IAAI,CAAC,wBAAwB,CAChC,CAAC;QAGK,aAAQ,GAAqC,IAAI,CAAC,YAAY,CAAC;QAEtE;;WAEG;QACI,iBAAY,GAAG,KAAK,CAAC;QAY5B;;WAEG;QACgB,cAAS,GAAkB,YAAY,CAAC;QAE3D;;WAEG;QACgB,mBAAc,GAAG,EAAE,CAAC;QAEvC;;WAEG;QACgB,iBAAY,GAAoB,eAAe,CAAC,IAAI,CAAC;QAExE;;WAEG;QACgB,eAAU,GAAG,CAAC,CAAC;QAElC;;WAEG;QACgB,gBAAW,GAAG,CAAC,CAAC;QAOhB,oBAAe,GAAa,EAAE,CAAC;QAC/B,SAAI,GAAkB,EAAE,CAAC;QAGzB,eAAU,GAAuB;YAChD,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACb,CAAC;QAEe,iBAAY,GAAiB,IAAI,YAAY,CAC1D,IAAI,CAAC,wBAAwB,CAChC,CAAC;QAEe,6BAAwB,GAA6B,IAAI,wBAAwB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAEjH,gBAAW,GAAgB,IAAI,WAAW,CACvD,IAAI,CAAC,wBAAwB,CAChC,CAAC;QAEe,mBAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7C,sBAAiB,GAAsB,IAAI,iBAAiB,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IA4LjH,CAAC;IA1LG,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAChD,CAAC;IAEe,iBAAiB;QAC7B,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE;YAC9C,kBAAkB,EAAE,IAAI;SAC3B,CAAE,CAAC;QACJ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAEe,oBAAoB;QAChC,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;OAOG;IACI,MAAM;QACT,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE;YACtC,OAAO;SACV;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE;YACzC,CAAC,CAAC,IAAI,CAAC,cAAc;YACrB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QACxB,IAAI,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,EAAE;YACjD,yEAAyE;YACzE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,qBAAqB,CAAC,iCAAiC,EAAE;gBAC9D,IAAI,CAAC,WAAW,CAAC,yBAAyB,EAAE,CAAC;gBAC7C,IAAI,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC;aAChD;iBAAM,IAAI,IAAI,CAAC,qBAAqB,CAAC,oBAAoB,EAAE;gBACxD,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC;aAChD;iBAAM,IACH,IAAI,CAAC,qBAAqB,CAAC,4BAA4B,EACzD;gBACE,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC;gBACxC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC;aAChD;iBAAM,IACH,IAAI,CAAC,qBAAqB,CAAC,4BAA4B,EACzD;gBACE,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC;gBACxC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC;aAChD;iBAAM,IAAI,IAAI,CAAC,qBAAqB,CAAC,wBAAwB,EAAE;gBAC5D,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;aAC7B;YACD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC9B;aAAM,IAAI,IAAI,CAAC,qBAAqB,CAAC,yBAAyB,EAAE;YAC7D,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;SAC/B;IACL,CAAC;IAED;;OAEG;IACI,sBAAsB;QACzB,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;IACxC,CAAC;IAEO,QAAQ;QACZ,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;QAChD,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;IACrD,CAAC;IAEO,oBAAoB;QACxB,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE;YAChD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,KAAK,KAAK,SAAS,EAAE;gBACrB,OAAO;aACV;YACD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;YAC5C,kFAAkF;YAClF,wEAAwE;YACxE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEO,qBAAqB;QACzB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,oBAAoB;QACxB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,sBAAsB;QAC1B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpD,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,sBAAsB;QAC1B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpD,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,qBAAqB;QACzB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,sBAAsB;QAC1B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpD,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,iBAAiB;QACrB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,kBAAkB;QACtB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,mBAAmB;QACvB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAED,IAAY,wBAAwB;QAChC,OAAO,IAAgB,CAAC;IAC5B,CAAC;CACJ;AAjUG;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;gDAC2C;AAGlF;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;0CACjC;AAGrC;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;0CACjC;AAGrC;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;0CACjC;AAGrC;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;0CACjC;AAGrC;IADC,IAAI;6CAC6D;AAGlE;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,uBAAuB,EAAE,CAAC;+CACjD;AAGzB;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;iDAC3B;AAG/B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;iDACb;AAG5B;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gDACsC;AAuC9E;IADC,UAAU;0CAC2D;AAU1D;IAAX,UAAU;6CAA6B;AAK5B;IAAX,UAAU;8CAA8B;AAK7B;IAAX,UAAU;2CAAgD;AAK/C;IAAX,UAAU;gDAA4B;AAK3B;IAAX,UAAU;8CAA6D;AAK5D;IAAX,UAAU;4CAAuB;AAKtB;IAAX,UAAU;6CAAwB;AAKvB;IAAX,UAAU;0CAAqD;AAEpD;IAAX,UAAU;iDAAuC;AACtC;IAAX,UAAU;sCAAiC;AAChC;IAAX,UAAU;2CAAwC;AAEvC;IAAX,UAAU;4CAGT;AA2MN,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,QAAQ,EAAE,WAAW;IACrB,QAAQ;IACR,MAAM;CACT,CAAC,CAAC;AAEH,YAAY,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC","sourcesContent":["import {\n attr,\n nullableNumberConverter,\n observable\n} from '@microsoft/fast-element';\nimport { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';\nimport { zoomIdentity, ZoomTransform } from 'd3-zoom';\nimport type { Table } from 'apache-arrow';\nimport { template } from './template';\nimport { styles } from './styles';\nimport { DataManager } from './modules/data-manager';\nimport { RenderingModule } from './modules/rendering';\nimport {\n HoverDie,\n HoverDieOpacity,\n WaferMapColorScale,\n WaferMapColorScaleMode,\n WaferMapDie,\n WaferMapOrientation,\n WaferMapOriginLocation,\n WaferMapValidity,\n type WaferRequiredFields\n} from './types';\nimport { WaferMapUpdateTracker } from './modules/wafer-map-update-tracker';\nimport { WaferMapValidator } from './modules/wafer-map-validator';\nimport { WorkerRenderer } from './modules/experimental/worker-renderer';\nimport { HoverHandler } from './modules/hover-handler';\nimport { HoverHandler as ExperimentalHoverHandler } from './modules/experimental/hover-handler';\nimport { ZoomHandler } from './modules/zoom-handler';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-wafer-map': WaferMap;\n }\n}\n\n/**\n * A nimble-styled WaferMap\n */\nexport class WaferMap<\n T extends WaferRequiredFields = WaferRequiredFields\n> extends FoundationElement {\n /**\n * @internal\n * needs to be initialized before the properties trigger changes\n */\n public readonly waferMapUpdateTracker: WaferMapUpdateTracker = new WaferMapUpdateTracker(this.asRequiredFieldsWaferMap);\n\n @attr({ attribute: 'origin-location' })\n public originLocation: WaferMapOriginLocation = WaferMapOriginLocation.bottomLeft;\n\n @attr({ attribute: 'grid-min-x', converter: nullableNumberConverter })\n public gridMinX?: number = undefined;\n\n @attr({ attribute: 'grid-max-x', converter: nullableNumberConverter })\n public gridMaxX?: number = undefined;\n\n @attr({ attribute: 'grid-min-y', converter: nullableNumberConverter })\n public gridMinY?: number = undefined;\n\n @attr({ attribute: 'grid-max-y', converter: nullableNumberConverter })\n public gridMaxY?: number = undefined;\n\n @attr\n public orientation: WaferMapOrientation = WaferMapOrientation.top;\n\n @attr({ attribute: 'max-characters', converter: nullableNumberConverter })\n public maxCharacters = 4;\n\n @attr({ attribute: 'die-labels-hidden', mode: 'boolean' })\n public dieLabelsHidden = false;\n\n @attr({ attribute: 'die-labels-suffix' })\n public dieLabelsSuffix = '';\n\n @attr({ attribute: 'color-scale-mode' })\n public colorScaleMode: WaferMapColorScaleMode = WaferMapColorScaleMode.linear;\n\n /**\n * @internal\n */\n public readonly canvas!: HTMLCanvasElement;\n\n /**\n * @internal\n */\n public canvasContext!: CanvasRenderingContext2D;\n\n /**\n * @internal\n */\n public readonly zoomContainer!: HTMLElement;\n\n /**\n * @internal\n */\n public readonly dataManager: DataManager = new DataManager(\n this.asRequiredFieldsWaferMap\n );\n\n /**\n * @internal\n */\n public readonly mainRenderer = new RenderingModule(\n this.asRequiredFieldsWaferMap\n );\n\n /**\n * @internal\n */\n public readonly workerRenderer = new WorkerRenderer(\n this.asRequiredFieldsWaferMap\n );\n\n @observable\n public renderer: RenderingModule | WorkerRenderer = this.mainRenderer;\n\n /**\n * @internal\n */\n public renderQueued = false;\n\n /**\n * @internal\n */\n @observable public canvasWidth!: number;\n\n /**\n * @internal\n */\n @observable public canvasHeight!: number;\n\n /**\n * @internal\n */\n @observable public transform: ZoomTransform = zoomIdentity;\n\n /**\n * @internal\n */\n @observable public hoverTransform = '';\n\n /**\n * @internal\n */\n @observable public hoverOpacity: HoverDieOpacity = HoverDieOpacity.hide;\n\n /**\n * @internal\n */\n @observable public hoverWidth = 0;\n\n /**\n * @internal\n */\n @observable public hoverHeight = 0;\n\n /**\n * @internal\n */\n @observable public hoverDie: WaferMapDie | HoverDie | undefined;\n\n @observable public highlightedTags: string[] = [];\n @observable public dies: WaferMapDie[] = [];\n @observable public diesTable: Table<T> | undefined;\n\n @observable public colorScale: WaferMapColorScale = {\n colors: [],\n values: []\n };\n\n private readonly hoverHandler: HoverHandler = new HoverHandler(\n this.asRequiredFieldsWaferMap\n );\n\n private readonly experimentalHoverHandler: ExperimentalHoverHandler = new ExperimentalHoverHandler(this.asRequiredFieldsWaferMap);\n\n private readonly zoomHandler: ZoomHandler = new ZoomHandler(\n this.asRequiredFieldsWaferMap\n );\n\n private readonly resizeObserver = this.createResizeObserver();\n private readonly waferMapValidator: WaferMapValidator = new WaferMapValidator(this.asRequiredFieldsWaferMap);\n\n public get validity(): WaferMapValidity {\n return this.waferMapValidator.getValidity();\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this.canvasContext = this.canvas.getContext('2d', {\n willReadFrequently: true\n })!;\n this.hoverHandler.connect();\n this.experimentalHoverHandler.connect();\n this.zoomHandler.connect();\n this.resizeObserver.observe(this);\n this.waferMapUpdateTracker.trackAll();\n }\n\n public override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.hoverHandler.disconnect();\n this.experimentalHoverHandler.disconnect();\n this.zoomHandler.disconnect();\n this.resizeObserver.unobserve(this);\n }\n\n /**\n * @internal\n * Update function called when an update is queued.\n * It will check which updates are needed based on which properties have changed.\n * Each update represents a different starting point of the same sequential update flow.\n * The updates snowball one after the other, this function only choses the 'altitude'.\n * The hover does not require an event update, but it's also the last update in the sequence.\n */\n public update(): void {\n this.validate();\n if (this.validity.invalidDiesTableSchema) {\n return;\n }\n this.renderer = this.isExperimentalRenderer()\n ? this.workerRenderer\n : this.mainRenderer;\n if (this.waferMapUpdateTracker.requiresEventsUpdate) {\n // zoom translateExtent needs to be recalculated when canvas size changes\n this.zoomHandler.disconnect();\n if (this.waferMapUpdateTracker.requiresContainerDimensionsUpdate) {\n this.dataManager.updateContainerDimensions();\n this.renderer.updateSortedDiesAndDrawWafer();\n } else if (this.waferMapUpdateTracker.requiresScalesUpdate) {\n this.dataManager.updateScales();\n this.renderer.updateSortedDiesAndDrawWafer();\n } else if (\n this.waferMapUpdateTracker.requiresLabelsFontSizeUpdate\n ) {\n this.dataManager.updateLabelsFontSize();\n this.renderer.updateSortedDiesAndDrawWafer();\n } else if (\n this.waferMapUpdateTracker.requiresDiesRenderInfoUpdate\n ) {\n this.dataManager.updateDiesRenderInfo();\n this.renderer.updateSortedDiesAndDrawWafer();\n } else if (this.waferMapUpdateTracker.requiresDrawnWaferUpdate) {\n this.renderer.drawWafer();\n }\n this.zoomHandler.connect();\n } else if (this.waferMapUpdateTracker.requiresRenderHoverUpdate) {\n this.renderer.renderHover();\n }\n }\n\n /**\n * @internal\n */\n public isExperimentalRenderer(): boolean {\n return this.diesTable !== undefined;\n }\n\n private validate(): void {\n this.waferMapValidator.validateGridDimensions();\n this.waferMapValidator.validateDiesTableSchema();\n }\n\n private createResizeObserver(): ResizeObserver {\n const resizeObserver = new ResizeObserver(entries => {\n const entry = entries[0];\n if (entry === undefined) {\n return;\n }\n const { height, width } = entry.contentRect;\n // Updating the canvas size clears its contents so update it explicitly instead of\n // via template bindings so we can confirm that it happens before render\n this.canvas.width = width;\n this.canvas.height = height;\n this.canvasWidth = width;\n this.canvasHeight = height;\n });\n return resizeObserver;\n }\n\n private originLocationChanged(): void {\n this.waferMapUpdateTracker.track('originLocation');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private gridMinXChanged(): void {\n this.waferMapUpdateTracker.track('gridMinX');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private gridMaxXChanged(): void {\n this.waferMapUpdateTracker.track('gridMaxX');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private gridMinYChanged(): void {\n this.waferMapUpdateTracker.track('gridMinY');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private gridMaxYChanged(): void {\n this.waferMapUpdateTracker.track('gridMaxY');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private maxCharactersChanged(): void {\n this.waferMapUpdateTracker.track('maxCharacters');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private dieLabelsHiddenChanged(): void {\n this.waferMapUpdateTracker.track('dieLabelsHidden');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private dieLabelsSuffixChanged(): void {\n this.waferMapUpdateTracker.track('dieLabelsSuffix');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private colorScaleModeChanged(): void {\n this.waferMapUpdateTracker.track('colorScaleMode');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private highlightedTagsChanged(): void {\n this.waferMapUpdateTracker.track('highlightedTags');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private diesChanged(): void {\n this.waferMapUpdateTracker.track('dies');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private diesTableChanged(): void {\n this.waferMapUpdateTracker.track('dies');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private colorScaleChanged(): void {\n this.waferMapUpdateTracker.track('colorScale');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private transformChanged(): void {\n this.waferMapUpdateTracker.track('transform');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private canvasWidthChanged(): void {\n this.waferMapUpdateTracker.track('canvasWidth');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private canvasHeightChanged(): void {\n this.waferMapUpdateTracker.track('canvasHeight');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private hoverDieChanged(): void {\n this.$emit('die-hover', { currentDie: this.hoverDie });\n this.waferMapUpdateTracker.track('hoverDie');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private get asRequiredFieldsWaferMap(): WaferMap {\n return this as WaferMap;\n }\n}\n\nconst nimbleWaferMap = WaferMap.compose({\n baseName: 'wafer-map',\n template,\n styles\n});\n\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleWaferMap());\nexport const waferMapTag = 'nimble-wafer-map';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/wafer-map/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n attr,\n nullableNumberConverter,\n observable\n} from '@microsoft/fast-element';\nimport { DesignSystem, FoundationElement } from '@microsoft/fast-foundation';\nimport { zoomIdentity, ZoomTransform } from 'd3-zoom';\nimport type { Table } from 'apache-arrow';\nimport { template } from './template';\nimport { styles } from './styles';\nimport { DataManager } from './modules/data-manager';\nimport { DataManager as ExperimentalDataManager } from './modules/experimental/data-manager';\nimport { RenderingModule } from './modules/rendering';\nimport {\n HoverDie,\n HoverDieOpacity,\n WaferMapColorScale,\n WaferMapColorScaleMode,\n WaferMapDie,\n WaferMapOrientation,\n WaferMapOriginLocation,\n WaferMapValidity,\n type WaferRequiredFields\n} from './types';\nimport { WaferMapUpdateTracker } from './modules/wafer-map-update-tracker';\nimport { WaferMapValidator } from './modules/wafer-map-validator';\nimport { WorkerRenderer } from './modules/experimental/worker-renderer';\nimport { HoverHandler } from './modules/hover-handler';\nimport { HoverHandler as ExperimentalHoverHandler } from './modules/experimental/hover-handler';\nimport { ZoomHandler } from './modules/zoom-handler';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-wafer-map': WaferMap;\n }\n}\n\n/**\n * A nimble-styled WaferMap\n */\nexport class WaferMap<\n T extends WaferRequiredFields = WaferRequiredFields\n> extends FoundationElement {\n /**\n * @internal\n * needs to be initialized before the properties trigger changes\n */\n public readonly waferMapUpdateTracker: WaferMapUpdateTracker = new WaferMapUpdateTracker(this.asRequiredFieldsWaferMap);\n\n @attr({ attribute: 'origin-location' })\n public originLocation: WaferMapOriginLocation = WaferMapOriginLocation.bottomLeft;\n\n @attr({ attribute: 'grid-min-x', converter: nullableNumberConverter })\n public gridMinX?: number = undefined;\n\n @attr({ attribute: 'grid-max-x', converter: nullableNumberConverter })\n public gridMaxX?: number = undefined;\n\n @attr({ attribute: 'grid-min-y', converter: nullableNumberConverter })\n public gridMinY?: number = undefined;\n\n @attr({ attribute: 'grid-max-y', converter: nullableNumberConverter })\n public gridMaxY?: number = undefined;\n\n @attr\n public orientation: WaferMapOrientation = WaferMapOrientation.top;\n\n @attr({ attribute: 'max-characters', converter: nullableNumberConverter })\n public maxCharacters = 4;\n\n @attr({ attribute: 'die-labels-hidden', mode: 'boolean' })\n public dieLabelsHidden = false;\n\n @attr({ attribute: 'die-labels-suffix' })\n public dieLabelsSuffix = '';\n\n @attr({ attribute: 'color-scale-mode' })\n public colorScaleMode: WaferMapColorScaleMode = WaferMapColorScaleMode.linear;\n\n /**\n * @internal\n */\n public readonly canvas!: HTMLCanvasElement;\n\n /**\n * @internal\n */\n public canvasContext!: CanvasRenderingContext2D;\n\n /**\n * @internal\n */\n public readonly zoomContainer!: HTMLElement;\n\n /**\n * @internal\n */\n public readonly stableDataManager: DataManager = new DataManager(\n this.asRequiredFieldsWaferMap\n );\n\n /**\n * @internal\n */\n public readonly experimentalDataManager: ExperimentalDataManager = new ExperimentalDataManager(this.asRequiredFieldsWaferMap);\n\n public dataManager: DataManager | ExperimentalDataManager = this.stableDataManager;\n\n /**\n * @internal\n */\n public readonly mainRenderer = new RenderingModule(\n this.asRequiredFieldsWaferMap\n );\n\n /**\n * @internal\n */\n public readonly workerRenderer = new WorkerRenderer(\n this.asRequiredFieldsWaferMap\n );\n\n @observable\n public renderer: RenderingModule | WorkerRenderer = this.mainRenderer;\n\n /**\n * @internal\n */\n public renderQueued = false;\n\n /**\n * @internal\n */\n @observable public canvasWidth!: number;\n\n /**\n * @internal\n */\n @observable public canvasHeight!: number;\n\n /**\n * @internal\n */\n @observable public transform: ZoomTransform = zoomIdentity;\n\n /**\n * @internal\n */\n @observable public hoverTransform = '';\n\n /**\n * @internal\n */\n @observable public hoverOpacity: HoverDieOpacity = HoverDieOpacity.hide;\n\n /**\n * @internal\n */\n @observable public hoverWidth = 0;\n\n /**\n * @internal\n */\n @observable public hoverHeight = 0;\n\n /**\n * @internal\n */\n @observable public hoverDie: WaferMapDie | HoverDie | undefined;\n\n @observable public highlightedTags: string[] = [];\n @observable public dies: WaferMapDie[] = [];\n @observable public diesTable: Table<T> | undefined;\n\n @observable public colorScale: WaferMapColorScale = {\n colors: [],\n values: []\n };\n\n private readonly hoverHandler: HoverHandler = new HoverHandler(\n this.asRequiredFieldsWaferMap\n );\n\n private readonly experimentalHoverHandler: ExperimentalHoverHandler = new ExperimentalHoverHandler(this.asRequiredFieldsWaferMap);\n\n private readonly zoomHandler: ZoomHandler = new ZoomHandler(\n this.asRequiredFieldsWaferMap\n );\n\n private readonly resizeObserver = this.createResizeObserver();\n private readonly waferMapValidator: WaferMapValidator = new WaferMapValidator(this.asRequiredFieldsWaferMap);\n\n public get validity(): WaferMapValidity {\n return this.waferMapValidator.getValidity();\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this.canvasContext = this.canvas.getContext('2d', {\n willReadFrequently: true\n })!;\n this.hoverHandler.connect();\n this.experimentalHoverHandler.connect();\n this.zoomHandler.connect();\n this.resizeObserver.observe(this);\n this.waferMapUpdateTracker.trackAll();\n }\n\n public override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.hoverHandler.disconnect();\n this.experimentalHoverHandler.disconnect();\n this.zoomHandler.disconnect();\n this.resizeObserver.unobserve(this);\n }\n\n /**\n * @internal\n * Update function called when an update is queued.\n * It will check which updates are needed based on which properties have changed.\n * Each update represents a different starting point of the same sequential update flow.\n * The updates snowball one after the other, this function only choses the 'altitude'.\n * The hover does not require an event update, but it's also the last update in the sequence.\n */\n public update(): void {\n this.validate();\n if (this.validity.invalidDiesTableSchema) {\n return;\n }\n this.renderer = this.isExperimentalRenderer()\n ? this.workerRenderer\n : this.mainRenderer;\n if (this.waferMapUpdateTracker.requiresEventsUpdate) {\n // zoom translateExtent needs to be recalculated when canvas size changes\n this.zoomHandler.disconnect();\n this.dataManager = this.isExperimentalRenderer()\n ? this.experimentalDataManager\n : this.stableDataManager;\n if (this.waferMapUpdateTracker.requiresContainerDimensionsUpdate) {\n this.dataManager.updateContainerDimensions();\n this.renderer.updateSortedDiesAndDrawWafer();\n } else if (this.waferMapUpdateTracker.requiresScalesUpdate) {\n this.dataManager.updateScales();\n this.renderer.updateSortedDiesAndDrawWafer();\n } else if (\n this.waferMapUpdateTracker.requiresLabelsFontSizeUpdate\n ) {\n this.dataManager.updateLabelsFontSize();\n this.renderer.updateSortedDiesAndDrawWafer();\n } else if (\n this.waferMapUpdateTracker.requiresDiesRenderInfoUpdate\n ) {\n this.dataManager.updateDiesRenderInfo();\n this.renderer.updateSortedDiesAndDrawWafer();\n } else if (this.waferMapUpdateTracker.requiresDrawnWaferUpdate) {\n this.renderer.drawWafer();\n }\n this.zoomHandler.connect();\n } else if (this.waferMapUpdateTracker.requiresRenderHoverUpdate) {\n this.renderer.renderHover();\n }\n }\n\n /**\n * @internal\n */\n public isExperimentalRenderer(): boolean {\n return this.diesTable !== undefined;\n }\n\n private validate(): void {\n this.waferMapValidator.validateGridDimensions();\n this.waferMapValidator.validateDiesTableSchema();\n }\n\n private createResizeObserver(): ResizeObserver {\n const resizeObserver = new ResizeObserver(entries => {\n const entry = entries[0];\n if (entry === undefined) {\n return;\n }\n const { height, width } = entry.contentRect;\n // Updating the canvas size clears its contents so update it explicitly instead of\n // via template bindings so we can confirm that it happens before render\n this.canvas.width = width;\n this.canvas.height = height;\n this.canvasWidth = width;\n this.canvasHeight = height;\n });\n return resizeObserver;\n }\n\n private originLocationChanged(): void {\n this.waferMapUpdateTracker.track('originLocation');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private gridMinXChanged(): void {\n this.waferMapUpdateTracker.track('gridMinX');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private gridMaxXChanged(): void {\n this.waferMapUpdateTracker.track('gridMaxX');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private gridMinYChanged(): void {\n this.waferMapUpdateTracker.track('gridMinY');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private gridMaxYChanged(): void {\n this.waferMapUpdateTracker.track('gridMaxY');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private maxCharactersChanged(): void {\n this.waferMapUpdateTracker.track('maxCharacters');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private dieLabelsHiddenChanged(): void {\n this.waferMapUpdateTracker.track('dieLabelsHidden');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private dieLabelsSuffixChanged(): void {\n this.waferMapUpdateTracker.track('dieLabelsSuffix');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private colorScaleModeChanged(): void {\n this.waferMapUpdateTracker.track('colorScaleMode');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private highlightedTagsChanged(): void {\n this.waferMapUpdateTracker.track('highlightedTags');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private diesChanged(): void {\n this.waferMapUpdateTracker.track('dies');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private diesTableChanged(): void {\n this.waferMapUpdateTracker.track('dies');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private colorScaleChanged(): void {\n this.waferMapUpdateTracker.track('colorScale');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private transformChanged(): void {\n this.waferMapUpdateTracker.track('transform');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private canvasWidthChanged(): void {\n this.waferMapUpdateTracker.track('canvasWidth');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private canvasHeightChanged(): void {\n this.waferMapUpdateTracker.track('canvasHeight');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private hoverDieChanged(): void {\n this.$emit('die-hover', { currentDie: this.hoverDie });\n this.waferMapUpdateTracker.track('hoverDie');\n this.waferMapUpdateTracker.queueUpdate();\n }\n\n private get asRequiredFieldsWaferMap(): WaferMap {\n return this as WaferMap;\n }\n}\n\nconst nimbleWaferMap = WaferMap.compose({\n baseName: 'wafer-map',\n template,\n styles\n});\n\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleWaferMap());\nexport const waferMapTag = 'nimble-wafer-map';\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ScaleLinear } from 'd3-scale';
|
|
2
|
+
import type { WaferMap } from '../..';
|
|
3
|
+
import { Dimensions, Margin } from '../../types';
|
|
4
|
+
/**
|
|
5
|
+
* Computations calculates and stores different measures which are used in the Wafermap
|
|
6
|
+
*/
|
|
7
|
+
export declare class Computations {
|
|
8
|
+
private readonly wafermap;
|
|
9
|
+
get containerDimensions(): Dimensions;
|
|
10
|
+
get dieDimensions(): Dimensions;
|
|
11
|
+
get margin(): Margin;
|
|
12
|
+
get horizontalScale(): ScaleLinear<number, number>;
|
|
13
|
+
get verticalScale(): ScaleLinear<number, number>;
|
|
14
|
+
private _containerDimensions;
|
|
15
|
+
private _dieDimensions;
|
|
16
|
+
private _margin;
|
|
17
|
+
private _horizontalScale;
|
|
18
|
+
private _verticalScale;
|
|
19
|
+
private readonly defaultPadding;
|
|
20
|
+
private readonly baseMarginPercentage;
|
|
21
|
+
constructor(wafermap: WaferMap);
|
|
22
|
+
updateContainerDimensions(): void;
|
|
23
|
+
updateScales(): void;
|
|
24
|
+
private gridDimensionsValidAndDefined;
|
|
25
|
+
private calculateGridDimensionsFromBoundingBox;
|
|
26
|
+
private calculateGridDimensionsFromDies;
|
|
27
|
+
private calculateContainerDimensions;
|
|
28
|
+
private createHorizontalScale;
|
|
29
|
+
private createVerticalScale;
|
|
30
|
+
private calculateMarginAddition;
|
|
31
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { scaleLinear } from 'd3-scale';
|
|
2
|
+
import { WaferMapOriginLocation } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Computations calculates and stores different measures which are used in the Wafermap
|
|
5
|
+
*/
|
|
6
|
+
export class Computations {
|
|
7
|
+
get containerDimensions() {
|
|
8
|
+
return this._containerDimensions;
|
|
9
|
+
}
|
|
10
|
+
get dieDimensions() {
|
|
11
|
+
return this._dieDimensions;
|
|
12
|
+
}
|
|
13
|
+
get margin() {
|
|
14
|
+
return this._margin;
|
|
15
|
+
}
|
|
16
|
+
get horizontalScale() {
|
|
17
|
+
return this._horizontalScale;
|
|
18
|
+
}
|
|
19
|
+
get verticalScale() {
|
|
20
|
+
return this._verticalScale;
|
|
21
|
+
}
|
|
22
|
+
constructor(wafermap) {
|
|
23
|
+
this.wafermap = wafermap;
|
|
24
|
+
this.defaultPadding = 0;
|
|
25
|
+
this.baseMarginPercentage = 0.04;
|
|
26
|
+
}
|
|
27
|
+
updateContainerDimensions() {
|
|
28
|
+
const canvasDimensions = {
|
|
29
|
+
width: this.wafermap.canvasWidth,
|
|
30
|
+
height: this.wafermap.canvasHeight
|
|
31
|
+
};
|
|
32
|
+
const canvasDiameter = Math.min(canvasDimensions.width, canvasDimensions.height);
|
|
33
|
+
const canvasMargin = {
|
|
34
|
+
top: (canvasDimensions.height - canvasDiameter) / 2,
|
|
35
|
+
right: (canvasDimensions.width - canvasDiameter) / 2,
|
|
36
|
+
bottom: (canvasDimensions.height - canvasDiameter) / 2,
|
|
37
|
+
left: (canvasDimensions.width - canvasDiameter) / 2
|
|
38
|
+
};
|
|
39
|
+
const baseMargin = {
|
|
40
|
+
top: canvasDiameter * this.baseMarginPercentage,
|
|
41
|
+
right: canvasDiameter * this.baseMarginPercentage,
|
|
42
|
+
bottom: canvasDiameter * this.baseMarginPercentage,
|
|
43
|
+
left: canvasDiameter * this.baseMarginPercentage
|
|
44
|
+
};
|
|
45
|
+
this._margin = this.calculateMarginAddition(baseMargin, canvasMargin);
|
|
46
|
+
this._containerDimensions = this.calculateContainerDimensions(canvasDimensions, this._margin);
|
|
47
|
+
this.updateScales();
|
|
48
|
+
}
|
|
49
|
+
updateScales() {
|
|
50
|
+
const containerDiameter = Math.min(this._containerDimensions.width, this._containerDimensions.height);
|
|
51
|
+
const gridDimensions = this.gridDimensionsValidAndDefined()
|
|
52
|
+
? this.calculateGridDimensionsFromBoundingBox()
|
|
53
|
+
: this.calculateGridDimensionsFromDies();
|
|
54
|
+
// this scale is used for positioning the dies on the canvas
|
|
55
|
+
const originLocation = this.wafermap.originLocation;
|
|
56
|
+
this._horizontalScale = this.createHorizontalScale(originLocation, gridDimensions, containerDiameter);
|
|
57
|
+
// this scale is used for positioning the dies on the canvas
|
|
58
|
+
this._verticalScale = this.createVerticalScale(originLocation, gridDimensions, containerDiameter);
|
|
59
|
+
this._dieDimensions = {
|
|
60
|
+
width: Math.abs(this._horizontalScale(0) - this._horizontalScale(1)),
|
|
61
|
+
height: Math.abs(this._verticalScale(0) - this._verticalScale(1))
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
gridDimensionsValidAndDefined() {
|
|
65
|
+
return (!this.wafermap.validity.invalidGridDimensions
|
|
66
|
+
&& typeof this.wafermap.gridMinX === 'number'
|
|
67
|
+
&& typeof this.wafermap.gridMinY === 'number'
|
|
68
|
+
&& typeof this.wafermap.gridMaxX === 'number'
|
|
69
|
+
&& typeof this.wafermap.gridMinX === 'number');
|
|
70
|
+
}
|
|
71
|
+
calculateGridDimensionsFromBoundingBox() {
|
|
72
|
+
const gridDimensions = { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };
|
|
73
|
+
if (typeof this.wafermap.gridMaxY === 'number'
|
|
74
|
+
&& typeof this.wafermap.gridMinY === 'number'
|
|
75
|
+
&& typeof this.wafermap.gridMaxX === 'number'
|
|
76
|
+
&& typeof this.wafermap.gridMinX === 'number') {
|
|
77
|
+
gridDimensions.origin.x = this.wafermap.gridMinX;
|
|
78
|
+
gridDimensions.origin.y = this.wafermap.gridMinY;
|
|
79
|
+
gridDimensions.rows = this.wafermap.gridMaxY - this.wafermap.gridMinY + 1;
|
|
80
|
+
gridDimensions.cols = this.wafermap.gridMaxX - this.wafermap.gridMinX + 1;
|
|
81
|
+
}
|
|
82
|
+
return gridDimensions;
|
|
83
|
+
}
|
|
84
|
+
calculateGridDimensionsFromDies() {
|
|
85
|
+
if (this.wafermap.diesTable === undefined) {
|
|
86
|
+
return { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };
|
|
87
|
+
}
|
|
88
|
+
const colIndex = this.wafermap.diesTable
|
|
89
|
+
.getChild('colIndex')
|
|
90
|
+
.toArray();
|
|
91
|
+
const rowIndex = this.wafermap.diesTable
|
|
92
|
+
.getChild('rowIndex')
|
|
93
|
+
.toArray();
|
|
94
|
+
const minPoint = { x: colIndex[0], y: rowIndex[0] };
|
|
95
|
+
const maxPoint = { x: colIndex[0], y: rowIndex[0] };
|
|
96
|
+
// will replace iterating with arquero after fixing issues: https://github.com/uwdata/arquero/pull/346
|
|
97
|
+
for (let i = 0; i < colIndex.length; i++) {
|
|
98
|
+
if (colIndex[i] < minPoint.x) {
|
|
99
|
+
minPoint.x = colIndex[i];
|
|
100
|
+
}
|
|
101
|
+
if (colIndex[i] > maxPoint.x) {
|
|
102
|
+
maxPoint.x = colIndex[i];
|
|
103
|
+
}
|
|
104
|
+
if (rowIndex[i] < minPoint.y) {
|
|
105
|
+
minPoint.y = rowIndex[i];
|
|
106
|
+
}
|
|
107
|
+
if (rowIndex[i] > maxPoint.y) {
|
|
108
|
+
maxPoint.y = rowIndex[i];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
origin: minPoint,
|
|
113
|
+
rows: maxPoint.y - minPoint.y + 1,
|
|
114
|
+
cols: maxPoint.x - minPoint.x + 1
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
calculateContainerDimensions(canvasDimensions, margin) {
|
|
118
|
+
return {
|
|
119
|
+
width: canvasDimensions.width - margin.left - margin.right,
|
|
120
|
+
height: canvasDimensions.height - margin.top - margin.bottom
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
createHorizontalScale(originLocation, grid, containerWidth) {
|
|
124
|
+
const scale = scaleLinear();
|
|
125
|
+
if (originLocation === WaferMapOriginLocation.bottomLeft
|
|
126
|
+
|| originLocation === WaferMapOriginLocation.topLeft) {
|
|
127
|
+
return scale
|
|
128
|
+
.domain([grid.origin.x, grid.origin.x + grid.cols])
|
|
129
|
+
.range([0, containerWidth]);
|
|
130
|
+
}
|
|
131
|
+
return scale
|
|
132
|
+
.domain([grid.origin.x - 1, grid.origin.x + grid.cols - 1])
|
|
133
|
+
.range([containerWidth, 0]);
|
|
134
|
+
}
|
|
135
|
+
createVerticalScale(originLocation, grid, containerHeight) {
|
|
136
|
+
const scale = scaleLinear();
|
|
137
|
+
// html canvas has top-left origin https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#the_grid
|
|
138
|
+
// we need to flip the vertical scale
|
|
139
|
+
if (originLocation === WaferMapOriginLocation.bottomLeft
|
|
140
|
+
|| originLocation === WaferMapOriginLocation.bottomRight) {
|
|
141
|
+
return scale
|
|
142
|
+
.domain([grid.origin.y - 1, grid.origin.y + grid.rows - 1])
|
|
143
|
+
.range([containerHeight, 0]);
|
|
144
|
+
}
|
|
145
|
+
return scale
|
|
146
|
+
.domain([grid.origin.y, grid.origin.y + grid.rows])
|
|
147
|
+
.range([0, containerHeight]);
|
|
148
|
+
}
|
|
149
|
+
calculateMarginAddition(baseMargin, addedMargin) {
|
|
150
|
+
return {
|
|
151
|
+
top: baseMargin.top + addedMargin.top,
|
|
152
|
+
right: baseMargin.right + addedMargin.right,
|
|
153
|
+
bottom: baseMargin.bottom + addedMargin.bottom,
|
|
154
|
+
left: baseMargin.left + addedMargin.left
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=computations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computations.js","sourceRoot":"","sources":["../../../../../src/wafer-map/modules/experimental/computations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAe,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAsB,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAWzE;;GAEG;AACH,MAAM,OAAO,YAAY;IACrB,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAUD,YAAoC,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAHrC,mBAAc,GAAG,CAAC,CAAC;QACnB,yBAAoB,GAAG,IAAI,CAAC;IAEY,CAAC;IAEnD,yBAAyB;QAC5B,MAAM,gBAAgB,GAAG;YACrB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;YAChC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY;SACrC,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC3B,gBAAgB,CAAC,KAAK,EACtB,gBAAgB,CAAC,MAAM,CAC1B,CAAC;QACF,MAAM,YAAY,GAAG;YACjB,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC;YACnD,KAAK,EAAE,CAAC,gBAAgB,CAAC,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC;YACpD,MAAM,EAAE,CAAC,gBAAgB,CAAC,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC;YACtD,IAAI,EAAE,CAAC,gBAAgB,CAAC,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC;SACtD,CAAC;QACF,MAAM,UAAU,GAAG;YACf,GAAG,EAAE,cAAc,GAAG,IAAI,CAAC,oBAAoB;YAC/C,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC,oBAAoB;YACjD,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,oBAAoB;YAClD,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC,oBAAoB;SACnD,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACtE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,4BAA4B,CACzD,gBAAgB,EAChB,IAAI,CAAC,OAAO,CACf,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAEM,YAAY;QACf,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAC9B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAC/B,IAAI,CAAC,oBAAoB,CAAC,MAAM,CACnC,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,CAAC,6BAA6B,EAAE;YACvD,CAAC,CAAC,IAAI,CAAC,sCAAsC,EAAE;YAC/C,CAAC,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC;QAC7C,4DAA4D;QAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAC9C,cAAc,EACd,cAAc,EACd,iBAAiB,CACpB,CAAC;QACF,4DAA4D;QAC5D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAC1C,cAAc,EACd,cAAc,EACd,iBAAiB,CACpB,CAAC;QACF,IAAI,CAAC,cAAc,GAAG;YAClB,KAAK,EAAE,IAAI,CAAC,GAAG,CACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CACtD;YACD,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SACpE,CAAC;IACN,CAAC;IAEO,6BAA6B;QACjC,OAAO,CACH,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB;eAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ;eAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ;eAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ;eAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAChD,CAAC;IACN,CAAC;IAEO,sCAAsC;QAC1C,MAAM,cAAc,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,IACI,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ;eACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ;eAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ;eAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAC/C;YACE,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACjD,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACjD,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC1E,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;SAC7E;QACD,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEO,+BAA+B;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE;YACvC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;SACvD;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS;aACnC,QAAQ,CAAC,UAAU,CAAE;aACrB,OAAO,EAAE,CAAC;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS;aACnC,QAAQ,CAAC,UAAU,CAAE;aACrB,OAAO,EAAE,CAAC;QAEf,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC;QAEtD,sGAAsG;QACtG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,QAAQ,CAAC,CAAC,CAAE,GAAG,QAAQ,CAAC,CAAC,EAAE;gBAC3B,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;aAC7B;YACD,IAAI,QAAQ,CAAC,CAAC,CAAE,GAAG,QAAQ,CAAC,CAAC,EAAE;gBAC3B,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;aAC7B;YACD,IAAI,QAAQ,CAAC,CAAC,CAAE,GAAG,QAAQ,CAAC,CAAC,EAAE;gBAC3B,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;aAC7B;YACD,IAAI,QAAQ,CAAC,CAAC,CAAE,GAAG,QAAQ,CAAC,CAAC,EAAE;gBAC3B,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;aAC7B;SACJ;QAED,OAAO;YACH,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC;YACjC,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC;SACpC,CAAC;IACN,CAAC;IAEO,4BAA4B,CAChC,gBAA4B,EAC5B,MAAc;QAEd,OAAO;YACH,KAAK,EAAE,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK;YAC1D,MAAM,EAAE,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM;SAC/D,CAAC;IACN,CAAC;IAEO,qBAAqB,CACzB,cAAsC,EACtC,IAAoB,EACpB,cAAsB;QAEtB,MAAM,KAAK,GAAG,WAAW,EAAkB,CAAC;QAC5C,IACI,cAAc,KAAK,sBAAsB,CAAC,UAAU;eACjD,cAAc,KAAK,sBAAsB,CAAC,OAAO,EACtD;YACE,OAAO,KAAK;iBACP,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;iBAClD,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;SACnC;QACD,OAAO,KAAK;aACP,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;aAC1D,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAEO,mBAAmB,CACvB,cAAsC,EACtC,IAAoB,EACpB,eAAuB;QAEvB,MAAM,KAAK,GAAG,WAAW,EAAkB,CAAC;QAC5C,+HAA+H;QAC/H,qCAAqC;QACrC,IACI,cAAc,KAAK,sBAAsB,CAAC,UAAU;eACjD,cAAc,KAAK,sBAAsB,CAAC,WAAW,EAC1D;YACE,OAAO,KAAK;iBACP,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;iBAC1D,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;SACpC;QACD,OAAO,KAAK;aACP,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;aAClD,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;IACrC,CAAC;IAEO,uBAAuB,CAC3B,UAAkB,EAClB,WAAmB;QAEnB,OAAO;YACH,GAAG,EAAE,UAAU,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG;YACrC,KAAK,EAAE,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK;YAC3C,MAAM,EAAE,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM;YAC9C,IAAI,EAAE,UAAU,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI;SAC3C,CAAC;IACN,CAAC;CACJ","sourcesContent":["import { scaleLinear, ScaleLinear } from 'd3-scale';\nimport type { WaferMap } from '../..';\nimport { Dimensions, Margin, WaferMapOriginLocation } from '../../types';\n\ninterface GridDimensions {\n origin: {\n x: number,\n y: number\n };\n rows: number;\n cols: number;\n}\n\n/**\n * Computations calculates and stores different measures which are used in the Wafermap\n */\nexport class Computations {\n public get containerDimensions(): Dimensions {\n return this._containerDimensions;\n }\n\n public get dieDimensions(): Dimensions {\n return this._dieDimensions;\n }\n\n public get margin(): Margin {\n return this._margin;\n }\n\n public get horizontalScale(): ScaleLinear<number, number> {\n return this._horizontalScale;\n }\n\n public get verticalScale(): ScaleLinear<number, number> {\n return this._verticalScale;\n }\n\n private _containerDimensions!: Dimensions;\n private _dieDimensions!: Dimensions;\n private _margin!: Margin;\n private _horizontalScale!: ScaleLinear<number, number>;\n private _verticalScale!: ScaleLinear<number, number>;\n private readonly defaultPadding = 0;\n private readonly baseMarginPercentage = 0.04;\n\n public constructor(private readonly wafermap: WaferMap) {}\n\n public updateContainerDimensions(): void {\n const canvasDimensions = {\n width: this.wafermap.canvasWidth,\n height: this.wafermap.canvasHeight\n };\n const canvasDiameter = Math.min(\n canvasDimensions.width,\n canvasDimensions.height\n );\n const canvasMargin = {\n top: (canvasDimensions.height - canvasDiameter) / 2,\n right: (canvasDimensions.width - canvasDiameter) / 2,\n bottom: (canvasDimensions.height - canvasDiameter) / 2,\n left: (canvasDimensions.width - canvasDiameter) / 2\n };\n const baseMargin = {\n top: canvasDiameter * this.baseMarginPercentage,\n right: canvasDiameter * this.baseMarginPercentage,\n bottom: canvasDiameter * this.baseMarginPercentage,\n left: canvasDiameter * this.baseMarginPercentage\n };\n this._margin = this.calculateMarginAddition(baseMargin, canvasMargin);\n this._containerDimensions = this.calculateContainerDimensions(\n canvasDimensions,\n this._margin\n );\n this.updateScales();\n }\n\n public updateScales(): void {\n const containerDiameter = Math.min(\n this._containerDimensions.width,\n this._containerDimensions.height\n );\n const gridDimensions = this.gridDimensionsValidAndDefined()\n ? this.calculateGridDimensionsFromBoundingBox()\n : this.calculateGridDimensionsFromDies();\n // this scale is used for positioning the dies on the canvas\n const originLocation = this.wafermap.originLocation;\n this._horizontalScale = this.createHorizontalScale(\n originLocation,\n gridDimensions,\n containerDiameter\n );\n // this scale is used for positioning the dies on the canvas\n this._verticalScale = this.createVerticalScale(\n originLocation,\n gridDimensions,\n containerDiameter\n );\n this._dieDimensions = {\n width: Math.abs(\n this._horizontalScale(0) - this._horizontalScale(1)\n ),\n height: Math.abs(this._verticalScale(0) - this._verticalScale(1))\n };\n }\n\n private gridDimensionsValidAndDefined(): boolean {\n return (\n !this.wafermap.validity.invalidGridDimensions\n && typeof this.wafermap.gridMinX === 'number'\n && typeof this.wafermap.gridMinY === 'number'\n && typeof this.wafermap.gridMaxX === 'number'\n && typeof this.wafermap.gridMinX === 'number'\n );\n }\n\n private calculateGridDimensionsFromBoundingBox(): GridDimensions {\n const gridDimensions = { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };\n if (\n typeof this.wafermap.gridMaxY === 'number'\n && typeof this.wafermap.gridMinY === 'number'\n && typeof this.wafermap.gridMaxX === 'number'\n && typeof this.wafermap.gridMinX === 'number'\n ) {\n gridDimensions.origin.x = this.wafermap.gridMinX;\n gridDimensions.origin.y = this.wafermap.gridMinY;\n gridDimensions.rows = this.wafermap.gridMaxY - this.wafermap.gridMinY + 1;\n gridDimensions.cols = this.wafermap.gridMaxX - this.wafermap.gridMinX + 1;\n }\n return gridDimensions;\n }\n\n private calculateGridDimensionsFromDies(): GridDimensions {\n if (this.wafermap.diesTable === undefined) {\n return { origin: { x: 0, y: 0 }, rows: 0, cols: 0 };\n }\n\n const colIndex = this.wafermap.diesTable\n .getChild('colIndex')!\n .toArray();\n const rowIndex = this.wafermap.diesTable\n .getChild('rowIndex')!\n .toArray();\n\n const minPoint = { x: colIndex[0]!, y: rowIndex[0]! };\n const maxPoint = { x: colIndex[0]!, y: rowIndex[0]! };\n\n // will replace iterating with arquero after fixing issues: https://github.com/uwdata/arquero/pull/346\n for (let i = 0; i < colIndex.length; i++) {\n if (colIndex[i]! < minPoint.x) {\n minPoint.x = colIndex[i]!;\n }\n if (colIndex[i]! > maxPoint.x) {\n maxPoint.x = colIndex[i]!;\n }\n if (rowIndex[i]! < minPoint.y) {\n minPoint.y = rowIndex[i]!;\n }\n if (rowIndex[i]! > maxPoint.y) {\n maxPoint.y = rowIndex[i]!;\n }\n }\n\n return {\n origin: minPoint,\n rows: maxPoint.y - minPoint.y + 1,\n cols: maxPoint.x - minPoint.x + 1\n };\n }\n\n private calculateContainerDimensions(\n canvasDimensions: Dimensions,\n margin: Margin\n ): Dimensions {\n return {\n width: canvasDimensions.width - margin.left - margin.right,\n height: canvasDimensions.height - margin.top - margin.bottom\n };\n }\n\n private createHorizontalScale(\n originLocation: WaferMapOriginLocation,\n grid: GridDimensions,\n containerWidth: number\n ): ScaleLinear<number, number> {\n const scale = scaleLinear<number, number>();\n if (\n originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.topLeft\n ) {\n return scale\n .domain([grid.origin.x, grid.origin.x + grid.cols])\n .range([0, containerWidth]);\n }\n return scale\n .domain([grid.origin.x - 1, grid.origin.x + grid.cols - 1])\n .range([containerWidth, 0]);\n }\n\n private createVerticalScale(\n originLocation: WaferMapOriginLocation,\n grid: GridDimensions,\n containerHeight: number\n ): ScaleLinear<number, number> {\n const scale = scaleLinear<number, number>();\n // html canvas has top-left origin https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#the_grid\n // we need to flip the vertical scale\n if (\n originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.bottomRight\n ) {\n return scale\n .domain([grid.origin.y - 1, grid.origin.y + grid.rows - 1])\n .range([containerHeight, 0]);\n }\n return scale\n .domain([grid.origin.y, grid.origin.y + grid.rows])\n .range([0, containerHeight]);\n }\n\n private calculateMarginAddition(\n baseMargin: Margin,\n addedMargin: Margin\n ): Margin {\n return {\n top: baseMargin.top + addedMargin.top,\n right: baseMargin.right + addedMargin.right,\n bottom: baseMargin.bottom + addedMargin.bottom,\n left: baseMargin.left + addedMargin.left\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ScaleLinear } from 'd3-scale';
|
|
2
|
+
import type { WaferMap } from '../..';
|
|
3
|
+
import type { Dimensions, Margin, DieRenderInfo, WaferMapDie, PointCoordinates } from '../../types';
|
|
4
|
+
/**
|
|
5
|
+
* Data Manager uses Computations and Prerendering modules in order and exposes the results
|
|
6
|
+
*/
|
|
7
|
+
export declare class DataManager {
|
|
8
|
+
private readonly wafermap;
|
|
9
|
+
get containerDimensions(): Dimensions;
|
|
10
|
+
get dieDimensions(): Dimensions;
|
|
11
|
+
get margin(): Margin;
|
|
12
|
+
get horizontalScale(): ScaleLinear<number, number>;
|
|
13
|
+
get verticalScale(): ScaleLinear<number, number>;
|
|
14
|
+
get labelsFontSize(): number;
|
|
15
|
+
get diesRenderInfo(): DieRenderInfo[];
|
|
16
|
+
get data(): Map<string, WaferMapDie>;
|
|
17
|
+
private readonly computations;
|
|
18
|
+
private readonly prerendering;
|
|
19
|
+
private dataMap;
|
|
20
|
+
constructor(wafermap: WaferMap);
|
|
21
|
+
updateContainerDimensions(): void;
|
|
22
|
+
updateScales(): void;
|
|
23
|
+
updateLabelsFontSize(): void;
|
|
24
|
+
updateDiesRenderInfo(): void;
|
|
25
|
+
getWaferMapDie(point: PointCoordinates): WaferMapDie | undefined;
|
|
26
|
+
private updateDataMap;
|
|
27
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Computations } from './computations';
|
|
2
|
+
import { Prerendering } from '../prerendering';
|
|
3
|
+
/**
|
|
4
|
+
* Data Manager uses Computations and Prerendering modules in order and exposes the results
|
|
5
|
+
*/
|
|
6
|
+
export class DataManager {
|
|
7
|
+
get containerDimensions() {
|
|
8
|
+
return this.computations.containerDimensions;
|
|
9
|
+
}
|
|
10
|
+
get dieDimensions() {
|
|
11
|
+
return this.computations.dieDimensions;
|
|
12
|
+
}
|
|
13
|
+
get margin() {
|
|
14
|
+
return this.computations.margin;
|
|
15
|
+
}
|
|
16
|
+
get horizontalScale() {
|
|
17
|
+
return this.computations.horizontalScale;
|
|
18
|
+
}
|
|
19
|
+
get verticalScale() {
|
|
20
|
+
return this.computations.verticalScale;
|
|
21
|
+
}
|
|
22
|
+
get labelsFontSize() {
|
|
23
|
+
return this.prerendering.labelsFontSize;
|
|
24
|
+
}
|
|
25
|
+
get diesRenderInfo() {
|
|
26
|
+
return this.prerendering.diesRenderInfo;
|
|
27
|
+
}
|
|
28
|
+
get data() {
|
|
29
|
+
return this.dataMap;
|
|
30
|
+
}
|
|
31
|
+
constructor(wafermap) {
|
|
32
|
+
this.wafermap = wafermap;
|
|
33
|
+
this.computations = new Computations(wafermap);
|
|
34
|
+
this.prerendering = new Prerendering(wafermap);
|
|
35
|
+
}
|
|
36
|
+
updateContainerDimensions() {
|
|
37
|
+
this.computations.updateContainerDimensions();
|
|
38
|
+
this.updateDataMap();
|
|
39
|
+
this.updateLabelsFontSize();
|
|
40
|
+
}
|
|
41
|
+
updateScales() {
|
|
42
|
+
this.computations.updateScales();
|
|
43
|
+
this.updateDataMap();
|
|
44
|
+
this.updateLabelsFontSize();
|
|
45
|
+
}
|
|
46
|
+
updateLabelsFontSize() {
|
|
47
|
+
this.prerendering.updateLabelsFontSize();
|
|
48
|
+
}
|
|
49
|
+
updateDiesRenderInfo() {
|
|
50
|
+
this.prerendering.updateDiesRenderInfo();
|
|
51
|
+
}
|
|
52
|
+
getWaferMapDie(point) {
|
|
53
|
+
return this.dataMap.get(`${point.x}_${point.y}`);
|
|
54
|
+
}
|
|
55
|
+
updateDataMap() {
|
|
56
|
+
this.dataMap = new Map(this.wafermap.dies.map(die => [`${die.x}_${die.y}`, die]));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-manager.js","sourceRoot":"","sources":["../../../../../src/wafer-map/modules/experimental/data-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAU/C;;GAEG;AACH,MAAM,OAAO,WAAW;IACpB,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC;IACjD,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;IAC3C,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;IAC7C,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;IAC3C,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAMD,YAAoC,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;QAClD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAEM,yBAAyB;QAC5B,IAAI,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEM,YAAY;QACf,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChC,CAAC;IAEM,oBAAoB;QACvB,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAC7C,CAAC;IAEM,oBAAoB;QACvB,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAC7C,CAAC;IAEM,cAAc,CAAC,KAAuB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAC5D,CAAC;IACN,CAAC;CACJ","sourcesContent":["import type { ScaleLinear } from 'd3-scale';\nimport { Computations } from './computations';\nimport { Prerendering } from '../prerendering';\nimport type { WaferMap } from '../..';\nimport type {\n Dimensions,\n Margin,\n DieRenderInfo,\n WaferMapDie,\n PointCoordinates\n} from '../../types';\n\n/**\n * Data Manager uses Computations and Prerendering modules in order and exposes the results\n */\nexport class DataManager {\n public get containerDimensions(): Dimensions {\n return this.computations.containerDimensions;\n }\n\n public get dieDimensions(): Dimensions {\n return this.computations.dieDimensions;\n }\n\n public get margin(): Margin {\n return this.computations.margin;\n }\n\n public get horizontalScale(): ScaleLinear<number, number> {\n return this.computations.horizontalScale;\n }\n\n public get verticalScale(): ScaleLinear<number, number> {\n return this.computations.verticalScale;\n }\n\n public get labelsFontSize(): number {\n return this.prerendering.labelsFontSize;\n }\n\n public get diesRenderInfo(): DieRenderInfo[] {\n return this.prerendering.diesRenderInfo;\n }\n\n public get data(): Map<string, WaferMapDie> {\n return this.dataMap;\n }\n\n private readonly computations: Computations;\n private readonly prerendering: Prerendering;\n private dataMap!: Map<string, WaferMapDie>;\n\n public constructor(private readonly wafermap: WaferMap) {\n this.computations = new Computations(wafermap);\n this.prerendering = new Prerendering(wafermap);\n }\n\n public updateContainerDimensions(): void {\n this.computations.updateContainerDimensions();\n this.updateDataMap();\n this.updateLabelsFontSize();\n }\n\n public updateScales(): void {\n this.computations.updateScales();\n this.updateDataMap();\n this.updateLabelsFontSize();\n }\n\n public updateLabelsFontSize(): void {\n this.prerendering.updateLabelsFontSize();\n }\n\n public updateDiesRenderInfo(): void {\n this.prerendering.updateDiesRenderInfo();\n }\n\n public getWaferMapDie(point: PointCoordinates): WaferMapDie | undefined {\n return this.dataMap.get(`${point.x}_${point.y}`);\n }\n\n private updateDataMap(): void {\n this.dataMap = new Map(\n this.wafermap.dies.map(die => [`${die.x}_${die.y}`, die])\n );\n }\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WaferMapOriginLocation } from '../../types';
|
|
2
|
+
import { DataManager } from './data-manager';
|
|
2
3
|
/**
|
|
3
4
|
* HoverHandler deals with user interactions and events like hovering
|
|
4
5
|
*/
|
|
@@ -18,11 +19,14 @@ export class HoverHandler {
|
|
|
18
19
|
event.offsetX,
|
|
19
20
|
event.offsetY
|
|
20
21
|
]);
|
|
21
|
-
// does not work yet until data manager will parse diesTable
|
|
22
22
|
const dieCoordinates = this.calculateDieCoordinates({
|
|
23
23
|
x: invertedPoint[0],
|
|
24
24
|
y: invertedPoint[1]
|
|
25
25
|
});
|
|
26
|
+
if (dieCoordinates === undefined) {
|
|
27
|
+
this.wafermap.hoverDie = undefined;
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
26
30
|
const colIndex = this.wafermap
|
|
27
31
|
.diesTable.getChild('colIndex')
|
|
28
32
|
.toArray();
|
|
@@ -62,19 +66,23 @@ export class HoverHandler {
|
|
|
62
66
|
this.wafermap.removeEventListener('mouseout', this.onMouseOut);
|
|
63
67
|
}
|
|
64
68
|
calculateDieCoordinates(mousePosition) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
69
|
+
if (this.wafermap.isExperimentalRenderer()
|
|
70
|
+
&& this.wafermap.dataManager instanceof DataManager) {
|
|
71
|
+
const originLocation = this.wafermap.originLocation;
|
|
72
|
+
const xRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft
|
|
73
|
+
|| originLocation === WaferMapOriginLocation.topLeft
|
|
74
|
+
? Math.floor
|
|
75
|
+
: Math.ceil;
|
|
76
|
+
const yRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft
|
|
77
|
+
|| originLocation === WaferMapOriginLocation.bottomRight
|
|
78
|
+
? Math.ceil
|
|
79
|
+
: Math.floor;
|
|
80
|
+
// go to x and y scale to get the x,y values of the die.
|
|
81
|
+
const x = xRoundFunction(this.wafermap.dataManager.horizontalScale.invert(mousePosition.x - this.wafermap.dataManager.margin.left));
|
|
82
|
+
const y = yRoundFunction(this.wafermap.dataManager.verticalScale.invert(mousePosition.y - this.wafermap.dataManager.margin.top));
|
|
83
|
+
return { x, y };
|
|
84
|
+
}
|
|
85
|
+
return undefined;
|
|
78
86
|
}
|
|
79
87
|
}
|
|
80
88
|
//# sourceMappingURL=hover-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-handler.js","sourceRoot":"","sources":["../../../../../src/wafer-map/modules/experimental/hover-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"hover-handler.js","sourceRoot":"","sources":["../../../../../src/wafer-map/modules/experimental/hover-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import type { WaferMap } from '../..';\nimport { PointCoordinates, WaferMapOriginLocation } from '../../types';\nimport { DataManager } from './data-manager';\n\n/**\n * HoverHandler deals with user interactions and events like hovering\n */\nexport class HoverHandler {\n public constructor(private readonly wafermap: WaferMap) {}\n\n /**\n * @internal\n */\n public connect(): void {\n this.wafermap.addEventListener('mousemove', this.onMouseMove);\n this.wafermap.addEventListener('mouseout', this.onMouseOut);\n }\n\n /**\n * @internal\n */\n public disconnect(): void {\n this.wafermap.removeEventListener('mousemove', this.onMouseMove);\n this.wafermap.removeEventListener('mouseout', this.onMouseOut);\n }\n\n /**\n * @internal\n * keep public for testing until data manager refactor\n */\n public readonly onMouseMove = (event: MouseEvent): void => {\n if (!this.wafermap.isExperimentalRenderer()) {\n return;\n }\n // get original mouse position in case we are in zoom.\n const invertedPoint = this.wafermap.transform.invert([\n event.offsetX,\n event.offsetY\n ]);\n const dieCoordinates = this.calculateDieCoordinates({\n x: invertedPoint[0],\n y: invertedPoint[1]\n });\n if (dieCoordinates === undefined) {\n this.wafermap.hoverDie = undefined;\n return;\n }\n const colIndex = this.wafermap\n .diesTable!.getChild('colIndex')!\n .toArray();\n const rowIndex = this.wafermap\n .diesTable!.getChild('rowIndex')!\n .toArray();\n\n // will replace iterating with arquero filtering after fixing errors\n for (let i = 0; i < colIndex.length; i++) {\n if (\n colIndex[i] === dieCoordinates.x\n && rowIndex[i] === dieCoordinates.y\n ) {\n this.wafermap.hoverDie = {\n index: i,\n x: dieCoordinates.x,\n y: dieCoordinates.y\n };\n return;\n }\n }\n this.wafermap.hoverDie = undefined;\n };\n\n private readonly onMouseOut = (_event: MouseEvent): void => {\n this.wafermap.hoverDie = undefined;\n };\n\n private calculateDieCoordinates(\n mousePosition: PointCoordinates\n ): PointCoordinates | undefined {\n if (\n this.wafermap.isExperimentalRenderer()\n && this.wafermap.dataManager instanceof DataManager\n ) {\n const originLocation = this.wafermap.originLocation;\n const xRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.topLeft\n ? Math.floor\n : Math.ceil;\n const yRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft\n || originLocation === WaferMapOriginLocation.bottomRight\n ? Math.ceil\n : Math.floor;\n // go to x and y scale to get the x,y values of the die.\n const x = xRoundFunction(\n this.wafermap.dataManager.horizontalScale.invert(\n mousePosition.x - this.wafermap.dataManager.margin.left\n )\n );\n const y = yRoundFunction(\n this.wafermap.dataManager.verticalScale.invert(\n mousePosition.y - this.wafermap.dataManager.margin.top\n )\n );\n return { x, y };\n }\n return undefined;\n }\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { WaferMapOriginLocation } from '../types';
|
|
2
|
+
import { DataManager } from './data-manager';
|
|
2
3
|
/**
|
|
3
4
|
* HoverHandler deals with user interactions and events like hovering
|
|
4
5
|
*/
|
|
@@ -26,6 +27,10 @@ export class HoverHandler {
|
|
|
26
27
|
x: invertedPoint[0],
|
|
27
28
|
y: invertedPoint[1]
|
|
28
29
|
});
|
|
30
|
+
if (dieCoordinates === undefined) {
|
|
31
|
+
this.wafermap.hoverDie = undefined;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
29
34
|
this.wafermap.hoverDie = this.wafermap.dataManager.getWaferMapDie(dieCoordinates);
|
|
30
35
|
};
|
|
31
36
|
this.onMouseOut = (_event) => {
|
|
@@ -47,19 +52,23 @@ export class HoverHandler {
|
|
|
47
52
|
this.wafermap.removeEventListener('mouseout', this.onMouseOut);
|
|
48
53
|
}
|
|
49
54
|
calculateDieCoordinates(mousePosition) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
if (!this.wafermap.isExperimentalRenderer()
|
|
56
|
+
&& this.wafermap.dataManager instanceof DataManager) {
|
|
57
|
+
const originLocation = this.wafermap.originLocation;
|
|
58
|
+
const xRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft
|
|
59
|
+
|| originLocation === WaferMapOriginLocation.topLeft
|
|
60
|
+
? Math.floor
|
|
61
|
+
: Math.ceil;
|
|
62
|
+
const yRoundFunction = originLocation === WaferMapOriginLocation.bottomLeft
|
|
63
|
+
|| originLocation === WaferMapOriginLocation.bottomRight
|
|
64
|
+
? Math.floor
|
|
65
|
+
: Math.ceil;
|
|
66
|
+
// go to x and y scale to get the x,y values of the die.
|
|
67
|
+
const x = xRoundFunction(this.wafermap.dataManager.invertedHorizontalScale(mousePosition.x - this.wafermap.dataManager.margin.left));
|
|
68
|
+
const y = yRoundFunction(this.wafermap.dataManager.invertedVerticalScale(mousePosition.y - this.wafermap.dataManager.margin.top));
|
|
69
|
+
return { x, y };
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
63
72
|
}
|
|
64
73
|
hoversOverDie(mousePosition) {
|
|
65
74
|
const rgba = this.wafermap.canvasContext.getImageData(mousePosition.x, mousePosition.y, 1, 1).data;
|