* use vega-morphcharts

* update tests

* use SandDance.VegaMorphCharts

* use VegaMorphcharts

* use VegaMorphcharts in app

* use VegaMorphCharts

* remove unused resource

* rename to test-es6

* add restore-dist command

* remove unused deps

* regen after dep removal

* fix slide componentref

* handle nullref

* handle single bin

* do not ignore docs/dist

* archive v3 app

* deploy to v4

* scaffolding for tests

* change namespace

* deploy v4

* add vega-morphcharts umd tests

* fix restore-dist cmd

* link to powerbi

* version bump to 4

* clean morphcharts & specs

* add umd typings

* version bump to 4

* use chart-types & sanddance-specs

* version bump

* version bump

* regen

* version bump

* package before deploy

* remove package command

* build umd

* use getColumnsFromData from sanddance-specs

* eslint

* restore predocs

* fix version

* link to v3 extensions

* specify version

* add version to output

* regen w version

* eslint

* update fluentui & react

* regen react deps

* use react@17

* use selectedKey for ChoiceGroups
This commit is contained in:
Dan Marshall 2022-07-18 16:10:58 -07:00 коммит произвёл GitHub
Родитель 5143bd67f6
Коммит 973e10ce3a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
187 изменённых файлов: 453744 добавлений и 7268 удалений

1
.gitignore поставляемый
Просмотреть файл

@ -79,6 +79,7 @@ _site
.DS_Store
dist
!docs/dist
__pycache__
python/jupyter-widget/lib

Двоичные данные
docs/dist/azdata/v3/azdata-sanddance-3.3.0.vsix поставляемый Normal file

Двоичный файл не отображается.

Двоичные данные
docs/dist/powerbi/v3/SandDance201929976D117A654D0BAB8E96507442D80B.3.2.0.pbiviz поставляемый Normal file

Двоичный файл не отображается.

Двоичные данные
docs/dist/powerbi/v4/SandDance2019beta4.4.0.0.pbiviz поставляемый Normal file

Двоичный файл не отображается.

857
docs/dist/sanddance-explorer/v4/sanddance-explorer.css поставляемый Normal file
Просмотреть файл

@ -0,0 +1,857 @@
.sanddance-root {
height: 100%;
position: relative;
width: 100%;
}
.sanddance-gl {
overflow: hidden;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.sanddance-gl.show-center {
background: linear-gradient(to right, transparent 49.9%, rgba(255, 0, 0, 0.7), transparent 50.1%), linear-gradient(to bottom, transparent 49.9%, rgba(255, 0, 0, 0.7), transparent 50.1%);
}
.sanddance-gl canvas {
outline: none;
}
.sanddance-panel {
position: absolute;
top: 1em;
right: 1em;
bottom: 1em;
background: #fff;
box-shadow: 8px 8px 12px -6px #ccc;
border: 1px solid #ccc;
overflow-y: scroll;
padding-bottom: 1em;
padding-left: 1em;
}
.sanddance-legend table {
border-collapse: collapse;
}
.sanddance-legend th {
word-break: break-word;
max-width: 11em;
}
.sanddance-legend .legend-row {
cursor: pointer;
}
.sanddance-legend .legend-row td {
padding: 2px;
}
.sanddance-legend .legend-row:hover {
background-color: #efefef;
}
.sanddance-legend .symbol div {
border-style: outset;
border-width: 1.5px;
}
.sanddance-legend .label {
max-width: 9em;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.sanddance-details {
font-size: smaller;
}
.sanddance-details-scroll {
padding-bottom: 1em;
}
.sanddance-tooltip {
z-index: 1;
}
.sanddance-tooltip table {
background: #333;
color: #fff;
font-size: smaller;
margin: 1em;
min-width: 16em;
padding: 6px;
position: absolute;
}
.sanddance-tooltip td {
max-width: 16em;
overflow: hidden;
text-align: left;
text-overflow: ellipsis;
vertical-align: top;
width: 75%;
}
.sanddance-tooltip td:first-child {
width: 25%;
}
/*# sourceMappingURL=sanddance.css.map */
/*# sourceMappingURL=sanddance-react.css.map */
.sanddance-scheme.disabled {
filter: grayscale(95%);
}
.sanddance-scheme.option {
display: grid;
grid-template-columns: 10em auto;
width: 100%;
}
.sanddance-scheme.title {
justify-content: flex-start;
}
.sanddance-scheme span {
align-self: center;
}
.sanddance-scheme svg, .sanddance-scheme .swatch {
align-self: center;
border: thin solid #777;
height: 24px;
}
.sanddance-scheme svg {
width: 100%;
}
.sanddance-scheme .swatch div {
display: inline-block;
width: 10px;
height: 24px;
}
.sanddance-explorer-topbar {
background-color: #fff;
border-bottom: 1px solid #ccc;
display: grid;
grid-template-columns: 300px auto;
height: 36px;
}
.sanddance-explorer-topbar .logo {
color: rgb(0, 120, 212);
display: grid;
grid-template-columns: 50px auto;
padding: 6px 0;
}
.sanddance-explorer-topbar .logo svg {
fill: rgb(0, 120, 212);
height: 24px;
margin: 0 auto;
width: 24px;
}
.sanddance-explorer-topbar .logo a {
color: inherit;
font-size: 14px;
font-weight: bold;
line-height: 24px;
text-decoration: none;
}
.sanddance-explorer-commandbar {
position: relative;
}
.sanddance-explorer-commandbar > div {
left: 0;
position: absolute;
right: 0;
}
.sanddance-explorer-commandbar .ms-CommandBar {
height: 36px;
}
.dark-theme .sanddance-explorer-topbar {
background-color: #000;
}
.dark-theme .sanddance-explorer-topbar .logo {
color: #00b4f0;
}
.sanddance-group {
border-top: 1px solid #ccc;
padding-bottom: 1.5em;
position: relative;
}
.sanddance-group .group-head {
display: grid;
grid-template-columns: auto auto;
line-height: 16px;
margin: 1em 0;
}
.sanddance-group .group-head label {
font-size: 11px;
font-weight: 600;
letter-spacing: 3px;
opacity: 0.8;
text-transform: uppercase;
}
.sanddance-group .group-head .count {
color: #333;
font-size: 12px;
text-align: right;
}
.sanddance-group .group-icon {
position: absolute;
top: -1px;
right: 0;
}
.sanddance-group:first-child {
border-top: none;
}
.sanddance-group:first-child .group-head {
margin-top: 0;
}
.sanddance-group:last-child {
padding-bottom: 0;
}
.sanddance-sidebar {
background-color: #f9f9f9;
display: grid;
overflow: hidden;
position: relative;
transition: width 350ms cubic-bezier(0.4, 0, 0.2, 1);
width: 300px;
}
.sanddance-sidebar:not(.pinned) {
bottom: 0;
position: absolute;
top: 0;
}
.sanddance-sidebar .sidebar-content {
background-color: inherit;
display: grid;
grid-template-areas: "stats stats" "tabs bar";
grid-template-columns: 50px auto;
grid-template-rows: 0fr auto;
height: 100%;
overflow: hidden;
position: absolute;
z-index: 1;
}
.sanddance-sidebar .vbuttons {
background-color: rgba(0, 0, 0, 0.1);
display: grid;
grid-area: tabs;
grid-template-rows: auto 0fr;
position: relative;
}
.sanddance-sidebar .vbutton {
align-self: center;
display: grid;
height: 60px;
}
.sanddance-sidebar .vbutton.selected {
background-color: #f9f9f9;
}
.sanddance-sidebar .vbutton button {
height: 100%;
width: 100%;
}
.sanddance-sidebar .vbutton button .ms-Button-icon {
font-size: 24px;
}
.sanddance-sidebar .sidebar-dialogs .vbutton {
height: 16%;
max-height: 60px;
min-height: 32px;
}
.sanddance-sidebar .scrollable-container {
width: 250px;
}
.sanddance-sidebar .sidetab {
grid-area: bar;
padding: 12px;
}
.sanddance-sidebar.closed {
width: 50px;
}
.sanddance-sidebar.calculator .calculating {
background: rgba(249, 249, 249, 0.5);
height: 100%;
position: absolute;
top: 0;
width: 100%;
}
.sanddance-sidebar.calculator .ms-Spinner {
margin-top: -16px;
position: relative;
top: 50%;
}
.dark-theme .sanddance-sidebar {
background-color: #272727;
color: #fff;
}
.dark-theme .sanddance-sidebar .vbuttons {
background-color: rgba(0, 0, 0, 0.4);
}
.dark-theme .sanddance-sidebar .vbutton.selected {
background-color: #272727;
}
.dark-theme .sanddance-sidebar.calculator .calculating {
background: rgba(39, 39, 39, 0.5);
}
.sanddance-chart-type .ms-ChoiceFieldGroup-flexContainer {
display: grid;
grid-template-columns: repeat(2, 50%);
grid-auto-flow: column;
grid-template-rows: repeat(4, auto);
}
.sanddance-datascope {
grid-area: stats;
background-color: rgba(0, 0, 0, 0.05);
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
min-height: 5em;
}
.sanddance-datascope.extended > div {
margin: 12px;
width: 276px;
}
.sanddance-datascope label {
display: block;
font-size: 10px;
text-transform: uppercase;
}
.sanddance-datascope.compact {
align-self: center;
cursor: pointer;
display: grid;
text-align: center;
width: 50px;
}
.sanddance-datascope.compact > div {
align-self: center;
}
.sanddance-datascope .datascope-button {
background-color: #fff;
border: 1px solid rgba(0, 0, 0, 0.2);
box-sizing: border-box;
height: 36px;
min-width: unset;
width: 33.333%;
}
.sanddance-datascope .datascope-button:hover {
background-color: rgb(0, 120, 212);
color: #fff;
}
.sanddance-datascope .datascope-button label {
cursor: inherit;
}
.sanddance-datascope.active .datascope-button.selected {
border-color: rgb(0, 120, 212);
}
.dark-theme .sanddance-datascope {
background-color: rgba(0, 0, 0, 0.3);
border-bottom-color: rgba(255, 255, 255, 0.1);
}
.dark-theme .sanddance-datascope .datascope-button {
background-color: #000;
border-color: rgba(255, 255, 255, 0.2);
color: #fff;
}
.dark-theme .sanddance-datascope .datascope-button:hover {
background-color: rgb(0, 120, 212);
color: #fff;
}
.sanddance-dataItem {
background-color: #fff;
border: 1px solid #ddd;
}
.sanddance-dataItem .name-value {
border-top: 1px solid #ddd;
cursor: pointer;
padding: 4px;
position: relative;
word-break: break-all;
}
.sanddance-dataItem .name-value:hover {
background-color: rgb(0, 120, 212);
color: #fff;
}
.sanddance-dataItem .name-value:first-child {
border-top: none;
}
.sanddance-dataItem .column-name {
font-weight: 500;
}
.sanddance-dataItem .column-value {
max-height: 20em;
overflow: auto;
}
.sanddance-dataItem .bing-search {
text-align: right;
}
.dark-theme .sanddance-dataItem {
background-color: #000;
border-color: #222;
}
.dark-theme .sanddance-dataItem .name-value {
border-top-color: #222;
}
.dark-theme .sanddance-dataItem a {
color: #00b4f0;
}
.sanddance-dataIndex .index {
display: grid;
grid-template-columns: 32px auto 32px;
line-height: 32px;
margin: 0px -8px 6px -8px;
text-align: center;
}
.sanddance-dataIndex .item-filtered {
background-color: rgba(0, 0, 0, 0.1);
font-size: 10px;
padding: 2px 4px;
text-transform: uppercase;
}
.sanddance-dataIndex .ms-Dropdown-container {
margin-bottom: 0.5em;
}
.scrollable-container {
display: grid;
min-height: 200px;
position: relative;
}
.scrollable {
bottom: 0;
left: 0;
position: absolute;
right: 0;
overflow-y: auto;
top: 0;
}
.sanddance-search .sanddance-search-group {
border: 1px solid rgba(0, 0, 0, 0.2);
}
.sanddance-search .sanddance-search-group {
background: #fff;
margin-top: 1em;
padding: 4px;
}
.sanddance-search .sanddance-search-group:first-child {
margin-top: 0;
}
.sanddance-search .sanddance-search-expression {
background-color: rgba(0, 0, 0, 0.1);
margin: 12px 4px;
padding: 4px 8px 8px 8px;
}
.sanddance-search .search-action {
width: 100%;
}
.sanddance-search .search-bottom-action {
margin-top: 1em;
}
.sanddance-search .search-field {
margin-top: 4px;
}
.dark-theme .sanddance-search .sanddance-search-group {
border-color: rgba(255, 255, 255, 0.2);
background: #000;
}
.dark-theme .sanddance-search .sanddance-search-expression {
background-color: rgba(255, 255, 255, 0.2);
}
.sanddance-snapshots .ms-Button {
margin-bottom: 0.5em;
}
.sanddance-snapshots .snapshot {
border: 1px solid rgba(0, 0, 0, 0.2);
cursor: pointer;
margin-bottom: 0.5em;
padding: 5px;
}
.sanddance-snapshots .snapshot.selected {
border-color: rgba(0, 0, 0, 0.6);
border-width: 2px;
padding: 4px;
}
.sanddance-snapshots .snapshot:hover {
background-color: rgba(0, 0, 0, 0.1);
}
.sanddance-snapshots .snapshot:first-child {
margin-top: 0.5em;
}
.sanddance-snapshots .title {
font-weight: 500;
word-break: break-word;
}
.sanddance-snapshots .description {
font-weight: 100;
word-break: break-word;
}
.sanddance-snapshots .thumbnail {
display: grid;
height: 160px;
margin-top: 0.5em;
}
.sanddance-snapshots img {
height: 100%;
object-fit: contain;
width: 100%;
}
.sanddance-snapshots .actions {
display: grid;
grid-auto-flow: column;
}
.sanddance-snapshots .actions a, .sanddance-snapshots .actions span {
align-self: center;
text-align: center;
}
.sanddance-snapshots .actions button {
width: 100%;
}
.sanddance-snapshot-dialog .thumbnail {
border: 1px solid rgba(0, 0, 0, 0.2);
display: grid;
height: 300px;
margin-top: 1em;
}
.sanddance-snapshot-dialog img {
height: 100%;
object-fit: contain;
width: 100%;
}
.dark-theme .sanddance-snapshots .snapshot {
background-color: rgba(0, 0, 0, 0.6);
border-color: rgba(255, 255, 255, 0.2);
}
.dark-theme .sanddance-snapshots .snapshot.selected {
border-color: rgba(255, 255, 255, 0.6);
}
.dark-theme .sanddance-snapshots .snapshot:hover {
background-color: rgb(0, 0, 0);
}
.dark-theme .sanddance-snapshots .actions a {
color: #fff;
}
.dark-theme.sanddance-snapshot-dialog .thumbnail {
border-color: rgba(255, 255, 255, 0.2);
}
.sanddance-history ol {
padding-left: 20px;
}
.sanddance-history li {
border: 1px solid transparent;
cursor: pointer;
}
.sanddance-history li.selected {
font-weight: bold;
}
.sanddance-history-button {
background: none;
border: 0;
font-size: inherit;
font-style: inherit;
font-weight: inherit;
height: unset;
padding: 3px 4px;
text-align: left;
width: 100%;
}
.sanddance-history-button .ms-Button-label {
display: inline;
font-weight: inherit;
margin: 0;
}
.sanddance-note {
background-color: #fffacd;
border: 1px solid #333;
box-shadow: 8px 8px 12px -6px #ccc;
color: #333;
margin: 1em;
padding: 20px;
position: absolute;
width: 15em;
word-break: break-word;
}
.sanddance-note .cancel {
position: absolute;
right: -1px;
top: -1px;
}
.sanddance-note .cancel i {
color: #333;
}
.sanddance-columnMap {
position: relative;
}
.sanddance-columnMap .ms-Dropdown-container {
margin-top: 10px;
}
.sanddance-columnMap .column-options {
bottom: 3px;
position: absolute;
right: 0;
}
.sanddance-columnMap-absolute {
margin-bottom: 1em;
margin-left: -4em;
margin-right: 1em;
margin-top: -1em;
}
.sanddance-columnMap-absolute .ms-Dropdown-container {
margin-top: 0;
}
.sanddance-tooltip {
z-index: 2;
}
.sanddance-chart-button {
display: block;
margin-top: 10px;
}
.sanddance-dialog ul {
margin: 0;
}
.sanddance-dialog section {
margin-top: 1em;
}
.sanddance-dialog section:first-child {
margin-top: 0;
}
.sanddance-dialog .tip {
font-style: italic;
}
.sanddance-explorer {
display: grid;
font-family: "Segoe UI", sans-serif;
font-size: 13px;
grid-template-rows: 0fr auto;
}
.sanddance-explorer.dark-theme {
background-color: black;
}
.sanddance-explorer.dark-theme canvas {
background-color: black;
}
.sanddance-main {
display: grid;
position: relative;
transition: grid-template-columns 350ms cubic-bezier(0.4, 0, 0.2, 1);
}
.sanddance-main .loading {
grid-row-end: span 2;
position: relative;
}
.sanddance-main .loading .ms-Spinner {
position: absolute;
top: 50%;
width: 100%;
}
.sanddance-main .sanddance-view {
display: grid;
position: relative;
margin-left: 50px;
}
.sanddance-main .sanddance-layout-unpinned, .sanddance-main .sanddance-layout-pinned {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.sanddance-main.hide-legend .sanddance-layout-unpinned, .sanddance-main.hide-legend .sanddance-layout-pinned {
right: 0;
}
.sanddance-main .sanddance-layout-pinned {
left: 300px;
}
.sanddance-main .sanddance-ReactViewer {
overflow: hidden;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.sanddance-main.hide-legend .sanddance-ReactViewer {
left: 0;
}
.sanddance-main.show-center .sanddance-layout-unpinned, .sanddance-main.show-center .sanddance-layout-pinned {
background: linear-gradient(to right, transparent 49%, rgba(255, 0, 255, 0.2), transparent 51%);
background-color: rgba(0, 255, 255, 0.1);
}
.sanddance-main.pinned {
grid-template-columns: 300px auto;
grid-template-areas: "side main";
}
.sanddance-main.pinned .sanddance-view {
grid-area: main;
margin-left: 0;
}
.sanddance-main.pinned .loading {
grid-area: main;
grid-row-end: unset;
}
.sanddance-main.pinned .sanddance-slidePanel {
grid-area: side;
}
.sanddance-main.pinned.closed {
grid-template-columns: 0 auto;
}
.sanddance-main.pinned.closed .sanddance-view {
margin-left: 50px;
}
.sanddance-main span.ms-layer {
display: none;
}
.sanddance-advanced-renderer {
height: 36px;
position: absolute;
right: 0;
top: 0;
width: 40px;
}
.sanddance-renderer-dialog ul {
list-style-type: none;
padding-left: 2em;
}
.sanddance-background-image-dialog {
min-width: 32em;
}
.sanddance-background-image-dialog .thumbnail {
border-bottom: 1px solid #ccc;
display: grid;
grid-template-columns: auto auto;
padding-bottom: 1em;
}
.sanddance-background-image-dialog .thumbnail > * {
align-self: center;
}
.sanddance-background-image-dialog .thumbnail img {
margin-right: 1em;
max-height: 160px;
max-width: 16em;
object-fit: contain;
}
.sanddance-background-image-dialog .axis-bounds {
border-bottom: 1px solid #ccc;
padding-bottom: 1em;
}
.sanddance-background-image-dialog .axis-bound-fields {
display: grid;
column-gap: 1em;
grid-template-columns: auto auto;
margin-bottom: 1em;
}
#sanddance-vega-spec {
border: 1px inset;
max-height: 20em;
overflow: scroll;
}
.sanddance-panel {
top: 5em;
bottom: unset;
overflow-y: unset;
padding-right: 1em;
padding-top: 32px;
}
.sanddance-panel h4,
.sanddance-panel .sanddance-vegaControls,
.sanddance-panel .sanddance-unitControls {
display: none;
}
.sanddance-main.hide-legend .sanddance-panel {
display: none;
}
.sanddance-panel-tools {
position: absolute;
top: 0;
right: 0;
}
.sanddance-legend {
min-width: 54px;
}
.sanddance-explanation {
font-size: smaller;
font-style: italic;
margin-bottom: 1em;
}
.sanddance-explanation .fieldname,
.sanddance-explanation .fieldtype {
font-style: italic;
}
.sanddance-signal {
margin-top: 1em;
}
.sanddance-legend th {
color: #005a9e;
cursor: pointer;
}
.sanddance-legend th:hover {
background-color: rgba(43, 136, 216, 0.3333333333);
}
.sanddance-legend .legend-row:hover {
background-color: rgb(0, 120, 212);
color: #fff;
}
.sanddance-dataExporter {
margin-top: 1em;
}
.sanddance-form-separate {
margin-top: 1em;
}
.dark-theme .sanddance-dialog a {
color: #00b4f0;
}
.dark-theme .sanddance-panel {
background-color: #000;
color: #fff;
}
.dark-theme .sanddance-legend th {
color: #3ac5f3;
}
.dark-theme .sanddance-legend th:hover {
color: #009ed3;
}
/*# sourceMappingURL=sanddance-explorer.css.map */

41079
docs/dist/sanddance-explorer/v4/sanddance-explorer.js поставляемый Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

94
docs/dist/sanddance/v4/sanddance.css поставляемый Normal file
Просмотреть файл

@ -0,0 +1,94 @@
.sanddance-root {
height: 100%;
position: relative;
width: 100%;
}
.sanddance-gl {
overflow: hidden;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.sanddance-gl.show-center {
background: linear-gradient(to right, transparent 49.9%, rgba(255, 0, 0, 0.7), transparent 50.1%), linear-gradient(to bottom, transparent 49.9%, rgba(255, 0, 0, 0.7), transparent 50.1%);
}
.sanddance-gl canvas {
outline: none;
}
.sanddance-panel {
position: absolute;
top: 1em;
right: 1em;
bottom: 1em;
background: #fff;
box-shadow: 8px 8px 12px -6px #ccc;
border: 1px solid #ccc;
overflow-y: scroll;
padding-bottom: 1em;
padding-left: 1em;
}
.sanddance-legend table {
border-collapse: collapse;
}
.sanddance-legend th {
word-break: break-word;
max-width: 11em;
}
.sanddance-legend .legend-row {
cursor: pointer;
}
.sanddance-legend .legend-row td {
padding: 2px;
}
.sanddance-legend .legend-row:hover {
background-color: #efefef;
}
.sanddance-legend .symbol div {
border-style: outset;
border-width: 1.5px;
}
.sanddance-legend .label {
max-width: 9em;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.sanddance-details {
font-size: smaller;
}
.sanddance-details-scroll {
padding-bottom: 1em;
}
.sanddance-tooltip {
z-index: 1;
}
.sanddance-tooltip table {
background: #333;
color: #fff;
font-size: smaller;
margin: 1em;
min-width: 16em;
padding: 6px;
position: absolute;
}
.sanddance-tooltip td {
max-width: 16em;
overflow: hidden;
text-align: left;
text-overflow: ellipsis;
vertical-align: top;
width: 75%;
}
.sanddance-tooltip td:first-child {
width: 25%;
}
/*# sourceMappingURL=sanddance.css.map */

26078
docs/dist/sanddance/v4/sanddance.js поставляемый Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

302
docs/dist/vega-deck.gl/v3/vega-deck.gl.js поставляемый
Просмотреть файл

@ -19,14 +19,16 @@
return Object.freeze(n);
}
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const layerNames = {
cubes: 'LAYER_CUBES',
lines: 'LAYER_LINES',
text: 'LAYER_TEXT',
paths: 'LAYER_PATHS',
polygons: 'LAYER_POLYGONS'
polygons: 'LAYER_POLYGONS',
};
var constants = /*#__PURE__*/Object.freeze({
@ -415,7 +417,10 @@
}
}
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const KeyCodes = {
ENTER: 'Enter',
};
@ -429,21 +434,29 @@
} }, row.cells.map((cell, i) => (createElement("td", { className: cell.className || '', title: cell.title || '' }, cell.content))))))));
};
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
var controls = /*#__PURE__*/Object.freeze({
__proto__: null,
Table: Table
});
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
var types = /*#__PURE__*/Object.freeze({
__proto__: null
});
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function concat(...args) {
return args.reduce((p, c) => c ? p.concat(c) : p, []);
}
@ -463,8 +476,10 @@
arr.push.apply(arr, items);
}
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
/**
* Create a new element as a child of another element.
* @param tagName Tag name of the new tag to create.
@ -592,7 +607,10 @@
'default': deepmerge_1
});
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const deepmerge = (deepmerge_1 || _deepmerge);
function clone(objectToClone) {
if (!objectToClone)
@ -986,6 +1004,10 @@
: m1) * 255;
}
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function rgbToDeckglColor(c) {
return [c.r, c.g, c.b, c.opacity * 255];
}
@ -1036,7 +1058,11 @@
return rgbToDeckglColor(c);
}
let vega = {
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const vega = {
CanvasHandler: null,
inferType: null,
inferTypes: null,
@ -1048,9 +1074,9 @@
sceneVisit: null,
scheme: null,
truncate: null,
View: null
View: null,
};
let deck = {
const deck = {
_CameraLight: null,
AmbientLight: null,
CompositeLayer: null,
@ -1064,19 +1090,19 @@
OrbitController: null,
gouraudLighting: null,
picking: null,
project32: null
project32: null,
};
let layers = {
const layers = {
IconLayer: null,
LineLayer: null,
PathLayer: null,
PolygonLayer: null,
TextLayer: null
TextLayer: null,
};
let luma = {
const luma = {
CubeGeometry: null,
Model: null,
Texture2D: null
Texture2D: null,
};
/**
* References to dependency libraries.
@ -1085,7 +1111,7 @@
deck,
layers,
luma,
vega
vega,
};
/**
* Specify the dependency libraries to use for rendering.
@ -1138,6 +1164,10 @@ void main(void) {
}
`;
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const minHeight = '100px';
const minWidth = '100px';
// const lightSettings: { [view in View]: LightSettings } = {
@ -1164,8 +1194,8 @@ void main(void) {
color: 100,
position: 600,
size: 600,
view: 600
}
view: 600,
},
};
function createStage(view) {
const stage = {
@ -1181,9 +1211,9 @@ void main(void) {
gridLines: [],
textData: [],
legend: {
rows: {}
rows: {},
},
facets: []
facets: [],
};
return stage;
}
@ -1267,7 +1297,7 @@ void main(void) {
getSize: x => x.size,
getPosition: x => x.position,
getColor: x => x.color,
material: { ambient: 0.5, diffuse: 1 }
material: { ambient: 0.5, diffuse: 1 },
};
function _CubeLayer(props) {
//dynamic superclass, since we don't know have deck.Layer in the declaration phase
@ -1282,20 +1312,20 @@ void main(void) {
size: 3,
type: DOUBLE,
transition: true,
accessor: 'getPosition'
accessor: 'getPosition',
},
instanceSizes: {
size: 3,
transition: true,
accessor: 'getSize'
accessor: 'getSize',
},
instanceColors: {
size: 4,
type: UNSIGNED_BYTE,
transition: true,
accessor: 'getColor',
defaultValue: DEFAULT_COLOR
}
defaultValue: DEFAULT_COLOR,
},
});
}
updateState({ props, oldProps, changeFlags }) {
@ -1324,7 +1354,7 @@ void main(void) {
lightingMix = this.props.interpolator.layerInterpolatedProps.lightingMix;
}
this.state.model.setUniforms(Object.assign({}, uniforms, {
lightingMix
lightingMix,
})).draw();
}
}
@ -1350,14 +1380,20 @@ void main(void) {
return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;
}
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function easing(t) {
if (t === 0 || t === 1)
return t;
return expInOut(t);
}
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function getLayers(presenter, config, stage, lightSettings /*LightSettings*/, lightingMix, interpolator, guideLines) {
const cubeLayer = newCubeLayer(presenter, config, stage.cubeData, presenter.style.highlightColor, lightSettings, lightingMix, interpolator);
const { x, y, z } = stage.axes;
@ -1425,8 +1461,8 @@ void main(void) {
transitions: {
getPosition,
getColor,
getSize
}
getSize,
},
};
return new CubeLayer(cubeLayerProps);
}
@ -1437,7 +1473,7 @@ void main(void) {
widthUnits: 'pixels',
coordinateSystem: base.deck.COORDINATE_SYSTEM.CARTESIAN,
getColor: (o) => o.color,
getWidth: (o) => o.strokeWidth
getWidth: (o) => o.strokeWidth,
});
}
function newPathLayer(id, data) {
@ -1453,13 +1489,13 @@ void main(void) {
coordinateSystem: base.deck.COORDINATE_SYSTEM.CARTESIAN,
getPath: (o) => o.positions,
getColor: (o) => o.strokeColor,
getWidth: (o) => o.strokeWidth
getWidth: (o) => o.strokeWidth,
});
}
function newPolygonLayer(id, data) {
if (!data)
return null;
let newlayer = new base.layers.PolygonLayer({
const newlayer = new base.layers.PolygonLayer({
id,
data,
coordinateSystem: base.deck.COORDINATE_SYSTEM.CARTESIAN,
@ -1472,7 +1508,7 @@ void main(void) {
pickable: true,
extruded: true,
getElevation: (o) => o.depth,
getLineWidth: (o) => o.strokeWidth
getLineWidth: (o) => o.strokeWidth,
});
return newlayer;
}
@ -1498,7 +1534,7 @@ void main(void) {
}
},
onClick: (o, e) => {
let pe = e && e.srcEvent;
const pe = e && e.srcEvent;
config.onTextClick && config.onTextClick(pe, o.object);
},
onHover: (o, e) => {
@ -1516,9 +1552,9 @@ void main(void) {
fontSettings: {
sdf: false,
fontSize: 128,
buffer: 3
buffer: 3,
},
_subLayerProps: { characters: { alphaCutoff } }
_subLayerProps: { characters: { alphaCutoff } },
};
if (fontFamily) {
props.fontFamily = fontFamily;
@ -1530,7 +1566,7 @@ void main(void) {
if (duration) {
timing = {
duration,
type: 'interpolation'
type: 'interpolation',
};
if (easing) {
timing.easing = easing;
@ -1549,7 +1585,10 @@ void main(void) {
return cubeLayerProps.data;
}
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
var util = /*#__PURE__*/Object.freeze({
__proto__: null,
@ -1573,6 +1612,10 @@ void main(void) {
setActiveElement: setActiveElement
});
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function createOrbitControllerClass(factoryOptions) {
function wrapper(props) {
class OrbitControllerInternal extends base.deck.OrbitController {
@ -1595,13 +1638,17 @@ void main(void) {
return wrapper;
}
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
//adapted from https://github.com/uber/deck.gl/blob/5.3-release/modules/lite/src/deckgl.js
const CANVAS_STYLE = {
position: 'absolute',
left: 0,
top: 0,
width: '100%',
height: '100%'
height: '100%',
};
// Create canvas elements for map and deck
function createCanvas(props) {
@ -1648,7 +1695,7 @@ void main(void) {
height: '100%',
canvas: deckCanvas,
controller: OrbitControllerClass,
initialViewState: viewState
initialViewState: viewState,
}));
// Callback for the controller
this._updateViewState = params => {
@ -1673,11 +1720,14 @@ void main(void) {
}
return {
OrbitControllerClass,
DeckGL_Class: wrapper
DeckGL_Class: wrapper,
};
}
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function wrapper(props) {
class LinearInterpolatorInternal extends base.deck.LinearInterpolator {
constructor(transitionProps) {
@ -1695,15 +1745,18 @@ void main(void) {
}
const LinearInterpolator = wrapper;
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function lightingEffects() {
const ambientLight = new base.deck.AmbientLight({
color: [255, 255, 255],
intensity: 0.3
intensity: 0.3,
});
const cameraLight = new base.deck._CameraLight({
color: [255, 255, 255],
intensity: 1
intensity: 1,
});
// const directionalLight = new base.deck.DirectionalLight({
// color: [255, 255, 255],
@ -1713,8 +1766,10 @@ void main(void) {
return [new base.deck.LightingEffect({ ambientLight, cameraLight })];
}
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
/**
* HTML elements outputted by the presenter.
*/
@ -1727,7 +1782,10 @@ void main(void) {
PresenterElement[PresenterElement["vegaControls"] = 4] = "vegaControls";
})(exports.PresenterElement || (exports.PresenterElement = {}));
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const LegendView = (props) => {
const rows = [];
const addRow = (row, i) => {
@ -1743,11 +1801,11 @@ void main(void) {
rows.push({
cells: [
{ className: 'symbol', content: jsx },
{ className: 'label', content: row.label, title: row.label }
]
{ className: 'label', content: row.label, title: row.label },
],
});
};
var sorted = Object.keys(props.legend.rows).sort((a, b) => +a - +b);
const sorted = Object.keys(props.legend.rows).sort((a, b) => +a - +b);
sorted.forEach(i => addRow(props.legend.rows[i]));
if (sorted.length) {
return (createElement(Table, { rows: rows, rowClassName: "legend-row", onRowClick: (e, i) => props.onClick(e, props.legend, i) }, props.legend.title !== undefined && (createElement("tr", { tabIndex: props.onClick ? 0 : -1, onClick: e => props.onClick(e, props.legend, null), onKeyUp: e => {
@ -1764,13 +1822,17 @@ void main(void) {
height: `${symbol.bounds.y2 - symbol.bounds.y1}px`,
width: `${symbol.bounds.x2 - symbol.bounds.x1}px`,
backgroundColor: symbol.fill,
borderColor: symbol.fill
borderColor: symbol.fill,
} }));
}
},
};
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function zSwap(v3) {
let temp = -v3[1]; //negeative y to positive z
const temp = -v3[1]; //negeative y to positive z
if (v3[0] === lineZ) {
v3[0] = 0;
}
@ -1778,7 +1840,10 @@ void main(void) {
v3[2] = temp;
}
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const markStager$5 = (options, stage, scene, x, y, groupType) => {
base.vega.sceneVisit(scene, function (item) {
const x1 = item.x || 0;
@ -1810,7 +1875,7 @@ void main(void) {
sourcePosition: [x1, -y1, lineZ],
targetPosition: [x2, -y2, lineZ],
color: colorFromString(stroke),
strokeWidth: strokeWidth
strokeWidth: strokeWidth,
};
return line;
}
@ -1819,7 +1884,7 @@ void main(void) {
styledLine(gx, gy, gx + width, gy, stroke, strokeWidth),
styledLine(gx + width, gy, gx + width, gy + height, stroke, strokeWidth),
styledLine(gx + width, gy + height, gx, gy + height, stroke, strokeWidth),
styledLine(gx, gy + height, gx, gy, stroke, strokeWidth)
styledLine(gx, gy + height, gx, gy, stroke, strokeWidth),
];
if (diagonals) {
lines.push(styledLine(gx, gy, gx + width, gy + height, stroke, strokeWidth));
@ -1828,7 +1893,10 @@ void main(void) {
return lines;
}
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function initializePanel(presenter) {
const rootDiv = (createElement("div", { className: className(exports.PresenterElement.root, presenter) },
createElement("div", { className: className(exports.PresenterElement.gl, presenter), style: { minHeight, minWidth } }),
@ -1841,6 +1909,10 @@ void main(void) {
return `${presenter.style.cssPrefix}${exports.PresenterElement[type]}`;
}
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function patchCubeArray(allocatedSize, empty, cubes) {
const patched = new Array(allocatedSize);
patched.fill(empty);
@ -1848,7 +1920,10 @@ void main(void) {
return patched;
}
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const legendMap = {
'legend-title': function (legend, textItem) {
legend.title = textItem.text;
@ -1867,7 +1942,7 @@ void main(void) {
const row = legend.rows[i];
row.label = label.text;
row.value = label.datum.value;
}
},
};
const markStager$4 = (options, stage, scene, x, y, groupType) => {
base.vega.sceneVisit(scene, function (item) {
@ -1878,7 +1953,10 @@ void main(void) {
});
};
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const markStager$3 = (options, stage, scene, x, y, groupType) => {
base.vega.sceneVisit(scene, function (item) {
//for orthographic (2d) - always use 0 or else Deck will not show them
@ -1886,7 +1964,7 @@ void main(void) {
const depth = (stage.view === '2d' ? 0 : (item.depth || 0)) + min3dDepth;
//change direction of y from SVG to GL
const ty = -1;
let ordinal = options.assignCubeOrdinal(item.datum);
const ordinal = options.assignCubeOrdinal(item.datum);
if (ordinal > options.maxOrdinal) {
options.maxOrdinal = ordinal;
}
@ -1896,7 +1974,7 @@ void main(void) {
ordinal,
size: [item.width, item.height, depth],
position: [x + (item.x || 0), ty * (y + (item.y || 0)) - item.height, z],
color: colorFromString(item.fill) || options.defaultCubeColor || [128, 128, 128, 128]
color: colorFromString(item.fill) || options.defaultCubeColor || [128, 128, 128, 128],
};
cube.color[3] = item.opacity === undefined ? 255 : 255 * item.opacity;
stage.cubeData.push(cube);
@ -1904,6 +1982,10 @@ void main(void) {
});
};
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
//change direction of y from SVG to GL
const ty$1 = -1;
const markStager$2 = (options, stage, scene, x, y, groupType) => {
@ -1914,14 +1996,18 @@ void main(void) {
positions: scene.items.map((it) => [
it.x,
ty$1 * it.y,
it.z || 0
])
it.z || 0,
]),
};
path.strokeColor[3] *= g.strokeOpacity;
path.strokeColor[3] *= g.opacity;
stage.pathData.push(path);
};
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const markStager$1 = (options, stage, scene, x, y, groupType) => {
//scale Deck.Gl text to Vega size
const fontScale = 1;
@ -1941,7 +2027,7 @@ void main(void) {
angle: convertAngle(item.angle),
textAnchor: convertAlignment(item.align),
alignmentBaseline,
metaData: item.metaData
metaData: item.metaData,
};
if (item.mark.role === 'axis-label') {
const tickText = textItem;
@ -1983,6 +2069,10 @@ void main(void) {
return baseline || 'bottom';
}
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
//change direction of y from SVG to GL
const ty = -1;
const markStager = (options, stage, scene, x, y, groupType) => {
@ -1996,11 +2086,11 @@ void main(void) {
item.z,
item.x2,
ty * item.y2,
item.z2
item.z2,
];
});
let positions = [];
let startpoint = [points[0][0], points[0][1], points[0][2]];
const positions = [];
const startpoint = [points[0][0], points[0][1], points[0][2]];
points.forEach(p => {
positions.push([p[0], p[1], p[2]]);
});
@ -2013,7 +2103,7 @@ void main(void) {
positions,
strokeColor: colorFromString(g.stroke) || [0, 0, 0, 0],
strokeWidth: g.strokeWidth,
depth: g.depth
depth: g.depth,
};
polygon.fillColor[3] *= g.fillOpacity;
polygon.fillColor[3] *= g.opacity;
@ -2022,6 +2112,10 @@ void main(void) {
stage.polygonData.push(polygon);
};
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
var GroupType;
(function (GroupType) {
GroupType[GroupType["none"] = 0] = "none";
@ -2031,7 +2125,10 @@ void main(void) {
GroupType[GroupType["zAxis"] = 4] = "zAxis";
})(GroupType || (GroupType = {}));
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
function getOrientItem(group) {
if (group.orient) {
return group;
@ -2067,7 +2164,7 @@ void main(void) {
if (g.stroke) {
const facetRect = {
datum: g.datum,
lines: box(gx + x, gy + y, g.height, g.width, g.stroke, groupStrokeWidth)
lines: box(gx + x, gy + y, g.height, g.width, g.stroke, groupStrokeWidth),
};
stage.facets.push(facetRect);
}
@ -2102,7 +2199,7 @@ void main(void) {
domain: null,
tickText: [],
ticks: [],
role
role,
};
axes.push(options.currAxis);
}
@ -2113,7 +2210,7 @@ void main(void) {
rule: markStager$5,
line: markStager$2,
area: markStager,
text: markStager$1
text: markStager$1,
};
const mainStager = (options, stage, scene, x, y, groupType) => {
if (scene.marktype !== 'group' && groupType === GroupType.legend) {
@ -2147,6 +2244,10 @@ void main(void) {
}
}
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
const viewStateProps = ['target', 'rotationOrbit', 'rotationX', 'zoom'];
function targetViewState(height, width, view) {
const target = [width / 2, -height / 2, 0];
@ -2155,7 +2256,7 @@ void main(void) {
target,
rotationOrbit: 0,
rotationX: 90,
zoom: -0.2
zoom: -0.2,
};
}
else {
@ -2163,12 +2264,15 @@ void main(void) {
target,
rotationOrbit: 25,
rotationX: 30,
zoom: -0.4
zoom: -0.4,
};
}
}
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
/**
* Class which presents a Stage of chart data using Deck.gl to render.
*/
@ -2248,14 +2352,14 @@ void main(void) {
*/
present(sceneOrStage, height, width, config) {
this.animationCancel();
let scene = sceneOrStage;
const scene = sceneOrStage;
let stage;
let options = {
const options = {
maxOrdinal: 0,
currAxis: null,
defaultCubeColor: this.style.defaultCubeColor,
assignCubeOrdinal: (config === null || config === void 0 ? void 0 : config.onSceneRectAssignCubeOrdinal) || (() => options.maxOrdinal++),
zAxisZindex: config === null || config === void 0 ? void 0 : config.zAxisZindex
zAxisZindex: config === null || config === void 0 ? void 0 : config.zAxisZindex,
};
//determine if this is a vega scene
if (scene.marktype) {
@ -2269,7 +2373,7 @@ void main(void) {
const classes = createDeckGLClassesForPresenter({
doubleClickHandler: () => {
this.homeCamera();
}
},
});
this.OrbitControllerClass = classes.OrbitControllerClass;
const initialViewState = targetViewState(height, width, stage.view);
@ -2297,7 +2401,7 @@ void main(void) {
else {
return 'grab';
}
}
},
};
if (stage.backgroundColor) {
deckProps.style = { 'background-color': colorToString(stage.backgroundColor) };
@ -2309,7 +2413,7 @@ void main(void) {
cubeCount = Math.max(cubeCount, options.maxOrdinal);
const empty = {
isEmpty: true,
color: [0, 0, 0, 0] // possibly a bug in Deck.gl? set color to invisible.
color: [0, 0, 0, 0], // possibly a bug in Deck.gl? set color to invisible.
};
stage.cubeData = patchCubeArray(cubeCount, empty, stage.cubeData);
}
@ -2333,12 +2437,12 @@ void main(void) {
}
isNewBounds(view, height, width, cubeCount) {
const lastBounds = this.lastBounds();
for (let prop in lastBounds) {
for (const prop in lastBounds) {
if (lastBounds[prop] === null)
return true;
}
const newBounds = { cubeCount, height, view, width };
for (let prop in lastBounds) {
for (const prop in lastBounds) {
if (lastBounds[prop] !== newBounds[prop])
return true;
}
@ -2351,7 +2455,7 @@ void main(void) {
const config = deepMerge(defaultPresenterConfig, modifyConfig);
const newBounds = this.isNewBounds(stage.view, height, width, cubeCount);
//let lightSettings = this.style.lightSettings[stage.view];
let lightingMix = stage.view === '3d' ? 1.0 : 0.0;
const lightingMix = stage.view === '3d' ? 1.0 : 0.0;
let linearInterpolator;
//choose the current OrbitView viewstate if possible
let viewState = (this.deckgl.viewState && Object.keys(this.deckgl.viewState).length && this.deckgl.viewState.OrbitView)
@ -2388,7 +2492,7 @@ void main(void) {
effects: lightingEffects(),
views: [new base.deck.OrbitView({ controller: base.deck.OrbitController })],
initialViewState: viewState,
layers
layers,
};
if (config && config.preStage) {
config.preStage(stage, deckProps);
@ -2404,7 +2508,7 @@ void main(void) {
height,
width,
stage: stage,
view: stage.view
view: stage.view,
};
}
canvasToDataURL() {
@ -2428,7 +2532,7 @@ void main(void) {
effects: lightingEffects(),
views: this.deckgl.props.views,
initialViewState: viewState,
layers: this.deckgl.props.layers
layers: this.deckgl.props.layers,
};
this.deckgl.setProps(deckProps);
}
@ -2460,7 +2564,10 @@ void main(void) {
}
}
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
//pass in the SuperClass, which should be a vega.View
function _RendererGl(loader) {
//dynamic superclass, since we don't know have vega.View in the declaration phase
@ -2498,7 +2605,10 @@ void main(void) {
*/
const RendererGl = _RendererGl;
// Copyright (c) Microsoft Corporation. All rights reserved.
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/
let registered = false;
//dynamic superclass lets us create a subclass at execution phase instead of declaration phase.
//This allows us to retrieve vega.View from either UMD or ES6 consumers of this class.

18644
docs/dist/vega-morphcharts/v1/vega-morphcharts.js поставляемый Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Двоичные данные
docs/dist/vscode/v3/vscode-sanddance-3.3.0.vsix поставляемый Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SandDance</title>
<link rel="stylesheet" type="text/css"
href="https://unpkg.com/@msrvida/sanddance-embed@4/dist/css/sanddance-embed.css" />
<link rel="stylesheet" type="text/css"
href="https://unpkg.com/@msrvida/sanddance-explorer@4/dist/css/sanddance-explorer.css" />
</head>
<body>
<script src="https://unpkg.com/react@17/umd/react.production.min.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js" crossorigin></script>
<script src="https://unpkg.com/vega@5.20/build/vega.min.js"></script>
<script src="https://unpkg.com/@fluentui/react@8/dist/fluentui-react.js"></script>
<script src="https://unpkg.com/@msrvida/sanddance-explorer@4/dist/umd/sanddance-explorer.js"></script>
<script src="https://unpkg.com/@msrvida/sanddance-embed@4/dist/umd/sanddance-embed.js"></script>
<div id="app"></div>
<!--EMBED-->
</body>
</html>

Просмотреть файл

@ -11,19 +11,22 @@ title: Examples
* [sanddance-specs 2D vega specs tests](../tests/sanddance-specs/v1/) using UMD/CDN
### vega-morphcharts
* [simple vega spec](../tests/v4/umd/vega-morphcharts.test.html) using UMD/CDN
* [vega spec test](../tests/v4/es6/vega-morphcharts-test-es6.html) using bundled es6
* [transition between vega specs](../tests/v4/umd/transition.html) using UMD/CDN
## SandDance
* [simple scatterplot](../tests/v3/umd/test.html) using UMD/CDN
* [scatterplot fetch + transform](../tests/v3/umd/transforms.html) using UMD/CDN
* [scatterplot](../tests/v3/es6/sanddance-test-es6.html) using bundled ES6
* [demovote scatterplot](../tests/v3/umd/scatterplotTest.html) using UMD/CDN
* [qualitative barchart](../tests/v3/umd/qualBarChartTest.html) using UMD/CDN
* [quantitative barchart](../tests/v3/umd/quanBarChartTest.html) using UMD/CDN
* [titanic treemap](../tests/v3/umd/treeMapTest.html) using UMD/CDN
## SandDance component v4 Beta
* [simple scatterplot](../tests/v4/umd/test.html) using UMD/CDN
* [scatterplot fetch + transform](../tests/v4/umd/transforms.html) using UMD/CDN
* [scatterplot](../tests/v4/es6/sanddance-test-es6.html) using bundled ES6
* [demovote scatterplot](../tests/v4/umd/scatterplotTest.html) using UMD/CDN
* [qualitative barchart](../tests/v4/umd/qualBarChartTest.html) using UMD/CDN
* [quantitative barchart](../tests/v4/umd/quanBarChartTest.html) using UMD/CDN
* [titanic treemap](../tests/v4/umd/treeMapTest.html) using UMD/CDN
## SandDance Explorer
* [Embed the hosted SandDance Explorer via Iframe](../tests/v3/umd/embed.html)
## SandDance apps v4 Beta
* [Web app](../tests/v4/es6/app)
* [Power BI custom visual](../dist/powerbi/v4/SandDance2019beta4.4.0.0.pbiviz) SandDance 2019 beta4 4.0.0
## Previous versions

Просмотреть файл

@ -7,14 +7,17 @@ title: V3 Examples
## Subsystem
### cube-layer
### sanddance-specs
* [sanddance-specs 2D vega specs tests](../tests/sanddance-specs/v1/) using UMD/CDN
### deck.gl cube-layer
* [cubeTest](../tests/v3/umd/cubeTest.html) using UMD/CDN
### vega-deck.gl
* [simple vega spec](../tests/v3/umd/vega-deck.gl.test.html) using UMD/CDN
* [transition between vega specs](../tests/v3/umd/transition.html) using UMD/CDN
## SandDance
## SandDance component v3
* [simple scatterplot](../tests/v3/umd/test.html) using UMD/CDN
* [scatterplot fetch + transform](../tests/v3/umd/transforms.html) using UMD/CDN
* [scatterplot](../tests/v3/es6/sanddance-test-es6.html) using bundled ES6
@ -23,5 +26,9 @@ title: V3 Examples
* [quantitative barchart](../tests/v3/umd/quanBarChartTest.html) using UMD/CDN
* [titanic treemap](../tests/v3/umd/treeMapTest.html) using UMD/CDN
## SandDance Explorer
## SandDance apps v3
* [Web app](../tests/v3/es6/app)
* [Embed the hosted SandDance Explorer via Iframe](../tests/v3/umd/embed.html)
* [Power BI custom visual](../dist/powerbi/v3/SandDance201929976D117A654D0BAB8E96507442D80B.3.2.0.pbiviz) SandDance 2019
* [Azure Data Studio extension](../dist/azdata/v3/azdata-sanddance-3.3.0.vsix)
* [VSCode extension](../dist/vscode/v3/vscode-sanddance-3.3.0.vsix)

Просмотреть файл

@ -228,9 +228,10 @@ vega.loader().load(dataUrl).then((tsv_data)=>{
},{"../dist/es6":"7COGi"}],"7COGi":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _build = require("./build");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _build = require("./build");
parcelHelpers.exportAll(_build, exports);
var _constants = require("./constants");
parcelHelpers.exportAll(_constants, exports);
@ -241,13 +242,14 @@ parcelHelpers.exportAll(_interfaces, exports);
var _types = require("./types");
parcelHelpers.exportAll(_types, exports);
},{"./build":"jHFbk","./constants":"eNr4m","./inference":"bdXVF","./interfaces":"52vfF","./types":"a5HkM","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"jHFbk":[function(require,module,exports) {
},{"./build":"jHFbk","./constants":"eNr4m","./inference":"bdXVF","./interfaces":"52vfF","./types":"a5HkM","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"jHFbk":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "build", ()=>build);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _charts = require("./charts");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _charts = require("./charts");
var _inference = require("./inference");
var _specBuilder = require("./specBuilder");
function build(specContext, currData) {
@ -299,13 +301,14 @@ function build(specContext, currData) {
return specResult;
}
},{"./charts":"4pEB6","./inference":"bdXVF","./specBuilder":"33BLD","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"4pEB6":[function(require,module,exports) {
},{"./charts":"4pEB6","./inference":"bdXVF","./specBuilder":"33BLD","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4pEB6":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "getSpecBuilderPropsForChart", ()=>getSpecBuilderPropsForChart);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _barchartH = require("./barchartH");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _barchartH = require("./barchartH");
var _barchartHDefault = parcelHelpers.interopDefault(_barchartH);
var _barchartV = require("./barchartV");
var _barchartVDefault = parcelHelpers.interopDefault(_barchartV);
@ -364,12 +367,13 @@ function getSpecBuilderPropsForChart(specContext) {
}
}
},{"./barchartH":"jwW3p","./barchartV":"gx8bO","./density":"hJwhn","./grid":"dUpaP","./scatterplot":"6EBdS","./stacks":"8N6Z2","./strips":"jnY66","./treemap":"g0eb5","../facetLayout":"fJidQ","../constants":"eNr4m","../defaults":"5iedU","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"jwW3p":[function(require,module,exports) {
},{"./barchartH":"jwW3p","./barchartV":"gx8bO","./density":"hJwhn","./grid":"dUpaP","./scatterplot":"6EBdS","./stacks":"8N6Z2","./strips":"jnY66","./treemap":"g0eb5","../facetLayout":"fJidQ","../constants":"eNr4m","../defaults":"5iedU","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"jwW3p":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("../constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("../constants");
var _defaults = require("../defaults");
var _size = require("../size");
exports.default = function(specContext) {
@ -566,7 +570,7 @@ exports.default = function(specContext) {
};
};
},{"../constants":"eNr4m","../defaults":"5iedU","../size":"78CLt","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"eNr4m":[function(require,module,exports) {
},{"../constants":"eNr4m","../defaults":"5iedU","../size":"78CLt","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"eNr4m":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "FieldNames", ()=>FieldNames);
@ -645,7 +649,7 @@ const SignalNames = {
const Other = "__Other";
const ColorScaleNone = "none";
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"7Mw3b":[function(require,module,exports) {
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"jA2du":[function(require,module,exports) {
exports.interopDefault = function(a) {
return a && a.__esModule ? a : {
default: a
@ -719,10 +723,13 @@ const scatterSizedMin = 10;
const scatterSizedDiv = 20;
const debounce = 250;
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"78CLt":[function(require,module,exports) {
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"78CLt":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "allowNoneForSize", ()=>allowNoneForSize);
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ parcelHelpers.export(exports, "allowNoneForSize", ()=>allowNoneForSize);
function allowNoneForSize(specContext) {
switch(specContext.insight.totalStyle){
case "sum-strip":
@ -735,12 +742,13 @@ function allowNoneForSize(specContext) {
}
}
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"gx8bO":[function(require,module,exports) {
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gx8bO":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("../constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("../constants");
var _defaults = require("../defaults");
var _size = require("../size");
exports.default = function(specContext) {
@ -936,12 +944,13 @@ exports.default = function(specContext) {
};
};
},{"../constants":"eNr4m","../defaults":"5iedU","../size":"78CLt","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"hJwhn":[function(require,module,exports) {
},{"../constants":"eNr4m","../defaults":"5iedU","../size":"78CLt","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hJwhn":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("../constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("../constants");
var _defaults = require("../defaults");
var _size = require("../size");
exports.default = function(specContext) {
@ -1150,10 +1159,13 @@ exports.default = function(specContext) {
};
};
},{"../constants":"eNr4m","../defaults":"5iedU","../size":"78CLt","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"dUpaP":[function(require,module,exports) {
},{"../constants":"eNr4m","../defaults":"5iedU","../size":"78CLt","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"dUpaP":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
var _constants = require("../constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("../constants");
exports.default = function(specContext) {
var _a;
const { specColumns } = specContext;
@ -1212,10 +1224,13 @@ exports.default = function(specContext) {
};
};
},{"../constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"6EBdS":[function(require,module,exports) {
},{"../constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"6EBdS":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
var _constants = require("../constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("../constants");
exports.default = function(specContext) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
const { insight , specColumns , specViewOptions } = specContext;
@ -1298,10 +1313,13 @@ exports.default = function(specContext) {
};
};
},{"../constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"8N6Z2":[function(require,module,exports) {
},{"../constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8N6Z2":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
var _defaults = require("../defaults");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _defaults = require("../defaults");
var _constants = require("../constants");
exports.default = function(specContext) {
var _a, _b, _c, _d, _e, _f, _g;
@ -1423,10 +1441,13 @@ exports.default = function(specContext) {
};
};
},{"../defaults":"5iedU","../constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"jnY66":[function(require,module,exports) {
},{"../defaults":"5iedU","../constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"jnY66":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
var _constants = require("../constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("../constants");
exports.default = function(specContext) {
var _a;
const { specColumns } = specContext;
@ -1511,10 +1532,13 @@ exports.default = function(specContext) {
};
};
},{"../constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"g0eb5":[function(require,module,exports) {
},{"../constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"g0eb5":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
var _constants = require("../constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("../constants");
exports.default = function(specContext) {
var _a;
const { specColumns , specViewOptions } = specContext;
@ -1601,11 +1625,14 @@ exports.default = function(specContext) {
};
};
},{"../constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"fJidQ":[function(require,module,exports) {
},{"../constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fJidQ":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "getFacetLayout", ()=>getFacetLayout);
var _defaults = require("./defaults");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _defaults = require("./defaults");
function getFacetLayout(facetStyle, facetColumn, facetVColumn, axisTextColor) {
let layoutPair;
const groupby = facetColumn;
@ -1666,7 +1693,7 @@ function getFacetLayout(facetStyle, facetColumn, facetVColumn, axisTextColor) {
};
}
},{"./defaults":"5iedU","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"bdXVF":[function(require,module,exports) {
},{"./defaults":"5iedU","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bdXVF":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
/**
@ -1684,9 +1711,10 @@ parcelHelpers.defineInteropFlag(exports);
* @param data Array of data objects.
*/ parcelHelpers.export(exports, "inferAll", ()=>inferAll);
parcelHelpers.export(exports, "getStats", ()=>getStats);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _d3Color = require("d3-color");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _d3Color = require("d3-color");
function isColor(cssColorSpecifier) {
return !!(0, _d3Color.color)(cssColorSpecifier);
}
@ -1788,7 +1816,7 @@ function detectSequentialColumn(column, data) {
return true;
}
},{"d3-color":"7SCp9","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"7SCp9":[function(require,module,exports) {
},{"d3-color":"7SCp9","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7SCp9":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "color", ()=>(0, _colorJsDefault.default));
@ -1806,7 +1834,7 @@ var _labJsDefault = parcelHelpers.interopDefault(_labJs);
var _cubehelixJs = require("./cubehelix.js");
var _cubehelixJsDefault = parcelHelpers.interopDefault(_cubehelixJs);
},{"./color.js":"cJlE6","./lab.js":false,"./cubehelix.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"cJlE6":[function(require,module,exports) {
},{"./color.js":"cJlE6","./lab.js":false,"./cubehelix.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"cJlE6":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Color", ()=>Color);
@ -2151,7 +2179,7 @@ function Hsl(h, s, l, opacity) {
return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;
}
},{"./define.js":"fa5me","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"fa5me":[function(require,module,exports) {
},{"./define.js":"fa5me","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fa5me":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "extend", ()=>extend);
@ -2165,13 +2193,14 @@ function extend(parent, definition) {
return prototype;
}
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"33BLD":[function(require,module,exports) {
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"33BLD":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "SpecBuilder", ()=>SpecBuilder);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _axes = require("./axes");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _axes = require("./axes");
var _color = require("./color");
var _constants = require("./constants");
var _defaults = require("./defaults");
@ -2590,13 +2619,14 @@ class SpecBuilder {
}
}
},{"./axes":"4VGAd","./color":"7m2aV","./constants":"eNr4m","./defaults":"5iedU","./facetTitle":"6LisZ","./fill":"291dn","./globalScope":"jGiIn","./scope":"k44Ul","./signals":"3piKm","./layouts/index":"8IEIT","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b","./image":"3AjTc"}],"4VGAd":[function(require,module,exports) {
},{"./axes":"4VGAd","./color":"7m2aV","./constants":"eNr4m","./defaults":"5iedU","./facetTitle":"6LisZ","./fill":"291dn","./globalScope":"jGiIn","./scope":"k44Ul","./signals":"3piKm","./layouts/index":"8IEIT","./image":"3AjTc","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4VGAd":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "addGlobalAxes", ()=>addGlobalAxes);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("./constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("./constants");
var _defaults = require("./defaults");
var _scope = require("./scope");
function addGlobalAxes(props1) {
@ -2702,10 +2732,13 @@ function createAxis(props) {
return axis;
}
},{"./constants":"eNr4m","./defaults":"5iedU","./scope":"k44Ul","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"k44Ul":[function(require,module,exports) {
},{"./constants":"eNr4m","./defaults":"5iedU","./scope":"k44Ul","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"k44Ul":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "addAxes", ()=>addAxes);
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ parcelHelpers.export(exports, "addAxes", ()=>addAxes);
parcelHelpers.export(exports, "addData", ()=>addData);
parcelHelpers.export(exports, "addMarks", ()=>addMarks);
parcelHelpers.export(exports, "addScales", ()=>addScales);
@ -2760,13 +2793,14 @@ function addOffsets(...offsets) {
return offsets.filter(Boolean).join(" + ");
}
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"7m2aV":[function(require,module,exports) {
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7m2aV":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "addColor", ()=>addColor);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _scope = require("./scope");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _scope = require("./scope");
var _scales = require("./scales");
var _signals = require("./signals");
var _constants = require("./constants");
@ -2808,15 +2842,16 @@ function addColor(props) {
};
}
},{"./scope":"k44Ul","./scales":"8b8up","./signals":"3piKm","./constants":"eNr4m","./legends":"d7VwA","./top":"1OWQa","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"8b8up":[function(require,module,exports) {
},{"./scope":"k44Ul","./scales":"8b8up","./signals":"3piKm","./constants":"eNr4m","./legends":"d7VwA","./top":"1OWQa","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8b8up":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "linearScale", ()=>linearScale);
parcelHelpers.export(exports, "pointScale", ()=>pointScale);
parcelHelpers.export(exports, "binnableColorScale", ()=>binnableColorScale);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("./constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("./constants");
var _expr = require("./expr");
function linearScale(scaleName, domain, range, reverse, zero, nice = true) {
const scale = {
@ -2898,12 +2933,13 @@ function binnableColorScale(scaleName, colorBin, data, field, scheme) {
}
}
},{"./constants":"eNr4m","./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"1G99Z":[function(require,module,exports) {
},{"./constants":"eNr4m","./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1G99Z":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
/**
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ /**
* Make sure that the field name is accessible via Vega's Field type
* https://vega.github.io/vega/docs/types/#Field
* examples: "source.x", "target['x']", "[my.field]"
@ -2919,7 +2955,7 @@ function exprSafeFieldName(field) {
return field.replace(/[.,:;+=\-/<>{}|~!@#$%^*[\]`'"()?\s\\]/g, "");
}
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"3piKm":[function(require,module,exports) {
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3piKm":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "defaultZProportion", ()=>defaultZProportion);
@ -2927,7 +2963,10 @@ parcelHelpers.export(exports, "textSignals", ()=>textSignals);
parcelHelpers.export(exports, "colorBinCountSignal", ()=>colorBinCountSignal);
parcelHelpers.export(exports, "colorReverseSignal", ()=>colorReverseSignal);
parcelHelpers.export(exports, "modifySignal", ()=>modifySignal);
var _constants = require("./constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("./constants");
var _defaults = require("./defaults");
const defaultZProportion = 0.6;
function textSignals(context, heightSignal) {
@ -3040,11 +3079,14 @@ function modifySignal(s, fn, update) {
s.update = `${fn}((${s.update}), (${update}))`;
}
},{"./constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b","./defaults":"5iedU"}],"d7VwA":[function(require,module,exports) {
},{"./constants":"eNr4m","./defaults":"5iedU","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"d7VwA":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "getLegends", ()=>getLegends);
function legend(column, fill) {
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ function legend(column, fill) {
const legend1 = {
orient: "none",
title: column.name,
@ -3072,13 +3114,14 @@ function getLegends(context, fill) {
];
}
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"1OWQa":[function(require,module,exports) {
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1OWQa":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "topLookup", ()=>topLookup);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("./constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("./constants");
var _expr = require("./expr");
function topLookup(column, count, source, legend, lookupName, fieldName, indexName) {
const data = [
@ -3136,7 +3179,7 @@ function topLookup(column, count, source, legend, lookupName, fieldName, indexNa
return data;
}
},{"./constants":"eNr4m","./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"6LisZ":[function(require,module,exports) {
},{"./constants":"eNr4m","./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"6LisZ":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "addFacetColRowTitles", ()=>addFacetColRowTitles);
@ -3144,9 +3187,10 @@ parcelHelpers.export(exports, "addFacetCellTitles", ()=>addFacetCellTitles);
parcelHelpers.export(exports, "addFacetAxesGroupMarks", ()=>addFacetAxesGroupMarks);
parcelHelpers.export(exports, "facetRowHeaderFooter", ()=>facetRowHeaderFooter);
parcelHelpers.export(exports, "facetColumnHeaderFooter", ()=>facetColumnHeaderFooter);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _scope = require("./scope");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _scope = require("./scope");
var _constants = require("./constants");
function addFacetColRowTitles(globalScope, colTitleSource, rowTitleSource, sizeSignals, axisTextColor) {
const titleSignal = `parent[${JSON.stringify((0, _constants.FieldNames).FacetTitle)}]`;
@ -3386,14 +3430,15 @@ function createSequence(dataName, countSignal) {
};
}
},{"./scope":"k44Ul","./constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"291dn":[function(require,module,exports) {
},{"./scope":"k44Ul","./constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"291dn":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "fill", ()=>fill);
parcelHelpers.export(exports, "opacity", ()=>opacity);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("./constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("./constants");
var _expr = require("./expr");
function fill(context, colorFieldName, scale) {
const { specColumns , insight , specViewOptions } = context;
@ -3414,13 +3459,14 @@ function opacity(context) {
return result;
}
},{"./constants":"eNr4m","./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"jGiIn":[function(require,module,exports) {
},{"./constants":"eNr4m","./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"jGiIn":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "GlobalScope", ()=>GlobalScope);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("./constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("./constants");
var _scope = require("./scope");
class GlobalScope {
constructor(props){
@ -3456,13 +3502,14 @@ class GlobalScope {
}
}
},{"./constants":"eNr4m","./scope":"k44Ul","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"8IEIT":[function(require,module,exports) {
},{"./constants":"eNr4m","./scope":"k44Ul","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8IEIT":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "layoutClasses", ()=>layoutClasses);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _aggregateContainer = require("./aggregateContainer");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _aggregateContainer = require("./aggregateContainer");
var _aggregateSquare = require("./aggregateSquare");
var _band = require("./band");
var _cross = require("./cross");
@ -3485,13 +3532,14 @@ const layoutClasses = {
Wrap: (0, _wrap.Wrap)
};
},{"./aggregateContainer":"2AO1d","./aggregateSquare":"3jVb3","./band":"cD88v","./cross":"3Xmem","./scatter":"jRktq","./square":"425K1","./stack":"b0WQI","./strip":"1pzL4","./treemap":"kPpw1","./wrap":"7BE6v","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"2AO1d":[function(require,module,exports) {
},{"./aggregateContainer":"2AO1d","./aggregateSquare":"3jVb3","./band":"cD88v","./cross":"3Xmem","./scatter":"jRktq","./square":"425K1","./stack":"b0WQI","./strip":"1pzL4","./treemap":"kPpw1","./wrap":"7BE6v","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2AO1d":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "AggregateContainer", ()=>AggregateContainer);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _layout = require("./layout");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _layout = require("./layout");
var _constants = require("../constants");
var _expr = require("../expr");
var _scope = require("../scope");
@ -3650,10 +3698,13 @@ class AggregateContainer extends (0, _layout.Layout) {
}
}
},{"./layout":"7w384","../constants":"eNr4m","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"7w384":[function(require,module,exports) {
},{"./layout":"7w384","../constants":"eNr4m","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7w384":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Layout", ()=>Layout);
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ parcelHelpers.export(exports, "Layout", ()=>Layout);
class Layout {
constructor(props){
this.props = props;
@ -3670,24 +3721,26 @@ class Layout {
}
}
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"lp0UG":[function(require,module,exports) {
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lp0UG":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "testForCollapseSelection", ()=>testForCollapseSelection);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("./constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("./constants");
function testForCollapseSelection() {
return `datum.${(0, _constants.FieldNames).Collapsed}`;
}
},{"./constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"3jVb3":[function(require,module,exports) {
},{"./constants":"eNr4m","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3jVb3":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "AggregateSquare", ()=>AggregateSquare);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _layout = require("./layout");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _layout = require("./layout");
var _expr = require("../expr");
var _scope = require("../scope");
var _selection = require("../selection");
@ -3774,14 +3827,15 @@ class AggregateSquare extends (0, _layout.Layout) {
}
}
},{"./layout":"7w384","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"cD88v":[function(require,module,exports) {
},{"./layout":"7w384","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"cD88v":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "bandScaleLinearSuffix", ()=>bandScaleLinearSuffix);
parcelHelpers.export(exports, "Band", ()=>Band);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _layout = require("./layout");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _layout = require("./layout");
var _bin = require("../bin");
var _expr = require("../expr");
var _scope = require("../scope");
@ -3943,14 +3997,15 @@ class Band extends (0, _layout.Layout) {
}
}
},{"./layout":"7w384","../bin":"1wZ7F","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","../signals":"3piKm","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b","../scales":"8b8up"}],"1wZ7F":[function(require,module,exports) {
},{"./layout":"7w384","../bin":"1wZ7F","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","../signals":"3piKm","../scales":"8b8up","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1wZ7F":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "binnable", ()=>binnable);
parcelHelpers.export(exports, "outerExtentSignal", ()=>outerExtentSignal);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("./constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("./constants");
var _expr = require("./expr");
var _defaults = require("./defaults");
var _transforms = require("./transforms");
@ -3961,6 +4016,7 @@ function binnable(prefix, domainDataName, discreteColumn, outerSignalExtents) {
const fieldEnd = `${field}_end`;
const binSignal = `${field}_bins`;
const dataExtentSignal = `${field}_bin_extent`;
const dataExtentSpanSignal = `${field}_bin_extent_span`;
const outerSignal = `${field}_outer_extent`;
domainDataName = `${field}_sequence`; //override the data name
const extentTransform = (0, _transforms.dataExtent)(column, dataExtentSignal);
@ -4038,10 +4094,19 @@ function binnable(prefix, domainDataName, discreteColumn, outerSignalExtents) {
expr: `datum.data === ${binSignal}.stop - ${binSignal}.step`,
as: (0, _constants.FieldNames).Last
},
{
// when there is only one bin, use only first sequence element
type: "filter",
expr: `${dataExtentSpanSignal} === 0 ? datum[${JSON.stringify((0, _constants.FieldNames).First)}] : true`
},
]
};
const signals = [
maxbinsSignal
maxbinsSignal,
{
name: dataExtentSpanSignal,
update: `${extentSignal}[1] - ${extentSignal}[0]`
},
];
if (imageSignal) signals.push(imageSignal);
const augmentBinnable = {
@ -4083,11 +4148,14 @@ function outerExtentSignal(name, min, max, dataExtent) {
};
}
},{"./constants":"eNr4m","./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b","./defaults":"5iedU","./transforms":"6fL08"}],"6fL08":[function(require,module,exports) {
},{"./constants":"eNr4m","./expr":"1G99Z","./defaults":"5iedU","./transforms":"6fL08","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"6fL08":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "dataExtent", ()=>dataExtent);
var _expr = require("./expr");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _expr = require("./expr");
function dataExtent(column, signal) {
return {
type: "extent",
@ -4096,13 +4164,14 @@ function dataExtent(column, signal) {
};
}
},{"./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"3Xmem":[function(require,module,exports) {
},{"./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3Xmem":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Cross", ()=>Cross);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _layout = require("./layout");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _layout = require("./layout");
var _bin = require("../bin");
var _constants = require("../constants");
var _facetSearch = require("../facetSearch");
@ -4310,10 +4379,13 @@ class Cross extends (0, _layout.Layout) {
}
}
},{"./layout":"7w384","../bin":"1wZ7F","../constants":"eNr4m","../facetSearch":"2CVGj","../facetTitle":"6LisZ","../ordinal":"l8chc","../scope":"k44Ul","../signals":"3piKm","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"2CVGj":[function(require,module,exports) {
},{"./layout":"7w384","../bin":"1wZ7F","../constants":"eNr4m","../facetSearch":"2CVGj","../facetTitle":"6LisZ","../ordinal":"l8chc","../scope":"k44Ul","../signals":"3piKm","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2CVGj":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "displayBin", ()=>displayBin);
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ parcelHelpers.export(exports, "displayBin", ()=>displayBin);
parcelHelpers.export(exports, "serializeAsVegaExpression", ()=>serializeAsVegaExpression);
function displayBin(bin) {
const val = (index)=>`datum[${JSON.stringify(bin.fields[index])}]`;
@ -4354,14 +4426,15 @@ function serializeAsVegaExpression(bin, firstFieldName, lastFieldName, clause) {
}
}
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"l8chc":[function(require,module,exports) {
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"l8chc":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "createOrdinals", ()=>createOrdinals);
parcelHelpers.export(exports, "ordinalScale", ()=>ordinalScale);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("./constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("./constants");
var _expr = require("./expr");
function createOrdinals(source, prefix, binFields, sortOrder) {
const _binFields = binFields.map((0, _expr.safeFieldName));
@ -4412,13 +4485,14 @@ function ordinalScale(dataName, scaleName, binFields) {
};
}
},{"./constants":"eNr4m","./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"jRktq":[function(require,module,exports) {
},{"./constants":"eNr4m","./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"jRktq":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Scatter", ()=>Scatter);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _layout = require("./layout");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _layout = require("./layout");
var _constants = require("../constants");
var _defaults = require("../defaults");
var _expr = require("../expr");
@ -4654,13 +4728,14 @@ class Scatter extends (0, _layout.Layout) {
}
}
},{"./layout":"7w384","../constants":"eNr4m","../defaults":"5iedU","../expr":"1G99Z","../scales":"8b8up","../scope":"k44Ul","../selection":"lp0UG","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b","../transforms":"6fL08","../bin":"1wZ7F"}],"425K1":[function(require,module,exports) {
},{"./layout":"7w384","../constants":"eNr4m","../defaults":"5iedU","../expr":"1G99Z","../scales":"8b8up","../scope":"k44Ul","../selection":"lp0UG","../transforms":"6fL08","../bin":"1wZ7F","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"425K1":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Square", ()=>Square);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _layout = require("./layout");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _layout = require("./layout");
var _constants = require("../constants");
var _expr = require("../expr");
var _scope = require("../scope");
@ -4853,13 +4928,14 @@ class Square extends (0, _layout.Layout) {
}
}
},{"./layout":"7w384","../constants":"eNr4m","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","../zBase":"kSgN8","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"kSgN8":[function(require,module,exports) {
},{"./layout":"7w384","../constants":"eNr4m","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","../zBase":"kSgN8","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kSgN8":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "addZScale", ()=>addZScale);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _constants = require("./constants");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _constants = require("./constants");
var _scales = require("./scales");
var _expr = require("./expr");
function addZScale(z, zSize, dataName, zScaleName) {
@ -4878,13 +4954,14 @@ function addZScale(z, zSize, dataName, zScaleName) {
}
}
},{"./constants":"eNr4m","./scales":"8b8up","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b","./expr":"1G99Z"}],"b0WQI":[function(require,module,exports) {
},{"./constants":"eNr4m","./scales":"8b8up","./expr":"1G99Z","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"b0WQI":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Stack", ()=>Stack);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _layout = require("./layout");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _layout = require("./layout");
var _expr = require("../expr");
var _scope = require("../scope");
var _selection = require("../selection");
@ -5110,13 +5187,14 @@ class Stack extends (0, _layout.Layout) {
}
}
},{"./layout":"7w384","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"1pzL4":[function(require,module,exports) {
},{"./layout":"7w384","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1pzL4":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Strip", ()=>Strip);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _layout = require("./layout");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _layout = require("./layout");
var _constants = require("../constants");
var _expr = require("../expr");
var _scope = require("../scope");
@ -5260,13 +5338,14 @@ class Strip extends (0, _layout.Layout) {
}
}
},{"./layout":"7w384","../constants":"eNr4m","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","../zBase":"kSgN8","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"kPpw1":[function(require,module,exports) {
},{"./layout":"7w384","../constants":"eNr4m","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","../zBase":"kSgN8","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kPpw1":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Treemap", ()=>Treemap);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _layout = require("./layout");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _layout = require("./layout");
var _constants = require("../constants");
var _expr = require("../expr");
var _scope = require("../scope");
@ -5489,13 +5568,14 @@ function subtract(...fields) {
return fields.map((n)=>fn(n)).join(" - ");
}
},{"./layout":"7w384","../constants":"eNr4m","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","../zBase":"kSgN8","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"7BE6v":[function(require,module,exports) {
},{"./layout":"7w384","../constants":"eNr4m","../expr":"1G99Z","../scope":"k44Ul","../selection":"lp0UG","../zBase":"kSgN8","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7BE6v":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "Wrap", ()=>Wrap);
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
var _layout = require("./layout");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _layout = require("./layout");
var _bin = require("../bin");
var _constants = require("../constants");
var _expr = require("../expr");
@ -5811,11 +5891,14 @@ class Wrap extends (0, _layout.Layout) {
}
}
},{"./layout":"7w384","../bin":"1wZ7F","../constants":"eNr4m","../expr":"1G99Z","../facetSearch":"2CVGj","../facetTitle":"6LisZ","../ordinal":"l8chc","../scope":"k44Ul","../signals":"3piKm","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"3AjTc":[function(require,module,exports) {
},{"./layout":"7w384","../bin":"1wZ7F","../constants":"eNr4m","../expr":"1G99Z","../facetSearch":"2CVGj","../facetTitle":"6LisZ","../ordinal":"l8chc","../scope":"k44Ul","../signals":"3piKm","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3AjTc":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
parcelHelpers.export(exports, "getImageMark", ()=>getImageMark);
var _band = require("./layouts/band");
/*!
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*/ var _band = require("./layouts/band");
function getImageMark(backgroundImage, allGlobalScales) {
const xScale = allGlobalScales.filter((s)=>s.scales.x)[0].scales.x[0];
const yScale = allGlobalScales.filter((s)=>s.scales.y)[0].scales.y[0];
@ -5859,13 +5942,13 @@ function getScaledValue(scaleName, value) {
return `scale('${scaleName}', ${value})`;
}
},{"./layouts/band":"cD88v","@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"52vfF":[function(require,module,exports) {
},{"./layouts/band":"cD88v","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"52vfF":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}],"a5HkM":[function(require,module,exports) {
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"a5HkM":[function(require,module,exports) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
parcelHelpers.defineInteropFlag(exports);
},{"@parcel/transformer-js/src/esmodule-helpers.js":"7Mw3b"}]},["lKiud"], "lKiud", "parcelRequired43a")
},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}]},["lKiud"], "lKiud", "parcelRequired43a")

119
docs/tests/v3/es6/app.html Normal file
Просмотреть файл

@ -0,0 +1,119 @@
---
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>SandDance</title>
<link rel="stylesheet" type="text/css" href="css/sanddance-app.css">
<link rel="stylesheet" type="text/css" href="css/sanddance-app-site.css">
<link rel="shortcut icon" href="../../../favicon.ico" />
</head>
<body>
<!-- link to JSON files so we can get a url from the bundler -->
<a class="sanddance-app-static-content" id="demovote" data-display-name="Demo Vote" data-type="tsv"
href="../../../sample-data/demovote.tsv"></a>
<a class="sanddance-app-static-content" id="titanic" data-display-name="Titanic" data-type="tsv"
href="../../../sample-data/titanicmaster.tsv"></a>
<script>
function setTheme(darkTheme) {
localStorage.setItem('theme', darkTheme ? 'Dark' : 'Light');
}
var darkTheme = localStorage.getItem('theme') === 'Dark';
var insights = {
"titanic": {
"columns": {
"uid": "Name",
"x": "Gender",
"y": "Joined",
"color": "Survived",
"z": "TicketCost",
"sort": "Survived"
},
"scheme": "dual_redgreen",
"chart": "barchart",
"view": "2d"
},
"demovote": {
"columns": {
"uid": "Id",
"x": "Longitude",
"y": "Latitude",
"color": "Obama",
"z": "Education",
"sort": "State"
},
"scheme": "redblue",
"chart": "scatterplot",
"view": "2d",
"colorBin": "quantize"
}
};
var options = {
"*": {
"chartPrefs": {
"*": {
"*": {
"*": {
"signalValues": {
"RoleColor_BinCountSignal": 7
}
}
}
}
}
},
"titanic": {
"chartPrefs": {
"barchart": {
"color": {
"Gender": {
"scheme": "set2"
}
}
}
}
},
"demovote": {
"chartPrefs": {
"*": {
"color": {
"Winner": {
"scheme": "dual_bluered"
}
}
},
"stacks": {
"*": {
"*": {
"signalValues": {
"RoleX_BinsSignal": 30,
"RoleY_BinsSignal": 30
}
}
}
}
},
"tooltipExclusions": ["Id", "Latitude", "Longitude"]
}
};
</script>
<main id="app"></main>
<footer>
{% include footer-links.html %}
</footer>
<script src="../../../external/js/react.development.js" crossorigin=""></script>
<script src="../../../external/js/react-dom.development.js" crossorigin=""></script>
<script src="js/sanddance-app.js"></script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,22 @@
html,
body {
height: 100%;
margin: 0;
}
body {
display: grid;
font-family: 'Segoe UI', sans-serif;
grid-template-rows: auto 0fr;
}
select,
button,
input {
font-family: 'Segoe UI', sans-serif;
}
footer {
border-top: 1px solid #ccc;
font-size: smaller;
padding: 6px 1em;
}

Просмотреть файл

@ -0,0 +1,946 @@
.sanddance-app-static-content {
display: none;
}
.sanddance-app {
display: grid;
grid-template-rows: 100% 0;
height: 100%;
}
.sanddance-export .ms-Button {
margin-bottom: 1em;
margin-top: 0.5em;
}
.sanddance-datasource-picker {
width: 100%;
}
.sanddance-root {
height: 100%;
position: relative;
width: 100%;
}
.sanddance-gl {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.sanddance-gl.show-center {
background: linear-gradient(to right, transparent 49.9%, rgba(255, 0, 0, 0.7), transparent 50.1%), linear-gradient(to bottom, transparent 49.9%, rgba(255, 0, 0, 0.7), transparent 50.1%);
}
.sanddance-panel {
position: absolute;
top: 1em;
right: 1em;
bottom: 1em;
background: #fff;
box-shadow: 8px 8px 12px -6px #ccc;
border: 1px solid #ccc;
overflow-y: scroll;
padding-bottom: 1em;
padding-left: 1em;
}
.sanddance-legend table {
border-collapse: collapse;
}
.sanddance-legend th {
word-break: break-word;
max-width: 11em;
}
.sanddance-legend .legend-row {
cursor: pointer;
}
.sanddance-legend .legend-row td {
padding: 2px;
}
.sanddance-legend .legend-row:hover {
background-color: #efefef;
}
.sanddance-legend .symbol div {
border-style: outset;
border-width: 1.5px;
}
.sanddance-legend .label {
max-width: 9em;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.sanddance-details {
font-size: smaller;
}
.sanddance-details-scroll {
padding-bottom: 1em;
}
.sanddance-tooltip {
z-index: 1;
}
.sanddance-tooltip table {
background: #333;
color: #fff;
font-size: smaller;
margin: 1em;
min-width: 16em;
padding: 6px;
position: absolute;
}
.sanddance-tooltip td {
max-width: 16em;
overflow: hidden;
text-align: left;
text-overflow: ellipsis;
vertical-align: top;
width: 75%;
}
.sanddance-tooltip td:first-child {
width: 25%;
}
/*# sourceMappingURL=sanddance.css.map */
/*# sourceMappingURL=sanddance-react.css.map */
.sanddance-scheme.disabled {
filter: grayscale(95%);
}
.sanddance-scheme.option {
display: grid;
grid-template-columns: 10em auto;
width: 100%;
}
.sanddance-scheme.title {
justify-content: flex-start;
}
.sanddance-scheme span {
align-self: center;
}
.sanddance-scheme svg, .sanddance-scheme .swatch {
align-self: center;
border: thin solid #777;
height: 24px;
}
.sanddance-scheme svg {
width: 100%;
}
.sanddance-scheme .swatch div {
display: inline-block;
width: 10px;
height: 24px;
}
.sanddance-explorer-topbar {
background-color: #fff;
border-bottom: 1px solid #ccc;
display: grid;
grid-template-columns: 300px auto;
height: 36px;
}
.sanddance-explorer-topbar .logo {
color: #0078d4;
display: grid;
grid-template-columns: 50px auto;
padding: 6px 0;
}
.sanddance-explorer-topbar .logo svg {
fill: #0078d4;
height: 24px;
margin: 0 auto;
width: 24px;
}
.sanddance-explorer-topbar .logo a {
color: inherit;
font-size: 14px;
font-weight: bold;
line-height: 24px;
text-decoration: none;
}
.sanddance-explorer-commandbar {
position: relative;
}
.sanddance-explorer-commandbar > div {
left: 0;
position: absolute;
right: 0;
}
.sanddance-explorer-commandbar .ms-CommandBar {
height: 36px;
}
.dark-theme .sanddance-explorer-topbar {
background-color: #000;
}
.dark-theme .sanddance-explorer-topbar .logo {
color: #00b4f0;
}
.sanddance-group {
border-top: 1px solid #ccc;
padding-bottom: 1.5em;
position: relative;
}
.sanddance-group .group-head {
display: grid;
grid-template-columns: auto auto;
line-height: 16px;
margin: 1em 0;
}
.sanddance-group .group-head label {
font-size: 11px;
font-weight: 600;
letter-spacing: 3px;
opacity: 0.8;
text-transform: uppercase;
}
.sanddance-group .group-head .count {
color: #333;
font-size: 12px;
text-align: right;
}
.sanddance-group .group-icon {
position: absolute;
top: -1px;
right: 0;
}
.sanddance-group:first-child {
border-top: none;
}
.sanddance-group:first-child .group-head {
margin-top: 0;
}
.sanddance-group:last-child {
padding-bottom: 0;
}
.sanddance-sidebar {
background-color: #f9f9f9;
display: grid;
overflow: hidden;
position: relative;
transition: width 350ms cubic-bezier(0.4, 0, 0.2, 1);
width: 300px;
}
.sanddance-sidebar:not(.pinned) {
bottom: 0;
position: absolute;
top: 0;
}
.sanddance-sidebar .sidebar-content {
background-color: inherit;
display: grid;
grid-template-areas: "stats stats" "tabs bar";
grid-template-columns: 50px auto;
grid-template-rows: 0fr auto;
height: 100%;
overflow: hidden;
position: absolute;
z-index: 1;
}
.sanddance-sidebar .vbuttons {
background-color: rgba(0, 0, 0, 0.1);
display: grid;
grid-area: tabs;
grid-template-rows: auto 0fr;
position: relative;
}
.sanddance-sidebar .vbutton {
align-self: center;
display: grid;
height: 60px;
}
.sanddance-sidebar .vbutton.selected {
background-color: #f9f9f9;
}
.sanddance-sidebar .vbutton button {
height: 100%;
width: 100%;
}
.sanddance-sidebar .vbutton button .ms-Button-icon {
font-size: 24px;
}
.sanddance-sidebar .sidebar-dialogs .vbutton {
height: 16%;
max-height: 60px;
min-height: 32px;
}
.sanddance-sidebar .scrollable-container {
width: 250px;
}
.sanddance-sidebar .sidetab {
grid-area: bar;
padding: 12px;
}
.sanddance-sidebar.closed {
width: 50px;
}
.sanddance-sidebar.calculator .calculating {
background: rgba(249, 249, 249, 0.5);
height: 100%;
position: absolute;
top: 0;
width: 100%;
}
.sanddance-sidebar.calculator .ms-Spinner {
margin-top: -16px;
position: relative;
top: 50%;
}
.dark-theme .sanddance-sidebar {
background-color: #272727;
color: #fff;
}
.dark-theme .sanddance-sidebar .vbuttons {
background-color: rgba(0, 0, 0, 0.4);
}
.dark-theme .sanddance-sidebar .vbutton.selected {
background-color: #272727;
}
.dark-theme .sanddance-sidebar.calculator .calculating {
background: rgba(39, 39, 39, 0.5);
}
.sanddance-chart-type .ms-ChoiceFieldGroup-flexContainer {
display: grid;
grid-template-columns: repeat(2, 50%);
grid-auto-flow: column;
grid-template-rows: repeat(4, auto);
}
.sanddance-datascope {
grid-area: stats;
background-color: rgba(0, 0, 0, 0.05);
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
min-height: 5em;
}
.sanddance-datascope.extended > div {
margin: 12px;
width: 276px;
}
.sanddance-datascope label {
display: block;
font-size: 10px;
text-transform: uppercase;
}
.sanddance-datascope.compact {
align-self: center;
cursor: pointer;
display: grid;
text-align: center;
width: 50px;
}
.sanddance-datascope.compact > div {
align-self: center;
}
.sanddance-datascope .datascope-button {
background-color: #fff;
border: 1px solid rgba(0, 0, 0, 0.2);
box-sizing: border-box;
height: 36px;
min-width: unset;
width: 33.333%;
}
.sanddance-datascope .datascope-button:hover {
background-color: #0078d4;
color: #fff;
}
.sanddance-datascope .datascope-button label {
cursor: inherit;
}
.sanddance-datascope.active .datascope-button.selected {
border-color: #0078d4;
}
.dark-theme .sanddance-datascope {
background-color: rgba(0, 0, 0, 0.3);
border-bottom-color: rgba(255, 255, 255, 0.1);
}
.dark-theme .sanddance-datascope .datascope-button {
background-color: #000;
border-color: rgba(255, 255, 255, 0.2);
color: #fff;
}
.dark-theme .sanddance-datascope .datascope-button:hover {
background-color: #0078d4;
color: #fff;
}
.sanddance-dataItem {
background-color: #fff;
border: 1px solid #ddd;
}
.sanddance-dataItem .name-value {
border-top: 1px solid #ddd;
cursor: pointer;
padding: 4px;
position: relative;
word-break: break-all;
}
.sanddance-dataItem .name-value:hover {
background-color: #0078d4;
color: #fff;
}
.sanddance-dataItem .name-value:first-child {
border-top: none;
}
.sanddance-dataItem .column-name {
font-weight: 500;
}
.sanddance-dataItem .column-value {
max-height: 20em;
overflow: auto;
}
.sanddance-dataItem .bing-search {
text-align: right;
}
.dark-theme .sanddance-dataItem {
background-color: #000;
border-color: #222;
}
.dark-theme .sanddance-dataItem .name-value {
border-top-color: #222;
}
.dark-theme .sanddance-dataItem a {
color: #00b4f0;
}
.sanddance-dataIndex .index {
display: grid;
grid-template-columns: 32px auto 32px;
line-height: 32px;
margin: 0px -8px 6px -8px;
text-align: center;
}
.sanddance-dataIndex .item-filtered {
background-color: rgba(0, 0, 0, 0.1);
font-size: 10px;
padding: 2px 4px;
text-transform: uppercase;
}
.sanddance-dataIndex .ms-Dropdown-container {
margin-bottom: 0.5em;
}
.scrollable-container {
display: grid;
min-height: 200px;
position: relative;
}
.scrollable {
bottom: 0;
left: 0;
position: absolute;
right: 0;
overflow-y: auto;
top: 0;
}
.sanddance-search .sanddance-search-group {
border: 1px solid rgba(0, 0, 0, 0.2);
}
.sanddance-search .sanddance-search-group {
background: #fff;
margin-top: 1em;
padding: 4px;
}
.sanddance-search .sanddance-search-group:first-child {
margin-top: 0;
}
.sanddance-search .sanddance-search-expression {
background-color: rgba(0, 0, 0, 0.1);
margin: 12px 4px;
padding: 4px 8px 8px 8px;
}
.sanddance-search .search-action {
width: 100%;
}
.sanddance-search .search-bottom-action {
margin-top: 1em;
}
.sanddance-search .search-field {
margin-top: 4px;
}
.dark-theme .sanddance-search .sanddance-search-group {
border-color: rgba(255, 255, 255, 0.2);
background: #000;
}
.dark-theme .sanddance-search .sanddance-search-expression {
background-color: rgba(255, 255, 255, 0.2);
}
.sanddance-snapshots .ms-Button {
margin-bottom: 0.5em;
}
.sanddance-snapshots .snapshot {
border: 1px solid rgba(0, 0, 0, 0.2);
cursor: pointer;
margin-bottom: 0.5em;
padding: 5px;
}
.sanddance-snapshots .snapshot.selected {
border-color: rgba(0, 0, 0, 0.6);
border-width: 2px;
padding: 4px;
}
.sanddance-snapshots .snapshot:hover {
background-color: rgba(0, 0, 0, 0.1);
}
.sanddance-snapshots .snapshot:first-child {
margin-top: 0.5em;
}
.sanddance-snapshots .title {
font-weight: 500;
word-break: break-word;
}
.sanddance-snapshots .description {
font-weight: 100;
word-break: break-word;
}
.sanddance-snapshots .thumbnail {
display: grid;
height: 160px;
margin-top: 0.5em;
}
.sanddance-snapshots img {
height: 100%;
object-fit: contain;
width: 100%;
}
.sanddance-snapshots .actions {
display: grid;
grid-auto-flow: column;
}
.sanddance-snapshots .actions a, .sanddance-snapshots .actions span {
align-self: center;
text-align: center;
}
.sanddance-snapshots .actions button {
width: 100%;
}
.sanddance-snapshot-dialog .thumbnail {
border: 1px solid rgba(0, 0, 0, 0.2);
display: grid;
height: 300px;
margin-top: 1em;
}
.sanddance-snapshot-dialog img {
height: 100%;
object-fit: contain;
width: 100%;
}
.dark-theme .sanddance-snapshots .snapshot {
background-color: rgba(0, 0, 0, 0.6);
border-color: rgba(255, 255, 255, 0.2);
}
.dark-theme .sanddance-snapshots .snapshot.selected {
border-color: rgba(255, 255, 255, 0.6);
}
.dark-theme .sanddance-snapshots .snapshot:hover {
background-color: black;
}
.dark-theme .sanddance-snapshots .actions a {
color: #fff;
}
.dark-theme.sanddance-snapshot-dialog .thumbnail {
border-color: rgba(255, 255, 255, 0.2);
}
.sanddance-history ol {
padding-left: 20px;
}
.sanddance-history li {
border: 1px solid transparent;
cursor: pointer;
}
.sanddance-history li.selected {
font-weight: bold;
}
.sanddance-history-button {
background: none;
border: 0;
font-size: inherit;
font-style: inherit;
font-weight: inherit;
height: unset;
padding: 3px 4px;
text-align: left;
width: 100%;
}
.sanddance-history-button .ms-Button-label {
display: inline;
font-weight: inherit;
margin: 0;
}
.sanddance-note {
background-color: #fffacd;
border: 1px solid #333;
box-shadow: 8px 8px 12px -6px #ccc;
color: #333;
margin: 1em;
padding: 20px;
position: absolute;
width: 15em;
word-break: break-word;
}
.sanddance-note .cancel {
position: absolute;
right: -1px;
top: -1px;
}
.sanddance-note .cancel i {
color: #333;
}
.sanddance-columnMap {
position: relative;
}
.sanddance-columnMap .ms-Dropdown-container {
margin-top: 10px;
}
.sanddance-columnMap .column-options {
bottom: 3px;
position: absolute;
right: 0;
}
.sanddance-columnMap-absolute {
margin-bottom: 1em;
margin-left: -4em;
margin-right: 1em;
margin-top: -1em;
}
.sanddance-columnMap-absolute .ms-Dropdown-container {
margin-top: 0;
}
.sanddance-tooltip {
z-index: 2;
}
.sanddance-tooltipMap {
margin-top: 10px;
}
.sanddance-dialog ul {
margin: 0;
}
.sanddance-dialog section {
margin-top: 1em;
}
.sanddance-dialog section:first-child {
margin-top: 0;
}
.sanddance-dialog .tip {
font-style: italic;
}
.sanddance-explorer {
display: grid;
font-family: "Segoe UI", sans-serif;
font-size: 13px;
grid-template-rows: 0fr auto;
}
.sanddance-explorer.dark-theme {
background-color: black;
}
.sanddance-explorer.dark-theme canvas {
background-color: black;
}
.sanddance-main {
display: grid;
position: relative;
transition: grid-template-columns 350ms cubic-bezier(0.4, 0, 0.2, 1);
}
.sanddance-main .loading {
grid-row-end: span 2;
position: relative;
}
.sanddance-main .loading .ms-Spinner {
position: absolute;
top: 50%;
width: 100%;
}
.sanddance-main .sanddance-view {
display: grid;
position: relative;
margin-left: 50px;
}
.sanddance-main .sanddance-layout-unpinned, .sanddance-main .sanddance-layout-pinned {
position: absolute;
top: 0;
left: 50px;
right: 150px;
bottom: 0;
}
.sanddance-main.hide-legend .sanddance-layout-unpinned, .sanddance-main.hide-legend .sanddance-layout-pinned {
right: 0;
}
.sanddance-main .sanddance-layout-pinned {
left: 300px;
}
.sanddance-main .sanddance-ReactViewer {
position: absolute;
top: 0;
left: -100px;
bottom: 0;
right: 0;
}
.sanddance-main.hide-legend .sanddance-ReactViewer {
left: 0;
}
.sanddance-main.show-center .sanddance-layout-unpinned, .sanddance-main.show-center .sanddance-layout-pinned {
background: linear-gradient(to right, transparent 49%, rgba(255, 0, 255, 0.2), transparent 51%);
background-color: rgba(0, 255, 255, 0.1);
}
.sanddance-main.pinned {
grid-template-columns: 300px auto;
grid-template-areas: "side main";
}
.sanddance-main.pinned .sanddance-view {
grid-area: main;
margin-left: 0;
}
.sanddance-main.pinned .loading {
grid-area: main;
grid-row-end: unset;
}
.sanddance-main.pinned .sanddance-slidePanel {
grid-area: side;
}
.sanddance-main.pinned.closed {
grid-template-columns: 0 auto;
}
.sanddance-main.pinned.closed .sanddance-view {
margin-left: 50px;
}
.sanddance-main span.ms-layer {
display: none;
}
#sanddance-vega-spec {
border: 1px inset;
max-height: 20em;
overflow: scroll;
}
.sanddance-panel {
top: 5em;
bottom: unset;
overflow-y: unset;
padding-right: 1em;
padding-top: 32px;
}
.sanddance-panel h4,
.sanddance-panel .sanddance-vegaControls,
.sanddance-panel .sanddance-unitControls {
display: none;
}
.sanddance-main.hide-legend .sanddance-panel {
display: none;
}
.sanddance-panel-tools {
position: absolute;
top: 0;
right: 0;
}
.sanddance-legend {
min-width: 54px;
}
.sanddance-explanation {
font-size: smaller;
font-style: italic;
margin-bottom: 1em;
}
.sanddance-explanation .fieldname,
.sanddance-explanation .fieldtype {
font-style: italic;
}
.sanddance-signal {
margin-top: 1em;
}
.sanddance-legend th {
color: #005a9e;
cursor: pointer;
}
.sanddance-legend th:hover {
background-color: rgba(43, 136, 216, 0.3333333333);
}
.sanddance-legend .legend-row:hover {
background-color: #0078d4;
color: #fff;
}
.sanddance-dataExporter {
margin-top: 1em;
}
.sanddance-form-separate {
margin-top: 1em;
}
.dark-theme .sanddance-dialog a {
color: #00b4f0;
}
.dark-theme .sanddance-panel {
background-color: #000;
color: #fff;
}
.dark-theme .sanddance-legend th {
color: #3ac5f3;
}
.dark-theme .sanddance-legend th:hover {
color: #009ed3;
}
/*# sourceMappingURL=sanddance-explorer.css.map */
.sanddance-sidebar .sanddance-datascope {
min-height: 7em;
}
/*# sourceMappingURL=sanddance-app.css.map */

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

119
docs/tests/v4/es6/app.html Normal file
Просмотреть файл

@ -0,0 +1,119 @@
---
---
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>SandDance</title>
<link rel="stylesheet" type="text/css" href="css/sanddance-app.css">
<link rel="stylesheet" type="text/css" href="css/sanddance-app-site.css">
<link rel="shortcut icon" href="../../../favicon.ico" />
</head>
<body>
<!-- link to JSON files so we can get a url from the bundler -->
<a class="sanddance-app-static-content" id="demovote" data-display-name="Demo Vote" data-type="tsv"
href="../../../sample-data/demovote.tsv"></a>
<a class="sanddance-app-static-content" id="titanic" data-display-name="Titanic" data-type="tsv"
href="../../../sample-data/titanicmaster.tsv"></a>
<script>
function setTheme(darkTheme) {
localStorage.setItem('theme', darkTheme ? 'Dark' : 'Light');
}
var darkTheme = localStorage.getItem('theme') === 'Dark';
var insights = {
"titanic": {
"columns": {
"uid": "Name",
"x": "Gender",
"y": "Joined",
"color": "Survived",
"z": "TicketCost",
"sort": "Survived"
},
"scheme": "dual_redgreen",
"chart": "barchart",
"view": "2d"
},
"demovote": {
"columns": {
"uid": "Id",
"x": "Longitude",
"y": "Latitude",
"color": "Obama",
"z": "Education",
"sort": "State"
},
"scheme": "redblue",
"chart": "scatterplot",
"view": "2d",
"colorBin": "quantize"
}
};
var options = {
"*": {
"chartPrefs": {
"*": {
"*": {
"*": {
"signalValues": {
"RoleColor_BinCountSignal": 7
}
}
}
}
}
},
"titanic": {
"chartPrefs": {
"barchart": {
"color": {
"Gender": {
"scheme": "set2"
}
}
}
}
},
"demovote": {
"chartPrefs": {
"*": {
"color": {
"Winner": {
"scheme": "dual_bluered"
}
}
},
"stacks": {
"*": {
"*": {
"signalValues": {
"RoleX_BinsSignal": 30,
"RoleY_BinsSignal": 30
}
}
}
}
},
"tooltipExclusions": ["Id", "Latitude", "Longitude"]
}
};
</script>
<main id="app"></main>
<footer>
{% include footer-links.html %}
</footer>
<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>
<script src="js/sanddance-app.js"></script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,22 @@
html,
body {
height: 100%;
margin: 0;
}
body {
display: grid;
font-family: 'Segoe UI', sans-serif;
grid-template-rows: auto 0fr;
}
select,
button,
input {
font-family: 'Segoe UI', sans-serif;
}
footer {
border-top: 1px solid #ccc;
font-size: smaller;
padding: 6px 1em;
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,28 @@
.sanddance-gl {
border: 1px solid #ccc;
float: left;
height: 700px;
width: 700px;
margin-right: 1em;
}
.sanddance-tooltip table {
background: #333;
color: #fff;
font-size: smaller;
margin: 1em;
min-width: 16em;
padding: 6px;
position: absolute;
}
.sanddance-tooltip td {
text-align: left;
vertical-align: top;
width: 75%;
}
.sanddance-tooltip td:first-child {
width: 25%;
}

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sanddance test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/sanddance-test-es6.css" />
</head>
<body>
<header>
<h1>sanddance test</h1>
</header>
<div id="vis"></div>
<script src="js/sanddance-test-es6.js"></script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,20 @@
body {
font-family: 'Segoe UI', sans-serif;
}
#vis {
position: absolute;
bottom: 0;
top: 5em;
left: 1em;
right: 0;
}
.sanddance-gl {
right: 290px;
}
.sanddance-panel {
width: 250px;
}
.vega-bind-name {
display: block;
}

Просмотреть файл

@ -0,0 +1,98 @@
html,
body {
font-family: sans-serif;
height: 100%;
}
body.rows {
display: grid;
grid-template-rows: 100px auto 1em;
grid-template-areas: "header" "view" "footer";
margin: 0;
overflow: scroll;
}
body.columns {
display: grid;
grid-template-rows: 100px auto 1em;
grid-template-columns: 40% 60%;
grid-template-areas: "header header" "left right" "footer footer";
margin: 0;
}
header {
border-bottom: 1px solid silver;
grid-area: header;
padding: 0 2em;
}
footer {
border-top: 1px solid silver;
grid-area: footer;
padding: 0 2em;
}
#view-type-button {
position: absolute;
right: 2em;
top: 2em;
}
#view-div, #view-div .vega-morphcharts-gl {
height: 100%;
}
#split-left.double {
display: grid;
grid-template-columns: auto;
grid-template-rows: 50% 50%;
}
#split-left {
grid-area: left;
overflow: hidden;
}
.textform {
background-color: #ccc;
display: grid;
grid-template-columns: auto;
grid-template-rows: auto 2em;
padding: 10px;
}
#split-left textarea {
border: 0;
height: 100%;
padding: 0 0 0 5px;
resize: none;
width: 100%;
}
#split-right,
#error {
grid-area: right;
}
#error {
font-size: larger;
padding: 1em;
}
#split-right .vega-bindings {
padding: 1em;
}
.vega-morphcharts-root {
display: grid;
grid-template-rows: auto 200px;
height: 100%;
}
.vega-morphcharts-legend {
font-family: sans-serif;
position: absolute;
right: 1em;
top: 1em;
z-index: 1;
}

Просмотреть файл

@ -0,0 +1,4 @@
.vega-morphcharts-gl {
border: 1px solid #ccc;
height: 700px;
}

Просмотреть файл

@ -0,0 +1,63 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Embed SandDance Explorer in iframe</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<header>
<h1>Embed SandDance Explorer in iframe</h1>
</header>
<!--
Reference the hosted version at https://microsoft.github.io/SandDance/embed/v4/sanddance-embed.html
or download it and host it on your own site.
-->
<iframe id="embed" style="width: 90%; height: 600px" src="../../../embed/v4/sanddance-embed.html"></iframe>
<script>
const embed = document.getElementById('embed');
embed.onload = () => {
fetch('../../../sample-data/titanicmaster.tsv')
.then(response => response.text())
.then(rawText => {
const w = document.getElementById('embed').contentWindow;
const message = {
// action definitions: 'init' | 'load' | 'getData' | 'getInsight'
// https://github.com/microsoft/SandDance/blob/master/packages/sanddance-embed/src/types/message.d.ts#L3
action: 'load',
// data property may be a raw data file description:
// https://microsoft.github.io/SandDance/docs/sanddance-explorer/v4/interfaces/datafile.html
data: { rawText, type: 'tsv' }
// or it may be an array
//data: [{ a: 1 }, { a: 2 }, { a: 3 },]
};
w.postMessage(message, '*');
/*
// here we can add a button to get the current insight from the explorer
const b = document.createElement('button');
b.innerText = 'log current insight to console'
b.onclick = () => {
w.postMessage({ action: 'getInsight' }, '*');
};
document.body.appendChild(b);
*/
});
};
window.onmessage = (e) => {
// message responses
console.log('messaged', e.data);
};
</script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,45 @@
var qualBarChartTest;
(function (qualBarChartTest) {
SandDance.use(vega);
qualBarChartTest.viewer = new SandDance.Viewer(document.getElementById('vis'));
function getValue(i) {
if (i < 20)
return 0;
if (i < 25)
return 1;
if (i < 35)
return 2;
return 3;
}
var data = [];
for (var i = 0; i < 70; i++) {
var v = getValue(i);
data.push({
myUid: i,
myX: "cat" + v,
myY: i,
myZ: i,
myColor: v.toString(),
mySort: i
});
}
var glDiv = qualBarChartTest.viewer.presenter.getElement(SandDance.VegaMorphCharts.PresenterElement.gl);
var insight = {
columns: {
color: 'myColor',
sort: 'mySort',
uid: 'myUid',
x: 'myX',
y: 'myY',
z: 'myZ'
},
scheme: 'category20',
size: {
height: glDiv.offsetHeight,
width: glDiv.offsetWidth
},
chart: 'barchart',
view: '2d'
};
qualBarChartTest.viewer.render(insight, data, { columnTypes: { myColor: 'string' } });
})(qualBarChartTest || (qualBarChartTest = {}));

Просмотреть файл

@ -0,0 +1,45 @@
var quanBarChartTest;
(function (quanBarChartTest) {
SandDance.use(vega);
quanBarChartTest.viewer = new SandDance.Viewer(document.getElementById('vis'));
function getValue(i) {
if (i < 200)
return 0;
if (i < 250)
return 1;
if (i < 350)
return 2;
return 3;
}
var data = [];
for (var i = 0; i < 700; i++) {
var v = getValue(i);
data.push({
myUid: i,
myX: v,
myY: i,
myZ: i,
myColor: v,
mySort: i
});
}
var glDiv = quanBarChartTest.viewer.presenter.getElement(SandDance.VegaMorphCharts.PresenterElement.gl);
var insight = {
columns: {
color: 'myColor',
sort: 'mySort',
uid: 'myUid',
x: 'myX',
y: 'myY',
z: 'myZ'
},
scheme: 'redblue',
size: {
height: glDiv.offsetHeight,
width: glDiv.offsetWidth
},
chart: 'barchart',
view: '2d'
};
quanBarChartTest.viewer.render(insight, data);
})(quanBarChartTest || (quanBarChartTest = {}));

Просмотреть файл

@ -0,0 +1,26 @@
var scatterplotTest;
(function (scatterplotTest) {
SandDance.use(vega);
scatterplotTest.viewer = new SandDance.Viewer(document.querySelector('#vis'));
var glDiv = scatterplotTest.viewer.presenter.getElement(SandDance.VegaMorphCharts.PresenterElement.gl);
var options = {
columns: {
color: 'Education',
sort: 'TotalPop',
uid: 'Id',
x: 'Longitude',
y: 'Latitude',
z: 'Income'
},
scheme: 'redblue',
size: {
height: glDiv.offsetHeight,
width: glDiv.offsetWidth
},
chart: 'scatterplot'
};
vega.loader().load('../../../sample-data/demovote.tsv').then(function (text) {
var data = vega.read(text, { type: 'tsv' });
scatterplotTest.viewer.render(options, data);
});
})(scatterplotTest || (scatterplotTest = {}));

Просмотреть файл

@ -0,0 +1,26 @@
var test;
(function (test) {
var data = [
{ myUid: 0, myColor: 0, mySort: 0, myX: 0, myY: 0, myZ: 0 },
{ myUid: 1, myColor: 1, mySort: 1, myX: 1, myY: 1, myZ: 1 },
{ myUid: 2, myColor: 2, mySort: 2, myX: 2, myY: 2, myZ: 2 },
];
var options = {
columns: {
color: 'myColor',
sort: 'mySort',
uid: 'myUid',
x: 'myX',
y: 'myY',
z: 'myZ'
},
size: {
height: 700,
width: 700
},
chart: 'scatterplot'
};
SandDance.use(vega);
test.viewer = new SandDance.Viewer(document.querySelector('#vis'));
test.viewer.render(options, data);
})(test || (test = {}));

Просмотреть файл

@ -0,0 +1,42 @@
var transformTest;
(function (transformTest) {
var insight = {
columns: {
color: 'brand',
x: 'Horsepower',
y: 'Miles_per_Gallon',
z: 'Cylinders'
},
transform: [
{
type: 'formula',
expr: 'split(datum.Name, " ")',
as: 'name_split'
},
{
type: 'formula',
expr: 'datum.name_split[0]',
as: 'brand'
},
],
size: {
height: 700,
width: 700
},
scheme: 'category20',
view: '2d',
chart: 'scatterplot',
signalValues: {
Chart_PointScaleSignal: 8,
Text_AngleXSignal: 0,
Text_AngleYSignal: -90
}
};
SandDance.use(vega);
transformTest.viewer = new SandDance.Viewer(document.querySelector('#vis'));
fetch('https://vega.github.io/editor/data/cars.json').then(function (response) {
return response.json();
}).then(function (json) {
transformTest.viewer.render(insight, json);
});
})(transformTest || (transformTest = {}));

Просмотреть файл

@ -0,0 +1,53 @@
var transition;
(function (transition) {
var view;
var lastSpec;
var viewType = '3d';
SandDance.use(vega);
function toggleView() {
if (viewType === '3d') {
viewType = '2d';
}
else {
viewType = '3d';
}
update(lastSpec);
}
transition.toggleView = toggleView;
function update(spec) {
view = new SandDance.VegaMorphCharts.ViewGl(vega.parse(spec), { presenter: view && view.presenter, getView: function () { return viewType; } })
.renderer('morphcharts')
.initialize(document.querySelector('#split-right'))
.run();
lastSpec = spec;
}
transition.update = update;
function getText(textId) {
var textarea = document.getElementById(textId);
var text = textarea.value;
var errorDiv = document.getElementById('error');
var splitRight = document.getElementById('split-right');
try {
var spec = JSON.parse(text);
splitRight.style.opacity = '1';
errorDiv.style.display = 'none';
update(spec);
}
catch (e) {
errorDiv.innerText = e;
errorDiv.style.display = '';
splitRight.style.opacity = '0.1';
}
}
transition.getText = getText;
fetch('./specs/scatter3D.json')
.then(function (response) { return response.text(); })
.then(function (text) {
var textarea = document.getElementById('text1');
textarea.value = text;
getText('text1');
});
fetch('./specs/titanic.json')
.then(function (response) { return response.text(); })
.then(function (text) { return document.getElementById('text2').value = text; });
})(transition || (transition = {}));

Просмотреть файл

@ -0,0 +1,23 @@
var treeMapTest;
(function (treeMapTest) {
SandDance.use(vega);
treeMapTest.viewer = new SandDance.Viewer(document.querySelector('#vis'));
var glDiv = treeMapTest.viewer.presenter.getElement(SandDance.VegaMorphCharts.PresenterElement.gl);
var options = {
columns: {
color: 'Class',
size: 'TicketCost',
uid: 'Name'
},
scheme: 'category10',
size: {
height: glDiv.offsetHeight,
width: glDiv.offsetWidth
},
chart: 'treemap'
};
vega.loader().load('../../../sample-data/titanicmaster.tsv').then(function (text) {
var data = vega.read(text, { type: 'tsv' });
treeMapTest.viewer.render(options, data);
});
})(treeMapTest || (treeMapTest = {}));

Просмотреть файл

@ -0,0 +1,99 @@
var vegaMorphChartsTest;
(function (vegaMorphChartsTest) {
VegaMorphCharts.use(vega);
var spec = {
"$schema": "https://vega.github.io/schema/vega/v4.json",
"background": "#DEDEDE",
"width": 500,
"height": 200,
"padding": 5,
"data": [
{
"name": "table",
"values": [
{ "x": 0, "y": 28, "c": 0 }, { "x": 0, "y": 55, "c": 1 },
{ "x": 1, "y": 43, "c": 0 }, { "x": 1, "y": 91, "c": 1 },
{ "x": 2, "y": 81, "c": 0 }, { "x": 2, "y": 53, "c": 1 },
{ "x": 3, "y": 19, "c": 0 }, { "x": 3, "y": 87, "c": 1 },
{ "x": 4, "y": 52, "c": 0 }, { "x": 4, "y": 48, "c": 1 },
{ "x": 5, "y": 24, "c": 0 }, { "x": 5, "y": 49, "c": 1 },
{ "x": 6, "y": 87, "c": 0 }, { "x": 6, "y": 66, "c": 1 },
{ "x": 7, "y": 17, "c": 0 }, { "x": 7, "y": 27, "c": 1 },
{ "x": 8, "y": 68, "c": 0 }, { "x": 8, "y": 16, "c": 1 },
{ "x": 9, "y": 49, "c": 0 }, { "x": 9, "y": 15, "c": 1 }
],
"transform": [
{
"type": "stack",
"groupby": ["x"],
"sort": { "field": "c" },
"field": "y"
}
]
}
],
"scales": [
{
"name": "x",
"type": "band",
"range": "width",
"domain": { "data": "table", "field": "x" }
},
{
"name": "y",
"type": "linear",
"range": "height",
"nice": true, "zero": true,
"domain": { "data": "table", "field": "y1" }
},
{
"name": "color",
"type": "ordinal",
"range": "category",
"domain": { "data": "table", "field": "c" }
}
],
"axes": [
{ "orient": "bottom", "scale": "x", "title": "X Axis", "tickColor": "red", "tickWidth": 3, "labelColor": "blue", "titleColor": "green" },
{ "orient": "left", "scale": "y", "title": "Y Axis", "domainColor": "magenta", "domainWidth": 2, "tickWidth": 7 }
],
"marks": [
{
"type": "rect",
"from": { "data": "table" },
"encode": {
"enter": {
"x": { "scale": "x", "field": "x" },
"width": { "scale": "x", "band": 1, "offset": -1 },
"y": { "scale": "y", "field": "y0" },
"y2": { "scale": "y", "field": "y1" },
"fill": { "scale": "color", "field": "c" }
},
"update": {
"fillOpacity": { "value": 1 }
},
"hover": {
"fillOpacity": { "value": 0.5 }
}
}
}
],
"legends": [
{
"fill": "color",
"title": "Legend",
"encode": {
"symbols": {
"update": {
"shape": { "value": "square" }
}
}
}
}
]
};
var view = new VegaMorphCharts.ViewGl(vega.parse(spec), { getView: function () { return '2d'; } })
.renderer('morphcharts')
.initialize(document.querySelector('#vis'))
.run();
})(vegaMorphChartsTest || (vegaMorphChartsTest = {}));

Просмотреть файл

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sanddance qualBarChartTest</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../dist/sanddance/v4/sanddance.css" />
<link rel="stylesheet" href="css/test.css" />
<script src="https://unpkg.com/vega@^5.20/build/vega.js" charset="utf-8"></script>
<script src="../../../dist/sanddance/v4/sanddance.js"></script>
</head>
<body>
<header>
<h1>sanddance qualBarChartTest</h1>
</header>
<div id="vis"></div>
<script src="js/qualBarChartTest.js"></script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sanddance quanBarChartTest</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../dist/sanddance/v4/sanddance.css" />
<link rel="stylesheet" href="css/test.css" />
<script src="https://unpkg.com/vega@^5.20/build/vega.js" charset="utf-8"></script>
<script src="../../../dist/sanddance/v4/sanddance.js"></script>
</head>
<body>
<header>
<h1>sanddance quanBarChartTest</h1>
</header>
<div id="vis"></div>
<script src="js/quanBarChartTest.js"></script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,73 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>sanddance-specs demo</title>
<script src="https://unpkg.com/vega@^5.20/build/vega.js" charset="utf-8"></script>
<script src="https://unpkg.com/@msrvida/sanddance-specs@1/dist/umd/sanddance-specs.js" charset="utf-8"></script>
</head>
<body>
<div id="view"></div>
<script>
vega.loader().load('https://sanddance.js.org/sample-data/titanicmaster.tsv').then(tsv_data => {
const data = vega.read(tsv_data, { type: 'tsv', parse: 'auto' });
const insight = {
"colorBin": "quantize",
"columns": {
"x": "Gender",
"color": "Survived",
"sort": "Survived",
"facet": "Age"
},
"scheme": "set1", //see https://vega.github.io/vega/docs/schemes/#reference
"facetStyle": "wrap",
"size": {
"height": 600,
"width": 800
},
"chart": "barchartV"
};
const columns = SandDanceSpecs.getColumnsFromData(vega.inferTypes, data);
const specColumns = SandDanceSpecs.getSpecColumns(insight, columns);
const specViewOptions = {
colors: {
defaultCube: "steelblue",
axisLine: "#000",
axisText: "#000"
},
language: {
count: "Count"
},
maxLegends: 20,
tickSize: 10
};
const context = { specColumns, insight, specViewOptions };
const specResult = SandDanceSpecs.build(context, data);
if (specResult.errors) {
console.log(specResult.errors);
} else {
console.log(specResult.vegaSpec);
}
const runtime = vega.parse(specResult.vegaSpec);
const vegaView = new vega.View(runtime, {
renderer: 'canvas', // renderer (canvas or svg)
container: '#view', // parent DOM container
});
vegaView.runAsync().then(() => {
console.log(`done`);
}).catch(e => {
console.log(`error ${e}`);
});
});
</script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sanddance scatterplot test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../dist/sanddance/v4/sanddance.css" />
<link rel="stylesheet" href="css/test.css" />
<script src="https://unpkg.com/vega@^5.20/build/vega.js" charset="utf-8"></script>
<script src="../../../dist/sanddance/v4/sanddance.js"></script>
</head>
<body>
<header>
<h1>sanddance scatterplot test</h1>
</header>
<div id="vis"></div>
<script src="js/scatterplotTest.js"></script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,325 @@
{
"$schema": "https://vega.github.io/schema/vega/v3.json",
"width": 700,
"height": 700,
"padding": 5,
"signals": [
{
"name": "depth",
"value": 700
},
{
"name": "xaxis",
"value": "Longitude",
"bind": {
"input": "select",
"options": [
"ProjLongitude",
"ProjLatitude",
"Longitude",
"Latitude",
"TotalPop",
"MedAge",
"Education",
"Income",
"Obama",
"MedHomeValue",
"Winner",
"State"
]
}
},
{
"name": "yaxis",
"value": "Latitude",
"bind": {
"input": "select",
"options": [
"ProjLongitude",
"ProjLatitude",
"Longitude",
"Latitude",
"TotalPop",
"MedAge",
"Education",
"Income",
"Obama",
"MedHomeValue",
"Winner",
"State"
]
}
},
{
"name": "zaxis",
"value": "Obama",
"bind": {
"input": "select",
"options": [
"ProjLongitude",
"ProjLatitude",
"Longitude",
"Latitude",
"TotalPop",
"MedAge",
"Education",
"Income",
"Obama",
"MedHomeValue",
"Winner",
"State"
]
}
},
{
"name": "colorBy",
"value": "Income",
"bind": {
"input": "select",
"options": [
"ProjLongitude",
"ProjLatitude",
"Longitude",
"Latitude",
"TotalPop",
"MedAge",
"Education",
"Income",
"Obama",
"MedHomeValue",
"Winner",
"State"
]
}
},
{
"name": "size",
"value": "MedAge",
"bind": {
"input": "select",
"options": [
"ProjLongitude",
"ProjLatitude",
"Longitude",
"Latitude",
"TotalPop",
"MedAge",
"Education",
"Income",
"Obama",
"MedHomeValue",
"Winner",
"State"
]
}
},
{
"name": "reverseColor",
"value": false,
"bind": {
"input": "checkbox"
}
}
],
"projections": [
{
"name": "projection",
"type": "albersUsa"
}
],
"data": [
{
"name": "source",
"format": {
"type": "tsv",
"parse": "auto"
},
"url": "../../../sample-data/demovote.tsv",
"transform": [
{
"type": "geopoint",
"projection": "projection",
"fields": [
"Longitude",
"Latitude"
],
"as": [
"ProjLongitude",
"ProjLatitude"
]
}
]
}
],
"scales": [
{
"name": "x",
"type": "linear",
"round": true,
"nice": true,
"zero": false,
"domain": {
"data": "source",
"field": {
"signal": "xaxis"
}
},
"range": "width"
},
{
"name": "y",
"type": "linear",
"round": true,
"nice": true,
"zero": false,
"domain": {
"data": "source",
"field": {
"signal": "yaxis"
}
},
"range": "height"
},
{
"name": "z",
"type": "linear",
"round": true,
"nice": true,
"zero": false,
"domain": {
"data": "source",
"field": {
"signal": "zaxis"
}
},
"range": [
0,
{
"signal": "depth"
}
]
},
{
"name": "size",
"type": "linear",
"round": true,
"nice": false,
"zero": true,
"domain": {
"data": "source",
"field": {
"signal": "size"
}
},
"range": [
5,
30
]
},
{
"name": "mycolorscale",
"type": "sequential",
"interpolate": "rgb",
"reverse": {
"signal": "reverseColor"
},
"domain": {
"data": "source",
"field": {
"signal": "colorBy"
}
},
"range": [
"#0000ff",
"#00ff00",
"#ff0000"
]
}
],
"axes": [
{
"scale": "x",
"grid": true,
"domain": false,
"orient": "bottom",
"tickCount": 5,
"title": {
"signal": "xaxis"
}
},
{
"scale": "y",
"grid": true,
"domain": false,
"orient": "left",
"titlePadding": 5,
"title": {
"signal": "yaxis"
}
}
],
"marks": [
{
"name": "marks2",
"type": "rect",
"from": {
"data": "source"
},
"encode": {
"update": {
"x": {
"scale": "x",
"field": {
"signal": "xaxis"
}
},
"y": {
"scale": "y",
"field": {
"signal": "yaxis"
}
},
"z": {
"scale": "z",
"field": {
"signal": "zaxis"
}
},
"depth": {
"scale": "size",
"field": {
"signal": "size"
}
},
"width": {
"scale": "size",
"field": {
"signal": "size"
}
},
"height": {
"scale": "size",
"field": {
"signal": "size"
}
},
"opacity": {
"value": 0.6
},
"fill": {
"scale": "mycolorscale",
"field": {
"signal": "colorBy"
}
},
"stroke": {
"scale": "mycolorscale",
"field": {
"signal": "colorBy"
}
}
}
}
}
]
}

Просмотреть файл

@ -0,0 +1,307 @@
{
"$schema": "https://vega.github.io/schema/vega/v3.json",
"height": 500,
"padding": 5,
"signals": [
{
"name": "columns",
"value": 17,
"bind": {
"input": "range",
"min": 10,
"max": 35,
"step": 1
}
},
{
"name": "bins",
"value": 7,
"bind": {
"input": "range",
"min": 2,
"max": 20,
"step": 1
}
},
{
"name": "x_step",
"value": 200,
"bind": {
"input": "range",
"min": 60,
"max": 200,
"step": 20
}
},
{
"name": "x_padding",
"value": 0.2
},
{
"name": "width",
"update": "bandspace(domain('xscale2').length, x_padding, x_padding) * x_step"
},
{
"name": "height",
"update": "(rowxtent[1])*(bandwidth('xscale')+2*x_padding)"
},
{
"name": "newheight2",
"update": "(rowxtent[1]-1)*(bandwidth('xscale')+2*x_padding)"
},
{
"name": "variable",
"value": "Age",
"bind": {
"input": "select",
"options": [
"Age",
"TicketCost"
]
}
}
],
"data": [
{
"name": "points",
"format": {
"type": "tsv",
"parse": "auto"
},
"url": "../../../sample-data/titanicmaster.tsv"
},
{
"name": "nested",
"source": "points",
"transform": [
{
"type": "extent",
"field": {
"signal": "variable"
},
"signal": "age_extent"
},
{
"type": "bin",
"field": {
"signal": "variable"
},
"extent": {
"signal": "age_extent"
},
"maxbins": {
"signal": "bins"
},
"as": [
"age0",
"age1"
]
},
{
"type": "stack",
"groupby": [
"age0"
],
"sort": {
"field": {
"signal": "variable"
}
}
},
{
"type": "formula",
"expr": "floor(datum.y0 / columns)",
"as": "row"
},
{
"type": "extent",
"signal": "xtent",
"field": "y1"
},
{
"type": "extent",
"signal": "rowxtent",
"field": "row"
},
{
"type": "formula",
"expr": "datum.y0 % columns",
"as": "column"
}
]
}
],
"scales": [
{
"name": "xscale",
"type": "band",
"range": [
0,
{
"signal": "x_step * (1-x_padding)"
}
],
"domain": {
"data": "nested",
"field": "column",
"sort": true
}
},
{
"name": "yscale",
"type": "band",
"range": [
0,
{
"signal": "newheight2"
}
],
"round": true,
"reverse": true,
"align": 1,
"domain": {
"data": "nested",
"field": "row",
"sort": true
},
"zero": true,
"nice": true
},
{
"name": "yscalea",
"type": "band",
"range": [
0,
{
"signal": "height"
}
],
"round": true,
"reverse": true,
"align": 1,
"domain": {
"data": "nested",
"field": "row",
"sort": true
},
"zero": true,
"nice": true
},
{
"name": "xscale2",
"type": "band",
"range": {
"step": {
"signal": "x_step"
}
},
"padding": {
"signal": "x_padding"
},
"domain": {
"data": "nested",
"field": "age0",
"sort": true
}
},
{
"name": "mycolor",
"type": "linear",
"domain": {
"data": "nested",
"field": {
"signal": "variable"
}
},
"range": {
"scheme": "redyellowgreen"
}
}
],
"axes": [
{
"orient": "bottom",
"scale": "xscale2",
"zindex": 1
},
{
"orient": "left",
"scale": "yscalea",
"zindex": 1,
"title": "People",
"encode": {
"ticks": {
"update": {
"stroke": {
"value": "steelblue"
}
}
},
"labels": {
"interactive": true,
"update": {
"text": {
"signal": "columns * datum.value"
}
}
}
}
}
],
"marks": [
{
"type": "rect",
"from": {
"data": "nested"
},
"encode": {
"update": {
"x": {
"scale": "xscale2",
"field": "age0",
"offset": {
"scale": "xscale",
"field": "column"
}
},
"width": {
"scale": "xscale",
"band": true
},
"y": {
"scale": "yscale",
"field": "row",
"band": true
},
"z": {
"field": "TicketCost"
},
"depth": {
"value": 10
},
"id": {
"field": "Id"
},
"height": {
"scale": "xscale",
"band": true
},
"fill": {
"scale": "mycolor",
"field": {
"signal": "variable"
}
},
"stroke": {
"value": "white"
}
},
"hover": {
"fill": {
"value": "firebrick"
}
}
}
}
]
}

Просмотреть файл

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sanddance test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../dist/sanddance/v4/sanddance.css" />
<link rel="stylesheet" href="css/test.css" />
<script src="https://unpkg.com/vega@^5.20/build/vega.js" charset="utf-8"></script>
<script src="../../../dist/sanddance/v4/sanddance.js"></script>
</head>
<body>
<header>
<h1>sanddance test</h1>
</header>
<div id="vis"></div>
<script src="js/test.js"></script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sanddance test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../dist/sanddance/v4/sanddance.css" />
<link rel="stylesheet" href="css/test.css" />
<script src="https://unpkg.com/vega@^5.20/build/vega.js" charset="utf-8"></script>
<script src="../../../dist/sanddance/v4/sanddance.js"></script>
</head>
<body>
<header>
<h1>sanddance transforms test</h1>
</header>
<div id="vis"></div>
<script src="js/transforms.js"></script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>vega-deck.gl transition</title>
<link rel="stylesheet" href="css/transition.css">
</head>
<body class="columns">
<script src="https://unpkg.com/vega@^5.20/build/vega.js" charset="utf-8"></script>
<script src="../../../dist/sanddance/v4/sanddance.js"></script>
<header>
<h1>vega-deck.gl transition editor</h1>
<button id="view-type-button" onclick="transition.toggleView()">2D / 3D</button>
</header>
<div id="split-left" class="double">
<div class="textform">
<textarea id="text1"></textarea>
<button onclick="transition.getText('text1')">Apply this spec</button>
</div>
<div class="textform">
<textarea id="text2"></textarea>
<button onclick="transition.getText('text2')">Apply this spec</button>
</div>
</div>
<div id="split-right">
</div>
<div id="error"></div>
<footer>
</footer>
<script src="js/transition.js"></script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sanddance scatterplot test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../../../dist/sanddance/v4/sanddance.css" />
<link rel="stylesheet" href="css/test.css" />
<script src="https://unpkg.com/vega@^5.20/build/vega.js" charset="utf-8"></script>
<script src="../../../dist/sanddance/v4/sanddance.js"></script>
</head>
<body>
<header>
<h1>sanddance treemap test</h1>
</header>
<div id="vis"></div>
<script src="js/treeMapTest.js"></script>
</body>
</html>

Просмотреть файл

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>vega-morphcharts test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/vega-morphcharts.test.css" />
<script src="https://unpkg.com/vega@^5.20/build/vega.js" charset="utf-8"></script>
<script src="../../../dist/vega-morphcharts/v1/vega-morphcharts.js"></script>
</head>
<body>
<header>
<h1>vega-morphcharts test</h1>
</header>
<div id="vis"></div>
<script src="js/vega-morphcharts.test.js"></script>
</body>
</html>

16
extensions/azdata-sanddance/package-lock.json сгенерированный
Просмотреть файл

@ -1,12 +1,12 @@
{
"name": "azdata-sanddance",
"version": "3.3.0",
"version": "4.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "azdata-sanddance",
"version": "3.3.0",
"version": "4.0.0",
"license": "MIT",
"dependencies": {
"@types/temp-write": "^3.3.0",
@ -55,9 +55,9 @@
}
},
"node_modules/@types/vscode": {
"version": "1.68.1",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.68.1.tgz",
"integrity": "sha512-fXlaq13NT5yHh6yZ3c+UxXloTSk34mIvsNFYyQCeO5Po2BLFAwz7EZT4kQ43B64/aPcnAenyWy3QasrTofBOnQ==",
"version": "1.69.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz",
"integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==",
"dev": true
},
"node_modules/agent-base": {
@ -554,9 +554,9 @@
}
},
"@types/vscode": {
"version": "1.68.1",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.68.1.tgz",
"integrity": "sha512-fXlaq13NT5yHh6yZ3c+UxXloTSk34mIvsNFYyQCeO5Po2BLFAwz7EZT4kQ43B64/aPcnAenyWy3QasrTofBOnQ==",
"version": "1.69.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz",
"integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==",
"dev": true
},
"agent-base": {

Просмотреть файл

@ -2,7 +2,7 @@
"name": "azdata-sanddance",
"displayName": "SandDance for Azure Data Studio",
"description": "Visually explore, understand, and present your data.",
"version": "3.3.0",
"version": "4.0.0",
"icon": "sanddance-logo.png",
"preview": true,
"publisher": "msrvida",

12
extensions/common-backend/package-lock.json сгенерированный
Просмотреть файл

@ -13,17 +13,17 @@
}
},
"node_modules/@types/vscode": {
"version": "1.68.1",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.68.1.tgz",
"integrity": "sha512-fXlaq13NT5yHh6yZ3c+UxXloTSk34mIvsNFYyQCeO5Po2BLFAwz7EZT4kQ43B64/aPcnAenyWy3QasrTofBOnQ==",
"version": "1.69.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz",
"integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==",
"dev": true
}
},
"dependencies": {
"@types/vscode": {
"version": "1.68.1",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.68.1.tgz",
"integrity": "sha512-fXlaq13NT5yHh6yZ3c+UxXloTSk34mIvsNFYyQCeO5Po2BLFAwz7EZT4kQ43B64/aPcnAenyWy3QasrTofBOnQ==",
"version": "1.69.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz",
"integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==",
"dev": true
}
}

2880
extensions/common-frontend/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -21,15 +21,14 @@
},
"homepage": "https://github.com/Microsoft/SandDance#readme",
"dependencies": {
"@fluentui/react": "^7.111.0",
"deck.gl": "8.3.7",
"react": ">=16.8.0 <17.0.0",
"react-dom": ">=16.8.0 <17.0.0",
"@fluentui/react": "^8",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0",
"vega": "5.20"
},
"devDependencies": {
"@msrvida/sanddance-explorer": "^3",
"@types/react": ">=16.8.0 <17.0.0",
"@types/react-dom": ">=16.8.0 <17.0.0"
"@msrvida/sanddance-explorer": "^4",
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0"
}
}

Просмотреть файл

@ -6,7 +6,6 @@ const resources = [
"./node_modules/common-frontend/dist/app.js",
"./node_modules/common-frontend/node_modules/@msrvida/sanddance-explorer/dist/umd/sanddance-explorer.js",
"./node_modules/common-frontend/node_modules/vega/build/vega.js",
"./node_modules/common-frontend/node_modules/deck.gl/dist.min.js",
"./node_modules/common-frontend/node_modules/react/umd/react.production.min.js",
"./node_modules/common-frontend/node_modules/react-dom/umd/react-dom.production.min.js",
"./node_modules/common-frontend/node_modules/@fluentui/react/dist/fluentui-react.js"

Просмотреть файл

@ -1,15 +1,13 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
import SandDance = SandDanceExplorer.SandDance;
import VegaDeckGl = SandDance.VegaDeckGl;
import VegaMorphCharts = SandDance.VegaMorphCharts;
declare let vega: VegaDeckGl.types.VegaBase;
declare let deck: VegaDeckGl.types.DeckBase & VegaDeckGl.types.DeckLayerBase;
declare let luma: VegaDeckGl.types.LumaBase;
declare let vega: VegaMorphCharts.types.VegaBase;
declare let FluentUIReact: _FluentUI.FluentUIComponents;
namespace SandDanceApp {
SandDanceExplorer.use(FluentUIReact, React, ReactDOM, vega, deck, deck, luma);
SandDanceExplorer.use(FluentUIReact, React, ReactDOM, vega);
function getTextcolor() {
return getComputedStyle(document.body).color;

16
extensions/vscode-sanddance/package-lock.json сгенерированный
Просмотреть файл

@ -1,12 +1,12 @@
{
"name": "vscode-sanddance",
"version": "3.3.0",
"version": "4.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "vscode-sanddance",
"version": "3.3.0",
"version": "4.0.0",
"license": "MIT",
"devDependencies": {
"@types/node": "^8.10.25",
@ -33,9 +33,9 @@
"dev": true
},
"node_modules/@types/vscode": {
"version": "1.68.1",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.68.1.tgz",
"integrity": "sha512-fXlaq13NT5yHh6yZ3c+UxXloTSk34mIvsNFYyQCeO5Po2BLFAwz7EZT4kQ43B64/aPcnAenyWy3QasrTofBOnQ==",
"version": "1.69.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz",
"integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==",
"dev": true
},
"node_modules/agent-base": {
@ -457,9 +457,9 @@
"dev": true
},
"@types/vscode": {
"version": "1.68.1",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.68.1.tgz",
"integrity": "sha512-fXlaq13NT5yHh6yZ3c+UxXloTSk34mIvsNFYyQCeO5Po2BLFAwz7EZT4kQ43B64/aPcnAenyWy3QasrTofBOnQ==",
"version": "1.69.0",
"resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz",
"integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==",
"dev": true
},
"agent-base": {

Просмотреть файл

@ -2,7 +2,7 @@
"name": "vscode-sanddance",
"displayName": "SandDance for VSCode",
"description": "Visually explore, understand, and present your data.",
"version": "3.3.0",
"version": "4.0.0",
"icon": "sanddance-logo.png",
"publisher": "msrvida",
"license": "MIT",

Просмотреть файл

@ -8,7 +8,7 @@
"eslint": "lerna run eslint --parallel",
"build-az": "lerna run build --scope azdata-sanddance",
"postinstall": "node ./scripts/copy_inuitcss.js",
"predocs": "lerna run predocs && rimraf docs/docs/vega-deck.gl/v3 && rimraf docs/docs/sanddance/v3 && rimraf docs/docs/sanddance-explorer/v3 && rimraf docs/docs/sanddance-react/v3",
"predocs": "lerna run predocs && rimraf docs/docs/vega-deck.gl/v3 && rimraf docs/docs/vega-morphcharts/v1 && rimraf docs/docs/sanddance-specs/v1 && rimraf docs/docs/sanddance/v4 && rimraf docs/docs/sanddance-explorer/v4 && rimraf docs/docs/sanddance-react/v4",
"docs": "lerna run docs && node ./scripts/readme.js",
"bootstrap": "lerna bootstrap",
"build:sanddance-core": "lerna run build:sanddance-core",
@ -25,8 +25,9 @@
"start-app": "parcel serve ./test/index.html --port 8085 --open --no-autoinstall",
"start": "npm-run-all --parallel watch-typescript watch-css app-dev start-app",
"parcel": "lerna run parcel --parallel",
"restore-dist": "git checkout -q -- ./packages/sanddance/dist/umd/sanddance.d.ts ./packages/vega-deck.gl/dist/umd/vega-deck.gl.d.ts ./packages/vega-morphcharts/dist/umd/vega-morphcharts.d.ts",
"clean-build": "rimraf ./packages/**/dist/ && rimraf ./packages/**/.cache/ && rimraf ./packages/**/.parcel-cache/ && rimraf ./**/package-lock.json && rimraf ./lerna-debug.log",
"clean": "lerna clean --yes && npm run clean-build",
"clean": "lerna clean --yes && npm run clean-build && npm run restore-dist",
"remove-pem": "rimraf **/*.pem && rimraf **/*.key",
"deploy": "lerna run deploy",
"test": "npm run eslint && lerna run test && lerna run package",

4
packages/chart-recommender/package-lock.json сгенерированный
Просмотреть файл

@ -1,12 +1,12 @@
{
"name": "@msrvida/chart-recommender",
"version": "3.1.0",
"version": "3.2.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@msrvida/chart-recommender",
"version": "3.1.0",
"version": "3.2.0",
"license": "MIT",
"devDependencies": {
"vega": "5.20"

Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "@msrvida/chart-recommender",
"version": "3.1.0",
"version": "3.2.0",
"description": "Recommendation engine for SandDance charts",
"main": "dist/es5/index.js",
"repository": {
@ -12,7 +12,8 @@
"dist"
],
"dependencies": {
"@msrvida/sanddance": "^3"
"@msrvida/chart-types": "^1",
"@msrvida/sanddance-specs": "^1"
},
"devDependencies": {
"vega": "5.20"

Просмотреть файл

@ -3,7 +3,7 @@
* Licensed under the MIT License.
*/
import * as SandDance from '@msrvida/sanddance';
import { Column } from '@msrvida/chart-types';
import {
defaultColorScheme,
maxCategoricalColors,
@ -18,7 +18,7 @@ const minDistinctVal = 2;
export class BarChartRecommenderSummary {
public best: Recommendation;
constructor(columns: SandDance.types.Column[], data: object[]) {
constructor(columns: Column[], data: object[]) {
let score: number = -1;
for (let i = 0; i < columns.length; i++) {
const recommendation = new BarChartRecommender(columns[i], data).recommend();
@ -51,10 +51,10 @@ export class BarChartRecommenderSummary {
export class BarChartRecommender implements Recommender {
public rules: Rule[];
public column: SandDance.types.Column;
public column: Column;
public score: number;
constructor(column: SandDance.types.Column, data: object[]) {
constructor(column: Column, data: object[]) {
this.score = 0;
this.column = column;
//the total score for bar chart is 1

Просмотреть файл

@ -3,13 +3,13 @@
* Licensed under the MIT License.
*/
import * as SandDance from '@msrvida/sanddance';
import { Column } from '@msrvida/chart-types';
//TODO: languages other than english
const longitudeNames = ['lon', 'long', 'longitude'];
const latitudeNames = ['lat', 'latitude'];
function isSpec(names: string[], limits: [number, number], column: SandDance.types.Column, data?: object[]) {
function isSpec(names: string[], limits: [number, number], column: Column, data?: object[]) {
let is = false;
const cname = column.name.toLowerCase();
for (let i = 0; i < names.length; i++) {
@ -24,14 +24,14 @@ function isSpec(names: string[], limits: [number, number], column: SandDance.typ
return is;
}
export function isLongitude(column: SandDance.types.Column, data?: object[]) {
export function isLongitude(column: Column, data?: object[]) {
return isSpec(longitudeNames, [-180, 180], column, data);
}
export function isLatitude(column: SandDance.types.Column, data?: object[]) {
export function isLatitude(column: Column, data?: object[]) {
return isSpec(latitudeNames, [-90, 90], column, data);
}
export function isGeo(column: SandDance.types.Column, data?: object[]) {
export function isGeo(column: Column, data?: object[]) {
return isLatitude(column, data) || isLongitude(column, data);
}

Просмотреть файл

@ -3,25 +3,26 @@
* Licensed under the MIT License.
*/
import * as SandDance from '@msrvida/sanddance';
import { Column } from '@msrvida/chart-types';
import { Insight } from '@msrvida/sanddance-specs';
export const maxCategoricalColors: number = 20;
export interface Rule {
(column: SandDance.types.Column): boolean;
(column: Column): boolean;
}
export interface Recommendation extends Partial<SandDance.specs.Insight> {
export interface Recommendation extends Partial<Insight> {
score: number;
}
export abstract class Recommender {
constructor(columns: SandDance.types.Column, data: object[]) { }
constructor(columns: Column, data: object[]) { }
abstract rules: Rule[];
abstract recommend(): Recommendation;
}
export function defaultColorScheme(c: SandDance.types.Column) {
export function defaultColorScheme(c: Column) {
if (c.quantitative) {
return 'redyellowgreen';
} else if (c.stats.distinctValueCount === 2) {

Просмотреть файл

@ -3,7 +3,7 @@
* Licensed under the MIT License.
*/
import * as SandDance from '@msrvida/sanddance';
import { Column } from '@msrvida/chart-types';
import { BarChartRecommenderSummary } from './barChart';
import { Recommendation } from './recommender';
import { ScatterPlotRecommenderSummary } from './scatterPlot';
@ -11,7 +11,7 @@ import { ScatterPlotRecommenderSummary } from './scatterPlot';
export class RecommenderSummary {
public rec: Recommendation;
constructor(columns: SandDance.types.Column[], data: object[]) {
constructor(columns: Column[], data: object[]) {
const quickRec: Recommendation = new ScatterPlotRecommenderSummary(columns, data).recommend();
if (quickRec) {
this.rec = quickRec;

Просмотреть файл

@ -3,14 +3,14 @@
* Licensed under the MIT License.
*/
import * as SandDance from '@msrvida/sanddance';
import { Column } from '@msrvida/chart-types';
import { defaultColorScheme, maxCategoricalColors, Recommendation } from './recommender';
import { isLatitude, isLongitude } from './geo';
export class ScatterPlotRecommenderSummary {
public best: Recommendation;
constructor(columns: SandDance.types.Column[], data: object[]) {
constructor(columns: Column[], data: object[]) {
const rec: Recommendation = {
chart: 'scatterplot',
score: undefined,

Просмотреть файл

@ -3,10 +3,10 @@
* Licensed under the MIT License.
*/
import * as SandDance from '@msrvida/sanddance';
import { Column } from '@msrvida/chart-types';
import { isGeo } from './geo';
export function preferredColumnForTreemapSize(columns: SandDance.types.Column[], strict: boolean) {
export function preferredColumnForTreemapSize(columns: Column[], strict: boolean) {
for (let i = 0; i < columns.length; i++) {
const c = columns[i];
if (c.quantitative) {

Просмотреть файл

@ -4,8 +4,7 @@ var assert = require('assert');
var recommender = require("../dist/es5");
var fs = require('fs');
var vega = require('vega');
var SandDance = require('@msrvida/sanddance/dist/umd/sanddance');
SandDance.use(vega);
var { getColumnsFromData } = require('@msrvida/sanddance-specs/dist/umd/sanddance-specs');
var sampleDir = './test-data/';
@ -14,14 +13,14 @@ function GetDataAndColumns(sampleFile) {
fs.readFile(sampleDir + sampleFile, function (err, buffer) {
const rawText = buffer.toString();
const data = vega.read(rawText, { type: 'tsv', parse: "auto" });
const columns = SandDance.util.getColumnsFromData(vega.inferTypes, data);
const columns = getColumnsFromData(vega.inferTypes, data);
resolve({ data, columns });
});
});
}
function RawDataAndColumns(data) {
const columns = SandDance.util.getColumnsFromData(vega.inferTypes, data);
const columns = getColumnsFromData(vega.inferTypes, data);
return { data, columns };
}

706
packages/fluentui-react-cdn-typings/package-lock.json сгенерированный
Просмотреть файл

@ -1,54 +1,101 @@
{
"name": "@msrvida/fluentui-react-cdn-typings",
"version": "1.0.2",
"version": "2.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@msrvida/fluentui-react-cdn-typings",
"version": "1.0.2",
"version": "2.0.0",
"license": "MIT",
"dependencies": {
"@fluentui/react": "^7.150.0"
"@fluentui/react": "^8"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <17.0.0"
"@types/react": ">=16.8.0 <18.0.0"
}
},
"node_modules/@fluentui/date-time-utilities": {
"version": "7.9.1",
"resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.9.1.tgz",
"integrity": "sha512-o8iU1VIY+QsqVRWARKiky29fh4KR1xaKSgMClXIi65qkt8EDDhjmlzL0KVDEoDA2GWukwb/1PpaVCWDg4v3cUQ==",
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.1.tgz",
"integrity": "sha512-i8GXoIbPipug5cGZ4Dei0oXu7L4wia6DGMAzvabvSHwTjprbR5YjRrrr4UVtBr9gNx1v4Iv1yeD3XSc8DI9JDg==",
"dependencies": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
"@fluentui/set-version": "^8.2.1",
"tslib": "^2.1.0"
}
},
"node_modules/@fluentui/dom-utilities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-1.1.2.tgz",
"integrity": "sha512-XqPS7l3YoMwxdNlaYF6S2Mp0K3FmVIOIy2K3YkMc+eRxu9wFK6emr2Q/3rBhtG5u/On37NExRT7/5CTLnoi9gw==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.1.tgz",
"integrity": "sha512-na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==",
"dependencies": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
"@fluentui/set-version": "^8.2.1",
"tslib": "^2.1.0"
}
},
"node_modules/@fluentui/font-icons-mdl2": {
"version": "8.4.3",
"resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.3.tgz",
"integrity": "sha512-YKyCTVvV5qpSOS9EsulA+QYLyUEw7QhLzmcBWC4USu0WPhSy/cOfUUvemRl2JSsxErfuOM50OI80RKfuqNwsTA==",
"dependencies": {
"@fluentui/set-version": "^8.2.1",
"@fluentui/style-utilities": "^8.7.2",
"@fluentui/utilities": "^8.9.0",
"tslib": "^2.1.0"
}
},
"node_modules/@fluentui/foundation-legacy": {
"version": "8.2.10",
"resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.10.tgz",
"integrity": "sha512-/ku+mSLTEIKf/HGavt9k+/njgAXGHXu4hoxRYRHbYr1O9hUe50cm5DctPQg+z/YDPNzsb1ltSmNqgWPvBOSW6A==",
"dependencies": {
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/set-version": "^8.2.1",
"@fluentui/style-utilities": "^8.7.2",
"@fluentui/utilities": "^8.9.0",
"tslib": "^2.1.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0"
}
},
"node_modules/@fluentui/keyboard-key": {
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.17.tgz",
"integrity": "sha512-iT1bU56rKrKEOfODoW6fScY11qj3iaYrZ+z11T6fo5+TDm84UGkkXjLXJTE57ZJzg0/gbccHQWYv+chY7bJN8Q==",
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.1.tgz",
"integrity": "sha512-8WkNPh0tnzrrZYs19qN8Zavaebz9FHyTFXKTv0QJ55rZ7uQfAV7VHxS/74aUP4bqeRWJtzaOJKUxkjEAPcDbug==",
"dependencies": {
"tslib": "^1.10.0"
"tslib": "^2.1.0"
}
},
"node_modules/@fluentui/merge-styles": {
"version": "8.5.2",
"resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.2.tgz",
"integrity": "sha512-ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==",
"dependencies": {
"@fluentui/set-version": "^8.2.1",
"tslib": "^2.1.0"
}
},
"node_modules/@fluentui/react": {
"version": "7.188.0",
"resolved": "https://registry.npmjs.org/@fluentui/react/-/react-7.188.0.tgz",
"integrity": "sha512-kkE0VEkfOZYhJIdYuDtHPXFWoLbjaNfWKV+ZHgVRVmyki+OWzblSMrKAOzoc9Sf2HmiYHAkhSMLLEDCVNK9tRA==",
"version": "8.81.1",
"resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.81.1.tgz",
"integrity": "sha512-iTdfjWMsMwdvc2ZRQBg/nBUhX0mmttjH0pbMZ8RgcMLuSDauQnDwMN3gEWRZ+fInUGcqTE1hzEdoLS75Dl3bAg==",
"dependencies": {
"@uifabric/set-version": "^7.0.24",
"office-ui-fabric-react": "^7.188.0",
"tslib": "^1.10.0"
"@fluentui/date-time-utilities": "^8.5.1",
"@fluentui/font-icons-mdl2": "^8.4.3",
"@fluentui/foundation-legacy": "^8.2.10",
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/react-focus": "^8.7.3",
"@fluentui/react-hooks": "^8.6.1",
"@fluentui/react-portal-compat-context": "^9.0.1",
"@fluentui/react-window-provider": "^2.2.1",
"@fluentui/set-version": "^8.2.1",
"@fluentui/style-utilities": "^8.7.2",
"@fluentui/theme": "^2.6.7",
"@fluentui/utilities": "^8.9.0",
"@microsoft/load-themed-styles": "^1.10.26",
"tslib": "^2.1.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
@ -58,60 +105,117 @@
}
},
"node_modules/@fluentui/react-focus": {
"version": "7.18.4",
"resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.18.4.tgz",
"integrity": "sha512-9TqpaHHGB6QUK/SN3H4IdAnkI2T0VVLIPsC+J7tB3Zlw5G4nFYbYFL9N5b+HzkH4NCKW7ad11EHn7vafyF52+w==",
"version": "8.7.3",
"resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.3.tgz",
"integrity": "sha512-d/AwXzcPMoiPpzbpkHpfTyDcvYvga2DWNYq1Rh+QJsAGzN34bimu5xSxE21mbeXyz+TYx7yglElGp7GlT33s3Q==",
"dependencies": {
"@fluentui/keyboard-key": "^0.2.12",
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
"@uifabric/styling": "^7.20.2",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
"@fluentui/keyboard-key": "^0.4.1",
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/set-version": "^8.2.1",
"@fluentui/style-utilities": "^8.7.2",
"@fluentui/utilities": "^8.9.0",
"tslib": "^2.1.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0"
"react": ">=16.8.0 <18.0.0"
}
},
"node_modules/@fluentui/react-hooks": {
"version": "8.6.1",
"resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.1.tgz",
"integrity": "sha512-t9l+O+ZjTiGSuKQ9SxqRRo50C1h69jZFzb+s/vc0vBtvsIoYfR+Jj8qH3hxtkhv/iC+SCj1dgDCEJwGyH7pf3Q==",
"dependencies": {
"@fluentui/react-window-provider": "^2.2.1",
"@fluentui/set-version": "^8.2.1",
"@fluentui/utilities": "^8.9.0",
"tslib": "^2.1.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0"
}
},
"node_modules/@fluentui/react-portal-compat-context": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/@fluentui/react-portal-compat-context/-/react-portal-compat-context-9.0.1.tgz",
"integrity": "sha512-KhOcXy2tvzNoAqFowkaRGFiLuRuPjzn6i1W30iMkhgsSVKxa/9jxso86Z8R0eZwA+16RNO/Ia2nX1gqfUac9mw==",
"dependencies": {
"tslib": "^2.1.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0"
}
},
"node_modules/@fluentui/react-window-provider": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-1.0.3.tgz",
"integrity": "sha512-nFFhYlEWDSklAFjw87hQuOO5ZQP8or4J12ZJ7Glf+pcifRl0AySBshuGTJsTyZ0QyzgIeQYGSYf6wcPtycS0aA==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.1.tgz",
"integrity": "sha512-Y0j+lAYKeD/qswzFZWPkHmvtBlRS2WPJIkpyGvfBVZaCeq3DGKRppoOCOmED762bKOXzM/G/ZNEcBa7CY1gkYw==",
"dependencies": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
"@fluentui/set-version": "^8.2.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0"
"react": ">=16.8.0 <18.0.0"
}
},
"node_modules/@fluentui/set-version": {
"version": "8.2.1",
"resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.1.tgz",
"integrity": "sha512-SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/@fluentui/style-utilities": {
"version": "8.7.2",
"resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.2.tgz",
"integrity": "sha512-sDNsXUXdk4qAllADH46o0Fq1VOgWCDS+J/t3UFc6DA4a0R3J/M0o5COAh+S4/kLkJoKBQ+T+TqZJmA+Cj+hlCA==",
"dependencies": {
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/set-version": "^8.2.1",
"@fluentui/theme": "^2.6.7",
"@fluentui/utilities": "^8.9.0",
"@microsoft/load-themed-styles": "^1.10.26",
"tslib": "^2.1.0"
}
},
"node_modules/@fluentui/theme": {
"version": "1.7.6",
"resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-1.7.6.tgz",
"integrity": "sha512-AcQSs3MpCxl63HE/4iJMwNVvPB6e0evvMMvELSK1sro199j1t14WSwTPwTHYsBeBxdX3mH9NixrB02tzXgJK6A==",
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.7.tgz",
"integrity": "sha512-uSvUkGLFcIjVuYPtwjdgnUd7Fqd6TXakM1Gh0xqPbBPm4Kiig7mpRDfMUneAI8t0j5otEeqeNokoLs5rMNGOBg==",
"dependencies": {
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/set-version": "^8.2.1",
"@fluentui/utilities": "^8.9.0",
"tslib": "^2.1.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0"
"react": ">=16.8.0 <18.0.0"
}
},
"node_modules/@fluentui/utilities": {
"version": "8.9.0",
"resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.9.0.tgz",
"integrity": "sha512-fK3GjWygRhKDuVxIAMqcfP0UZGhnifygzhrZDIanKc4/+9CoIY/BVtHryRF+zF0sGEXF5kDarsMsLAeCnB2YhA==",
"dependencies": {
"@fluentui/dom-utilities": "^2.2.1",
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/set-version": "^8.2.1",
"tslib": "^2.1.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0"
}
},
"node_modules/@microsoft/load-themed-styles": {
"version": "1.10.279",
"resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.279.tgz",
"integrity": "sha512-5JvB3Jz6KVPHx5spCEIvsZsx+AbMvur/SkMqhPqYgkAOZbBvHXFHc/XW4x55E7CrImiG1o8JyTfD4hR8XUFjNg=="
"version": "1.10.281",
"resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.281.tgz",
"integrity": "sha512-91uZ4u6p5ZClHQE2RpJKTZALeCl1G9cZB47SPivfPrRtjrhqCfS3gC3zNoikUhpwccWjfSN50zjm289Wxkf/8Q=="
},
"node_modules/@types/prop-types": {
"version": "15.7.5",
@ -120,9 +224,9 @@
"peer": true
},
"node_modules/@types/react": {
"version": "16.14.28",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.28.tgz",
"integrity": "sha512-83zBE6+XUVXsdL3iFzOyUewdauaU+KviKCHEGOgSW52coAuqW7tEKQM0E9+ZC0Zk6TELQ2/JgogPvp7FavzFwg==",
"version": "17.0.47",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz",
"integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==",
"peer": true,
"dependencies": {
"@types/prop-types": "*",
@ -139,117 +243,12 @@
"@types/react": "^17"
}
},
"node_modules/@types/react-dom/node_modules/@types/react": {
"version": "17.0.47",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz",
"integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==",
"peer": true,
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
"csstype": "^3.0.2"
}
},
"node_modules/@types/scheduler": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
"peer": true
},
"node_modules/@uifabric/foundation": {
"version": "7.10.3",
"resolved": "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.10.3.tgz",
"integrity": "sha512-ZP1tISpinWZHxQunqUwMWs2imX7/osOYgokSZhWzcAWMCC3TOwiU5w7oAXcKsIpMkPxI13ivac5S66qDad+IwA==",
"dependencies": {
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
"@uifabric/styling": "^7.20.2",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0"
}
},
"node_modules/@uifabric/icons": {
"version": "7.7.2",
"resolved": "https://registry.npmjs.org/@uifabric/icons/-/icons-7.7.2.tgz",
"integrity": "sha512-3f223BZ5TXTF37J7lG+saGBY7U8vAi5HyMP58ccIoUafOj5551h5sovPFD/hVIYzYFhvT+/VpbUzF3vw+RARHA==",
"dependencies": {
"@uifabric/set-version": "^7.0.24",
"@uifabric/styling": "^7.20.2",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
}
},
"node_modules/@uifabric/merge-styles": {
"version": "7.19.2",
"resolved": "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.19.2.tgz",
"integrity": "sha512-kTlhwglDqwVgIaJq+0yXgzi65plGhmFcPrfme/rXUGMJZoU+qlGT5jXj5d3kuI59p6VB8jWEg9DAxHozhYeu0g==",
"dependencies": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
}
},
"node_modules/@uifabric/react-hooks": {
"version": "7.14.2",
"resolved": "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.14.2.tgz",
"integrity": "sha512-7KCHxXoZhdVDfPY+ZF7+FGh7sD5naDyDE2uOos+kaRg10iuOhz/9QPLsZAIqMDpDS/l5G5DGv4EAgBaiEZbs6Q==",
"dependencies": {
"@fluentui/react-window-provider": "^1.0.3",
"@uifabric/set-version": "^7.0.24",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0"
}
},
"node_modules/@uifabric/set-version": {
"version": "7.0.24",
"resolved": "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.24.tgz",
"integrity": "sha512-t0Pt21dRqdC707/ConVJC0WvcQ/KF7tKLU8AZY7YdjgJpMHi1c0C427DB4jfUY19I92f60LOQyhJ4efH+KpFEg==",
"dependencies": {
"tslib": "^1.10.0"
}
},
"node_modules/@uifabric/styling": {
"version": "7.20.2",
"resolved": "https://registry.npmjs.org/@uifabric/styling/-/styling-7.20.2.tgz",
"integrity": "sha512-FiGdeTsfJAs8qrqU2aLx70C2MT8YsjraMzr0HSiXKFQ2/LM4hwAYpbC41NIHzUemm63uA8NJRLHJlSv3S7V2SQ==",
"dependencies": {
"@fluentui/theme": "^1.7.6",
"@microsoft/load-themed-styles": "^1.10.26",
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
}
},
"node_modules/@uifabric/utilities": {
"version": "7.34.1",
"resolved": "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.34.1.tgz",
"integrity": "sha512-gmQ94x/wj/my7zByFMXapLF5jDmRugWuBngx6gdvnw9rRme0YoN0G3S47vr3aw6ZTsXEnb6SJFnbtVyAGMmZRg==",
"dependencies": {
"@fluentui/dom-utilities": "^1.1.2",
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
"prop-types": "^15.7.2",
"tslib": "^1.10.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0"
}
},
"node_modules/csstype": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
@ -259,12 +258,14 @@
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"peer": true
},
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"peer": true,
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@ -276,46 +277,11 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/office-ui-fabric-react": {
"version": "7.188.0",
"resolved": "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.188.0.tgz",
"integrity": "sha512-N5ShkBPRbho251vsGfP3kuYHESQieTnwh4xtxa60zkVk64oNkn1VaEYayP5sF5o5FUp3ganIcjBGH6DCpcXzCA==",
"dependencies": {
"@fluentui/date-time-utilities": "^7.9.1",
"@fluentui/react-focus": "^7.18.4",
"@fluentui/react-window-provider": "^1.0.3",
"@microsoft/load-themed-styles": "^1.10.26",
"@uifabric/foundation": "^7.10.3",
"@uifabric/icons": "^7.7.2",
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/react-hooks": "^7.14.2",
"@uifabric/set-version": "^7.0.24",
"@uifabric/styling": "^7.20.2",
"@uifabric/utilities": "^7.34.1",
"prop-types": "^15.7.2",
"tslib": "^1.10.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0"
}
},
"node_modules/prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
"react-is": "^16.13.1"
}
},
"node_modules/react": {
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
@ -343,11 +309,6 @@
"react": "17.0.2"
}
},
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/scheduler": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
@ -359,85 +320,179 @@
}
},
"node_modules/tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
},
"dependencies": {
"@fluentui/date-time-utilities": {
"version": "7.9.1",
"resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.9.1.tgz",
"integrity": "sha512-o8iU1VIY+QsqVRWARKiky29fh4KR1xaKSgMClXIi65qkt8EDDhjmlzL0KVDEoDA2GWukwb/1PpaVCWDg4v3cUQ==",
"version": "8.5.1",
"resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.1.tgz",
"integrity": "sha512-i8GXoIbPipug5cGZ4Dei0oXu7L4wia6DGMAzvabvSHwTjprbR5YjRrrr4UVtBr9gNx1v4Iv1yeD3XSc8DI9JDg==",
"requires": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
"@fluentui/set-version": "^8.2.1",
"tslib": "^2.1.0"
}
},
"@fluentui/dom-utilities": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-1.1.2.tgz",
"integrity": "sha512-XqPS7l3YoMwxdNlaYF6S2Mp0K3FmVIOIy2K3YkMc+eRxu9wFK6emr2Q/3rBhtG5u/On37NExRT7/5CTLnoi9gw==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.1.tgz",
"integrity": "sha512-na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==",
"requires": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
"@fluentui/set-version": "^8.2.1",
"tslib": "^2.1.0"
}
},
"@fluentui/font-icons-mdl2": {
"version": "8.4.3",
"resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.3.tgz",
"integrity": "sha512-YKyCTVvV5qpSOS9EsulA+QYLyUEw7QhLzmcBWC4USu0WPhSy/cOfUUvemRl2JSsxErfuOM50OI80RKfuqNwsTA==",
"requires": {
"@fluentui/set-version": "^8.2.1",
"@fluentui/style-utilities": "^8.7.2",
"@fluentui/utilities": "^8.9.0",
"tslib": "^2.1.0"
}
},
"@fluentui/foundation-legacy": {
"version": "8.2.10",
"resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.10.tgz",
"integrity": "sha512-/ku+mSLTEIKf/HGavt9k+/njgAXGHXu4hoxRYRHbYr1O9hUe50cm5DctPQg+z/YDPNzsb1ltSmNqgWPvBOSW6A==",
"requires": {
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/set-version": "^8.2.1",
"@fluentui/style-utilities": "^8.7.2",
"@fluentui/utilities": "^8.9.0",
"tslib": "^2.1.0"
}
},
"@fluentui/keyboard-key": {
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.17.tgz",
"integrity": "sha512-iT1bU56rKrKEOfODoW6fScY11qj3iaYrZ+z11T6fo5+TDm84UGkkXjLXJTE57ZJzg0/gbccHQWYv+chY7bJN8Q==",
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.1.tgz",
"integrity": "sha512-8WkNPh0tnzrrZYs19qN8Zavaebz9FHyTFXKTv0QJ55rZ7uQfAV7VHxS/74aUP4bqeRWJtzaOJKUxkjEAPcDbug==",
"requires": {
"tslib": "^1.10.0"
"tslib": "^2.1.0"
}
},
"@fluentui/merge-styles": {
"version": "8.5.2",
"resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.2.tgz",
"integrity": "sha512-ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==",
"requires": {
"@fluentui/set-version": "^8.2.1",
"tslib": "^2.1.0"
}
},
"@fluentui/react": {
"version": "7.188.0",
"resolved": "https://registry.npmjs.org/@fluentui/react/-/react-7.188.0.tgz",
"integrity": "sha512-kkE0VEkfOZYhJIdYuDtHPXFWoLbjaNfWKV+ZHgVRVmyki+OWzblSMrKAOzoc9Sf2HmiYHAkhSMLLEDCVNK9tRA==",
"version": "8.81.1",
"resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.81.1.tgz",
"integrity": "sha512-iTdfjWMsMwdvc2ZRQBg/nBUhX0mmttjH0pbMZ8RgcMLuSDauQnDwMN3gEWRZ+fInUGcqTE1hzEdoLS75Dl3bAg==",
"requires": {
"@uifabric/set-version": "^7.0.24",
"office-ui-fabric-react": "^7.188.0",
"tslib": "^1.10.0"
"@fluentui/date-time-utilities": "^8.5.1",
"@fluentui/font-icons-mdl2": "^8.4.3",
"@fluentui/foundation-legacy": "^8.2.10",
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/react-focus": "^8.7.3",
"@fluentui/react-hooks": "^8.6.1",
"@fluentui/react-portal-compat-context": "^9.0.1",
"@fluentui/react-window-provider": "^2.2.1",
"@fluentui/set-version": "^8.2.1",
"@fluentui/style-utilities": "^8.7.2",
"@fluentui/theme": "^2.6.7",
"@fluentui/utilities": "^8.9.0",
"@microsoft/load-themed-styles": "^1.10.26",
"tslib": "^2.1.0"
}
},
"@fluentui/react-focus": {
"version": "7.18.4",
"resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.18.4.tgz",
"integrity": "sha512-9TqpaHHGB6QUK/SN3H4IdAnkI2T0VVLIPsC+J7tB3Zlw5G4nFYbYFL9N5b+HzkH4NCKW7ad11EHn7vafyF52+w==",
"version": "8.7.3",
"resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.3.tgz",
"integrity": "sha512-d/AwXzcPMoiPpzbpkHpfTyDcvYvga2DWNYq1Rh+QJsAGzN34bimu5xSxE21mbeXyz+TYx7yglElGp7GlT33s3Q==",
"requires": {
"@fluentui/keyboard-key": "^0.2.12",
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
"@uifabric/styling": "^7.20.2",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
"@fluentui/keyboard-key": "^0.4.1",
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/set-version": "^8.2.1",
"@fluentui/style-utilities": "^8.7.2",
"@fluentui/utilities": "^8.9.0",
"tslib": "^2.1.0"
}
},
"@fluentui/react-hooks": {
"version": "8.6.1",
"resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.1.tgz",
"integrity": "sha512-t9l+O+ZjTiGSuKQ9SxqRRo50C1h69jZFzb+s/vc0vBtvsIoYfR+Jj8qH3hxtkhv/iC+SCj1dgDCEJwGyH7pf3Q==",
"requires": {
"@fluentui/react-window-provider": "^2.2.1",
"@fluentui/set-version": "^8.2.1",
"@fluentui/utilities": "^8.9.0",
"tslib": "^2.1.0"
}
},
"@fluentui/react-portal-compat-context": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/@fluentui/react-portal-compat-context/-/react-portal-compat-context-9.0.1.tgz",
"integrity": "sha512-KhOcXy2tvzNoAqFowkaRGFiLuRuPjzn6i1W30iMkhgsSVKxa/9jxso86Z8R0eZwA+16RNO/Ia2nX1gqfUac9mw==",
"requires": {
"tslib": "^2.1.0"
}
},
"@fluentui/react-window-provider": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-1.0.3.tgz",
"integrity": "sha512-nFFhYlEWDSklAFjw87hQuOO5ZQP8or4J12ZJ7Glf+pcifRl0AySBshuGTJsTyZ0QyzgIeQYGSYf6wcPtycS0aA==",
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.1.tgz",
"integrity": "sha512-Y0j+lAYKeD/qswzFZWPkHmvtBlRS2WPJIkpyGvfBVZaCeq3DGKRppoOCOmED762bKOXzM/G/ZNEcBa7CY1gkYw==",
"requires": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
"@fluentui/set-version": "^8.2.1",
"tslib": "^2.1.0"
}
},
"@fluentui/set-version": {
"version": "8.2.1",
"resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.1.tgz",
"integrity": "sha512-SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==",
"requires": {
"tslib": "^2.1.0"
}
},
"@fluentui/style-utilities": {
"version": "8.7.2",
"resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.2.tgz",
"integrity": "sha512-sDNsXUXdk4qAllADH46o0Fq1VOgWCDS+J/t3UFc6DA4a0R3J/M0o5COAh+S4/kLkJoKBQ+T+TqZJmA+Cj+hlCA==",
"requires": {
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/set-version": "^8.2.1",
"@fluentui/theme": "^2.6.7",
"@fluentui/utilities": "^8.9.0",
"@microsoft/load-themed-styles": "^1.10.26",
"tslib": "^2.1.0"
}
},
"@fluentui/theme": {
"version": "1.7.6",
"resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-1.7.6.tgz",
"integrity": "sha512-AcQSs3MpCxl63HE/4iJMwNVvPB6e0evvMMvELSK1sro199j1t14WSwTPwTHYsBeBxdX3mH9NixrB02tzXgJK6A==",
"version": "2.6.7",
"resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.7.tgz",
"integrity": "sha512-uSvUkGLFcIjVuYPtwjdgnUd7Fqd6TXakM1Gh0xqPbBPm4Kiig7mpRDfMUneAI8t0j5otEeqeNokoLs5rMNGOBg==",
"requires": {
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/set-version": "^8.2.1",
"@fluentui/utilities": "^8.9.0",
"tslib": "^2.1.0"
}
},
"@fluentui/utilities": {
"version": "8.9.0",
"resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.9.0.tgz",
"integrity": "sha512-fK3GjWygRhKDuVxIAMqcfP0UZGhnifygzhrZDIanKc4/+9CoIY/BVtHryRF+zF0sGEXF5kDarsMsLAeCnB2YhA==",
"requires": {
"@fluentui/dom-utilities": "^2.2.1",
"@fluentui/merge-styles": "^8.5.2",
"@fluentui/set-version": "^8.2.1",
"tslib": "^2.1.0"
}
},
"@microsoft/load-themed-styles": {
"version": "1.10.279",
"resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.279.tgz",
"integrity": "sha512-5JvB3Jz6KVPHx5spCEIvsZsx+AbMvur/SkMqhPqYgkAOZbBvHXFHc/XW4x55E7CrImiG1o8JyTfD4hR8XUFjNg=="
"version": "1.10.281",
"resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.281.tgz",
"integrity": "sha512-91uZ4u6p5ZClHQE2RpJKTZALeCl1G9cZB47SPivfPrRtjrhqCfS3gC3zNoikUhpwccWjfSN50zjm289Wxkf/8Q=="
},
"@types/prop-types": {
"version": "15.7.5",
@ -446,9 +501,9 @@
"peer": true
},
"@types/react": {
"version": "16.14.28",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.28.tgz",
"integrity": "sha512-83zBE6+XUVXsdL3iFzOyUewdauaU+KviKCHEGOgSW52coAuqW7tEKQM0E9+ZC0Zk6TELQ2/JgogPvp7FavzFwg==",
"version": "17.0.47",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz",
"integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==",
"peer": true,
"requires": {
"@types/prop-types": "*",
@ -463,19 +518,6 @@
"peer": true,
"requires": {
"@types/react": "^17"
},
"dependencies": {
"@types/react": {
"version": "17.0.47",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz",
"integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==",
"peer": true,
"requires": {
"@types/prop-types": "*",
"@types/scheduler": "*",
"csstype": "^3.0.2"
}
}
}
},
"@types/scheduler": {
@ -484,82 +526,6 @@
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
"peer": true
},
"@uifabric/foundation": {
"version": "7.10.3",
"resolved": "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.10.3.tgz",
"integrity": "sha512-ZP1tISpinWZHxQunqUwMWs2imX7/osOYgokSZhWzcAWMCC3TOwiU5w7oAXcKsIpMkPxI13ivac5S66qDad+IwA==",
"requires": {
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
"@uifabric/styling": "^7.20.2",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
}
},
"@uifabric/icons": {
"version": "7.7.2",
"resolved": "https://registry.npmjs.org/@uifabric/icons/-/icons-7.7.2.tgz",
"integrity": "sha512-3f223BZ5TXTF37J7lG+saGBY7U8vAi5HyMP58ccIoUafOj5551h5sovPFD/hVIYzYFhvT+/VpbUzF3vw+RARHA==",
"requires": {
"@uifabric/set-version": "^7.0.24",
"@uifabric/styling": "^7.20.2",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
}
},
"@uifabric/merge-styles": {
"version": "7.19.2",
"resolved": "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.19.2.tgz",
"integrity": "sha512-kTlhwglDqwVgIaJq+0yXgzi65plGhmFcPrfme/rXUGMJZoU+qlGT5jXj5d3kuI59p6VB8jWEg9DAxHozhYeu0g==",
"requires": {
"@uifabric/set-version": "^7.0.24",
"tslib": "^1.10.0"
}
},
"@uifabric/react-hooks": {
"version": "7.14.2",
"resolved": "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.14.2.tgz",
"integrity": "sha512-7KCHxXoZhdVDfPY+ZF7+FGh7sD5naDyDE2uOos+kaRg10iuOhz/9QPLsZAIqMDpDS/l5G5DGv4EAgBaiEZbs6Q==",
"requires": {
"@fluentui/react-window-provider": "^1.0.3",
"@uifabric/set-version": "^7.0.24",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
}
},
"@uifabric/set-version": {
"version": "7.0.24",
"resolved": "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.24.tgz",
"integrity": "sha512-t0Pt21dRqdC707/ConVJC0WvcQ/KF7tKLU8AZY7YdjgJpMHi1c0C427DB4jfUY19I92f60LOQyhJ4efH+KpFEg==",
"requires": {
"tslib": "^1.10.0"
}
},
"@uifabric/styling": {
"version": "7.20.2",
"resolved": "https://registry.npmjs.org/@uifabric/styling/-/styling-7.20.2.tgz",
"integrity": "sha512-FiGdeTsfJAs8qrqU2aLx70C2MT8YsjraMzr0HSiXKFQ2/LM4hwAYpbC41NIHzUemm63uA8NJRLHJlSv3S7V2SQ==",
"requires": {
"@fluentui/theme": "^1.7.6",
"@microsoft/load-themed-styles": "^1.10.26",
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
"@uifabric/utilities": "^7.34.1",
"tslib": "^1.10.0"
}
},
"@uifabric/utilities": {
"version": "7.34.1",
"resolved": "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.34.1.tgz",
"integrity": "sha512-gmQ94x/wj/my7zByFMXapLF5jDmRugWuBngx6gdvnw9rRme0YoN0G3S47vr3aw6ZTsXEnb6SJFnbtVyAGMmZRg==",
"requires": {
"@fluentui/dom-utilities": "^1.1.2",
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/set-version": "^7.0.24",
"prop-types": "^15.7.2",
"tslib": "^1.10.0"
}
},
"csstype": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
@ -569,12 +535,14 @@
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"peer": true
},
"loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"peer": true,
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
@ -582,37 +550,8 @@
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
},
"office-ui-fabric-react": {
"version": "7.188.0",
"resolved": "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.188.0.tgz",
"integrity": "sha512-N5ShkBPRbho251vsGfP3kuYHESQieTnwh4xtxa60zkVk64oNkn1VaEYayP5sF5o5FUp3ganIcjBGH6DCpcXzCA==",
"requires": {
"@fluentui/date-time-utilities": "^7.9.1",
"@fluentui/react-focus": "^7.18.4",
"@fluentui/react-window-provider": "^1.0.3",
"@microsoft/load-themed-styles": "^1.10.26",
"@uifabric/foundation": "^7.10.3",
"@uifabric/icons": "^7.7.2",
"@uifabric/merge-styles": "^7.19.2",
"@uifabric/react-hooks": "^7.14.2",
"@uifabric/set-version": "^7.0.24",
"@uifabric/styling": "^7.20.2",
"@uifabric/utilities": "^7.34.1",
"prop-types": "^15.7.2",
"tslib": "^1.10.0"
}
},
"prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"requires": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
"react-is": "^16.13.1"
}
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"peer": true
},
"react": {
"version": "17.0.2",
@ -635,11 +574,6 @@
"scheduler": "^0.20.2"
}
},
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"scheduler": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
@ -651,9 +585,9 @@
}
},
"tslib": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
"integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
}

Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "@msrvida/fluentui-react-cdn-typings",
"version": "1.0.2",
"version": "2.0.0",
"description": "",
"main": "index.js",
"repository": {
@ -15,10 +15,10 @@
"keywords": [],
"author": "",
"dependencies": {
"@fluentui/react": "^7.150.0"
"@fluentui/react": "^8"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <17.0.0"
"@types/react": ">=16.8.0 <18.0.0"
},
"license": "MIT"
}

1382
packages/powerbi/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -10,29 +10,27 @@
"package": "pbiviz package",
"version": "node ./scripts/version.js",
"prepackage": "npm run version",
"deploy": "node ./scripts/deploy.js",
"build:sanddance-integration": "tsc -p ."
},
"dependencies": {
"@babel/runtime": "^7.5.5",
"@babel/runtime-corejs2": "^7.5.5",
"@deck.gl/core": "8.3.7",
"@deck.gl/layers": "8.3.7",
"@fluentui/react": "^7.111.0",
"@luma.gl/core": "^8.2.0",
"@msrvida/sanddance-explorer": "^3",
"@fluentui/react": "^8",
"@msrvida/sanddance-explorer": "^4",
"core-js": "3.2.1",
"powerbi-models": "^1.6.0",
"powerbi-visuals-api": "^3.4.0",
"powerbi-visuals-api": "^3.8.0",
"powerbi-visuals-utils-dataviewutils": "^2.4.0",
"react": ">=16.8.0 <17.0.0",
"react-dom": ">=16.8.0 <17.0.0",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0",
"regenerator-runtime": "^0.13.3",
"vega": "5.20"
},
"devDependencies": {
"@msrvida/fluentui-react-cdn-typings": "^1",
"@types/react": ">=16.8.0 <17.0.0",
"@types/react-dom": ">=16.8.0 <17.0.0",
"@msrvida/fluentui-react-cdn-typings": "^2",
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"powerbi-visuals-tools": "^4",
"tslint": "^5.20.1",
"tslint-microsoft-contrib": "^6.2.0"

Просмотреть файл

@ -1,15 +1,16 @@
{
"visual": {
"name": "SandDance2019",
"displayName": "SandDance 2019",
"guid": "SandDance201929976D117A654D0BAB8E96507442D80B",
"name": "SandDance2019beta4",
"displayName": "SandDance 2019 beta4",
"guid": "SandDance2019beta4",
"prod-guid": "SandDance201929976D117A654D0BAB8E96507442D80B",
"visualClassName": "Visual",
"version": "3.3.0",
"version": "4.0.0",
"description": "Visually explore, understand, and present your data.",
"supportUrl": "https://github.com/Microsoft/SandDance/issues",
"gitHubUrl": "https://github.com/microsoft/SandDance"
},
"apiVersion": "3.4.0",
"apiVersion": "3.8.0",
"author": {
"name": "Microsoft Research VIDA",
"email": "msrvida@microsoft.com"

Просмотреть файл

@ -0,0 +1,2 @@
const fs = require('fs');
fs.copyFileSync('./dist/SandDance2019beta4.4.0.0.pbiviz', '../../docs/dist/powerbi/v4/SandDance2019beta4.4.0.0.pbiviz');

Просмотреть файл

@ -1,9 +1,6 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
import * as deck from '@deck.gl/core';
import { fluentUIComponents } from './fluentUIComponents';
import * as layers from '@deck.gl/layers';
import * as luma from '@luma.gl/core';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import * as vega from 'vega';
@ -12,6 +9,7 @@ import {
DataFile,
Explorer,
Explorer_Class,
getColorSettingsFromThemePalette,
Props as ExplorerProps,
SandDance,
themePalettes,
@ -24,7 +22,7 @@ import { version } from './version';
import powerbiVisualsApi from 'powerbi-visuals-api';
// tslint:disable-next-line
use(fluentUIComponents, React as any, ReactDOM as any, vega, deck, layers, luma);
use(fluentUIComponents, React as any, ReactDOM as any, vega);
function getThemePalette(darkTheme: boolean) {
const theme = darkTheme ? 'dark-theme' : '';
@ -32,11 +30,11 @@ function getThemePalette(darkTheme: boolean) {
}
export interface ViewChangeOptions {
signalChange?: boolean;
tooltipExclusions?: string[];
}
export interface Props {
renderOptions: SandDance.types.RenderOptions;
mounted: (app: App) => void;
onViewChange: (viewChangeOptions: ViewChangeOptions) => void;
onError: (e: any) => void;
@ -44,51 +42,54 @@ export interface Props {
onSelectionChanged: (search: SandDance.searchExpression.Search, activeIndex: number, selectedData: object[]) => void;
onSnapshotsChanged: (snapshots: SandDance.types.Snapshot[]) => void;
onContextMenu: (e: MouseEvent | PointerEvent, selectionId?: powerbiVisualsApi.extensibility.ISelectionId) => void;
onCameraSave: (camera: SandDance.types.Camera) => void;
}
const RIGHT_MOUSE_BUTTON = 2;
const cameraSettle = 200;
export interface State {
loaded: boolean;
editmode: boolean;
chromeless: boolean;
darkTheme: boolean;
rowCount: number;
fetching: boolean;
unsavedCamera: SandDance.types.Camera;
}
export class App extends React.Component<Props, State> {
private viewerOptions: Partial<SandDance.types.ViewerOptions>;
private signalChanged: boolean;
public explorer: Explorer_Class;
private cameraTimer: number;
public lastCamera: SandDance.types.Camera;
public lastCameraStable: boolean;
constructor(props: Props) {
super(props);
this.state = {
loaded: false,
editmode: true,
chromeless: false,
darkTheme: null,
rowCount: null,
fetching: false,
unsavedCamera: null,
};
this.viewerOptions = this.getViewerOptions();
}
finalize() {
this.endCameraListener();
this.explorer && this.explorer.finalize();
this.explorer = null;
}
private getViewerOptions(darkTheme?: boolean): Partial<SandDance.types.ViewerOptions> {
const textColor = darkTheme ? 'white' : 'black';
const color = textColor;
return {
colors: {
axisLine: color,
axisText: color,
hoveredCube: color,
},
colors: getColorSettingsFromThemePalette(themePalettes[darkTheme ? 'dark-theme' : '']),
onCubeClick: (e, cube) => {
const { button } = e as unknown as MSPointerEvent;
const { button } = e as unknown as PointerEvent;
if (button === RIGHT_MOUSE_BUTTON) {
const row = this.explorer.state.dataContent.data[cube.ordinal];
const selectionId = row[SandDance.constants.FieldNames.PowerBISelectionId];
@ -101,6 +102,9 @@ export class App extends React.Component<Props, State> {
onDataFilter: this.props.onDataFilter,
onSelectionChanged: this.props.onSelectionChanged,
preserveDrawingBuffer: true,
onVegaSpec: () => {
this.endCameraListener();
},
};
}
@ -108,23 +112,81 @@ export class App extends React.Component<Props, State> {
return this.explorer && this.explorer.state.dataContent && this.explorer.state.dataContent.data;
}
load(data: DataFile | object[], getPartialInsight: (columns: SandDance.types.Column[]) => Partial<SandDance.specs.Insight>, snapshots: SandDance.types.Snapshot[], tooltipExclusions: string[]) {
load(data: DataFile | object[], getPartialInsight: (columns: SandDance.types.Column[]) => Partial<SandDance.specs.Insight>, tooltipExclusions: string[], snapshots: SandDance.types.Snapshot[], snapshotIndex?: number) {
const wasLoaded = this.state.loaded;
this.setState({ loaded: true });
const { explorer } = this;
if (wasLoaded) {
this.explorer.setState({
const { historyItems, sideTabId } = explorer.state;
const loaded = () => {
// console.log('reloading history')
const last = historyItems[historyItems.length - 1];
historyItems.push({
historicInsight: { ...last?.historicInsight || {} },
label: language.historyActionDataChange,
});
const historyIndex = historyItems.length - 1;
explorer.setState({ historyIndex, historyItems, sideTabId });
};
explorer.setState({
calculating: () => {
this.explorer.load(data, getPartialInsight, { tooltipExclusions });
this.explorer.setState({ snapshots });
explorer.load(data, getPartialInsight, { tooltipExclusions }).then(loaded);
explorer.setState({ snapshots });
this.manageSnapshot(snapshotIndex);
},
});
} else {
this.explorer.load(data, getPartialInsight, { tooltipExclusions });
this.explorer.setState({ snapshots });
explorer.load(data, getPartialInsight, { tooltipExclusions });
explorer.setState({ snapshots });
this.manageSnapshot(snapshotIndex);
}
this.setState({ loaded: true });
}
private beginCameraListener(transitionFinal: boolean, stable: boolean) {
const { viewer } = this.explorer;
this.lastCameraStable = stable;
this.lastCamera = viewer.getCamera(transitionFinal);
const { transitionDurations } = viewer.options;
this.cameraTimer = setTimeout(() => this.listenToCamera(), transitionDurations.position + transitionDurations.stagger + cameraSettle) as unknown as number;
}
private endCameraListener() {
clearTimeout(this.cameraTimer);
}
private listenToCamera() {
const currCamera = this.explorer.viewer.getCamera(false);
const compare = util.deepCompare(currCamera, this.lastCamera);
let stable = this.lastCameraStable;
if (this.lastCameraStable) {
if (!compare) {
//camera has moved, listen for stability
stable = false;
this.setState({ unsavedCamera: null });
}
} else {
if (compare) {
//unstable camera has stabilized
this.setState({ unsavedCamera: currCamera });
stable = true;
}
}
this.beginCameraListener(false, stable);
}
manageSnapshot(selectedSnapshotIndex: number) {
const { explorer } = this;
if (selectedSnapshotIndex != null) {
if (selectedSnapshotIndex !== explorer.state.selectedSnapshotIndex) {
explorer.reviveSnapshot(selectedSnapshotIndex);
}
} else {
explorer.setState({ selectedSnapshotIndex });
}
}
unload() {
this.endCameraListener();
this.setState({ loaded: false });
}
@ -136,6 +198,7 @@ export class App extends React.Component<Props, State> {
this.viewerOptions = this.getViewerOptions(darkTheme);
if (this.state.darkTheme !== darkTheme && this.explorer) {
this.explorer.updateViewerOptions(this.viewerOptions);
SandDance.VegaMorphCharts.base.vega.scheme(SandDance.constants.ColorScaleNone, x => this.explorer.viewer.options.colors.defaultCube);
if (this.explorer.viewer) {
this.explorer.viewer.renderSameLayout(this.explorer.viewerOptions);
}
@ -152,39 +215,56 @@ export class App extends React.Component<Props, State> {
}
render() {
const { props, state } = this;
const className = util.classList(
'sanddance-app',
this.state.chromeless && 'chromeless',
this.state.loaded && 'loaded',
state.editmode && 'editmode',
state.chromeless && 'chromeless',
state.loaded && 'loaded',
);
const explorerProps: ExplorerProps = {
renderOptions: props.renderOptions,
hideSidebarControls: true,
logoClickUrl: 'https://microsoft.github.io/SandDance/',
bingSearchDisabled: true,
searchORDisabled: true,
theme: this.state.darkTheme && 'dark-theme',
theme: state.darkTheme && 'dark-theme',
viewerOptions: this.viewerOptions,
initialView: '2d',
mounted: explorer => {
// explorer.snapshotThumbWidth = 240;
this.explorer = explorer;
this.props.mounted(this);
props.mounted(this);
},
onSignalChanged: (signalName, signalValue) => {
this.props.onViewChange({ signalChange: true });
this.signalChanged = true;
onSignalChanged: () => {
props.onViewChange({});
},
onSnapshotsChanged: this.props.onSnapshotsChanged,
onTooltipExclusionsChanged: tooltipExclusions => this.props.onViewChange({ tooltipExclusions }),
snapshotProps: {
hidden: !this.explorer?.state.snapshots || this.explorer?.state.snapshots.length === 0,
},
onSnapshotsChanged: props.onSnapshotsChanged,
onTooltipExclusionsChanged: tooltipExclusions => props.onViewChange({ tooltipExclusions }),
onView: () => {
this.explorer.viewer.presenter.getElement(SandDance.VegaDeckGl.PresenterElement.gl).oncontextmenu = (e) => {
this.props.onContextMenu(e);
this.setState({ unsavedCamera: null });
this.beginCameraListener(true, true);
this.explorer.viewer.presenter.getElement(SandDance.VegaMorphCharts.PresenterElement.gl).oncontextmenu = (e) => {
props.onContextMenu(e);
return false;
};
this.props.onViewChange({ signalChange: this.signalChanged });
this.signalChanged = false;
props.onViewChange({});
},
onError: this.props.onError,
onError: props.onError,
topBarIconButtonProps: state.editmode ? [{
key: 'bookmark',
iconProps: {
iconName: state.unsavedCamera ? 'SingleBookmarkSolid' : 'SingleBookmark',
onClick: () => {
this.props.onCameraSave(state.unsavedCamera);
this.setState({ unsavedCamera: null });
},
},
title: language.bookmarkCamera,
}] : null,
systemInfoChildren: [
React.createElement('li', null, `${language.powerBiCustomVisual}: ${version}`),
],
@ -199,8 +279,8 @@ export class App extends React.Component<Props, State> {
language.webglDisabled,
),
),
this.state.fetching && React.createElement('div', { className: 'sanddance-fetch' },
`${language.fetching} ${this.state.rowCount ? `(${this.state.rowCount} ${language.fetched})` : ''}`,
state.fetching && React.createElement('div', { className: 'sanddance-fetch' },
`${language.fetching} ${state.rowCount ? `(${state.rowCount} ${language.fetched})` : ''}`,
),
);
}

Просмотреть файл

@ -3,9 +3,11 @@
import { SandDance } from '@msrvida/sanddance-explorer';
export function cleanInsight(insight: SandDance.specs.Insight) {
export function cleanInsight(insight: SandDance.specs.Insight, removeFilter = true) {
delete insight.size;
delete insight.filter;
if (removeFilter) {
delete insight.filter;
}
visit(insight);
}

Просмотреть файл

@ -39,7 +39,7 @@ export const fluentUIComponents: FluentUIComponents = {
DialogFooter: DialogFooter as any,
DialogType,
Dropdown: Dropdown as any,
DropdownMenuItemType,
DropdownMenuItemType: DropdownMenuItemType as any,
Icon: Icon as any,
IconButton: IconButton as any,
getFocusStyle,

Просмотреть файл

@ -1,8 +1,11 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
export const language = {
bookmarkCamera: 'Save camera position for bookmarks',
fetching: 'fetching...',
fetched: 'loaded',
powerBiCustomVisual: 'Power BI custom visual version',
historyActionDataChange: 'Power BI data change',
historyActionUpdate: 'Power BI update',
webglDisabled: 'SandDance requires a WebGL enabled browser.',
};

Просмотреть файл

@ -34,14 +34,18 @@ import DataViewObjectsParser = dataViewObjectsParser.DataViewObjectsParser;
export class SandDanceConfig {
[propertyName: string]: DataViewPropertyValue;
cameraJSON: string = '';
insightJSON: string = '';
selectionQueryJSON: string = '';
snapshotsJSON: string = '';
tooltipExclusionsJSON: string = '';
imageHolderJSON: string = '';
}
export class SandDanceMainSettings {
showchrome: boolean = true;
darktheme: boolean = false;
showchrome: boolean = true;
showdebug: boolean = false;
darktheme: boolean = false;
}
export interface IVisualSettings {
@ -50,6 +54,6 @@ export interface IVisualSettings {
}
export class VisualSettings extends DataViewObjectsParser implements IVisualSettings {
public sandDanceConfig = new SandDanceConfig();
public sandDanceMainSettings = new SandDanceMainSettings();
public sandDanceConfig = new SandDanceConfig();
public sandDanceMainSettings = new SandDanceMainSettings();
}

Просмотреть файл

@ -1,4 +1,4 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
export const version: string = '3.3.0';
export const version: string = '4.0.0';

Просмотреть файл

@ -39,7 +39,7 @@ import VisualObjectInstanceEnumerationObject = powerbiVisualsApi.VisualObjectIns
import * as powerbiModels from 'powerbi-models';
import { capabilities, SandDance } from '@msrvida/sanddance-explorer';
import { capabilities, SandDance, util as util2 } from '@msrvida/sanddance-explorer';
import { convertFilter } from './convertFilter';
import { createElement } from 'react';
import { render } from 'react-dom';
@ -47,16 +47,10 @@ import { App, Props, ViewChangeOptions } from './app';
import { convertTableToObjectArray } from './convertTableToObjectArray';
import { cleanInsight } from './cleanInsight';
import { VisualSettings, SandDanceConfig, IVisualSettings } from './settings';
import { language } from './language';
const { util } = SandDance.VegaDeckGl;
interface PersistAction {
signalChange?: boolean;
}
interface PersistOptions extends ViewChangeOptions {
reason: string;
}
const util1 = SandDance.VegaMorphCharts.util;
const util = { ...util1, ...util2 };
export class Visual implements IVisual {
private settings: VisualSettings;
@ -71,7 +65,14 @@ export class Visual implements IVisual {
private fetchMoreTimer: number;
private filters: { sd: SandDance.searchExpression.Search, pbi: powerbiModels.IFilter[] };
private columns: powerbiVisualsApi.DataViewMetadataColumn[];
private persistAction: PersistAction;
public persistViewChange: boolean;
public persistSelectionChange: boolean;
public ignoreSelectionUpdate: boolean;
public sanddanceRenderOptions: SandDance.types.RenderOptions;
public afterView: (() => void)[];
public search: SandDance.searchExpression.Search;
public snapshots: SandDance.types.Snapshot[];
public lastCameraJSON: string;
public static fetchMoreTimeout = 5000;
@ -80,7 +81,8 @@ export class Visual implements IVisual {
this.host = options.host;
this.events = this.host.eventService;
this.selectionManager = this.host.createSelectionManager();
this.persistAction = {};
this.afterView = [];
this.sanddanceRenderOptions = {};
if (document) {
options.element.style.position = 'relative';
@ -89,9 +91,15 @@ export class Visual implements IVisual {
this.errorElement.style.position = 'absolute';
const props: Props = {
renderOptions: this.sanddanceRenderOptions,
mounted: (app: App) => {
this.app = app;
},
onCameraSave: (camera: SandDance.types.Camera) => {
// console.log('onCameraChange');
this.lastCameraJSON = JSON.stringify(camera);
this.persist({});
},
onContextMenu: (e: MouseEvent | PointerEvent, selectionId?: powerbiVisualsApi.extensibility.ISelectionId) => {
const position: powerbiVisualsApi.extensibility.IPoint = {
x: e.clientX,
@ -100,15 +108,25 @@ export class Visual implements IVisual {
this.selectionManager.showContextMenu(selectionId || {}, position);
},
onViewChange: viewChangeOptions => {
// console.log('onViewChange', this.renderingOptions);
// console.log('onViewChange', this.renderingOptions, viewChangeOptions, this.persistViewChange);
if (this.afterView.length) {
this.afterView.forEach(fn => fn());
this.afterView.length = 0;
}
if (this.renderingOptions) {
this.events.renderingFinished(this.renderingOptions);
this.persist({ reason: 'onViewChange', ...viewChangeOptions }, null);
}
if (this.persistViewChange) {
this.persist(viewChangeOptions);
}
this.persistViewChange = true;
},
onSnapshotsChanged: snapshots => {
this.persist({ reason: 'onSnapshotsChanged' }, snapshots);
this.snapshots = snapshots;
this.persist({});
},
onError: (e: any) => {
if (this.renderingOptions) {
@ -118,6 +136,8 @@ export class Visual implements IVisual {
},
onDataFilter: (searchFilter, filteredData) => {
// console.log('onDataFilter', filteredData);
this.persist({});
if (filteredData) {
const result = convertFilter(searchFilter, this.columns, filteredData);
this.applySelection(result.selectedIds);
@ -129,12 +149,22 @@ export class Visual implements IVisual {
this.clearSelection();
}
},
onSelectionChanged: (searchFilter, activeIndex, selectedData) => {
// console.log('onDataSelected', selectedData);
onSelectionChanged: (search, activeIndex, selectedData) => {
// console.log('onSelectionChanged', search, selectedData, this.persistSelectionChange);
this.ignoreSelectionUpdate = true;
this.search = search;
if (this.persistSelectionChange) {
this.persist({});
}
this.persistSelectionChange = true;
if (selectedData) {
const result = convertFilter(searchFilter, this.columns, selectedData);
const result = convertFilter(search, this.columns, selectedData);
this.applySelection(result.selectedIds);
this.applyFilters(this.filters ? this.filters.pbi.concat(result.filters) : result.filters);
} else {
this.clearSelection();
// revert to filtered if it exists
@ -150,19 +180,21 @@ export class Visual implements IVisual {
}
}
private persist(options: PersistOptions, snapshots: SandDance.types.Snapshot[]) {
if (this.renderingOptions.viewMode === powerbiVisualsApi.ViewMode.Edit || this.renderingOptions.viewMode === powerbiVisualsApi.ViewMode.InFocusEdit) {
this.persistAction = { signalChange: options.signalChange };
const insight = this.app.explorer.viewer.getInsight();
const tooltipExclusions = options.tooltipExclusions || this.app.explorer.state.tooltipExclusions;
snapshots = snapshots || this.app.explorer.state.snapshots;
cleanInsight(insight);
private persist(options: ViewChangeOptions) {
if (this.renderingOptions.viewMode !== powerbiVisualsApi.ViewMode.View) {
const { explorer } = this.app;
const insight = explorer.viewer.getInsight();
const tooltipExclusions = options.tooltipExclusions || explorer.state.tooltipExclusions;
cleanInsight(insight, false);
const config: SandDanceConfig = {
cameraJSON: this.lastCameraJSON,
insightJSON: JSON.stringify(insight),
snapshotsJSON: JSON.stringify(snapshots || []),
selectionQueryJSON: JSON.stringify(this.search),
snapshotsJSON: JSON.stringify(this.snapshots || []),
tooltipExclusionsJSON: JSON.stringify(tooltipExclusions),
imageHolderJSON: JSON.stringify(explorer.imageHolder),
};
// console.log(`persist ${options.reason}`, config, this.persistAction);
// console.log(`persist`, config);
this.host.persistProperties({ replace: [{ objectName: 'sandDanceConfig', properties: config, selector: null }] });
}
}
@ -195,7 +227,6 @@ export class Visual implements IVisual {
public update(options: VisualUpdateOptions) {
// console.log('Visual update', options);
this.renderingOptions = options;
this.events.renderingStarted(this.renderingOptions);
@ -235,32 +266,84 @@ export class Visual implements IVisual {
show(dataView: powerbiVisualsApi.DataView) {
this.settings = Visual.parseSettings(dataView);
const oldData = this.app.getDataContent();
const temp = convertTableToObjectArray(dataView.table, oldData, this.host);
const { data } = temp;
let { different } = temp;
const result = convertTableToObjectArray(dataView.table, oldData, this.host);
let { different } = result;
const { data } = result;
if (!this.prevSettings) {
different = true;
}
this.app.setChromeless(!this.settings.sandDanceMainSettings.showchrome);
const { sandDanceConfig, sandDanceMainSettings } = this.settings;
this.app.setState({ editmode: this.renderingOptions.viewMode !== powerbiVisualsApi.ViewMode.View });
this.app.setChromeless(!sandDanceMainSettings.showchrome);
this.app.changeTheme(this.settings.sandDanceMainSettings.darktheme);
const wasSignalChange = this.persistAction.signalChange;
this.persistAction = {};
const p = this.app.explorer?.viewer?.presenter;
if (p) {
p.morphchartsref.core.config.textColor = [0, 0, 0];
p.morphchartsref.core.config.isDebugVisible = sandDanceMainSettings.showdebug;
}
this.prevSettings = util.clone(this.settings);
if (!different || wasSignalChange) {
if (!different) {
// console.log('Visual update - not different');
if (this.renderingOptions.viewMode === powerbiVisualsApi.ViewMode.Edit) {
this.syncSelection(sandDanceConfig.selectionQueryJSON, false);
}
if (this.ignoreSelectionUpdate) {
this.ignoreSelectionUpdate = false;
this.events.renderingFinished(this.renderingOptions);
return;
}
if (this.renderingOptions.viewMode === powerbiVisualsApi.ViewMode.View) {
this.syncSelection(sandDanceConfig.selectionQueryJSON, false);
}
let setInsight = false;
if (sandDanceConfig.insightJSON) {
try {
const insight = JSON.parse(sandDanceConfig.insightJSON) as SandDance.specs.Insight;
const compA = util.clone(insight);
cleanInsight(compA, false);
const compB = util.clone(this.app.explorer.viewer.getInsight());
cleanInsight(compB, false);
if (!util.deepCompare(compA, compB)) {
setInsight = true;
this.syncCamera(sandDanceConfig.cameraJSON, false);
this.app.explorer.setInsight({ label: language.historyActionUpdate }, null, insight, true);
}
} catch (e) {
// continue regardless of error
}
}
if (!setInsight) {
this.syncCamera(sandDanceConfig.cameraJSON, true);
}
//this.app.manageSnapshot(sandDanceMainSettings.snapshot);
return;
}
const { sandDanceConfig } = this.settings;
// console.log('Visual update - *is* different');
let snapshots: SandDance.types.Snapshot[] = [];
if (sandDanceConfig.snapshotsJSON) {
try {
snapshots = JSON.parse(sandDanceConfig.snapshotsJSON);
const snapshots = JSON.parse(sandDanceConfig.snapshotsJSON);
if (this.snapshots === undefined) {
this.snapshots = snapshots;
}
} catch (e) {
// continue regardless of error
}
@ -275,6 +358,7 @@ export class Visual implements IVisual {
}
}
this.persistViewChange = false;
this.app.load(
data,
columns => {
@ -288,10 +372,14 @@ export class Visual implements IVisual {
}
}
this.syncSelection(sandDanceConfig.selectionQueryJSON, true);
this.syncBackgroundImage(sandDanceConfig.imageHolderJSON);
let insight: Partial<SandDance.specs.Insight>;
if (sandDanceConfig.insightJSON) {
try {
this.syncCamera(sandDanceConfig.cameraJSON, false);
insight = JSON.parse(sandDanceConfig.insightJSON);
delete insight.size;
} catch (e) {
@ -305,11 +393,67 @@ export class Visual implements IVisual {
return insight;
},
snapshots,
tooltipExclusions);
tooltipExclusions,
this.snapshots,
);
}
syncBackgroundImage(imageHolderJSON: string) {
if (imageHolderJSON) {
try {
const imageHolder = JSON.parse(imageHolderJSON);
this.app.explorer.imageHolder = imageHolder;
} catch (e) {
// continue regardless of error
}
}
}
syncCamera(cameraJSON: string, now: boolean) {
if (cameraJSON && cameraJSON !== this.lastCameraJSON) {
let camera: SandDance.types.Camera;
try {
camera = JSON.parse(cameraJSON);
} catch (e) {
// continue regardless of error
}
if (camera) {
if (now) {
this.app.explorer.viewer.setCamera(camera);
delete this.sanddanceRenderOptions.getCameraTo;
} else {
this.sanddanceRenderOptions.getCameraTo = () => camera;
this.afterView.push(() => delete this.sanddanceRenderOptions.getCameraTo);
}
this.lastCameraJSON = cameraJSON;
}
}
}
syncSelection(selectionQueryJSON: string, afterView: boolean) {
const existingSelection = (this.app?.explorer?.viewer?.getSelection()?.search) || null;
let search: SandDance.searchExpression.Search = null;
if (selectionQueryJSON) {
try {
search = JSON.parse(selectionQueryJSON);
} catch (e) {
// continue regardless of error
}
}
const diff = !SandDance.searchExpression.compare(existingSelection, search);
if (diff) {
// console.log('sync selection', selectionQueryJSON)
this.persistSelectionChange = false;
if (afterView || !this.app?.explorer?.viewer) {
this.afterView.push(() => this.app.explorer.viewer.select(search));
} else {
this.app.explorer.viewer.select(search);
}
}
}
private static parseSettings(dataView: DataView): VisualSettings {
return VisualSettings.parse(dataView);
}

Просмотреть файл

@ -22,6 +22,11 @@
display: none;
}
}
&.editmode {
.sanddance-explorer-commandbar {
margin-right: 115px;
}
}
.sanddance-explorer {
visibility: hidden;
}

1177
packages/sanddance-app/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,7 +1,7 @@
{
"name": "@msrvida/sanddance-app",
"private": true,
"version": "3.0.0",
"version": "4.0.0",
"scripts": {
"eslint": "eslint -c ../../.eslintrc.json --fix ./src/**/*.ts*",
"deploy": "npm run bundle && node ./scripts/deploy.js",
@ -12,9 +12,9 @@
"bundle": "parcel build ./dist/es6/index.js --no-autoinstall"
},
"devDependencies": {
"@types/react": ">=16.8.0 <17.0.0",
"@types/react-dom": ">=16.8.0 <17.0.0",
"@msrvida/fluentui-react-cdn-typings": "^1",
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"@msrvida/fluentui-react-cdn-typings": "^2",
"vega-typings": "0.21.0"
},
"targets": {
@ -37,11 +37,8 @@
"react-dom": "./alias/react-dom-external.js"
},
"dependencies": {
"@deck.gl/core": "8.3.7",
"@deck.gl/layers": "8.3.7",
"@luma.gl/core": "8.3.1",
"@fluentui/react": "^7.150.0",
"@msrvida/sanddance-explorer": "^3",
"@fluentui/react": "^8",
"@msrvida/sanddance-explorer": "^4",
"vega": "5.20"
}
}

Просмотреть файл

@ -1,3 +1,3 @@
const fs = require('fs');
fs.copyFileSync('./dist/css/sanddance-app.css', '../../docs/app/css/sanddance-app.css');
fs.copyFileSync('./dist/umd/sanddance-app.js', '../../docs/app/js/sanddance-app.js');
fs.copyFileSync('./dist/css/sanddance-app.css', '../../docs/tests/v4/es6/css/sanddance-app.css');
fs.copyFileSync('./dist/umd/sanddance-app.js', '../../docs/tests/v4/es6/js/sanddance-app.js');

Просмотреть файл

@ -6,7 +6,7 @@ import { SandDance } from '@msrvida/sanddance-explorer';
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import types = SandDance.VegaDeckGl.types;
import types = SandDance.VegaMorphCharts.types;
/**
* References to dependency libraries.
@ -30,10 +30,7 @@ export const base: Base = {
export function use(
fluentUI: FluentUIComponents,
vega: types.VegaBase,
deck: types.DeckBase,
layers: types.DeckLayerBase,
luma: types.LumaBase,
) {
SandDanceExplorer.use(fluentUI, React, ReactDOM, vega, deck, layers, luma);
SandDanceExplorer.use(fluentUI, React, ReactDOM, vega);
base.fluentUI = fluentUI;
}

Просмотреть файл

@ -250,13 +250,13 @@ export class DataSourcePicker extends React.Component<DialogProps, State> {
</section>
<section>
<base.fluentUI.ChoiceGroup
selectedKey={this.state.urlType}
options={
DataSourcePicker.urlTypes.map((urlType, i) => {
return {
key: `${i}`,
key: urlType,
text: urlType,
disabled: this.state.working,
checked: i === 0,
} as FluentUITypes.IChoiceGroupOption;
})
}

Просмотреть файл

@ -38,7 +38,7 @@ export const fluentUI: FluentUIComponents = {
DialogFooter: DialogFooter as any,
DialogType,
Dropdown: Dropdown as any,
DropdownMenuItemType,
DropdownMenuItemType: DropdownMenuItemType as any,
Icon: Icon as any,
IconButton: IconButton as any,
getFocusStyle,

Просмотреть файл

@ -4,9 +4,6 @@ import { use } from './base';
import { fluentUI } from './fluentUIComponents';
import { SandDanceApp } from './sanddanceApp';
import { DataSource, InsightMap } from './types';
import * as deck from '@deck.gl/core';
import * as layers from '@deck.gl/layers';
import * as luma from '@luma.gl/core';
import * as SandDanceExplorer from '@msrvida/sanddance-explorer';
import {
ColorSettings,
@ -18,7 +15,7 @@ import * as React from 'react';
import * as ReactDOM from 'react-dom';
import * as vega from 'vega';
use(fluentUI, vega, deck, layers, luma);
use(fluentUI, vega);
const staticContent = Array.from(
document.querySelectorAll<HTMLAnchorElement>('a.sanddance-app-static-content'),

Просмотреть файл

@ -176,7 +176,7 @@ export class SandDanceApp extends React.Component<Props, State> {
load(dataSource: DataSource, partialInsight?: Partial<SandDance.specs.Insight>) {
//clone so that we do not modify original object
dataSource = SandDance.VegaDeckGl.util.clone(dataSource);
dataSource = SandDance.VegaMorphCharts.util.clone(dataSource);
this.setState({ dataSource });
document.title = `SandDance - ${dataSource.displayName}`;
return this.explorer.load(
@ -184,7 +184,7 @@ export class SandDanceApp extends React.Component<Props, State> {
columns => {
return partialInsight || (this.props.insights && this.props.insights[dataSource.id]);
},
this.props.initialOptions && SandDance.VegaDeckGl.util.deepMerge({}, this.props.initialOptions['*'], this.props.initialOptions[dataSource.id]),
this.props.initialOptions && SandDance.VegaMorphCharts.util.deepMerge({}, this.props.initialOptions['*'], this.props.initialOptions[dataSource.id]),
);
}
@ -216,7 +216,7 @@ export class SandDanceApp extends React.Component<Props, State> {
changeColorScheme(darkTheme: boolean) {
this.updateExplorerViewerOptions(getViewerOptions(darkTheme, this.props.themeColors));
SandDance.VegaDeckGl.base.vega.scheme(SandDance.constants.ColorScaleNone, x => this.explorer.viewer.options.colors.defaultCube);
SandDance.VegaMorphCharts.base.vega.scheme(SandDance.constants.ColorScaleNone, x => this.explorer.viewer.options.colors.defaultCube);
this.explorer && this.explorer.viewer && this.explorer.viewer.renderSameLayout(this.viewerOptions);
base.fluentUI.loadTheme({ palette: this.getThemePalette(darkTheme) });
}

Просмотреть файл

@ -13,7 +13,7 @@ import {
} from '@msrvida/sanddance-explorer';
import * as React from 'react';
import util = SandDance.VegaDeckGl.util;
import util = SandDance.VegaMorphCharts.util;
function markdownImageLink(alt: string, imageUrl: string, link: string) {
return `[![${alt}](${imageUrl})](${link})`;

36
packages/sanddance-embed/package-lock.json сгенерированный
Просмотреть файл

@ -1,16 +1,16 @@
{
"name": "@msrvida/sanddance-embed",
"version": "3.0.0",
"version": "4.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@msrvida/sanddance-embed",
"version": "3.0.0",
"version": "4.0.0",
"license": "MIT",
"devDependencies": {
"@types/react": ">=16.8.0 <17.0.0",
"@types/react-dom": ">=16.8.0 <17.0.0"
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0"
}
},
"node_modules/@types/prop-types": {
@ -20,9 +20,9 @@
"dev": true
},
"node_modules/@types/react": {
"version": "16.14.28",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.28.tgz",
"integrity": "sha512-83zBE6+XUVXsdL3iFzOyUewdauaU+KviKCHEGOgSW52coAuqW7tEKQM0E9+ZC0Zk6TELQ2/JgogPvp7FavzFwg==",
"version": "17.0.47",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz",
"integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==",
"dev": true,
"dependencies": {
"@types/prop-types": "*",
@ -31,12 +31,12 @@
}
},
"node_modules/@types/react-dom": {
"version": "16.9.16",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.16.tgz",
"integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==",
"version": "17.0.17",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz",
"integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==",
"dev": true,
"dependencies": {
"@types/react": "^16"
"@types/react": "^17"
}
},
"node_modules/@types/scheduler": {
@ -60,9 +60,9 @@
"dev": true
},
"@types/react": {
"version": "16.14.28",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.28.tgz",
"integrity": "sha512-83zBE6+XUVXsdL3iFzOyUewdauaU+KviKCHEGOgSW52coAuqW7tEKQM0E9+ZC0Zk6TELQ2/JgogPvp7FavzFwg==",
"version": "17.0.47",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz",
"integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==",
"dev": true,
"requires": {
"@types/prop-types": "*",
@ -71,12 +71,12 @@
}
},
"@types/react-dom": {
"version": "16.9.16",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.16.tgz",
"integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==",
"version": "17.0.17",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz",
"integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==",
"dev": true,
"requires": {
"@types/react": "^16"
"@types/react": "^17"
}
},
"@types/scheduler": {

Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "@msrvida/sanddance-embed",
"version": "3.0.0",
"version": "4.0.0",
"description": "Embeddable SandDance Explorer.",
"browser": "dist/umd/sanddance-embed.js",
"repository": {
@ -18,12 +18,12 @@
"build:sanddance-core": "npm run build-css && npm run build-typescript"
},
"dependencies": {
"@msrvida/sanddance-explorer": "^3"
"@msrvida/sanddance-explorer": "^4"
},
"devDependencies": {
"@types/react": ">=16.8.0 <17.0.0",
"@types/react-dom": ">=16.8.0 <17.0.0",
"@msrvida/fluentui-react-cdn-typings": "*"
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"@msrvida/fluentui-react-cdn-typings": "^2"
},
"author": "",
"license": "MIT"

Просмотреть файл

@ -4,11 +4,9 @@
*/
import SandDance = SandDanceExplorer.SandDance;
import VegaDeckGl = SandDance.VegaDeckGl;
import VegaMorphCharts = SandDance.VegaMorphCharts;
declare let vega: VegaDeckGl.types.VegaBase;
declare let deck: VegaDeckGl.types.DeckBase & VegaDeckGl.types.DeckLayerBase;
declare let luma: VegaDeckGl.types.LumaBase;
declare let vega: VegaMorphCharts.types.VegaBase;
declare let FluentUIReact: _FluentUI.FluentUIComponents;
namespace SandDanceEmbed {
@ -34,7 +32,7 @@ namespace SandDanceEmbed {
};
const create = () => {
SandDanceExplorer.use(FluentUIReact, React, ReactDOM, vega, deck, deck, luma);
SandDanceExplorer.use(FluentUIReact, React, ReactDOM, vega);
const explorerProps: SandDanceExplorer.Props = {
logoClickUrl: 'https://microsoft.github.io/SandDance/',
mounted: explorer => {

Просмотреть файл

@ -10,11 +10,10 @@
</head>
<body>
<script src="https://unpkg.com/react@16/umd/react.production.min.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js" crossorigin></script>
<script src="https://unpkg.com/deck.gl@8.3.7/dist.min.js"></script>
<script src="https://unpkg.com/vega@5.17/build/vega.min.js"></script>
<script src="https://unpkg.com/@fluentui/react@7.150/dist/fluentui-react.js"></script>
<script src="https://unpkg.com/react@17/umd/react.production.min.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js" crossorigin></script>
<script src="https://unpkg.com/vega@5.20/build/vega.min.js"></script>
<script src="https://unpkg.com/@fluentui/react@8/dist/fluentui-react.js"></script>
<script src="../dist/umd/sanddance-explorer.js"></script>
<script src="../dist/umd/sanddance-embed.js"></script>

Просмотреть файл

@ -12,20 +12,14 @@ Visually explore, understand, and present your data.
Add these to the `dependencies` section of your `package.json`, then run `npm install`:
```json
"@deck.gl/core": "^8.3.7",
"@deck.gl/layers": "^8.3.7",
"@msrvida/sanddance-explorer": "^3",
"@luma.gl/core": "^8.3.1",
"@fluentui/react": "^7.150.0",
"@fluentui/react": "^8",
"vega": "^5.17.0"
```
Import these in your JavaScript:
```js
import * as deck from '@deck.gl/core';
import * as layers from '@deck.gl/layers';
import * as luma from '@luma.gl/core';
import * as fluentui from '@fluentui/react';
import * as vega from 'vega';
import * as React from 'react';
@ -34,7 +28,7 @@ import { Explorer, use } from '@msrvida/sanddance-explorer';
fluentui.initializeIcons();
use(fluentui, React, ReactDOM, vega, deck, layers, luma);
use(fluentui, React, ReactDOM, vega);
const data = [
{ a: 1, b: "c1" },
@ -55,6 +49,11 @@ ReactDOM.render(React.createElement(Explorer, explorerProps), document.getElemen
## Versions
### Breaking changes in v4
* removed deck.gl
* @fluentui/react @8
### Breaking changes in v3
* deck.gl dependency from 6.4 to 8.1

124
packages/sanddance-explorer/package-lock.json сгенерированный
Просмотреть файл

@ -1,12 +1,12 @@
{
"name": "@msrvida/sanddance-explorer",
"version": "3.2.0",
"version": "4.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@msrvida/sanddance-explorer",
"version": "3.2.0",
"version": "4.0.0",
"license": "MIT",
"dependencies": {
"d3-format": "^1.3.2"
@ -16,10 +16,10 @@
"vega-typings": "0.21.0"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <17.0.0",
"@types/react-dom": ">=16.8.0 <17.0.0",
"react": ">=16.8.0 <17.0.0",
"react-dom": ">=16.8.0 <17.0.0"
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0"
}
},
"node_modules/@types/d3-format": {
@ -35,9 +35,9 @@
"peer": true
},
"node_modules/@types/react": {
"version": "16.14.28",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.28.tgz",
"integrity": "sha512-83zBE6+XUVXsdL3iFzOyUewdauaU+KviKCHEGOgSW52coAuqW7tEKQM0E9+ZC0Zk6TELQ2/JgogPvp7FavzFwg==",
"version": "17.0.47",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz",
"integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==",
"peer": true,
"dependencies": {
"@types/prop-types": "*",
@ -46,12 +46,12 @@
}
},
"node_modules/@types/react-dom": {
"version": "16.9.16",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.16.tgz",
"integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==",
"version": "17.0.17",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz",
"integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==",
"peer": true,
"dependencies": {
"@types/react": "^16"
"@types/react": "^17"
}
},
"node_modules/@types/scheduler": {
@ -98,56 +98,37 @@
"node": ">=0.10.0"
}
},
"node_modules/prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"peer": true,
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
"react-is": "^16.13.1"
}
},
"node_modules/react": {
"version": "16.14.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
"integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
"integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2"
"object-assign": "^4.1.1"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
"version": "16.14.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
"integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
"integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
"scheduler": "^0.19.1"
"scheduler": "^0.20.2"
},
"peerDependencies": {
"react": "^16.14.0"
"react": "17.0.2"
}
},
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"peer": true
},
"node_modules/scheduler": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
"integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
"integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
@ -184,9 +165,9 @@
"peer": true
},
"@types/react": {
"version": "16.14.28",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.28.tgz",
"integrity": "sha512-83zBE6+XUVXsdL3iFzOyUewdauaU+KviKCHEGOgSW52coAuqW7tEKQM0E9+ZC0Zk6TELQ2/JgogPvp7FavzFwg==",
"version": "17.0.47",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz",
"integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==",
"peer": true,
"requires": {
"@types/prop-types": "*",
@ -195,12 +176,12 @@
}
},
"@types/react-dom": {
"version": "16.9.16",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.16.tgz",
"integrity": "sha512-Oqc0RY4fggGA3ltEgyPLc3IV9T73IGoWjkONbsyJ3ZBn+UPPCYpU2ec0i3cEbJuEdZtkqcCF2l1zf2pBdgUGSg==",
"version": "17.0.17",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz",
"integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==",
"peer": true,
"requires": {
"@types/react": "^16"
"@types/react": "^17"
}
},
"@types/scheduler": {
@ -241,50 +222,31 @@
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"peer": true
},
"prop-types": {
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"peer": true,
"requires": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
"react-is": "^16.13.1"
}
},
"react": {
"version": "16.14.0",
"resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz",
"integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==",
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
"integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
"peer": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2"
"object-assign": "^4.1.1"
}
},
"react-dom": {
"version": "16.14.0",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz",
"integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==",
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
"integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
"peer": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
"scheduler": "^0.19.1"
"scheduler": "^0.20.2"
}
},
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"peer": true
},
"scheduler": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
"integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
"integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
"peer": true,
"requires": {
"loose-envify": "^1.1.0",

Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "@msrvida/sanddance-explorer",
"version": "3.2.0",
"version": "4.0.0",
"description": "SandDance data exploration React component.",
"main": "dist/es6/index.js",
"repository": {
@ -14,7 +14,7 @@
],
"scripts": {
"eslint": "eslint -c ../../.eslintrc.json --fix ./src/**/*.ts*",
"docs": "typedoc src/index.ts -out ../../docs/docs/sanddance-explorer/v3 --theme ../../typedoc/theme --excludePrivate --gitRevision master",
"docs": "typedoc src/index.ts -out ../../docs/docs/sanddance-explorer/v4 --theme ../../typedoc/theme --excludePrivate --gitRevision master",
"build-typescript": "tsc -p .",
"watch-typescript": "tsc -p . -w",
"build-css": "sass ./src/css/sanddance-explorer.scss ./dist/css/sanddance-explorer.css",
@ -44,15 +44,15 @@
},
"dependencies": {
"@msrvida/chart-recommender": "^3",
"@msrvida/fluentui-react-cdn-typings": "^1",
"@msrvida/sanddance-react": "^3",
"@msrvida/fluentui-react-cdn-typings": "^2",
"@msrvida/sanddance-react": "^4",
"d3-format": "^1.3.2"
},
"peerDependencies": {
"@types/react": ">=16.8.0 <17.0.0",
"@types/react-dom": ">=16.8.0 <17.0.0",
"react": ">=16.8.0 <17.0.0",
"react-dom": ">=16.8.0 <17.0.0"
"@types/react": ">=16.8.0 <18.0.0",
"@types/react-dom": ">=16.8.0 <18.0.0",
"react": ">=16.8.0 <18.0.0",
"react-dom": ">=16.8.0 <18.0.0"
},
"license": "MIT"
}

Просмотреть файл

@ -1,6 +1,6 @@
const fs = require('fs');
fs.copyFileSync('./dist/css/sanddance-explorer.css', '../../docs/dist/sanddance-explorer/v3/sanddance-explorer.css');
fs.copyFileSync('./dist/umd/sanddance-explorer.js', '../../docs/dist/sanddance-explorer/v3/sanddance-explorer.js');
fs.copyFileSync('./dist/css/sanddance-explorer.css', '../../docs/dist/sanddance-explorer/v4/sanddance-explorer.css');
fs.copyFileSync('./dist/umd/sanddance-explorer.js', '../../docs/dist/sanddance-explorer/v4/sanddance-explorer.js');
fs.copyFileSync('./dist/css/sanddance-explorer.css', '../sanddance-embed/dist/css/sanddance-explorer.css');
fs.copyFileSync('./dist/umd/sanddance-explorer.js', '../sanddance-embed/dist/umd/sanddance-explorer.js');

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше