@rnacanvas/utilities 7.1.0 → 8.0.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/README.md CHANGED
@@ -82,6 +82,23 @@ middleFour(['a', 'b', 'c']); // throws
82
82
  middleFour(['a', 'b', 'c', 'd']); // ["a", "b", "c", "d"]
83
83
  ```
84
84
 
85
+ ## `function removeWhitespace()`
86
+
87
+ Returns a new string with all whitespace characters having been omitted from the input string.
88
+
89
+ ```javascript
90
+ removeWhitespace(' a s d f '); // "asdf"
91
+
92
+ // different kinds of whitespace characters
93
+ removeWhitespace(' a\ts\nd\rf\r\n'); // "asdf"
94
+
95
+ // no whitespace characters
96
+ removeWhitespace('asdf'); // "asdf"
97
+
98
+ // an empty string
99
+ removeWhitespace(''); // ""
100
+ ```
101
+
85
102
  ## `function splitLines()`
86
103
 
87
104
  Splits a string into its constituent lines
@@ -105,6 +122,35 @@ splitLines('qwer\r'); // ["qwer", ""]
105
122
  splitLines('asdf\n\n\nqwer'); // ["asdf", "", "", "qwer"]
106
123
  ```
107
124
 
125
+ ## `function isJSON()`
126
+
127
+ Returns `true` if a value is a string in JSON format.
128
+
129
+ Returns `false` otherwise.
130
+
131
+ ```javascript
132
+ isJSON('{ "a": 1, "b": 2 }'); // true
133
+
134
+ isJSON('[1, 2, 3]'); // true
135
+
136
+ isJSON('"asdf"'); // true
137
+
138
+ isJSON('2'); // true
139
+
140
+ // no double-quotes
141
+ isJSON('asdf'); // false
142
+
143
+ // missing closing bracket
144
+ isJSON('{ "a": 1, "b": 2'); // false
145
+
146
+ // not a string
147
+ isJSON({ "a": 1, "b": 2 }); // false
148
+
149
+ // some more non-string values
150
+ isJSON([1, 2, 3]); // false
151
+ isJSON(2); // false
152
+ ```
153
+
108
154
  ## `function isJSONSerializable()`
109
155
 
110
156
  Returns `true` if a value can be serialized to a JSON string.
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Returns `true` if this function is able to detect that the user is using a Mac device.
3
+ *
4
+ * Returns `false` otherwise.
5
+ */
6
+ export declare function detectMac(): boolean;
7
+ //# sourceMappingURL=detectMac.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detectMac.d.ts","sourceRoot":"","sources":["../src/detectMac.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAOnC"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,8 @@ import { middleThree } from './middleThree';
6
6
  export { middleThree };
7
7
  import { middleFour } from './middleFour';
8
8
  export { middleFour };
9
+ import { removeWhitespace } from './removeWhitespace';
10
+ export { removeWhitespace };
9
11
  import { splitLines } from './splitLines';
10
12
  export { splitLines };
11
13
  import { isJSON } from '@rnacanvas/value-check';
@@ -22,8 +24,8 @@ import { KeyBinding } from '@rnacanvas/key-bindings';
22
24
  export { KeyBinding };
23
25
  import { detectWindows } from './detectWindows';
24
26
  export { detectWindows };
25
- import { detectMacOS } from './detectMacOS';
26
- export { detectMacOS };
27
+ import { detectMac } from './detectMac';
28
+ export { detectMac };
27
29
  import { DownloadableFile } from './DownloadableFile';
28
30
  export { DownloadableFile };
29
31
  import { EventfulSet } from './EventfulSet';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.utilities=t():e.utilities=t()}(this,()=>(()=>{var e={992(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{KeyBinding:()=>y});var r,n,i,o,s,a,u,l,c,h,f=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},d=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class y{constructor(e,t,a){r.add(this),this.key=e,n.set(this,void 0),i.set(this,void 0),o.set(this,void 0),s.set(this,void 0),f(this,n,t,"f"),f(this,i,e=>d(this,r,"m",h).call(this,e),"f"),f(this,o,a,"f")}get owner(){return d(this,s,"f")}set owner(e){var t;null===(t=d(this,s,"f"))||void 0===t||t.removeEventListener("keydown",d(this,i,"f")),null==e||e.addEventListener("keydown",d(this,i,"f"),{passive:!1}),f(this,s,e,"f")}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,s=new WeakMap,r=new WeakSet,a=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.altKey)&&void 0!==t&&t},u=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.ctrlKey)&&void 0!==t&&t},l=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.metaKey)&&void 0!==t&&t},c=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.shiftKey)&&void 0!==t&&t},h=function(e){this.owner&&this.owner===document.activeElement&&e.key.toUpperCase()===this.key.toUpperCase()&&e.altKey===d(this,r,"a",a)&&e.ctrlKey===d(this,r,"a",u)&&e.metaKey===d(this,r,"a",l)&&e.shiftKey===d(this,r,"a",c)&&(e.preventDefault(),d(this,n,"f").call(this))},t})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function s(e){return n(e)&&e>=0}function a(e){return"string"==typeof e}function u(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function l(e){try{return JSON.stringify(e),!0}catch{return!1}}function c(e){return null==e}function h(e){return"object"==typeof e&&null!==e}function f(e){return Array.isArray(e)}function d(e){return f(e)&&0==e.length}function y(e){return f(e)&&e.length>0}function p(e){return f(e)&&e.every(r)}function v(e){return p(e)&&e.length>0}function m(e){return f(e)&&e.every(n)}function w(e){return f(e)&&e.every(i)}function g(e){return f(e)&&e.every(a)}function b(e){return g(e)&&e.length>0}return e.r(t),e.d(t,{isArray:()=>f,isEmptyArray:()=>d,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>m,isJSON:()=>u,isJSONSerializable:()=>l,isNonEmptyArray:()=>y,isNonEmptyNumbersArray:()=>v,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>w,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>h,isNullish:()=>c,isNumber:()=>r,isNumbersArray:()=>p,isPositiveFiniteNumber:()=>o,isString:()=>a,isStringsArray:()=>g}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){if(e.length>0)return e[0];throw new Error("Array is empty.")}function t(e){if(e.length>0)return e[e.length-1];throw new Error("Array is empty.")}function i(e){if(e.length<3)throw new Error("Array has less than 3 items.");if(e.length%2==0)throw new Error("Array has an even number of items.");let t=Math.floor(e.length/2);return[e[t-1],e[t],e[t+1]]}function o(e){if(e.length<4)throw new Error("Array has less than 4 items.");if(e.length%2!=0)throw new Error("Array has an odd number of items.");let t=Math.floor(e.length/2);return[e[t-2],e[t-1],e[t],e[t+1]]}function s(e){return e.split(/\r\n|\r|\n/)}r.r(n),r.d(n,{DownloadableFile:()=>m,EventfulSet:()=>w,FiniteStack:()=>O,KeyBinding:()=>h.KeyBinding,containsFocus:()=>c,detectMacOS:()=>d,detectWindows:()=>f,first:()=>e,hasFocus:()=>l,isJSON:()=>a.isJSON,isJSONSerializable:()=>a.isJSONSerializable,isURL:()=>j,last:()=>t,middleFour:()=>o,middleThree:()=>i,shuffled:()=>u,splitLines:()=>s});var a=r(854);function u(e){return e.map(e=>({v:e,priority:Math.random()})).sort((e,t)=>e.priority-t.priority).map(({v:e})=>e)}function l(e){return e===document.activeElement}function c(e){return!!document.activeElement&&e.contains(document.activeElement)}var h=r(992);function f(){return-1!==navigator.userAgent.indexOf("Windows")}function d(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(e){return!1}}var y,p=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},v=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class m{constructor(e,t,r){y.set(this,void 0),this.name=null!=e?e:"Unnamed.txt",this.content=null!=t?t:"",p(this,y,null==r?void 0:r.type,"f")}get type(){return null!=v(this,y,"f")?v(this,y,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(e){p(this,y,e,"f")}download(){let e=new File([this.content],this.name,{type:this.type}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}y=new WeakMap;class w{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(e){return this.underlyingSet.has(e)}include(e){return this.includes(e)}addAll(e){let t=[...e];0!=t.length&&(t.every(e=>this.includes(e))||(t.forEach(e=>this.underlyingSet.add(e)),this.callEventListeners("change")))}removeAll(e){let t=[...e];0!=t.length&&(t.every(e=>!this.includes(e))||(t.forEach(e=>this.underlyingSet.delete(e)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(e,t){this.eventListeners[e].push(t)}callEventListeners(e){this.eventListeners[e].forEach(e=>e())}removeEventListener(e,t){this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)}}var g,b,E,S,N=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class O{constructor(e){g.add(this),this.maxSize=e,b.set(this,[]),E.set(this,{change:[]})}get size(){return N(this,b,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(e,r):i?i.value=r:t.set(e,r)}(this,b,[],"f"),N(this,g,"m",S).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return N(this,b,"f")[N(this,b,"f").length-1]}push(e){N(this,b,"f").push(e),this.size>this.maxSize&&N(this,b,"f").shift(),N(this,g,"m",S).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let e=N(this,b,"f").pop();return N(this,g,"m",S).call(this,"change"),e}addEventListener(e,t){N(this,E,"f")[e].push(t)}removeEventListener(e,t){N(this,E,"f")[e]=N(this,E,"f")[e].filter(e=>e!==t)}}function j(e){try{return new URL(e),!0}catch(e){return!1}}b=new WeakMap,E=new WeakMap,g=new WeakSet,S=function(e){N(this,E,"f")[e].forEach(e=>e())}})(),n})());
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.utilities=t():e.utilities=t()}(this,()=>(()=>{var e={992(e){var t;t=()=>(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{KeyBinding:()=>y});var r,n,i,o,s,a,u,l,c,h,f=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},d=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class y{constructor(e,t,a){r.add(this),this.key=e,n.set(this,void 0),i.set(this,void 0),o.set(this,void 0),s.set(this,void 0),f(this,n,t,"f"),f(this,i,e=>d(this,r,"m",h).call(this,e),"f"),f(this,o,a,"f")}get owner(){return d(this,s,"f")}set owner(e){var t;null===(t=d(this,s,"f"))||void 0===t||t.removeEventListener("keydown",d(this,i,"f")),null==e||e.addEventListener("keydown",d(this,i,"f"),{passive:!1}),f(this,s,e,"f")}}return n=new WeakMap,i=new WeakMap,o=new WeakMap,s=new WeakMap,r=new WeakSet,a=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.altKey)&&void 0!==t&&t},u=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.ctrlKey)&&void 0!==t&&t},l=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.metaKey)&&void 0!==t&&t},c=function(){var e,t;return null!==(t=null===(e=d(this,o,"f"))||void 0===e?void 0:e.shiftKey)&&void 0!==t&&t},h=function(e){this.owner&&this.owner===document.activeElement&&e.key.toUpperCase()===this.key.toUpperCase()&&e.altKey===d(this,r,"a",a)&&e.ctrlKey===d(this,r,"a",u)&&e.metaKey===d(this,r,"a",l)&&e.shiftKey===d(this,r,"a",c)&&(e.preventDefault(),d(this,n,"f").call(this))},t})(),e.exports=t()},854(e){e.exports=(()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return"number"==typeof e}function n(e){return r(e)&&Number.isFinite(e)}function i(e){return r(e)&&!Number.isFinite(e)}function o(e){return n(e)&&e>0}function s(e){return n(e)&&e>=0}function a(e){return"string"==typeof e}function u(e){return""===e}function l(e){return a(e)&&!u(e)}function c(e){return!!a(e)&&0==e.trim().length}function h(e){if(!a(e))return!1;try{return JSON.parse(e),!0}catch{return!1}}function f(e){try{return JSON.stringify(e),!0}catch{return!1}}function d(e){return!!e}function y(e){return!e}function p(e){return null==e}function v(e){return"object"==typeof e&&null!==e}function m(e){return Array.isArray(e)}function w(e){return m(e)&&0==e.length}function g(e){return m(e)&&e.length>0}function b(e){return m(e)&&e.every(r)}function E(e){return b(e)&&e.length>0}function S(e){return m(e)&&e.every(n)}function N(e){return m(e)&&e.every(i)}function O(e){return m(e)&&e.every(a)}function j(e){return O(e)&&e.length>0}function T(e){return e instanceof SVGGraphicsElement}return e.r(t),e.d(t,{isArray:()=>m,isEmptyArray:()=>w,isEmptyString:()=>u,isFalsy:()=>y,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>S,isJSON:()=>h,isJSONSerializable:()=>f,isNonEmptyArray:()=>g,isNonEmptyNumbersArray:()=>E,isNonEmptyString:()=>l,isNonEmptyStringsArray:()=>j,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>N,isNonNegativeFiniteNumber:()=>s,isNonNullObject:()=>v,isNullish:()=>p,isNumber:()=>r,isNumbersArray:()=>b,isPositiveFiniteNumber:()=>o,isSVGGraphicsElement:()=>T,isString:()=>a,isStringsArray:()=>O,isTruthy:()=>d,isWhitespace:()=>c}),t})()}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e){if(e.length>0)return e[0];throw new Error("Array is empty.")}function t(e){if(e.length>0)return e[e.length-1];throw new Error("Array is empty.")}function i(e){if(e.length<3)throw new Error("Array has less than 3 items.");if(e.length%2==0)throw new Error("Array has an even number of items.");let t=Math.floor(e.length/2);return[e[t-1],e[t],e[t+1]]}function o(e){if(e.length<4)throw new Error("Array has less than 4 items.");if(e.length%2!=0)throw new Error("Array has an odd number of items.");let t=Math.floor(e.length/2);return[e[t-2],e[t-1],e[t],e[t+1]]}r.r(n),r.d(n,{DownloadableFile:()=>w,EventfulSet:()=>g,FiniteStack:()=>j,KeyBinding:()=>f.KeyBinding,containsFocus:()=>h,detectMac:()=>y,detectWindows:()=>d,first:()=>e,hasFocus:()=>c,isJSON:()=>s.isJSON,isJSONSerializable:()=>s.isJSONSerializable,isURL:()=>T,last:()=>t,middleFour:()=>o,middleThree:()=>i,removeWhitespace:()=>a,shuffled:()=>l,splitLines:()=>u});var s=r(854);function a(e){return[...e].filter(e=>!(0,s.isWhitespace)(e)).join("")}function u(e){return e.split(/\r\n|\r|\n/)}function l(e){return e.map(e=>({v:e,priority:Math.random()})).sort((e,t)=>e.priority-t.priority).map(({v:e})=>e)}function c(e){return e===document.activeElement}function h(e){return!!document.activeElement&&e.contains(document.activeElement)}var f=r(992);function d(){return-1!==navigator.userAgent.indexOf("Windows")}function y(){try{return window.navigator.platform.toLowerCase().includes("mac")}catch(e){return!1}}var p,v=function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(e,r):i?i.value=r:t.set(e,r),r},m=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class w{constructor(e,t,r){p.set(this,void 0),this.name=null!=e?e:"Unnamed.txt",this.content=null!=t?t:"",v(this,p,null==r?void 0:r.type,"f")}get type(){return null!=m(this,p,"f")?m(this,p,"f"):this.content instanceof Blob?this.content.type:"text/plain"}set type(e){v(this,p,e,"f")}download(){let e=new File([this.content],this.name,{type:this.type}),t=URL.createObjectURL(e),r=document.createElement("a");r.href=t,r.download=e.name,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}p=new WeakMap;class g{constructor(){this.eventListeners={change:[]},this.underlyingSet=new Set}[Symbol.iterator](){return this.underlyingSet.values()}includes(e){return this.underlyingSet.has(e)}include(e){return this.includes(e)}addAll(e){let t=[...e];0!=t.length&&(t.every(e=>this.includes(e))||(t.forEach(e=>this.underlyingSet.add(e)),this.callEventListeners("change")))}removeAll(e){let t=[...e];0!=t.length&&(t.every(e=>!this.includes(e))||(t.forEach(e=>this.underlyingSet.delete(e)),this.callEventListeners("change")))}clear(){0!=this.underlyingSet.size&&(this.underlyingSet.clear(),this.callEventListeners("change"))}addEventListener(e,t){this.eventListeners[e].push(t)}callEventListeners(e){this.eventListeners[e].forEach(e=>e())}removeEventListener(e,t){this.eventListeners[e]=this.eventListeners[e].filter(e=>e!==t)}}var b,E,S,N,O=function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class j{constructor(e){b.add(this),this.maxSize=e,E.set(this,[]),S.set(this,{change:[]})}get size(){return O(this,E,"f").length}isEmpty(){return 0==this.size}empty(){0!=this.size&&(function(e,t,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(e,r):i?i.value=r:t.set(e,r)}(this,E,[],"f"),O(this,b,"m",N).call(this,"change"))}peek(){if(0==this.size)throw new Error("The stack is empty.");return O(this,E,"f")[O(this,E,"f").length-1]}push(e){O(this,E,"f").push(e),this.size>this.maxSize&&O(this,E,"f").shift(),O(this,b,"m",N).call(this,"change")}pop(){if(0==this.size)throw new Error("The stack is empty.");let e=O(this,E,"f").pop();return O(this,b,"m",N).call(this,"change"),e}addEventListener(e,t){O(this,S,"f")[e].push(t)}removeEventListener(e,t){O(this,S,"f")[e]=O(this,S,"f")[e].filter(e=>e!==t)}}function T(e){try{return new URL(e),!0}catch(e){return!1}}E=new WeakMap,S=new WeakMap,b=new WeakSet,N=function(e){O(this,S,"f")[e].forEach(e=>e())}})(),n})());
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Returns a new string with all whitespace characters having been removed from the input string.
3
+ */
4
+ export declare function removeWhitespace(text: string): string;
5
+ //# sourceMappingURL=removeWhitespace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeWhitespace.d.ts","sourceRoot":"","sources":["../src/removeWhitespace.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rnacanvas/utilities",
3
- "version": "7.1.0",
3
+ "version": "8.0.0",
4
4
  "description": "General utilities",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
@@ -1,7 +0,0 @@
1
- /**
2
- * Returns true if this function detects that the user is using a Mac device.
3
- *
4
- * Returns false otherwise.
5
- */
6
- export declare function detectMacOS(): boolean;
7
- //# sourceMappingURL=detectMacOS.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detectMacOS.d.ts","sourceRoot":"","sources":["../src/detectMacOS.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAOrC"}