]> foleosoft.com Git - QAnsel.git/commitdiff
Thu 12 Dec 2024 05:16:25 PM EST
authora <[email protected]>
Thu, 12 Dec 2024 22:16:25 +0000 (17:16 -0500)
committera <[email protected]>
Thu, 12 Dec 2024 22:16:25 +0000 (17:16 -0500)
src/imports/estouls-api.js
src/imports/micromodal.js
src/index.html

index 99357d123d75e75f3a97f0acd9d7a8a1e21aa33b..73760d7cb3f1072ec636247a609a2a6f496fd313 100644 (file)
@@ -287,7 +287,8 @@ var EstoulsAPI =
                msg = new TextEncoder().encode(msg);
                var key = EstoulsAPI.Hex.decode(EstoulsAPI.apikey);
                //var sess = crypto.getRandomValues(new Uint8Array(12));
-               var sess = new Uint8Array([0xba, 0x1f, 0x34, 0xdf, 0xf1, 0xb1, 0xd1, 0xce, 0xfb, 0x72, 0x28, 0x2b]);
+               var r = () => { return Math.floor(Math.random() * 10000) % 256 };;
+               var sess = new Uint8Array([r(), r(), r(), r(), r(), r(), r(), r(), r(), r(), r(), r()]);
                var rawdata = await EstoulsAPI.ChaCha20.encrypt(key, sess, 0, msg);
                var dgst = await EstoulsAPI.Hex.encode(await EstoulsAPI.HMACSHA256.sign(key, rawdata));
                var data = await EstoulsAPI.Base64.encode(rawdata);
index 09167d26a95e3059bab6f38c87607b5ac373487f..6abbb68c379aae9d85a28f64719e148eb8374eb7 100644 (file)
@@ -1 +1,223 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).MicroModal=t()}(this,(function(){"use strict";function e(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function t(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}(e)||function(){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 o(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o<t;o++)n[o]=e[o];return n}var n,i,a,r,s,l=(n=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex^="-"])'],i=function(){function o(e){var n=e.targetModal,i=e.triggers,a=void 0===i?[]:i,r=e.onShow,s=void 0===r?function(){}:r,l=e.onClose,c=void 0===l?function(){}:l,d=e.openTrigger,u=void 0===d?"data-micromodal-trigger":d,f=e.closeTrigger,h=void 0===f?"data-micromodal-close":f,v=e.openClass,g=void 0===v?"is-open":v,m=e.disableScroll,b=void 0!==m&&m,y=e.disableFocus,p=void 0!==y&&y,w=e.awaitCloseAnimation,E=void 0!==w&&w,k=e.awaitOpenAnimation,M=void 0!==k&&k,A=e.debugMode,C=void 0!==A&&A;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),this.modal=document.getElementById(n),this.config={debugMode:C,disableScroll:b,openTrigger:u,closeTrigger:h,openClass:g,onShow:s,onClose:c,awaitCloseAnimation:E,awaitOpenAnimation:M,disableFocus:p},a.length>0&&this.registerTriggers.apply(this,t(a)),this.onClick=this.onClick.bind(this),this.onKeydown=this.onKeydown.bind(this)}var i,a,r;return i=o,(a=[{key:"registerTriggers",value:function(){for(var e=this,t=arguments.length,o=new Array(t),n=0;n<t;n++)o[n]=arguments[n];o.filter(Boolean).forEach((function(t){t.addEventListener("click",(function(t){return e.showModal(t)}))}))}},{key:"showModal",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;if(this.activeElement=document.activeElement,this.modal.setAttribute("aria-hidden","false"),this.modal.classList.add(this.config.openClass),this.scrollBehaviour("disable"),this.addEventListeners(),this.config.awaitOpenAnimation){var o=function t(){e.modal.removeEventListener("animationend",t,!1),e.setFocusToFirstNode()};this.modal.addEventListener("animationend",o,!1)}else this.setFocusToFirstNode();this.config.onShow(this.modal,this.activeElement,t)}},{key:"closeModal",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.modal;if(this.modal.setAttribute("aria-hidden","true"),this.removeEventListeners(),this.scrollBehaviour("enable"),this.activeElement&&this.activeElement.focus&&this.activeElement.focus(),this.config.onClose(this.modal,this.activeElement,e),this.config.awaitCloseAnimation){var o=this.config.openClass;this.modal.addEventListener("animationend",(function e(){t.classList.remove(o),t.removeEventListener("animationend",e,!1)}),!1)}else t.classList.remove(this.config.openClass)}},{key:"closeModalById",value:function(e){this.modal=document.getElementById(e),this.modal&&this.closeModal()}},{key:"scrollBehaviour",value:function(e){if(this.config.disableScroll){var t=document.querySelector("body");switch(e){case"enable":Object.assign(t.style,{overflow:""});break;case"disable":Object.assign(t.style,{overflow:"hidden"})}}}},{key:"addEventListeners",value:function(){this.modal.addEventListener("touchstart",this.onClick),this.modal.addEventListener("click",this.onClick),document.addEventListener("keydown",this.onKeydown)}},{key:"removeEventListeners",value:function(){this.modal.removeEventListener("touchstart",this.onClick),this.modal.removeEventListener("click",this.onClick),document.removeEventListener("keydown",this.onKeydown)}},{key:"onClick",value:function(e){(e.target.hasAttribute(this.config.closeTrigger)||e.target.parentNode.hasAttribute(this.config.closeTrigger))&&(e.preventDefault(),e.stopPropagation(),this.closeModal(e))}},{key:"onKeydown",value:function(e){27===e.keyCode&&this.closeModal(e),9===e.keyCode&&this.retainFocus(e)}},{key:"getFocusableNodes",value:function(){var e=this.modal.querySelectorAll(n);return Array.apply(void 0,t(e))}},{key:"setFocusToFirstNode",value:function(){var e=this;if(!this.config.disableFocus){var t=this.getFocusableNodes();if(0!==t.length){var o=t.filter((function(t){return!t.hasAttribute(e.config.closeTrigger)}));o.length>0&&o[0].focus(),0===o.length&&t[0].focus()}}}},{key:"retainFocus",value:function(e){var t=this.getFocusableNodes();if(0!==t.length)if(t=t.filter((function(e){return null!==e.offsetParent})),this.modal.contains(document.activeElement)){var o=t.indexOf(document.activeElement);e.shiftKey&&0===o&&(t[t.length-1].focus(),e.preventDefault()),!e.shiftKey&&t.length>0&&o===t.length-1&&(t[0].focus(),e.preventDefault())}else t[0].focus()}}])&&e(i.prototype,a),r&&e(i,r),o}(),a=null,r=function(e){if(!document.getElementById(e))return console.warn("MicroModal: ❗Seems like you have missed %c'".concat(e,"'"),"background-color: #f8f9fa;color: #50596c;font-weight: bold;","ID somewhere in your code. Refer example below to resolve it."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",'<div class="modal" id="'.concat(e,'"></div>')),!1},s=function(e,t){if(function(e){e.length<=0&&(console.warn("MicroModal: ❗Please specify at least one %c'micromodal-trigger'","background-color: #f8f9fa;color: #50596c;font-weight: bold;","data attribute."),console.warn("%cExample:","background-color: #f8f9fa;color: #50596c;font-weight: bold;",'<a href="#" data-micromodal-trigger="my-modal"></a>'))}(e),!t)return!0;for(var o in t)r(o);return!0},{init:function(e){var o=Object.assign({},{openTrigger:"data-micromodal-trigger"},e),n=t(document.querySelectorAll("[".concat(o.openTrigger,"]"))),r=function(e,t){var o=[];return e.forEach((function(e){var n=e.attributes[t].value;void 0===o[n]&&(o[n]=[]),o[n].push(e)})),o}(n,o.openTrigger);if(!0!==o.debugMode||!1!==s(n,r))for(var l in r){var c=r[l];o.targetModal=l,o.triggers=t(c),a=new i(o)}},show:function(e,t){var o=t||{};o.targetModal=e,!0===o.debugMode&&!1===r(e)||(a&&a.removeEventListeners(),(a=new i(o)).showModal())},close:function(e){e?a.closeModalById(e):a.closeModal()}});return"undefined"!=typeof window&&(window.MicroModal=l),l}));
+! function(e, t) {
+    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).MicroModal = t()
+}(this, (function() {
+    "use strict";
+
+    function e(e, t) {
+        for (var o = 0; o < t.length; o++) {
+            var n = t[o];
+            n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
+        }
+    }
+
+    function t(e) {
+        return function(e) {
+            if (Array.isArray(e)) return o(e)
+        }(e) || function(e) {
+            if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e)
+        }(e) || function(e, t) {
+            if (!e) return;
+            if ("string" == typeof e) return o(e, t);
+            var n = Object.prototype.toString.call(e).slice(8, -1);
+            "Object" === n && e.constructor && (n = e.constructor.name);
+            if ("Map" === n || "Set" === n) return Array.from(e);
+            if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return o(e, t)
+        }(e) || function() {
+            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 o(e, t) {
+        (null == t || t > e.length) && (t = e.length);
+        for (var o = 0, n = new Array(t); o < t; o++) n[o] = e[o];
+        return n
+    }
+    var n, i, a, r, s, l = (n = ["a[href]", "area[href]", 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', "select:not([disabled]):not([aria-hidden])", "textarea:not([disabled]):not([aria-hidden])", "button:not([disabled]):not([aria-hidden])", "iframe", "object", "embed", "[contenteditable]", '[tabindex]:not([tabindex^="-"])'], i = function() {
+        function o(e) {
+            var n = e.targetModal,
+                i = e.triggers,
+                a = void 0 === i ? [] : i,
+                r = e.onShow,
+                s = void 0 === r ? function() {} : r,
+                l = e.onClose,
+                c = void 0 === l ? function() {} : l,
+                d = e.openTrigger,
+                u = void 0 === d ? "data-micromodal-trigger" : d,
+                f = e.closeTrigger,
+                h = void 0 === f ? "data-micromodal-close" : f,
+                v = e.openClass,
+                g = void 0 === v ? "is-open" : v,
+                m = e.disableScroll,
+                b = void 0 !== m && m,
+                y = e.disableFocus,
+                p = void 0 !== y && y,
+                w = e.awaitCloseAnimation,
+                E = void 0 !== w && w,
+                k = e.awaitOpenAnimation,
+                M = void 0 !== k && k,
+                A = e.debugMode,
+                C = void 0 !== A && A;
+            ! function(e, t) {
+                if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
+            }(this, o), this.modal = document.getElementById(n), this.config = {
+                debugMode: C,
+                disableScroll: b,
+                openTrigger: u,
+                closeTrigger: h,
+                openClass: g,
+                onShow: s,
+                onClose: c,
+                awaitCloseAnimation: E,
+                awaitOpenAnimation: M,
+                disableFocus: p
+            }, a.length > 0 && this.registerTriggers.apply(this, t(a)), this.onClick = this.onClick.bind(this), this.onKeydown = this.onKeydown.bind(this)
+        }
+        var i, a, r;
+        return i = o, (a = [{
+            key: "registerTriggers",
+            value: function() {
+                for (var e = this, t = arguments.length, o = new Array(t), n = 0; n < t; n++) o[n] = arguments[n];
+                o.filter(Boolean).forEach((function(t) {
+                    t.addEventListener("click", (function(t) {
+                        return e.showModal(t)
+                    }))
+                }))
+            }
+        }, {
+            key: "showModal",
+            value: function() {
+                var e = this,
+                    t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
+                if (this.activeElement = document.activeElement, this.modal.setAttribute("aria-hidden", "false"), this.modal.classList.add(this.config.openClass), this.scrollBehaviour("disable"), this.addEventListeners(), this.config.awaitOpenAnimation) {
+                    var o = function t() {
+                        e.modal.removeEventListener("animationend", t, !1), e.setFocusToFirstNode()
+                    };
+                    this.modal.addEventListener("animationend", o, !1)
+                } else this.setFocusToFirstNode();
+                this.config.onShow(this.modal, this.activeElement, t)
+            }
+        }, {
+            key: "closeModal",
+            value: function() {
+                var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null,
+                    t = this.modal;
+                if (this.modal.setAttribute("aria-hidden", "true"), this.removeEventListeners(), this.scrollBehaviour("enable"), this.activeElement && this.activeElement.focus && this.activeElement.focus(), this.config.onClose(this.modal, this.activeElement, e), this.config.awaitCloseAnimation) {
+                    var o = this.config.openClass;
+                    this.modal.addEventListener("animationend", (function e() {
+                        t.classList.remove(o), t.removeEventListener("animationend", e, !1)
+                    }), !1)
+                } else t.classList.remove(this.config.openClass)
+            }
+        }, {
+            key: "closeModalById",
+            value: function(e) {
+                this.modal = document.getElementById(e), this.modal && this.closeModal()
+            }
+        }, {
+            key: "scrollBehaviour",
+            value: function(e) {
+                if (this.config.disableScroll) {
+                    var t = document.querySelector("body");
+                    switch (e) {
+                        case "enable":
+                            Object.assign(t.style, {
+                                overflow: ""
+                            });
+                            break;
+                        case "disable":
+                            Object.assign(t.style, {
+                                overflow: "hidden"
+                            })
+                    }
+                }
+            }
+        }, {
+            key: "addEventListeners",
+            value: function() {
+                this.modal.addEventListener("touchstart", this.onClick), this.modal.addEventListener("click", this.onClick), document.addEventListener("keydown", this.onKeydown)
+            }
+        }, {
+            key: "removeEventListeners",
+            value: function() {
+                this.modal.removeEventListener("touchstart", this.onClick), this.modal.removeEventListener("click", this.onClick), document.removeEventListener("keydown", this.onKeydown)
+            }
+        }, {
+            key: "onClick",
+            value: function(e) {
+                (e.target.hasAttribute(this.config.closeTrigger)/* || e.target.parentNode.hasAttribute(this.config.closeTrigger)*/) && (e.preventDefault(), e.stopPropagation(), this.closeModal(e))
+            }
+        }, {
+            key: "onKeydown",
+            value: function(e) {
+                27 === e.keyCode && this.closeModal(e), 9 === e.keyCode && this.retainFocus(e)
+            }
+        }, {
+            key: "getFocusableNodes",
+            value: function() {
+                var e = this.modal.querySelectorAll(n);
+                return Array.apply(void 0, t(e))
+            }
+        }, {
+            key: "setFocusToFirstNode",
+            value: function() {
+                var e = this;
+                if (!this.config.disableFocus) {
+                    var t = this.getFocusableNodes();
+                    if (0 !== t.length) {
+                        var o = t.filter((function(t) {
+                            return !t.hasAttribute(e.config.closeTrigger)
+                        }));
+                        o.length > 0 && o[0].focus(), 0 === o.length && t[0].focus()
+                    }
+                }
+            }
+        }, {
+            key: "retainFocus",
+            value: function(e) {
+                var t = this.getFocusableNodes();
+                if (0 !== t.length)
+                    if (t = t.filter((function(e) {
+                            return null !== e.offsetParent
+                        })), this.modal.contains(document.activeElement)) {
+                        var o = t.indexOf(document.activeElement);
+                        e.shiftKey && 0 === o && (t[t.length - 1].focus(), e.preventDefault()), !e.shiftKey && t.length > 0 && o === t.length - 1 && (t[0].focus(), e.preventDefault())
+                    } else t[0].focus()
+            }
+        }]) && e(i.prototype, a), r && e(i, r), o
+    }(), a = null, r = function(e) {
+        if (!document.getElementById(e)) return console.warn("MicroModal: ❗Seems like you have missed %c'".concat(e, "'"), "background-color: #f8f9fa;color: #50596c;font-weight: bold;", "ID somewhere in your code. Refer example below to resolve it."), console.warn("%cExample:", "background-color: #f8f9fa;color: #50596c;font-weight: bold;", '<div class="modal" id="'.concat(e, '"></div>')), !1
+    }, s = function(e, t) {
+        if (function(e) {
+                e.length <= 0 && (console.warn("MicroModal: ❗Please specify at least one %c'micromodal-trigger'", "background-color: #f8f9fa;color: #50596c;font-weight: bold;", "data attribute."), console.warn("%cExample:", "background-color: #f8f9fa;color: #50596c;font-weight: bold;", '<a href="#" data-micromodal-trigger="my-modal"></a>'))
+            }(e), !t) return !0;
+        for (var o in t) r(o);
+        return !0
+    }, {
+        init: function(e) {
+            var o = Object.assign({}, {
+                    openTrigger: "data-micromodal-trigger"
+                }, e),
+                n = t(document.querySelectorAll("[".concat(o.openTrigger, "]"))),
+                r = function(e, t) {
+                    var o = [];
+                    return e.forEach((function(e) {
+                        var n = e.attributes[t].value;
+                        void 0 === o[n] && (o[n] = []), o[n].push(e)
+                    })), o
+                }(n, o.openTrigger);
+            if (!0 !== o.debugMode || !1 !== s(n, r))
+                for (var l in r) {
+                    var c = r[l];
+                    o.targetModal = l, o.triggers = t(c), a = new i(o)
+                }
+        },
+        show: function(e, t) {
+            var o = t || {};
+            o.targetModal = e, !0 === o.debugMode && !1 === r(e) || (a && a.removeEventListeners(), (a = new i(o)).showModal())
+        },
+        close: function(e) {
+            e ? a.closeModalById(e) : a.closeModal()
+        }
+    });
+    return "undefined" != typeof window && (window.MicroModal = l), l
+}));
\ No newline at end of file
index c1f3100dbef281c8ce920c85aa0c1d0a93d9c34d..deace9b2409f3ae50abb4e5ad95905add07dd1f0 100644 (file)
                                                if (v > shotsmax) v = shotsmax;
                                                $("#shots")[0].value = v;
                                        };
-                                       var changeEvents = ["change", "keydown", "keyup", "mouseenter", "mouseleave"];
+                                       var changeEvents = ["change", /*"keydown", "keyup",*/ "mouseenter", "mouseleave"];
                                        for (var i = 0; i < changeEvents.length; i++)
                                        {
                                                $("#noise")[0].addEventListener(changeEvents[i], e => { noiseChange(); });
                                                ProgramTrack.draw();
                                        `);
                                        MicroModal.show("modal-main");
+                                       document.activeElement.blur();
                                break;
                                case "save":
                                        if (ProgramTrack.STATE[0].length == 0)