зеркало из https://github.com/microsoft/SandDance.git
Sanddance v4 (#481)
* 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:
Родитель
5143bd67f6
Коммит
973e10ce3a
|
@ -79,6 +79,7 @@ _site
|
|||
.DS_Store
|
||||
|
||||
dist
|
||||
!docs/dist
|
||||
|
||||
__pycache__
|
||||
python/jupyter-widget/lib
|
||||
|
|
Двоичный файл не отображается.
Двоичные данные
docs/dist/powerbi/v3/SandDance201929976D117A654D0BAB8E96507442D80B.3.2.0.pbiviz
поставляемый
Normal file
Двоичные данные
docs/dist/powerbi/v3/SandDance201929976D117A654D0BAB8E96507442D80B.3.2.0.pbiviz
поставляемый
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 */
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -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 */
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -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.
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Двоичный файл не отображается.
|
@ -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")
|
||||
|
||||
|
|
|
@ -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 */
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -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>
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -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;
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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 };
|
||||
}
|
||||
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -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;
|
||||
}
|
||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -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})`;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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');
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче