f2a259ce66
• re-organize file structure with one directory per dialog • add index.html file per dialog • add bootstrap styling and dynamic cdn loading • clean up react code and stylesheet npm setup script update adds force flag "setup": "rm -f .clasp.json ..." Update README.md Move clasp to devDependencies update dynamic cdn urls Add repository field
19 lines
8.0 KiB
HTML
19 lines
8.0 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<base target="_top" />
|
||
<!-- Add any external scripts and stylesheets here -->
|
||
<link
|
||
rel="stylesheet"
|
||
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"
|
||
integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk"
|
||
crossorigin="anonymous"
|
||
/>
|
||
</head>
|
||
<body>
|
||
<section id="index">
|
||
<!-- bundled js and css will get inlined here during build-->
|
||
</section>
|
||
<script type="text/javascript" src="https://unpkg.com/react@16.13.0/umd/react.production.min.js"></script><script type="text/javascript" src="https://unpkg.com/react-dom@16.13.0/umd/react-dom.production.min.js"></script><script type="text/javascript" src="https://unpkg.com/react-bootstrap@1.0.1/dist/react-bootstrap.min.js"></script><script type="text/javascript" src="https://unpkg.com/react-transition-group@4.4.1/dist/react-transition-group.min.js"></script><script type="text/javascript">!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=8)}([function(e,t){e.exports=React},function(e,t){e.exports=ReactBootstrap},function(e,t){e.exports=ReactTransitionGroup},function(e,t){e.exports=ReactDOM},function(e,t,n){var r=n(5),a=n(6);"string"==typeof(a=a.__esModule?a.default:a)&&(a=[[e.i,a,""]]);var o={insert:"head",singleton:!1},i=(r(a,o),a.locals?a.locals:{});e.exports=i},function(e,t,n){"use strict";var r,a=function(){return void 0===r&&(r=Boolean(window&&document&&document.all&&!window.atob)),r},o=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),i=[];function c(e){for(var t=-1,n=0;n<i.length;n++)if(i[n].identifier===e){t=n;break}return t}function s(e,t){for(var n={},r=[],a=0;a<e.length;a++){var o=e[a],s=t.base?o[0]+t.base:o[0],u=n[s]||0,l="".concat(s," ").concat(u);n[s]=u+1;var f=c(l),d={css:o[1],media:o[2],sourceMap:o[3]};-1!==f?(i[f].references++,i[f].updater(d)):i.push({identifier:l,updater:v(d,t),references:1}),r.push(l)}return r}function u(e){var t=document.createElement("style"),r=e.attributes||{};if(void 0===r.nonce){var a=n.nc;a&&(r.nonce=a)}if(Object.keys(r).forEach((function(e){t.setAttribute(e,r[e])})),"function"==typeof e.insert)e.insert(t);else{var i=o(e.insert||"head");if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(t)}return t}var l,f=(l=[],function(e,t){return l[e]=t,l.filter(Boolean).join("\n")});function d(e,t,n,r){var a=n?"":r.media?"@media ".concat(r.media," {").concat(r.css,"}"):r.css;if(e.styleSheet)e.styleSheet.cssText=f(t,a);else{var o=document.createTextNode(a),i=e.childNodes;i[t]&&e.removeChild(i[t]),i.length?e.insertBefore(o,i[t]):e.appendChild(o)}}function m(e,t,n){var r=n.css,a=n.media,o=n.sourceMap;if(a?e.setAttribute("media",a):e.removeAttribute("media"),o&&btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}var p=null,h=0;function v(e,t){var n,r,a;if(t.singleton){var o=h++;n=p||(p=u(t)),r=d.bind(null,n,o,!1),a=d.bind(null,n,o,!0)}else n=u(t),r=m.bind(null,n,t),a=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)};return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else a()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=a());var n=s(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var r=0;r<n.length;r++){var a=c(n[r]);i[a].references--}for(var o=s(e,t),u=0;u<n.length;u++){var l=c(n[u]);0===i[l].references&&(i[l].updater(),i.splice(l,1))}n=o}}}},function(e,t,n){(t=n(7)(!1)).push([e.i,"/*\nCSSTransitionGroup styling\n */\n.sheetNames-enter {\n opacity: 0;\n}\n\n.sheetNames-enter.sheetNames-enter-active {\n opacity: 1;\n transition: opacity 300ms ease-in;\n}\n\n.sheetNames-exit {\n opacity: 1;\n}\n\n.sheetNames-exit.sheetNames-exit-active {\n opacity: 0;\n transition: opacity 300ms ease-in;\n}\n\n.sheetNames-appear {\n opacity: 0;\n}\n\n.sheetNames-appear.sheetNames-appear-active {\n opacity: 1;\n transition: opacity 0.5ms ease-in;\n}\n",""]),e.exports=t},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var a=(i=r,c=btoa(unescape(encodeURIComponent(JSON.stringify(i)))),s="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(c),"/*# ".concat(s," */")),o=r.sources.map((function(e){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(e," */")}));return[n].concat(o).concat([a]).join("\n")}var i,c,s;return[n].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var a={};if(r)for(var o=0;o<this.length;o++){var i=this[o][0];null!=i&&(a[i]=!0)}for(var c=0;c<e.length;c++){var s=[].concat(e[c]);r&&a[s[0]]||(n&&(s[2]?s[2]="".concat(n," and ").concat(s[2]):s[2]=n),t.push(s))}},t}},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),o=n(3),i=n.n(o),c=n(2),s=n(1);const u={},l=new Set(["withFailureHandler","withLogger","withSuccessHandler","withUserObject"]);Object.keys(google.script.run).filter(e=>!l.has(e)).forEach(e=>{u[e]=(...t)=>new Promise((n,r)=>{google.script.run.withSuccessHandler(n).withFailureHandler(r)[e](...t)})});var f=u;var d=()=>{const[e,t]=Object(r.useState)(""),[n,o]=Object(r.useState)([]);Object(r.useEffect)(()=>{f.getSheetsData().then(o).catch(alert)},[]);return a.a.createElement("div",{style:{padding:"3px",overflowX:"hidden"}},a.a.createElement(s.Form,{onSubmit:async()=>{try{const t=await f.addSheet(e);o(t)}catch(e){alert(e)}}},a.a.createElement(s.Form.Group,{controlId:"formNewSheet"},a.a.createElement(s.Form.Label,null,"Add a new sheet"),a.a.createElement(s.Row,null,a.a.createElement(s.Col,{xs:10},a.a.createElement(s.Form.Control,{type:"text",placeholder:"Sheet name",value:e,onChange:e=>{t(e.target.value)}})),a.a.createElement(s.Col,{xs:2},a.a.createElement(s.Button,{variant:"primary",type:"submit"},"Submit"))),a.a.createElement(s.Form.Text,{className:"text-muted"},"Enter the name for your new sheet."))),a.a.createElement(s.ListGroup,null,a.a.createElement(c.TransitionGroup,{className:"sheet-list"},n.length>0&&n.map(e=>a.a.createElement(c.CSSTransition,{classNames:"sheetNames",timeout:500,key:e.name},a.a.createElement(s.ListGroup.Item,{className:"d-flex",key:`${e.index}-${e.name}`},a.a.createElement(s.Button,{className:"border-0",variant:"outline-danger",size:"sm",onClick:()=>{return t=e.index,void f.deleteSheet(t).then(o).catch(alert);var t}},"×"),a.a.createElement(s.Button,{className:"border-0 mx-2",variant:e.isActive?"success":"outline-success",onClick:()=>{return t=e.name,void f.setActiveSheet(t).then(o).catch(alert);var t}},e.name)))))))};n(4);i.a.render(a.a.createElement(d,null),document.getElementById("index"))}]);</script></body>
|
||
</html>
|