smalltalk
Version:
Promise-based Alert, Confirm and Prompt replacement
3 lines • 16.6 kB
JavaScript
/*! For license information please see smalltalk.min.js.LICENSE.txt */
var smalltalk;(()=>{"use strict";var n={370:(n,e,t)=>{const o=t(802),a=o(((n,e,t)=>n.setAttribute(t,e[t]))),r=o(((n,e,t)=>n[t]=e[t])),i=o(((n,e)=>!n(e))),s=n=>n!=n.toLowerCase();function l(n){var e;if(n)return e=n,document.querySelector(`[data-name="${e}"]`)}n.exports=(n,e={})=>{const{dataName:t,notAppend:o,parent:c=document.body,uniq:p=!0,...d}=e,u=l(t);if(p&&u)return u;const A=document.createElement(n);return t&&(A.dataset.name=t),Object.keys(d).filter(s).map(r(A,e)),Object.keys(d).filter(i(s)).map(a(A,e)),o||c.appendChild(A),A},n.exports.isElementPresent=l},147:(n,e,t)=>{t.d(e,{Z:()=>f});var o=t(537),a=t.n(o),r=t(645),i=t.n(r),s=t(667),l=t.n(s),c=new URL(t(374),t.b),p=new URL(t(362),t.b),d=i()(a()),u=l()(c),A=l()(p);d.push([n.id,`.smalltalk{display:flex;align-items:center;flex-direction:column;justify-content:center;transition:.2s opacity;inset:0;overflow:auto;padding:20px;position:fixed;z-index:100}.smalltalk+.smalltalk{transition:ease 1s}.smalltalk .page{border-radius:3px;background:#fff;box-shadow:0 4px 23px 5px rgb(0 0 0 / 20%),0 2px 6px rgb(0 0 0 / 15%);color:#333;min-width:400px;padding:0;position:relative;z-index:0}@media only screen and (width <= 500px){.smalltalk .page{min-width:0}}.smalltalk .page>.close-button{background-image:url(${u});background-position:center;background-repeat:no-repeat;height:14px;position:absolute;right:7px;top:7px;width:14px;z-index:1}.smalltalk .page>.close-button:hover{background-image:url(${A})}.smalltalk .progress{display:block;width:100%}.smalltalk .page header{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:500px;user-select:none;color:#333;font-size:120%;font-weight:700;margin:0;padding:14px 17px;text-shadow:#fff 0 1px 2px}.smalltalk .page .content-area{overflow:hidden;text-overflow:ellipsis;padding:6px 17px;position:relative}.smalltalk .page .action-area{padding:14px 17px}button{font-family:Ubuntu,Arial,sans-serif}.smalltalk .smalltalk,.smalltalk button{min-height:2em;min-width:4em}.smalltalk button{appearance:none;user-select:none;background-image:linear-gradient(#ededed,#ededed 38%,#dedede);border:1px solid rgb(0 0 0 / 25%);border-radius:2px;box-shadow:0 1px 0 rgb(0 0 0 / 8%),inset 0 1px 2px rgb(255 255 255 / 75%);color:#444;font:inherit;margin:0 1px 0 0;text-shadow:0 1px 0 rgb(240 240 240)}.smalltalk button::-moz-focus-inner{border:0}.smalltalk button:enabled:active{background-image:linear-gradient(#e7e7e7,#e7e7e7 38%,#d7d7d7);box-shadow:none;text-shadow:none}.smalltalk .page .button-strip{display:flex;flex-direction:row;justify-content:flex-end}.smalltalk .page .button-strip>button{margin-left:10px}.smalltalk input{width:100%;border:1px solid #bfbfbf;border-radius:2px;box-sizing:border-box;color:#444;font:inherit;margin:0;min-height:2em;padding:3px;outline:0}.smalltalk button:enabled:focus,.smalltalk input:enabled:focus{transition:border-color .2s;border-color:rgb(77 144 254);outline:0}`,"",{version:3,sources:["webpack://./css/smalltalk.css"],names:[],mappings:"AAAA,WACI,YAAS,CAET,kBAAa,CACb,qBAAgB,CAChB,sBAAiB,CAEjB,sBAAkB,CAElB,OAAO,CACP,aAAU,CACV,YAAS,CACT,cAAU,CAEV,WAAS,CAGb,sBACI,kBAAiB,CAGrB,iBACI,iBAAe,CACf,eAAY,CACZ,qEAAuD,CACvD,UAAO,CACP,eAAW,CACX,SAAS,CACT,iBAAU,CACV,SAAS,CAGb,wCACI,iBACI,WAAW,CAAA,CAInB,+BACI,wDAAkB,CAClB,0BAAqB,CACrB,2BAAmB,CACnB,WAAQ,CACR,iBAAU,CACV,SAAO,CACP,OAAK,CACL,UAAO,CACP,SAAS,CAGb,qCACI,wDAAkB,CAGtB,qBACI,aAAS,CACT,UAAO,CAGX,wBACI,eAAU,CACV,sBAAe,CACf,kBAAa,CACb,eAAW,CAEX,gBAAa,CACb,UAAO,CACP,cAAW,CACX,eAAa,CACb,QAAQ,CACR,iBAAc,CACd,0BAAyB,CAG7B,+BACI,eAAU,CACV,sBAAe,CAEf,gBAAa,CACb,iBAAU,CAGd,8BACI,iBAAc,CAGlB,OACI,mCAAgC,CAGjB,wCACf,cAAY,CACZ,aAAW,CAGf,kBACI,eAAY,CACZ,gBAAa,CACb,6DAAkB,CAElB,iCAAkB,CAClB,iBAAe,CACf,yEAAqD,CACrD,UAAO,CACP,YAAM,CACN,gBAAgB,CAChB,oCAAqB,CAGzB,oCACI,QAAQ,CAGZ,iCACI,6DAAkB,CAClB,eAAY,CACZ,gBAAa,CAGjB,+BACI,YAAS,CAET,kBAAgB,CAChB,wBAAiB,CAGrB,sCACI,gBAAa,CAGjB,iBACI,UAAO,CACP,wBAAkB,CAClB,iBAAe,CACf,qBAAY,CACZ,UAAO,CACP,YAAM,CACN,QAAQ,CACR,cAAY,CACZ,WAAS,CACT,SAAS,CAGb,+DACI,2BAAyB,CACzB,4BAAc,CACd,SAAS",sourcesContent:[".smalltalk {\n display: flex;\n \n align-items: center;\n flex-direction: column;\n justify-content: center;\n \n transition: 200ms opacity;\n \n inset: 0;\n overflow: auto;\n padding: 20px;\n position: fixed;\n \n z-index: 100;\n}\n\n.smalltalk + .smalltalk {\n transition: ease 1s;\n}\n\n.smalltalk .page {\n border-radius: 3px;\n background: white;\n box-shadow: 0 4px 23px 5px rgb(0 0 0 / 20%), 0 2px 6px rgb(0 0 0 / 15%);\n color: #333;\n min-width: 400px;\n padding: 0;\n position: relative;\n z-index: 0;\n}\n\n@media only screen and (width <= 500px) {\n .smalltalk .page {\n min-width: 0;\n }\n}\n\n.smalltalk .page > .close-button {\n background-image: url(../img/IDR_CLOSE_DIALOG.png);\n background-position: center;\n background-repeat: no-repeat;\n height: 14px;\n position: absolute;\n right: 7px;\n top: 7px;\n width: 14px;\n z-index: 1;\n}\n\n.smalltalk .page > .close-button:hover {\n background-image: url(../img/IDR_CLOSE_DIALOG_H.png);\n}\n\n.smalltalk .progress {\n display: block;\n width: 100%;\n}\n\n.smalltalk .page header {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 500px;\n \n user-select: none;\n color: #333;\n font-size: 120%;\n font-weight: bold;\n margin: 0;\n padding: 14px 17px;\n text-shadow: white 0 1px 2px;\n}\n\n.smalltalk .page .content-area {\n overflow: hidden;\n text-overflow: ellipsis;\n \n padding: 6px 17px;\n position: relative;\n}\n\n.smalltalk .page .action-area {\n padding: 14px 17px;\n}\n\nbutton {\n font-family: 'Ubuntu', 'Arial', sans-serif;\n}\n\n.smalltalk button, .smalltalk .smalltalk {\n min-height: 2em;\n min-width: 4em;\n}\n\n.smalltalk button {\n appearance: none;\n user-select: none;\n background-image: linear-gradient(#ededed, #ededed 38%, #dedede);\n \n border: 1px solid rgb(0 0 0 / 25%);\n border-radius: 2px;\n box-shadow: 0 1px 0 rgb(0 0 0 / 8%), inset 0 1px 2px rgb(255 255 255 / 75%);\n color: #444;\n font: inherit;\n margin: 0 1px 0 0;\n text-shadow: 0 1px 0 rgb(240 240 240);\n}\n\n.smalltalk button::-moz-focus-inner {\n border: 0;\n}\n\n.smalltalk button:enabled:active {\n background-image: linear-gradient(#e7e7e7, #e7e7e7 38%, #d7d7d7);\n box-shadow: none;\n text-shadow: none;\n}\n\n.smalltalk .page .button-strip {\n display: flex;\n \n flex-direction: row;\n justify-content: flex-end;\n}\n\n.smalltalk .page .button-strip > button {\n margin-left: 10px;\n}\n\n.smalltalk input {\n width: 100%;\n border: 1px solid #bfbfbf;\n border-radius: 2px;\n box-sizing: border-box;\n color: #444;\n font: inherit;\n margin: 0;\n min-height: 2em;\n padding: 3px;\n outline: none;\n}\n\n.smalltalk button:enabled:focus, .smalltalk input:enabled:focus {\n transition: border-color 200ms;\n border-color: rgb(77 144 254);\n outline: none;\n}\n\n"],sourceRoot:""}]);const f=d},645:n=>{n.exports=function(n){var e=[];return e.toString=function(){return this.map((function(e){var t="",o=void 0!==e[5];return e[4]&&(t+="@supports (".concat(e[4],") {")),e[2]&&(t+="@media ".concat(e[2]," {")),o&&(t+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),t+=n(e),o&&(t+="}"),e[2]&&(t+="}"),e[4]&&(t+="}"),t})).join("")},e.i=function(n,t,o,a,r){"string"==typeof n&&(n=[[null,n,void 0]]);var i={};if(o)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(i[l]=!0)}for(var c=0;c<n.length;c++){var p=[].concat(n[c]);o&&i[p[0]]||(void 0!==r&&(void 0===p[5]||(p[1]="@layer".concat(p[5].length>0?" ".concat(p[5]):""," {").concat(p[1],"}")),p[5]=r),t&&(p[2]?(p[1]="@media ".concat(p[2]," {").concat(p[1],"}"),p[2]=t):p[2]=t),a&&(p[4]?(p[1]="@supports (".concat(p[4],") {").concat(p[1],"}"),p[4]=a):p[4]="".concat(a)),e.push(p))}},e}},667:n=>{n.exports=function(n,e){return e||(e={}),n?(n=String(n.__esModule?n.default:n),/^['"].*['"]$/.test(n)&&(n=n.slice(1,-1)),e.hash&&(n+=e.hash),/["'() \t\n]|(%20)/.test(n)||e.needQuotes?'"'.concat(n.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):n):n}},537:n=>{n.exports=function(n){var e=n[1],t=n[3];if(!t)return e;if("function"==typeof btoa){var o=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),r="/*# ".concat(a," */");return[e].concat([r]).join("\n")}return[e].join("\n")}},802:n=>{const e=(n,...t)=>{if(function(n){if("function"!=typeof n)throw Error("fn should be function!")}(n),t.length>=n.length)return n(...t);const o=(...o)=>e(n,...t,...o),a=n.length-t.length-1,r=(n=>[function(e){return n(...arguments)},function(e,t){return n(...arguments)},function(e,t,o){return n(...arguments)},function(e,t,o,a){return n(...arguments)},function(e,t,o,a,r){return n(...arguments)}])(o)[a];return r||o};n.exports=e},43:n=>{n.exports=n=>{const e={value:n};return(...n)=>{const[t]=n;return n.length?(e.value=t,t):e.value}}},517:(n,e,t)=>{t.r(e),t.d(e,{default:()=>g});var o=t(379),a=t.n(o),r=t(795),i=t.n(r),s=t(569),l=t.n(s),c=t(565),p=t.n(c),d=t(216),u=t.n(d),A=t(589),f=t.n(A),C=t(147),m={};m.styleTagTransform=f(),m.setAttributes=p(),m.insert=l().bind(null,"head"),m.domAPI=i(),m.insertStyleElement=u();a()(C.Z,m);const g=C.Z&&C.Z.locals?C.Z.locals:void 0},379:n=>{var e=[];function t(n){for(var t=-1,o=0;o<e.length;o++)if(e[o].identifier===n){t=o;break}return t}function o(n,o){for(var r={},i=[],s=0;s<n.length;s++){var l=n[s],c=o.base?l[0]+o.base:l[0],p=r[c]||0,d="".concat(c," ").concat(p);r[c]=p+1;var u=t(d),A={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==u)e[u].references++,e[u].updater(A);else{var f=a(A,o);o.byIndex=s,e.splice(s,0,{identifier:d,updater:f,references:1})}i.push(d)}return i}function a(n,e){var t=e.domAPI(e);t.update(n);return function(e){if(e){if(e.css===n.css&&e.media===n.media&&e.sourceMap===n.sourceMap&&e.supports===n.supports&&e.layer===n.layer)return;t.update(n=e)}else t.remove()}}n.exports=function(n,a){var r=o(n=n||[],a=a||{});return function(n){n=n||[];for(var i=0;i<r.length;i++){var s=t(r[i]);e[s].references--}for(var l=o(n,a),c=0;c<r.length;c++){var p=t(r[c]);0===e[p].references&&(e[p].updater(),e.splice(p,1))}r=l}}},569:n=>{var e={};n.exports=function(n,t){var o=function(n){if(void 0===e[n]){var t=document.querySelector(n);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(n){t=null}e[n]=t}return e[n]}(n);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}},216:n=>{n.exports=function(n){var e=document.createElement("style");return n.setAttributes(e,n.attributes),n.insert(e,n.options),e}},565:(n,e,t)=>{n.exports=function(n){var e=t.nc;e&&n.setAttribute("nonce",e)}},795:n=>{n.exports=function(n){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=n.insertStyleElement(n);return{update:function(t){!function(n,e,t){var o="";t.supports&&(o+="@supports (".concat(t.supports,") {")),t.media&&(o+="@media ".concat(t.media," {"));var a=void 0!==t.layer;a&&(o+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),o+=t.css,a&&(o+="}"),t.media&&(o+="}"),t.supports&&(o+="}");var r=t.sourceMap;r&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),e.styleTagTransform(o,n,e.options)}(e,n,t)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(e)}}}},589:n=>{n.exports=function(n,e){if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}},374:(n,e,t)=>{n.exports=t.p+"2b22a33a0a80bb926bbc.png"},362:(n,e,t)=>{n.exports=t.p+"8e9019bd86255ac9a618.png"},380:(n,e,t)=>{t(517);const o=t(802),a=t(43),r=t(370),i=o((function(n,e,t,o){const a={ENTER:13,ESC:27,TAB:9,LEFT:37,UP:38,RIGHT:39,DOWN:40},{keyCode:r}=o,i=o.target,s=x(n,["ok","cancel","input"]).map(A);switch(r){case a.ENTER:g(i,n,e,t),o.preventDefault();break;case a.ESC:h(n),t();break;case a.TAB:o.shiftKey&&m(n,s),m(n,s),o.preventDefault();break;default:["left","right","up","down"].filter((n=>r===a[n.toUpperCase()])).forEach((()=>{!function(n,e){const t=A(document.activeElement),o=/ok|cancel/.test(t),a=e.length-1;if("input"===t||!a||!o)return;const r=f(t);for(const e of x(n,[r]))e.focus()}(n,s)}))}o.stopPropagation()})),s={ok:"OK"},l={ok:"OK",cancel:"Cancel"},c=a(100);function p(n={}){const{buttons:e}=n;return e||null}function d(n,e,t,a){return`<div class="page">\n <div data-name="js-close" class="close-button"></div>\n <header>${n}</header>\n <div class="content-area">${e.replace(/\n/g,"<br>")}${t}</div>\n <div class="action-area">\n <div class="button-strip">\n ${function(n){const e=Object.keys(n),t=o(((n,e,t)=>`<button\n tabindex=${t}\n data-name="js-${e.toLowerCase()}">\n ${n[e]}\n </button>`));return e.map(t(n)).join("")}(a)}\n </div>\n </div>\n </div>`}function u(n,e,t,o,s){const l=a(),p=a(),u=new Promise(((n,e)=>{const t=s&&"boolean"==typeof s.cancel&&!s.cancel;l(n),p(t?()=>{}:()=>e(Error()))})),A=d(n,e,t,o),f=r("div",{innerHTML:A,className:"smalltalk",style:`z-index: ${c(c()+1)}`});for(const n of x(f,["ok","input"]))n.focus();for(const n of x(f,["input"]))n.setSelectionRange(0,t.length);!function(n,e,t,o){for(const a of x(e,t))a.addEventListener(n,o)}("click",f,["cancel","close","ok"],(n=>{g(n.target,f,l(),p())}));for(const n of["click","contextmenu"])f.addEventListener(n,(n=>{n.stopPropagation();for(const n of x(f,["ok","input"]))n.focus()}));return f.addEventListener("keydown",i(f,l(),p())),Object.assign(u,{dialog:f,ok:l})}function A(n){return n.getAttribute("data-name").replace("js-","")}n.exports.alert=(n,e,t)=>u(n,e,"",p(t)||s,t),n.exports.prompt=(n,e,t="",o)=>{const a=function(n={}){const{type:e}=n;return"password"===e?"password":"text"}(o);return u(n,e,`<input type="${a}" value="${String(t).replace(/"/g,""")}" data-name="js-input">`,p(o)||l,o)},n.exports.confirm=(n,e,t)=>u(n,e,"",p(t)||l,t),n.exports.progress=(n,e,t)=>{const o=u(n,e,'\n <progress value="0" data-name="js-progress" class="progress" max="100"></progress>\n <span data-name="js-counter">0%</span>\n ',{cancel:"Abort"},t),{ok:a,dialog:r}=o,i=a();for(const n of x(r,["cancel"]))n.focus();return Object.assign(o,{setProgress(n){const[e]=x(r,["progress"]),[t]=x(r,["counter"]);e.value=n,t.textContent=`${n}%`,100===n&&(h(r),i())},remove(){h(r)}}),o};const f=n=>"cancel"===n?"ok":"cancel";const C=(n,e)=>e===n?0:e+1;function m(n,e){const t=A(document.activeElement),o=e.length-1,a=e.indexOf(t),r=e[C(o,a)];for(const e of x(n,[r]))e.focus()}function g(n,e,t,o){const a=n.getAttribute("data-name").replace("js-","");if(/close|cancel/.test(a))return o(),void h(e);let r=null;for(const n of x(e,["input"]))r=n.value;t(r),h(e)}const b=o(((n,e)=>n.querySelector(`[data-name="js-${e}"]`)));function x(n,e){return e.map(b(n)).filter(Boolean)}function h(n){const{parentElement:e}=n;e&&e.removeChild(n)}}},e={};function t(o){var a=e[o];if(void 0!==a)return a.exports;var r=e[o]={id:o,exports:{}};return n[o](r,r.exports,t),r.exports}t.m=n,t.n=n=>{var e=n&&n.__esModule?()=>n.default:()=>n;return t.d(e,{a:e}),e},t.d=(n,e)=>{for(var o in e)t.o(e,o)&&!t.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:e[o]})},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),t.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),t.r=n=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},(()=>{var n;t.g.importScripts&&(n=t.g.location+"");var e=t.g.document;if(!n&&e&&(e.currentScript&&(n=e.currentScript.src),!n)){var o=e.getElementsByTagName("script");if(o.length)for(var a=o.length-1;a>-1&&!n;)n=o[a--].src}if(!n)throw new Error("Automatic publicPath is not supported in this browser");n=n.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),t.p=n})(),t.b=document.baseURI||self.location.href,t.nc=void 0;var o=t(380);smalltalk=o})();
//# sourceMappingURL=smalltalk.min.js.map