data-navigator 1.0.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data-navigator.d.js +0 -0
- package/dist/data-navigator.d.mjs +0 -0
- package/dist/index.js +17 -1
- package/dist/index.mjs +17 -1
- package/dist/rendering.js +1 -1
- package/dist/rendering.mjs +1 -1
- package/package.json +8 -7
|
File without changes
|
|
File without changes
|
package/dist/index.js
CHANGED
|
@@ -523,6 +523,12 @@ var input_default = function(options) {
|
|
|
523
523
|
};
|
|
524
524
|
// src/rendering.ts
|
|
525
525
|
var rendering_default = function(options) {
|
|
526
|
+
var setActiveDescendant = function(e) {
|
|
527
|
+
renderer.wrapper.setAttribute("aria-activedescendant", e.srcElement.id);
|
|
528
|
+
};
|
|
529
|
+
var removeActiveDescendant = function() {
|
|
530
|
+
renderer.wrapper.setAttribute("aria-activedescendant", "");
|
|
531
|
+
};
|
|
526
532
|
var renderer = {};
|
|
527
533
|
var initialized = false;
|
|
528
534
|
var defaults = {
|
|
@@ -559,6 +565,9 @@ var rendering_default = function(options) {
|
|
|
559
565
|
}
|
|
560
566
|
renderer.wrapper = document.createElement("div");
|
|
561
567
|
renderer.wrapper.id = "dn-wrapper-" + options.suffixId;
|
|
568
|
+
renderer.wrapper.setAttribute("role", "application");
|
|
569
|
+
renderer.wrapper.setAttribute("aria-label", options.root.description || "Data navigation structure");
|
|
570
|
+
renderer.wrapper.setAttribute("aria-activedescendant", "");
|
|
562
571
|
renderer.wrapper.classList.add("dn-wrapper");
|
|
563
572
|
renderer.wrapper.style.width = options.root && options.root.width ? options.root.width : "100%";
|
|
564
573
|
if (options.root && options.root.height) {
|
|
@@ -647,7 +656,9 @@ var rendering_default = function(options) {
|
|
|
647
656
|
node.style.height = height + "px";
|
|
648
657
|
node.style.left = x + "px";
|
|
649
658
|
node.style.top = y + "px";
|
|
650
|
-
node.setAttribute("tabindex", "
|
|
659
|
+
node.setAttribute("tabindex", "0");
|
|
660
|
+
node.addEventListener("focus", setActiveDescendant);
|
|
661
|
+
node.addEventListener("blur", removeActiveDescendant);
|
|
651
662
|
var nodeText = document.createElement(resolveProp("semantics", "elementType"));
|
|
652
663
|
var attributes = resolveProp("semantics", "attributes");
|
|
653
664
|
if (typeof attributes === "object") {
|
|
@@ -690,7 +701,12 @@ var rendering_default = function(options) {
|
|
|
690
701
|
};
|
|
691
702
|
renderer.remove = function(renderId) {
|
|
692
703
|
var node = document.getElementById(renderId);
|
|
704
|
+
if (renderer.wrapper.getAttribute("aria-activedescendant") === renderId) {
|
|
705
|
+
renderer.wrapper.setAttribute("aria-activedescendant", "");
|
|
706
|
+
}
|
|
693
707
|
if (node) {
|
|
708
|
+
node.removeEventListener("focus", setActiveDescendant);
|
|
709
|
+
node.removeEventListener("blur", removeActiveDescendant);
|
|
694
710
|
node.remove();
|
|
695
711
|
}
|
|
696
712
|
};
|
package/dist/index.mjs
CHANGED
|
@@ -393,6 +393,12 @@ var input_default = (options) => {
|
|
|
393
393
|
|
|
394
394
|
// src/rendering.ts
|
|
395
395
|
var rendering_default = (options) => {
|
|
396
|
+
const setActiveDescendant = (e) => {
|
|
397
|
+
renderer.wrapper.setAttribute("aria-activedescendant", e.srcElement.id);
|
|
398
|
+
};
|
|
399
|
+
const removeActiveDescendant = () => {
|
|
400
|
+
renderer.wrapper.setAttribute("aria-activedescendant", "");
|
|
401
|
+
};
|
|
396
402
|
let renderer = {};
|
|
397
403
|
let initialized = false;
|
|
398
404
|
let defaults = {
|
|
@@ -432,6 +438,9 @@ var rendering_default = (options) => {
|
|
|
432
438
|
}
|
|
433
439
|
renderer.wrapper = document.createElement("div");
|
|
434
440
|
renderer.wrapper.id = "dn-wrapper-" + options.suffixId;
|
|
441
|
+
renderer.wrapper.setAttribute("role", "application");
|
|
442
|
+
renderer.wrapper.setAttribute("aria-label", options.root.description || "Data navigation structure");
|
|
443
|
+
renderer.wrapper.setAttribute("aria-activedescendant", "");
|
|
435
444
|
renderer.wrapper.classList.add("dn-wrapper");
|
|
436
445
|
renderer.wrapper.style.width = options.root && options.root.width ? options.root.width : "100%";
|
|
437
446
|
if (options.root && options.root.height) {
|
|
@@ -518,7 +527,9 @@ var rendering_default = (options) => {
|
|
|
518
527
|
node.style.height = height + "px";
|
|
519
528
|
node.style.left = x + "px";
|
|
520
529
|
node.style.top = y + "px";
|
|
521
|
-
node.setAttribute("tabindex", "
|
|
530
|
+
node.setAttribute("tabindex", "0");
|
|
531
|
+
node.addEventListener("focus", setActiveDescendant);
|
|
532
|
+
node.addEventListener("blur", removeActiveDescendant);
|
|
522
533
|
const nodeText = document.createElement(resolveProp("semantics", "elementType"));
|
|
523
534
|
const attributes = resolveProp("semantics", "attributes");
|
|
524
535
|
if (typeof attributes === "object") {
|
|
@@ -563,7 +574,12 @@ var rendering_default = (options) => {
|
|
|
563
574
|
};
|
|
564
575
|
renderer.remove = (renderId) => {
|
|
565
576
|
const node = document.getElementById(renderId);
|
|
577
|
+
if (renderer.wrapper.getAttribute("aria-activedescendant") === renderId) {
|
|
578
|
+
renderer.wrapper.setAttribute("aria-activedescendant", "");
|
|
579
|
+
}
|
|
566
580
|
if (node) {
|
|
581
|
+
node.removeEventListener("focus", setActiveDescendant);
|
|
582
|
+
node.removeEventListener("blur", removeActiveDescendant);
|
|
567
583
|
node.remove();
|
|
568
584
|
}
|
|
569
585
|
};
|
package/dist/rendering.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function t(t){if(Array.isArray(t))return e(t)}function n(e,t,n){if(t in e){Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true})}else{e[t]=n}return e}function r(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function i(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function
|
|
1
|
+
function e(e,t){if(t==null||t>e.length)t=e.length;for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function t(t){if(Array.isArray(t))return e(t)}function n(e,t,n){if(t in e){Object.defineProperty(e,t,{value:n,enumerable:true,configurable:true,writable:true})}else{e[t]=n}return e}function r(e){if(typeof Symbol!=="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function i(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function a(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};var i=Object.keys(r);if(typeof Object.getOwnPropertySymbols==="function"){i=i.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))}i.forEach(function(t){n(e,t,r[t])})}return e}function s(e){return t(e)||r(e)||o(e)||i()}function o(t,n){if(!t)return;if(typeof t==="string")return e(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor)r=t.constructor.name;if(r==="Map"||r==="Set")return Array.from(r);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return e(t,n)}var l=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var f=function(e,t){for(var n in t)l(e,n,{get:t[n],enumerable:!0})},m=function(e,t,n,r){var i=true,a=false,s=undefined;if(t&&typeof t=="object"||typeof t=="function")try{var o=function(){var i=m.value;!d.call(e,i)&&i!==n&&l(e,i,{get:function(){return t[i]},enumerable:!(r=u(t,i))||r.enumerable})};for(var f=c(t)[Symbol.iterator](),m;!(i=(m=f.next()).done);i=true)o()}catch(e){a=true;s=e}finally{try{if(!i&&f.return!=null){f.return()}}finally{if(a){throw s}}}return e};var p=function(e){return m(l({},"__esModule",{value:!0}),e)};var b={};f(b,{default:function(){return v}});module.exports=p(b);var y={cssClass:"",dimensions:{x:0,y:0,width:0,height:0,path:""},semantics:{label:"",elementType:"div",role:"image",attributes:void 0},parentSemantics:{label:"",elementType:"figure",role:"figure",attributes:void 0},existingElement:{useForDimensions:!1,dimensions:void 0}};var v=function(e){var t=function(e){r.wrapper.setAttribute("aria-activedescendant",e.srcElement.id)},n=function(){r.wrapper.setAttribute("aria-activedescendant","")},r={},i=!1,o={cssClass:y.cssClass,dimensions:a({},y.dimensions),semantics:a({},y.semantics),parentSemantics:a({},y.parentSemantics),existingElement:a({},y.existingElement)};return e.defaults&&(o.cssClass=e.defaults.cssClass||o.cssClass,o.dimensions=e.defaults.dimensions?a({},o.dimensions,e.defaults.dimensions):o.dimensions,o.semantics=e.defaults.semantics?a({},o.semantics,e.defaults.semantics):o.semantics,o.parentSemantics=e.defaults.parentSemantics?a({},o.parentSemantics,e.defaults.parentSemantics):o.parentSemantics,o.existingElement=e.defaults.existingElement?a({},o.existingElement,e.defaults.existingElement):o.existingElement),r.initialize=function(){var t;if(i){console.error("The renderer wrapper has already been initialized successfully, RenderingOptions.suffixId is: ".concat(e.suffixId,". No further action was taken."));return}if(e.root&&document.getElementById(e.root.id))r.root=document.getElementById(e.root.id);else{console.error("No root element found, cannot build: RenderingOptions.root.id must reference an existing DOM element in order to render children.");return}if(r.root.style.position="relative",r.root.classList.add("dn-root"),!e.suffixId){console.error("No suffix id found: options.suffixId must be specified.");return}return r.wrapper=document.createElement("div"),r.wrapper.id="dn-wrapper-"+e.suffixId,r.wrapper.setAttribute("role","application"),r.wrapper.setAttribute("aria-label",e.root.description||"Data navigation structure"),r.wrapper.setAttribute("aria-activedescendant",""),r.wrapper.classList.add("dn-wrapper"),r.wrapper.style.width=e.root&&e.root.width?e.root.width:"100%",e.root&&e.root.height&&(r.wrapper.style.height=e.root.height),e.entryButton&&e.entryButton.include&&(r.entryButton=document.createElement("button"),r.entryButton.id="dn-entry-button-"+e.suffixId,r.entryButton.classList.add("dn-entry-button"),r.entryButton.innerText="Enter navigation area",e.entryButton.callbacks&&e.entryButton.callbacks.click&&r.entryButton.addEventListener("click",e.entryButton.callbacks.click),e.entryButton.callbacks&&e.entryButton.callbacks.focus&&r.entryButton.addEventListener("focus",e.entryButton.callbacks.focus),r.wrapper.appendChild(r.entryButton)),r.root.appendChild(r.wrapper),((t=e.exitElement)===null||t===void 0?void 0:t.include)&&(r.exitElement=document.createElement("div"),r.exitElement.id="dn-exit-"+e.suffixId,r.exitElement.classList.add("dn-exit-position"),r.exitElement.innerText="End of data structure.",r.exitElement.setAttribute("aria-label","End of data structure."),r.exitElement.setAttribute("role","note"),r.exitElement.setAttribute("tabindex","-1"),r.exitElement.style.display="none",r.exitElement.addEventListener("focus",function(t){var n,i;r.exitElement.style.display="block",r.clearStructure(),((i=e.exitElement)===null||i===void 0?void 0:(n=i.callbacks)===null||n===void 0?void 0:n.focus)&&e.exitElement.callbacks.focus(t)}),r.exitElement.addEventListener("blur",function(t){var n,i;r.exitElement.style.display="none",((i=e.exitElement)===null||i===void 0?void 0:(n=i.callbacks)===null||n===void 0?void 0:n.blur)&&e.exitElement.callbacks.blur(t)}),r.root.appendChild(r.exitElement)),i=!0,r.root},r.render=function(a){var s=a.renderId+"",l=e.elementData[s];if(!l){console.warn("Render data not found with renderId: ".concat(s,". Failed to render."));return}if(!i){console.error("render() was called before initialize(), renderer must be initialized first.");return}var u=!1,c={},d=function(e,t,n){var r=l[e]||o[e],i=n&&u?c[t]:r[t],s=o[e][t];return typeof r=="function"?r(l,a.datum):typeof i=="function"?i(l,a.datum):i||s||(t?void 0:r)};u=d("existingElement","useForDimensions"),c=d("existingElement","dimensions");var f=parseFloat(d("dimensions","width",!0)||0),m=parseFloat(d("dimensions","height",!0)||0),p=parseFloat(d("dimensions","x",!0)||0),b=parseFloat(d("dimensions","y",!0)||0),y=document.createElement(d("parentSemantics","elementType")),v=d("parentSemantics","attributes");typeof v=="object"&&Object.keys(v).forEach(function(e){y.setAttribute(e,v[e])}),y.setAttribute("role",d("parentSemantics","role")),y.id=s,y.classList.add("dn-node"),y.classList.add(d("cssClass")),y.style.width=f+"px",y.style.height=m+"px",y.style.left=p+"px",y.style.top=b+"px",y.setAttribute("tabindex","0"),y.addEventListener("focus",t),y.addEventListener("blur",n);var x=document.createElement(d("semantics","elementType")),E=d("semantics","attributes");typeof E=="object"&&Object.keys(E).forEach(function(e){y.setAttribute(e,E[e])}),x.setAttribute("role",d("semantics","role")),x.classList.add("dn-node-text"),l.showText&&(x.innerText=l.semantics.label);var h=d("semantics","label");h||console.error("Accessibility error: a label must be supplied to every rendered element using semantics.label."),x.setAttribute("aria-label",h),y.appendChild(x);var w=d("dimensions","path");if(w){var g=f+p+10,A=m+b+10,S=document.createElementNS("http://www.w3.org/2000/svg","svg");S.setAttribute("width",g+""),S.setAttribute("height",A+""),S.setAttribute("viewBox","0 0 ".concat(g," ").concat(A)),S.style.left=-p+"px",S.style.top=-b+"px",S.classList.add("dn-node-svg"),S.setAttribute("role","presentation"),S.setAttribute("focusable","false");var O=document.createElementNS("http://www.w3.org/2000/svg","path");O.setAttribute("d",w),O.classList.add("dn-node-path"),S.appendChild(O),y.appendChild(S)}return r.wrapper.appendChild(y),y},r.remove=function(e){var i=document.getElementById(e);r.wrapper.getAttribute("aria-activedescendant")===e&&r.wrapper.setAttribute("aria-activedescendant",""),i&&(i.removeEventListener("focus",t),i.removeEventListener("blur",n),i.remove())},r.clearStructure=function(){s(r.wrapper.children).forEach(function(e){r.entryButton&&r.entryButton===e||r.remove(e.id)})},r};
|
package/dist/rendering.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as m}from"./chunk-GP5LYFFJ.mjs";var
|
|
1
|
+
import{d as m}from"./chunk-GP5LYFFJ.mjs";var T=t=>{let w=r=>{e.wrapper.setAttribute("aria-activedescendant",r.srcElement.id)},g=()=>{e.wrapper.setAttribute("aria-activedescendant","")},e={},b=!1,s={cssClass:m.cssClass,dimensions:{...m.dimensions},semantics:{...m.semantics},parentSemantics:{...m.parentSemantics},existingElement:{...m.existingElement}};return t.defaults&&(s.cssClass=t.defaults.cssClass||s.cssClass,s.dimensions=t.defaults.dimensions?{...s.dimensions,...t.defaults.dimensions}:s.dimensions,s.semantics=t.defaults.semantics?{...s.semantics,...t.defaults.semantics}:s.semantics,s.parentSemantics=t.defaults.parentSemantics?{...s.parentSemantics,...t.defaults.parentSemantics}:s.parentSemantics,s.existingElement=t.defaults.existingElement?{...s.existingElement,...t.defaults.existingElement}:s.existingElement),e.initialize=()=>{if(b){console.error(`The renderer wrapper has already been initialized successfully, RenderingOptions.suffixId is: ${t.suffixId}. No further action was taken.`);return}if(t.root&&document.getElementById(t.root.id))e.root=document.getElementById(t.root.id);else{console.error("No root element found, cannot build: RenderingOptions.root.id must reference an existing DOM element in order to render children.");return}if(e.root.style.position="relative",e.root.classList.add("dn-root"),!t.suffixId){console.error("No suffix id found: options.suffixId must be specified.");return}return e.wrapper=document.createElement("div"),e.wrapper.id="dn-wrapper-"+t.suffixId,e.wrapper.setAttribute("role","application"),e.wrapper.setAttribute("aria-label",t.root.description||"Data navigation structure"),e.wrapper.setAttribute("aria-activedescendant",""),e.wrapper.classList.add("dn-wrapper"),e.wrapper.style.width=t.root&&t.root.width?t.root.width:"100%",t.root&&t.root.height&&(e.wrapper.style.height=t.root.height),t.entryButton&&t.entryButton.include&&(e.entryButton=document.createElement("button"),e.entryButton.id="dn-entry-button-"+t.suffixId,e.entryButton.classList.add("dn-entry-button"),e.entryButton.innerText="Enter navigation area",t.entryButton.callbacks&&t.entryButton.callbacks.click&&e.entryButton.addEventListener("click",t.entryButton.callbacks.click),t.entryButton.callbacks&&t.entryButton.callbacks.focus&&e.entryButton.addEventListener("focus",t.entryButton.callbacks.focus),e.wrapper.appendChild(e.entryButton)),e.root.appendChild(e.wrapper),t.exitElement?.include&&(e.exitElement=document.createElement("div"),e.exitElement.id="dn-exit-"+t.suffixId,e.exitElement.classList.add("dn-exit-position"),e.exitElement.innerText="End of data structure.",e.exitElement.setAttribute("aria-label","End of data structure."),e.exitElement.setAttribute("role","note"),e.exitElement.setAttribute("tabindex","-1"),e.exitElement.style.display="none",e.exitElement.addEventListener("focus",r=>{e.exitElement.style.display="block",e.clearStructure(),t.exitElement?.callbacks?.focus&&t.exitElement.callbacks.focus(r)}),e.exitElement.addEventListener("blur",r=>{e.exitElement.style.display="none",t.exitElement?.callbacks?.blur&&t.exitElement.callbacks.blur(r)}),e.root.appendChild(e.exitElement)),b=!0,e.root},e.render=r=>{let d=r.renderId+"",u=t.elementData[d];if(!u){console.warn(`Render data not found with renderId: ${d}. Failed to render.`);return}if(!b){console.error("render() was called before initialize(), renderer must be initialized first.");return}let v=!1,A={},i=(a,o,l)=>{let c=u[a]||s[a],h=l&&v?A[o]:c[o],C=s[a][o];return typeof c=="function"?c(u,r.datum):typeof h=="function"?h(u,r.datum):h||C||(o?void 0:c)};v=i("existingElement","useForDimensions"),A=i("existingElement","dimensions");let B=parseFloat(i("dimensions","width",!0)||0),k=parseFloat(i("dimensions","height",!0)||0),p=parseFloat(i("dimensions","x",!0)||0),x=parseFloat(i("dimensions","y",!0)||0),n=document.createElement(i("parentSemantics","elementType")),E=i("parentSemantics","attributes");typeof E=="object"&&Object.keys(E).forEach(a=>{n.setAttribute(a,E[a])}),n.setAttribute("role",i("parentSemantics","role")),n.id=d,n.classList.add("dn-node"),n.classList.add(i("cssClass")),n.style.width=B+"px",n.style.height=k+"px",n.style.left=p+"px",n.style.top=x+"px",n.setAttribute("tabindex","0"),n.addEventListener("focus",w),n.addEventListener("blur",g);let f=document.createElement(i("semantics","elementType")),y=i("semantics","attributes");typeof y=="object"&&Object.keys(y).forEach(a=>{n.setAttribute(a,y[a])}),f.setAttribute("role",i("semantics","role")),f.classList.add("dn-node-text"),u.showText&&(f.innerText=u.semantics.label);let L=i("semantics","label");L||console.error("Accessibility error: a label must be supplied to every rendered element using semantics.label."),f.setAttribute("aria-label",L),n.appendChild(f);let S=i("dimensions","path");if(S){let a=B+p+10,o=k+x+10,l=document.createElementNS("http://www.w3.org/2000/svg","svg");l.setAttribute("width",a+""),l.setAttribute("height",o+""),l.setAttribute("viewBox",`0 0 ${a} ${o}`),l.style.left=-p+"px",l.style.top=-x+"px",l.classList.add("dn-node-svg"),l.setAttribute("role","presentation"),l.setAttribute("focusable","false");let c=document.createElementNS("http://www.w3.org/2000/svg","path");c.setAttribute("d",S),c.classList.add("dn-node-path"),l.appendChild(c),n.appendChild(l)}return e.wrapper.appendChild(n),n},e.remove=r=>{let d=document.getElementById(r);e.wrapper.getAttribute("aria-activedescendant")===r&&e.wrapper.setAttribute("aria-activedescendant",""),d&&(d.removeEventListener("focus",w),d.removeEventListener("blur",g),d.remove())},e.clearStructure=()=>{[...e.wrapper.children].forEach(r=>{e.entryButton&&e.entryButton===r||e.remove(r.id)})},e};export{T as default};
|
package/package.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "data-navigator",
|
|
3
3
|
"author": "Frank Elavsky",
|
|
4
|
-
"version": "1.0
|
|
5
|
-
"main": "dist/index.jsm",
|
|
6
|
-
"module": "dist/index",
|
|
7
|
-
"types": "data-navigator.d.ts",
|
|
4
|
+
"version": "1.2.0",
|
|
5
|
+
"main": "./dist/index.jsm",
|
|
6
|
+
"module": "./dist/index",
|
|
7
|
+
"types": "./dist/data-navigator.d.ts",
|
|
8
8
|
"files": [
|
|
9
9
|
"dist/**/*"
|
|
10
10
|
],
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
13
|
"import": {
|
|
14
|
-
"types": "./data-navigator.d.ts",
|
|
14
|
+
"types": "./dist/data-navigator.d.ts",
|
|
15
15
|
"default": "./dist/index.js"
|
|
16
16
|
},
|
|
17
17
|
"require": {
|
|
18
|
-
"types": "./data-navigator.d.ts",
|
|
18
|
+
"types": "./dist/data-navigator.d.ts",
|
|
19
19
|
"default": "./dist/index.mjs"
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -29,9 +29,10 @@
|
|
|
29
29
|
"description": "Data-navigator is a JavaScript library that allows for serial navigation of data structures using a variety of input modalities and assistive technologies.",
|
|
30
30
|
"scripts": {
|
|
31
31
|
"clean": "rm -rf ./dist && rm -rf ./app",
|
|
32
|
-
"build": "yarn build:app && yarn build:index && yarn build:modules",
|
|
32
|
+
"build": "yarn build:app && yarn build:index && yarn build:types && yarn build:modules",
|
|
33
33
|
"build:app": "webpack",
|
|
34
34
|
"build:index": "tsup src/index.ts --format cjs,esm",
|
|
35
|
+
"build:types": "tsup data-navigator.d.ts --format cjs,esm",
|
|
35
36
|
"build:modules": "tsup src/structure.ts src/input.ts src/rendering.ts src/utilities.ts src/consts.ts --format cjs,esm --minify",
|
|
36
37
|
"server": "python -m http.server",
|
|
37
38
|
"prettier-all-check": "prettier --config ./.prettierrc --ignore ./.prettierignore --debug-check \"**/*.{js,jsx,ts,tsx,html,jsx,json,css,scss,md}\"",
|