diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..6cccf72 Binary files /dev/null and b/.DS_Store differ diff --git a/Graph2Data2/asset-manifest.json b/Graph2Data2/asset-manifest.json index e6b42f1..a663eac 100644 --- a/Graph2Data2/asset-manifest.json +++ b/Graph2Data2/asset-manifest.json @@ -1,15 +1,15 @@ { "files": { - "main.css": "/Graph2Data2/static/css/main.ccea918a.chunk.css", - "main.js": "/Graph2Data2/static/js/main.e55a9bd4.chunk.js", - "main.js.map": "/Graph2Data2/static/js/main.e55a9bd4.chunk.js.map", - "runtime~main.js": "/Graph2Data2/static/js/runtime~main.178ad90b.js", - "runtime~main.js.map": "/Graph2Data2/static/js/runtime~main.178ad90b.js.map", - "static/js/2.98be8ffd.chunk.js": "/Graph2Data2/static/js/2.98be8ffd.chunk.js", - "static/js/2.98be8ffd.chunk.js.map": "/Graph2Data2/static/js/2.98be8ffd.chunk.js.map", + "main.css": "/Graph2Data2/static/css/main.d5bea55b.chunk.css", + "main.js": "/Graph2Data2/static/js/main.160af9d9.chunk.js", + "main.js.map": "/Graph2Data2/static/js/main.160af9d9.chunk.js.map", + "runtime~main.js": "/Graph2Data2/static/js/runtime~main.3450890e.js", + "runtime~main.js.map": "/Graph2Data2/static/js/runtime~main.3450890e.js.map", + "static/js/2.800dd2e2.chunk.js": "/Graph2Data2/static/js/2.800dd2e2.chunk.js", + "static/js/2.800dd2e2.chunk.js.map": "/Graph2Data2/static/js/2.800dd2e2.chunk.js.map", "index.html": "/Graph2Data2/index.html", - "precache-manifest.11e68be567bff1a0050ad0d1d8120841.js": "/Graph2Data2/precache-manifest.11e68be567bff1a0050ad0d1d8120841.js", + "precache-manifest.2754657fddd08a0d3a24a313569e1573.js": "/Graph2Data2/precache-manifest.2754657fddd08a0d3a24a313569e1573.js", "service-worker.js": "/Graph2Data2/service-worker.js", - "static/css/main.ccea918a.chunk.css.map": "/Graph2Data2/static/css/main.ccea918a.chunk.css.map" + "static/css/main.d5bea55b.chunk.css.map": "/Graph2Data2/static/css/main.d5bea55b.chunk.css.map" } } \ No newline at end of file diff --git a/Graph2Data2/precache-manifest.11e68be567bff1a0050ad0d1d8120841.js b/Graph2Data2/precache-manifest.11e68be567bff1a0050ad0d1d8120841.js deleted file mode 100644 index 94f4391..0000000 --- a/Graph2Data2/precache-manifest.11e68be567bff1a0050ad0d1d8120841.js +++ /dev/null @@ -1,22 +0,0 @@ -self.__precacheManifest = (self.__precacheManifest || []).concat([ - { - "revision": "42eeb0de34433ce49258e3f73d26d20d", - "url": "/Graph2Data2/index.html" - }, - { - "revision": "775ecd5551fc536db2af", - "url": "/Graph2Data2/static/css/main.ccea918a.chunk.css" - }, - { - "revision": "887a46159be2a054c453", - "url": "/Graph2Data2/static/js/2.98be8ffd.chunk.js" - }, - { - "revision": "775ecd5551fc536db2af", - "url": "/Graph2Data2/static/js/main.e55a9bd4.chunk.js" - }, - { - "revision": "9e8d100df006e118c4f6", - "url": "/Graph2Data2/static/js/runtime~main.178ad90b.js" - } -]); \ No newline at end of file diff --git a/Graph2Data2/precache-manifest.2754657fddd08a0d3a24a313569e1573.js b/Graph2Data2/precache-manifest.2754657fddd08a0d3a24a313569e1573.js new file mode 100644 index 0000000..36aec01 --- /dev/null +++ b/Graph2Data2/precache-manifest.2754657fddd08a0d3a24a313569e1573.js @@ -0,0 +1,22 @@ +self.__precacheManifest = (self.__precacheManifest || []).concat([ + { + "revision": "6c8deed90706cb0bd32d7a4dad64309f", + "url": "/Graph2Data2/index.html" + }, + { + "revision": "a5c3bcc3be7de2e33c86", + "url": "/Graph2Data2/static/css/main.d5bea55b.chunk.css" + }, + { + "revision": "f30ec2e3bdb7df4800c0", + "url": "/Graph2Data2/static/js/2.800dd2e2.chunk.js" + }, + { + "revision": "a5c3bcc3be7de2e33c86", + "url": "/Graph2Data2/static/js/main.160af9d9.chunk.js" + }, + { + "revision": "5fd93a26bc4859dd5427", + "url": "/Graph2Data2/static/js/runtime~main.3450890e.js" + } +]); \ No newline at end of file diff --git a/Graph2Data2/service-worker.js b/Graph2Data2/service-worker.js index d794d65..abad770 100644 --- a/Graph2Data2/service-worker.js +++ b/Graph2Data2/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/Graph2Data2/precache-manifest.11e68be567bff1a0050ad0d1d8120841.js" + "/Graph2Data2/precache-manifest.2754657fddd08a0d3a24a313569e1573.js" ); self.addEventListener('message', (event) => { @@ -35,5 +35,5 @@ workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/Graph2Data2/index.html"), { - blacklist: [/^\/_/,/\/[^\/]+\.[^\/]+$/], + blacklist: [/^\/_/,/\/[^/?]+\.[^/]+$/], }); diff --git a/Graph2Data2/static/css/main.ccea918a.chunk.css b/Graph2Data2/static/css/main.ccea918a.chunk.css deleted file mode 100644 index c971cb2..0000000 --- a/Graph2Data2/static/css/main.ccea918a.chunk.css +++ /dev/null @@ -1,2 +0,0 @@ -body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*,:after,:before,graph-2-data{box-sizing:border-box;font-family:fira code retina,Lucida Console,Monaco,monospace;font-size:10pt}:focus{outline:none}.clearfix:after{display:block;clear:both;content:""}.api-driver,.App,.main-ui-container,body,html{width:100%;height:100%}html{overflow:hidden}[title]{cursor:help}.App{text-align:center;width:100%;height:100%}.App-logo{-webkit-animation:App-logo-spin 20s linear infinite;animation:App-logo-spin 20s linear infinite;height:40vmin;pointer-events:none}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}.api-driver,.main-ui-container{border:1px solid red;padding:0;display:flex}.api-driver fieldset{border:1px solid red;width:auto;display:inline-block;flex:0 0;margin-bottom:.5em}.api-driver fieldset legend{font-size:.8em;color:red}.api-driver .state-display{text-align:left;margin:0 .5em 0 0}.api-driver .state-display,.api-driver .state-editors{border:1px solid red;flex:1 1;padding:1em;overflow:auto}.api-driver .state-editors{display:flex;flex-direction:column;align-items:flex-start;margin:0 0 0 .5em}.api-driver .state-editors .coord{width:40px;margin-right:20px;margin-left:3px}.api-driver .state-editors .name{width:80px;margin-right:20px;margin-left:3px}.api-driver .state-editors button{margin-right:10px}.api-driver fieldset ul{list-style:none;padding-left:0;text-align:left}button,input[type=checkbox],label,option{cursor:pointer}button[disabled]{cursor:not-allowed}.main-ui-container{flex-direction:column;border-width:0}.main-ui-container .middle{width:100%;height:100%}.main-ui-container .middle.column .image-stage{position:relative;width:100%;height:100%;overflow:auto}.main-ui-container .middle.column .image-stage canvas.chrome,.main-ui-container .middle.column .image-stage canvas.image{position:absolute;left:0;top:0;cursor:crosshair}.main-ui-container .right.column{display:flex;flex-direction:column}.main-ui-container .right.column .magnifier-stage{box-sizing:initial;display:flex}.main-ui-container .magnifier-stage{border:1px solid #db7093;position:relative}.main-ui-container .magnifier-stage canvas{position:absolute;left:0;width:100%;height:100%}.main-ui-container .magnifier-stage .image{z-index:1}.main-ui-container .magnifier-stage .image-chrome{z-index:2}.main-ui-container .magnifier-stage .chrome{z-index:3}.main-ui-container .magnifier-wrapper{display:flex;flex-direction:column}.main-ui-container .top{background-color:pink;height:50px;border-bottom:1px solid #db7093}.main-ui-container .middle{flex:1 0;display:flex;border-left:1px solid #db7093}.main-ui-container .bottom{background-color:pink;height:50px;border-top:1px solid #db7093}.main-ui-container .left{background-color:pink;width:50px}.main-ui-container .middle{background-color:pink;flex:1 1}.main-ui-container .middle.bar .right.column{background-color:pink;border-left:1px solid #db7093;display:flex;flex-direction:column}.duxpanel-backdrop{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.3)}.duxpanel{border:1px solid #ddd;background-color:#fff;border-radius:4px;position:fixed;box-shadow:0 0 6pt 3pt rgba(0,0,0,.6)}.duxpanel-heading{background-color:#db7093;color:#fff;border-top-left-radius:3px;border-top-right-radius:3px;padding:10px 15px;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:move}.duxpanel-body{display:flex}.wizard{flex-direction:column}.wizard,.wizard .body{display:flex;width:100%}.wizard .body{flex-direction:column;padding:0;justify-content:stretch;flex:1 1}.wizard .body select{width:100%;height:100%;border:0 solid red;padding:.5em}.wizard .body select.single-line{padding:.25em}.wizard .body select option{margin:.2em}.wizard .body .row{padding:.25em}.wizard .body .row label input{margin-left:.25em}.wizard .body .row input[name=data-points-count],.wizard .body .row input[name=data-series-count]{width:40px}.wizard .footer{border-top:1px solid #b0486b}.wizard .cta-footer,.wizard .footer{padding:.5em;background-color:#db7093;color:#fff}.wizard .cta-footer{display:none;border-top:1px solid #ba5275;font-size:8pt}.duxpanel{border:1px solid #db7093}.duxpanel-footer .dialog-button{margin:0 0 0 .5em!important}.status-display{margin-top:.5em;margin-bottom:1em}.axis-calibration{margin:1em}.status-display .body *{font-size:8pt}.status-display{margin-top:0}.axis-calibration .header,.status-display .header{background-color:#db7093;color:#fff;margin-bottom:.5em}.status-display{flex:0 1!important}.axis-calibration{flex:1 1}.zoom-controls{display:flex;justify-content:space-between;margin:.25em;border:1px solid #db7093;border-radius:5px;padding:.25em;color:#db7093}.zoom-controls>label{margin:0 .5em}.zoom-controls .current-value{margin:0 .25em}.toggle-icon{display:flex;justify-content:space-between}.toggle-icon>label{margin:0 .5em}.toggle-icon.on{color:#b0486b}.toggle-icon.on svg{font-size:2.2rem}.axis-diagram-container{display:flex;border-bottom:2px solid #db7093;padding:.5em!important}.axis-diagram{display:block;border:2px solid #db7093;margin-right:.5em;padding:.5em}.axis-diagram:last-child{margin-right:0}.axis-diagram>label{margin-top:.3em;display:block}.axis-calibration-value,.axis-log-setting{display:none}.combined-origin{fill:#db7093!important;font-size:2em!important}.axis-calibration-value:focus,.axis-log-setting>input:focus,button:focus,select:focus{outline-width:0}.axis-log-setting:focus-within{outline:1px dotted red}.axis-calibration .cta{color:#fff;background-color:#db7093;border:1px solid #db7093;border-radius:20px;padding:0 .7em}.axis-calibration .cta:before{content:">";font-size:20pt;vertical-align:-.15em;margin-right:.15em;font-weight:700;color:#fff}.matrix-display{border:1px solid #db7093;padding:0;display:flex;flex-direction:column}.matrix-display>.matrix-row{padding:0;margin:0;display:flex}.matrix-display>.matrix-row>.matrix-element{border:1px solid #db7093;padding:.25em;margin:0;flex:1 0}.data-points-table-container{max-height:250px;overflow-y:auto}.data-points-table{border-collapse:collapse;width:100%}.data-points-table tbody,.data-points-table td,.data-points-table th,.data-points-table thead,.data-points-table tr{font-size:inherit}.data-points-table td,.data-points-table th{border:1px solid #db7093}.data-points-table td.selected{background-color:#ff98bb}.data-points-table td.blank-cell,.data-points-table td.data-cell{cursor:pointer}.data-points-table td.auto-add{background-color:#ff98bb}.top.bar{display:flex;flex-direction:row-reverse}.settings{border:1px solid --primaryBackgroundHilightDark3;background-color:pink;color:#db7093;display:flex;align-self:center;align-items:center}.data-points-meta-table-container .button-bar,.series-selector-panel .button-bar{display:flex;align-content:stretch}.data-points-meta-table-container .button-bar button,.series-selector-panel .button-bar button{flex:1 1}.data-points-meta-table-container .button-bar button svg,.series-selector-panel .button-bar button svg{font-size:1.4rem}.data-points-table svg{font-size:1.3rem}.data-points-table svg.disabled{color:#ccc}::-webkit-input-placeholder{color:#bbb}::-moz-placeholder{color:#bbb}:-ms-input-placeholder{color:#bbb}:-moz-placeholder{color:#bbb}.base{vertical-align:sub;font-size:.7em}.graph-chooser-api-driver{margin:1em 1em 0;padding:.5em;border:1px solid red;display:flex;flex-direction:column}.selection-container{width:100%;height:100%;position:absolute;cursor:crosshair}.selection-rectangle{border:var(--borderSize) dotted grey;z-index:10}.selection-rectangle.hovered{border-color:#000;cursor:move}.selection-handle{position:absolute;display:block;border-radius:0;border-radius:50%;-webkit-transform:scale(.1);transform:scale(.1);opacity:0;width:var(--handleSize);height:var(--handleSize);left:calc(50% - var(--handleSize)/2);top:calc(50% - var(--handleSize)/2)}.selection-rectangle.hovered .selection-handle{background-color:#000}.selection-rectangle.dragging .selection-handle,.selection-rectangle.transparent .selection-handle{cursor:inherit}.selection-rectangle.dragging .selection-handle,.selection-rectangle.focused .selection-handle,.selection-rectangle.hovered .selection-handle,.selection-rectangle:focus .selection-handle,.selection-rectangle:hover .selection-handle{-webkit-transform:scale(1);transform:scale(1);opacity:1}.selection-rectangle.read-only{cursor:default}.selection-rectangle.read-only .selection-handle{display:none}.selection-rectangle .delete{cursor:pointer;font-size:2em;margin:.25em;display:none;float:right}.selection-rectangle.hovered .delete{display:inline-block;fill:#a9a9a9}.selection-rectangle.hovered .delete:hover{fill:#000}.selection-rectangle.creating .delete,.selection-rectangle.editing .delete{display:none}.selection-handle.top-left{left:calc((var(--borderSize) + var(--handleSize))/-2);top:calc((var(--borderSize) + var(--handleSize))/-2);cursor:nwse-resize;z-index:1}.selection-handle.top-center{top:calc((var(--borderSize) + var(--handleSize))/-2);cursor:ns-resize}.selection-handle.top-right{top:calc((var(--borderSize) + var(--handleSize))/-2);cursor:nesw-resize;z-index:1}.selection-handle.right-center,.selection-handle.top-right{left:calc(100% + (var(--borderSize) - var(--handleSize))/2)}.selection-handle.right-center{cursor:ew-resize}.selection-handle.bottom-right{top:calc(100% + (var(--borderSize) - var(--handleSize))/2);left:calc(100% + (var(--borderSize) - var(--handleSize))/2);cursor:nwse-resize;z-index:1}.selection-handle.bottom-center{top:calc(100% + (var(--borderSize) - var(--handleSize))/2);cursor:ns-resize}.selection-handle.bottom-left{top:calc(100% + (var(--borderSize) - var(--handleSize))/2);left:calc((var(--borderSize) + var(--handleSize))/-2);cursor:nesw-resize;z-index:1}.selection-handle.left-center{left:calc((var(--borderSize) + var(--handleSize))/-2);cursor:ew-resize}.graph-chooser-main-ui{display:flex;flex-direction:column;height:100%}.pdf-page-wrapper{border-top:1px dashed grey;position:relative}.graph-selection-rect{border:3px dotted #d3d3d3;z-index:1000}.graph-selection-rect.selected{border:3px dotted #ff98bb;background-color:rgba(255,218,224,.4)}.graph-selection-handle{background-color:#d3d3d3}.graph-selection-rect.selected .graph-selection-handle{background-color:#ff98bb}.page-bounds-rect{border:3px solid gold;z-index:1}.pdf-page-wrapper:first-child{border-top-width:0}.pdf-page-number{border:1px solid #000;display:inline-block;min-width:28px;text-align:center;margin:.5em;position:absolute;top:0;z-index:1000}.drag-group{display:none;cursor:default}.drag-group.selected,.graph-selection-rect.hovered .drag-group{display:inline-block;border:2px solid #d3d3d3;background-color:#d3d3d3;border-radius:4px;padding:0 0 0 .5em;margin:.5em}.graph-selection-rect.creating .drag-group,.graph-selection-rect.editing .drag-group{display:none}.drag-group .inner-group{display:flex;margin-left:-.25em;padding:.25em .25em .25em 0}.drag-group .inner-group .drag-handle{margin-right:.25em;cursor:move}.drag-group.selected,.graph-selection-rect.hovered .drag-group.selected{border:2px solid #b0486b;background-color:#ff98bb}.graph-selection-rect.selected .delete{fill:#ff98bb}.graph-selection-rect.selected .delete:hover{fill:#b0486b}.header-bar{border-bottom:1px dotted #000;padding:.25em;display:flex;flex-direction:row;justify-content:flex-end}.doc-wrapper{flex:1 1;overflow:auto}.GraphChooser{height:100%}.load-progress{margin-right:1em}.load-progress .page-loaded-status{padding:.15em .4em;display:inline-block;border:1px solid #000;border-left-width:0;font-weight:400;text-decoration:none}.load-progress .page-loaded-status:first-child{border-left-width:1px}.load-progress .loaded{background-color:grey;color:#fff}.clickable{cursor:pointer}.lock-selected-graphs{margin:0 .25em}.graph-displayer-api-driver{margin:1em 1em 0;padding:.5em;border:1px solid red;cursor:pointer}.graph-coords{font-size:.8em;border-top:1px dotted red;margin-top:1em;display:block;margin-left:-.5em;margin-right:-.5em;padding:.5em .5em 0;text-align:center}.graph-displayer-main-ui{margin:1em 1em 0;padding:.5em;border:1px solid red;cursor:pointer} -/*# sourceMappingURL=main.ccea918a.chunk.css.map */ \ No newline at end of file diff --git a/Graph2Data2/static/css/main.ccea918a.chunk.css.map b/Graph2Data2/static/css/main.ccea918a.chunk.css.map deleted file mode 100644 index 5cf80be..0000000 --- a/Graph2Data2/static/css/main.ccea918a.chunk.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["index.css","C:\\Users\\easyt\\Documents\\_dev\\React\\graph2data\\graph2data/src\\App.scss","C:\\Users\\easyt\\Documents\\_dev\\React\\graph2data\\graph2data/src\\vars.scss","C:\\Users\\easyt\\Documents\\_dev\\React\\graph2data\\graph2data/src\\Components\\GraphChooser\\ApiDriver\\style.scss","C:\\Users\\easyt\\Documents\\_dev\\React\\graph2data\\graph2data/src\\Components\\SelectionRectangles\\style.scss","C:\\Users\\easyt\\Documents\\_dev\\React\\graph2data\\graph2data/src\\Components\\GraphChooser\\MainUi\\style.scss","C:\\Users\\easyt\\Documents\\_dev\\React\\graph2data\\graph2data/src\\Components\\GraphDisplayer\\ApiDriver\\style.scss","C:\\Users\\easyt\\Documents\\_dev\\React\\graph2data\\graph2data/src\\Components\\GraphDisplayer\\MainUi\\style.scss"],"names":[],"mappings":"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","file":"main.ccea918a.chunk.css","sourcesContent":["body {\n margin: 0;\n padding: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\",\n \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, \"Courier New\",\n monospace;\n}\n","@import './vars.scss';\r\n\r\n*, *:before, *:after, graph-2-data {\r\n box-sizing: border-box;\r\n font-family: 'fira code retina', 'Lucida Console', Monaco, monospace;\r\n font-size: 10pt;\r\n}\r\n\r\n*:focus {\r\n outline: none;\r\n}\r\n\r\n.clearfix::after {\r\n display: block;\r\n clear: both;\r\n content: \"\";\r\n}\r\n\r\nhtml, body, .App, .api-driver, .main-ui-container {\r\n width: 100%;\r\n height: 100%;\r\n}\r\nhtml {\r\n overflow: hidden;\r\n}\r\n\r\n*[title] {\r\n cursor: help;\r\n}\r\n\r\n.App {\r\n text-align: center;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.App-logo {\r\n animation: App-logo-spin infinite 20s linear;\r\n height: 40vmin;\r\n pointer-events: none;\r\n}\r\n\r\n.App-header {\r\n background-color: #282c34;\r\n min-height: 100vh;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: calc(10px + 2vmin);\r\n color: white;\r\n}\r\n\r\n.App-link {\r\n color: #61dafb;\r\n}\r\n\r\n.api-driver, .main-ui-container {\r\n border: 1px solid red;\r\n padding: 0;\r\n display: flex;\r\n}\r\n\r\n.api-driver fieldset {\r\n border: 1px solid red;\r\n width: auto;\r\n display: inline-block;\r\n flex: 0 0;\r\n margin-bottom: 0.5em;\r\n}\r\n\r\n.api-driver fieldset legend {\r\n font-size: 0.8em;\r\n color: red;\r\n}\r\n\r\n.api-driver .state-display {\r\n border: 1px solid red;\r\n flex: 1 1;\r\n text-align: left;\r\n padding: 1em;\r\n overflow: auto;\r\n margin: 0 0.5em 0 0;\r\n}\r\n\r\n.api-driver .state-editors {\r\n flex: 1 1;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n overflow: auto;\r\n margin: 0 0 0 0.5em;\r\n border: 1px solid red;\r\n padding: 1em;\r\n}\r\n\r\n.api-driver .state-editors .coord {\r\n width: 40px;\r\n margin-right: 20px;\r\n margin-left: 3px;\r\n}\r\n\r\n.api-driver .state-editors .name {\r\n width: 80px;\r\n margin-right: 20px;\r\n margin-left: 3px;\r\n}\r\n\r\n.api-driver .state-editors button {\r\n margin-right: 10px;\r\n}\r\n\r\n.api-driver fieldset ul {\r\n list-style: none;\r\n padding-left: 0;\r\n text-align: left;\r\n}\r\n\r\nlabel, button, option, input[type=checkbox] {\r\n cursor: pointer;\r\n}\r\n\r\nbutton[disabled] {\r\n cursor: not-allowed;\r\n}\r\n\r\n.main-ui-container {\r\n flex-direction: column;\r\n border-width: 0;\r\n}\r\n\r\n.main-ui-container .middle {\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.main-ui-container .middle.column .image-stage {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n overflow: auto;\r\n}\r\n\r\n.main-ui-container .middle.column .image-stage canvas.image, .main-ui-container .middle.column .image-stage canvas.chrome {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n cursor: crosshair;\r\n}\r\n\r\n.main-ui-container .right.column {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.main-ui-container .right.column .magnifier-stage {\r\n box-sizing: content-box;\r\n display: flex;\r\n}\r\n\r\n.main-ui-container .magnifier-stage {\r\n border: 1px solid $primaryBackgroundHilight;\r\n position: relative;\r\n}\r\n\r\n.main-ui-container .magnifier-stage canvas {\r\n position: absolute;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.main-ui-container .magnifier-stage .image {\r\n z-index: 1;\r\n}\r\n\r\n.main-ui-container .magnifier-stage .image-chrome {\r\n z-index: 2;\r\n}\r\n\r\n.main-ui-container .magnifier-stage .chrome {\r\n z-index: 3;\r\n}\r\n\r\n.main-ui-container .magnifier-wrapper {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.main-ui-container .top {\r\n background-color: $primaryBackground;\r\n height: 50px;\r\n border-bottom: 1px solid $primaryBackgroundHilight;\r\n}\r\n\r\n.main-ui-container .middle {\r\n background-color: $primaryBackground;\r\n flex: 1 0;\r\n display: flex;\r\n border-left: 1px solid $primaryBackgroundHilight;\r\n}\r\n\r\n.main-ui-container .bottom {\r\n background-color: $primaryBackground;\r\n height: 50px;\r\n border-top: 1px solid $primaryBackgroundHilight;\r\n}\r\n\r\n.main-ui-container .left {\r\n background-color: $primaryBackground;\r\n width: 50px;\r\n}\r\n\r\n.main-ui-container .middle {\r\n background-color: $primaryBackground;\r\n flex: 1 1;\r\n}\r\n\r\n.main-ui-container .middle.bar .right.column {\r\n background-color: $primaryBackground;\r\n border-left: 1px solid $primaryBackgroundHilight;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.duxpanel-backdrop {\r\n position: fixed;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n background-color: rgba(0, 0, 0, .3);\r\n}\r\n\r\n.duxpanel {\r\n border: 1px solid #ddd;\r\n background-color: #fff;\r\n border-radius: 4px;\r\n position: fixed;\r\n box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 6pt 3pt;\r\n}\r\n\r\n.duxpanel-heading {\r\n background-color: $primaryBackgroundHilight;\r\n color: white;\r\n border-top-left-radius: 3px;\r\n border-top-right-radius: 3px;\r\n padding: 10px 15px;\r\n cursor: default;\r\n -webkit-user-select: none;\r\n -moz-user-select: none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n cursor: move;\r\n}\r\n\r\n.duxpanel-body {\r\n display: flex;\r\n}\r\n\r\n.wizard {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n}\r\n\r\n.wizard .body {\r\n display: flex;\r\n flex-direction: column;\r\n padding: 0;\r\n justify-content: stretch;\r\n flex: 1;\r\n width: 100%;\r\n}\r\n\r\n.wizard .body select {\r\n width: 100%;\r\n height: 100%;\r\n border: 0px solid red;\r\n padding: 0.5em;\r\n}\r\n\r\n.wizard .body select.single-line {\r\n padding: 0.25em;\r\n}\r\n\r\n.wizard .body select option {\r\n margin: 0.2em;\r\n}\r\n\r\n.wizard .body .row {\r\n padding: 0.25em;\r\n}\r\n\r\n.wizard .body .row label input {\r\n margin-left: 0.25em;\r\n}\r\n\r\n.wizard .body .row input[name='data-series-count'], .wizard .body .row input[name='data-points-count'] {\r\n width: 40px\r\n}\r\n\r\n.wizard .footer {\r\n border-top: 1px solid $primaryBackgroundHilightDark3;\r\n padding: 0.5em;\r\n background-color: $primaryBackgroundHilight;\r\n color: white;\r\n}\r\n\r\n.wizard .cta-footer {\r\n display: none;\r\n border-top: 1px solid $primaryBackgroundHilightDark2;\r\n padding: 0.5em;\r\n background-color: $primaryBackgroundHilight;\r\n color: white;\r\n font-size: 8pt;\r\n}\r\n\r\n.duxpanel {\r\n border: 1px solid $primaryBackgroundHilight;\r\n}\r\n\r\n.duxpanel-footer .dialog-button {\r\n margin: 0 0 0 0.5em !important;\r\n}\r\n\r\n.status-display {\r\n margin-top: 0.5em;\r\n margin-bottom: 1em;\r\n}\r\n\r\n.axis-calibration {\r\n margin: 1em;\r\n}\r\n\r\n.status-display .body * {\r\n font-size: 8pt;\r\n}\r\n\r\n.status-display {\r\n margin-top: 0;\r\n}\r\n\r\n.status-display .header, .axis-calibration .header {\r\n background-color: $primaryBackgroundHilight;\r\n color: white;\r\n margin-bottom: 0.5em;\r\n}\r\n\r\n.status-display {\r\n flex: 0 !important;\r\n}\r\n\r\n.axis-calibration {\r\n flex: 1;\r\n}\r\n\r\n.zoom-controls {\r\n display: flex;\r\n justify-content: space-between;\r\n margin: 0.25em;\r\n border: 1px solid $primaryBackgroundHilight;\r\n border-radius: 5px;\r\n padding: 0.25em;\r\n color: $primaryBackgroundHilight;\r\n}\r\n\r\n\r\n.zoom-controls>label {\r\n margin: 0 0.5em;\r\n}\r\n\r\n.zoom-controls .current-value {\r\n margin: 0 0.25em;\r\n}\r\n\r\n.toggle-icon {\r\n display: flex;\r\n justify-content: space-between;\r\n}\r\n\r\n.toggle-icon>label {\r\n margin: 0 0.5em\r\n}\r\n\r\n.toggle-icon.on {\r\n color: $primaryBackgroundHilightDark3;\r\n}\r\n\r\n.toggle-icon.on svg {\r\n font-size: 2.2rem;\r\n}\r\n\r\n.axis-diagram-container {\r\n display: flex;\r\n border-bottom: 2px solid $primaryBackgroundHilight;\r\n padding: 0.5em !important;\r\n}\r\n\r\n.axis-diagram {\r\n display: block;\r\n border: 2px solid $primaryBackgroundHilight;\r\n margin-right: 0.5em;\r\n padding: 0.5em;\r\n}\r\n\r\n.axis-diagram:last-child {\r\n margin-right: 0;\r\n}\r\n\r\n.axis-diagram>label {\r\n margin-top: 0.3em;\r\n display: block;\r\n}\r\n\r\n.axis-calibration-value {\r\n display: none;\r\n}\r\n.axis-log-setting {\r\n display: none;\r\n}\r\n.combined-origin {\r\n fill: palevioletred !important;\r\n font-size: 2em !important;\r\n}\r\n.combined-origin.on {\r\n\r\n}\r\n.combined-origin.off {\r\n\r\n}\r\n/* *:focus {\r\n outline: 2px solid red;\r\n} */\r\nselect:focus, button:focus {\r\n outline-width: 0;\r\n}\r\n.axis-calibration-value:focus {\r\n outline-width: 0;\r\n}\r\n.axis-log-setting > input:focus {\r\n outline-width: 0;\r\n}\r\n.axis-log-setting:focus-within {\r\n outline: 1px dotted red;\r\n}\r\n\r\n.axis-calibration .cta {\r\n color: white;\r\n background-color: palevioletred;\r\n border: 1px solid palevioletred;\r\n border-radius: 20px;\r\n padding: 0 0.7em;\r\n}\r\n\r\n.axis-calibration .cta:before {\r\n content: '>';\r\n font-size: 20pt;\r\n vertical-align: -0.15em;\r\n margin-right: 0.15em;\r\n font-weight: bold;\r\n color: white;\r\n}\r\n\r\n.matrix-display {\r\n border: 1px solid $primaryBackgroundHilight;\r\n padding: 0;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.matrix-display>.matrix-row {\r\n padding: 0;\r\n margin: 0;\r\n display: flex;\r\n}\r\n\r\n.matrix-display>.matrix-row>.matrix-element {\r\n border: 1px solid $primaryBackgroundHilight;\r\n padding: 0.25em;\r\n margin: 0;\r\n flex: 1 0;\r\n}\r\n\r\n.data-points-table-container {\r\n max-height: 250px;\r\n overflow-y: auto;\r\n}\r\n\r\n.data-points-table {\r\n border-collapse: collapse;\r\n width: 100%;\r\n}\r\n\r\n.data-points-table thead, .data-points-table tr, .data-points-table tbody, .data-points-table th, .data-points-table td {\r\n font-size: inherit;\r\n}\r\n.data-points-table td, .data-points-table th {\r\n border: 1px solid $primaryBackgroundHilight;\r\n}\r\n\r\n.data-points-table td.selected {\r\n background-color: $primaryBackgroundHilightLight3;\r\n}\r\n\r\n.data-points-table td.data-cell, .data-points-table td.blank-cell {\r\n cursor: pointer;\r\n}\r\n\r\n.data-points-table td.auto-add {\r\n background-color: $primaryBackgroundHilightLight3;\r\n}\r\n\r\n.top.bar {\r\n display: flex;\r\n flex-direction: row-reverse;\r\n}\r\n\r\n.settings {\r\n border: 1px solid var (--primaryBackgroundHilightDark3);\r\n background-color: $primaryBackground;\r\n color: $primaryBackgroundHilight;\r\n display: flex;\r\n align-self: center;\r\n align-items: center;\r\n}\r\n\r\n.series-selector-panel .button-bar,\r\n.data-points-meta-table-container .button-bar {\r\n display: flex;\r\n align-content: stretch;\r\n}\r\n\r\n.series-selector-panel .button-bar button,\r\n.data-points-meta-table-container .button-bar button {\r\n flex: 1;\r\n}\r\n\r\n.series-selector-panel .button-bar button svg,\r\n.data-points-meta-table-container .button-bar button svg {\r\n font-size: 1.4rem;\r\n}\r\n\r\n.data-points-table svg {\r\n font-size: 1.3rem;\r\n}\r\n\r\n.data-points-table svg.disabled {\r\n color: #ccc;\r\n}\r\n\r\n::-webkit-input-placeholder {\r\n color: $placeholderTextColor;\r\n}\r\n\r\n::-moz-placeholder {\r\n color: $placeholderTextColor;\r\n}\r\n\r\n:-ms-input-placeholder {\r\n color: $placeholderTextColor;\r\n}\r\n\r\n:-moz-placeholder {\r\n color: $placeholderTextColor;\r\n}\r\n\r\n.base {\r\n vertical-align: sub;\r\n font-size: 0.7em;\r\n}","\r\n $primaryBackground: pink;\r\n $primaryBackgroundHilight: palevioletred;\r\n $primaryBackgroundHilightDark: #c45c7f;\r\n $primaryBackgroundHilightDark2: #ba5275;\r\n $primaryBackgroundHilightDark3: #b0486b;\r\n $primaryBackgroundHilightLight: #ec84a7;\r\n $primaryBackgroundHilightLight2: #f68eb1;\r\n $primaryBackgroundHilightLight3: #ff98bb;\r\n $primaryBackgroundHilightLight4: lighten($primaryBackgroundHilightLight3, 10%);\r\n $transulcentBackground: rgba(lighten(pink, 5%), 0.4);\r\n $lightPink: lighten(pink, 5%);\r\n $placeholderTextColor: #bbb;\r\n",".graph-chooser-api-driver {\r\n margin: 1em 1em 0 1em;\r\n padding: 0.5em;\r\n border: 1px solid red;\r\n display: flex;\r\n flex-direction: column;\r\n}","$unhoveredColor: gray;\r\n$hoveredColor: black;\r\n$handleBorderRadius: 50%;\r\n\r\n.selection-container {\r\n width: 100%;\r\n height: 100%;\r\n position: absolute;\r\n cursor: crosshair;\r\n}\r\n.selection-rectangle {\r\n border: #{var(--borderSize)} dotted $unhoveredColor;\r\n z-index: 10;\r\n}\r\n.selection-rectangle.hovered {\r\n border-color: $hoveredColor;\r\n cursor: move;\r\n}\r\n\r\n// .selection-rectangle.transparent {\r\n// opacity: 0.5;\r\n// pointer-events: none;\r\n// }\r\n\r\n.selection-handle {\r\n position: absolute;\r\n display: block;\r\n border-radius: 0;\r\n border-radius: $handleBorderRadius;\r\n // border: 1px solid black;\r\n // background-color: black;\r\n transform: scale(0.1);\r\n opacity: 0;\r\n width: var(--handleSize);\r\n height: var(--handleSize);\r\n left: calc(50% - var(--handleSize) / 2);\r\n top: calc(50% - var(--handleSize) / 2);\r\n}\r\n.selection-rectangle.hovered .selection-handle {\r\n // border-color: magenta;\r\n background-color: $hoveredColor;\r\n}\r\n\r\n.selection-rectangle.transparent .selection-handle,\r\n.selection-rectangle.dragging .selection-handle {\r\n cursor: inherit;\r\n}\r\n\r\n.selection-rectangle:focus .selection-handle,\r\n.selection-rectangle:hover .selection-handle,\r\n.selection-rectangle.dragging .selection-handle,\r\n.selection-rectangle.focused .selection-handle,\r\n.selection-rectangle.hovered .selection-handle {\r\n transform: scale(1);\r\n opacity: 1;\r\n}\r\n\r\n.selection-rectangle.read-only {\r\n cursor: default;\r\n}\r\n\r\n.selection-rectangle.read-only .selection-handle {\r\n display: none;\r\n}\r\n\r\n.selection-rectangle .delete {\r\n cursor: pointer;\r\n font-size: 2em;\r\n margin: 0.25em;\r\n display: none;\r\n float: right;\r\n}\r\n\r\n.selection-rectangle.hovered .delete {\r\n display: inline-block;\r\n fill: darkgray;\r\n}\r\n\r\n.selection-rectangle.hovered .delete:hover {\r\n fill: black;\r\n}\r\n\r\n.selection-rectangle.creating .delete,\r\n.selection-rectangle.editing .delete {\r\n display: none;\r\n}\r\n\r\n.selection-handle.top-left {\r\n left: calc(0% - (#{var(--borderSize)} + var(--handleSize)) / 2);\r\n top: calc(0% - (#{var(--borderSize)} + var(--handleSize)) / 2);\r\n cursor: nwse-resize;\r\n z-index: 1;\r\n}\r\n\r\n.selection-handle.top-center {\r\n top: calc(0% - (#{var(--borderSize)} + var(--handleSize)) / 2);\r\n cursor: ns-resize;\r\n}\r\n\r\n.selection-handle.top-right {\r\n top: calc(0% - (#{var(--borderSize)} + var(--handleSize)) / 2);\r\n left: calc(100% + (#{var(--borderSize)} - var(--handleSize)) / 2);\r\n cursor: nesw-resize;\r\n z-index: 1;\r\n}\r\n\r\n.selection-handle.right-center {\r\n left: calc(100% + (#{var(--borderSize)} - var(--handleSize)) / 2);\r\n cursor: ew-resize;\r\n}\r\n\r\n.selection-handle.bottom-right {\r\n top: calc(100% + (#{var(--borderSize)} - var(--handleSize)) / 2);\r\n left: calc(100% + (#{var(--borderSize)} - var(--handleSize)) / 2);\r\n cursor: nwse-resize;\r\n z-index: 1;\r\n}\r\n\r\n.selection-handle.bottom-center {\r\n top: calc(100% + (#{var(--borderSize)} - var(--handleSize)) / 2);\r\n cursor: ns-resize;\r\n}\r\n\r\n.selection-handle.bottom-left {\r\n top: calc(100% + (#{var(--borderSize)} - var(--handleSize)) / 2);\r\n left: calc(0% - (#{var(--borderSize)} + var(--handleSize)) / 2);\r\n cursor: nesw-resize;\r\n z-index: 1;\r\n}\r\n\r\n.selection-handle.left-center {\r\n left: calc(0% - (#{var(--borderSize)} + var(--handleSize)) / 2);\r\n cursor: ew-resize;\r\n}\r\n","@import \"../../../vars.scss\";\r\n\r\n.graph-chooser-main-ui {\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n}\r\n\r\n.pdf-page-wrapper {\r\n border-top: 1px dashed gray;\r\n position: relative;\r\n}\r\n.graph-selection-rect {\r\n border: 3px dotted lightgray;\r\n z-index: 1000;\r\n}\r\n.graph-selection-rect.selected {\r\n border: 3px dotted red;\r\n border-color: $primaryBackgroundHilightLight3;\r\n background-color: $transulcentBackground;\r\n}\r\n.graph-selection-handle {\r\n background-color: lightgray;\r\n}\r\n.graph-selection-rect.selected .graph-selection-handle {\r\n background-color: $primaryBackgroundHilightLight3;\r\n}\r\n.page-bounds-rect {\r\n border: 3px solid gold;\r\n z-index: 1;\r\n}\r\n.pdf-page-wrapper:nth-child(1) {\r\n border-top-width: 0;\r\n}\r\n.pdf-page-number {\r\n border: 1px solid black;\r\n display: inline-block;\r\n min-width: 28px;\r\n text-align: center;\r\n margin: 0.5em;\r\n position: absolute;\r\n top: 0;\r\n z-index: 1000;\r\n}\r\n.drag-group {\r\n display: none;\r\n cursor: default;\r\n}\r\n.graph-selection-rect.hovered .drag-group,\r\n.drag-group.selected {\r\n display: inline-block;\r\n border: 2px solid lightgray;\r\n background-color: lightgray;\r\n border-radius: 4px;\r\n padding: 0 0 0 0.5em;\r\n margin: 0.5em;\r\n}\r\n.graph-selection-rect.creating .drag-group,\r\n.graph-selection-rect.editing .drag-group {\r\n display: none;\r\n}\r\n.drag-group .inner-group {\r\n display: flex;\r\n margin-left: -0.25em;\r\n padding: 0.25em 0.25em 0.25em 0;\r\n}\r\n.drag-group .inner-group .drag-handle {\r\n margin-right: 0.25em;\r\n cursor: move;\r\n}\r\n.drag-group.selected,\r\n.graph-selection-rect.hovered .drag-group.selected {\r\n border: 2px solid $primaryBackgroundHilightDark3;\r\n background-color: $primaryBackgroundHilightLight3;\r\n}\r\n.graph-selection-rect.selected .delete {\r\n fill: $primaryBackgroundHilightLight3;\r\n}\r\n.graph-selection-rect.selected .delete:hover {\r\n fill: $primaryBackgroundHilightDark3;\r\n}\r\n\r\n.header-bar {\r\n border-bottom: 1px dotted black;\r\n padding: 0.25em;\r\n\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n}\r\n\r\n.doc-wrapper {\r\n flex: 1;\r\n overflow: auto;\r\n}\r\n.GraphChooser {\r\n height: 100%;\r\n}\r\n\r\n.load-progress {\r\n margin-right: 1em;\r\n\r\n .page-loaded-status {\r\n padding: 0.15em 0.4em;\r\n display: inline-block;\r\n border: 1px solid black;\r\n border-width: 1px 1px 1px 0;\r\n font-weight: normal;\r\n text-decoration: none;\r\n }\r\n .page-loaded-status:first-child {\r\n border-left-width: 1px;\r\n }\r\n .loaded {\r\n background-color: gray;\r\n color: white;\r\n }\r\n}\r\n\r\n.clickable {\r\n cursor: pointer;\r\n}\r\n\r\n.lock-selected-graphs {\r\n margin: 0 0.25em;\r\n}\r\n",".graph-displayer-api-driver {\r\n margin: 1em 1em 0 1em;\r\n padding: 0.5em;\r\n border: 1px solid red;\r\n cursor: pointer;\r\n}\r\n\r\n.graph-coords {\r\n font-size: 0.8em;\r\n border-top: 1px dotted red;\r\n margin-top: 1em;\r\n padding-top: 0.25em;\r\n display: block;\r\n margin-left: -0.5em;\r\n margin-right: -0.5em;\r\n padding: 0.5em 0.5em 0 0.5em;\r\n text-align: center;\r\n}",".graph-displayer-main-ui {\r\n margin: 1em 1em 0 1em;\r\n padding: 0.5em;\r\n border: 1px solid red;\r\n cursor: pointer;\r\n}"]} \ No newline at end of file diff --git a/Graph2Data2/static/css/main.d5bea55b.chunk.css b/Graph2Data2/static/css/main.d5bea55b.chunk.css new file mode 100644 index 0000000..bca9715 --- /dev/null +++ b/Graph2Data2/static/css/main.d5bea55b.chunk.css @@ -0,0 +1,2 @@ +body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*,:after,:before,graph-2-data{box-sizing:border-box;font-family:fira code retina,Lucida Console,Monaco,monospace;font-size:10pt}:focus{outline:none}.clearfix:after{display:block;clear:both;content:""}.api-driver,.App,.main-ui-container,body,html{width:100%;height:100%}html{overflow:hidden}[title]{cursor:help}.App{text-align:center;width:100%;height:100%}.App-logo{-webkit-animation:App-logo-spin 20s linear infinite;animation:App-logo-spin 20s linear infinite;height:40vmin;pointer-events:none}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}.api-driver,.main-ui-container{border:1px solid red;padding:0;display:flex}.api-driver fieldset{border:1px solid red;width:auto;display:inline-block;flex:0 0;margin-bottom:.5em}.api-driver fieldset legend{font-size:.8em;color:red}.api-driver .state-display{text-align:left;margin:0 .5em 0 0}.api-driver .state-display,.api-driver .state-editors{border:1px solid red;flex:1 1;padding:1em;overflow:auto}.api-driver .state-editors{display:flex;flex-direction:column;align-items:flex-start;margin:0 0 0 .5em}.api-driver .state-editors .coord{width:40px;margin-right:20px;margin-left:3px}.api-driver .state-editors .name{width:80px;margin-right:20px;margin-left:3px}.api-driver .state-editors button{margin-right:10px}.api-driver fieldset ul{list-style:none;padding-left:0;text-align:left}button,input[type=checkbox],label,option{cursor:pointer}button[disabled]{cursor:not-allowed}.main-ui-container{flex-direction:column;border-width:0}.main-ui-container .middle{width:100%;height:100%}.main-ui-container .middle.column .image-stage{position:relative;width:100%;height:100%;overflow:auto}.main-ui-container .middle.column .image-stage canvas.chrome,.main-ui-container .middle.column .image-stage canvas.image{position:absolute;left:0;top:0;cursor:crosshair}.main-ui-container .right.column{display:flex;flex-direction:column}.main-ui-container .right.column .magnifier-stage{box-sizing:initial;display:flex}.main-ui-container .magnifier-stage{border:1px solid #db7093;position:relative}.main-ui-container .magnifier-stage canvas{position:absolute;left:0;width:100%;height:100%}.main-ui-container .magnifier-stage .image{z-index:1}.main-ui-container .magnifier-stage .image-chrome{z-index:2}.main-ui-container .magnifier-stage .chrome{z-index:3}.main-ui-container .magnifier-wrapper{display:flex;flex-direction:column}.main-ui-container .top{background-color:pink;height:50px;border-bottom:1px solid #db7093}.main-ui-container .middle{flex:1 0;display:flex;border-left:1px solid #db7093}.main-ui-container .bottom{background-color:pink;height:50px;border-top:1px solid #db7093}.main-ui-container .left{background-color:pink;width:50px}.main-ui-container .middle{background-color:pink;flex:1 1}.main-ui-container .middle.bar .right.column{background-color:pink;border-left:1px solid #db7093;display:flex;flex-direction:column}.duxpanel-backdrop{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.3)}.duxpanel{border:1px solid #ddd;background-color:#fff;border-radius:4px;position:fixed;box-shadow:0 0 6pt 3pt rgba(0,0,0,.6)}.duxpanel-heading{background-color:#db7093;color:#fff;border-top-left-radius:3px;border-top-right-radius:3px;padding:10px 15px;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:move}.duxpanel-body{display:flex}.wizard{flex-direction:column}.wizard,.wizard .body{display:flex;width:100%}.wizard .body{flex-direction:column;padding:0;justify-content:stretch;flex:1 1}.wizard .body select{width:100%;height:100%;border:0 solid red;padding:.5em}.wizard .body select.single-line{padding:.25em}.wizard .body select option{margin:.2em}.wizard .body .row{padding:.25em}.wizard .body .row label input{margin-left:.25em}.wizard .body .row input[name=data-points-count],.wizard .body .row input[name=data-series-count]{width:40px}.wizard .footer{border-top:1px solid #b0486b}.wizard .cta-footer,.wizard .footer{padding:.5em;background-color:#db7093;color:#fff}.wizard .cta-footer{display:none;border-top:1px solid #ba5275;font-size:8pt}.duxpanel{border:1px solid #db7093}.duxpanel-footer .dialog-button{margin:0 0 0 .5em!important}.status-display{margin-top:.5em;margin-bottom:1em}.axis-calibration{margin:1em}.status-display .body *{font-size:8pt}.status-display{margin-top:0}.axis-calibration .header,.status-display .header{background-color:#db7093;color:#fff;margin-bottom:.5em}.status-display{flex:0 1!important}.axis-calibration{flex:1 1}.zoom-controls{display:flex;justify-content:space-between;margin:.25em;border:1px solid #db7093;border-radius:5px;padding:.25em;color:#db7093}.zoom-controls>label{margin:0 .5em}.zoom-controls .current-value{margin:0 .25em}.toggle-icon{display:flex;justify-content:space-between}.toggle-icon>label{margin:0 .5em}.toggle-icon.on{color:#b0486b}.toggle-icon.on svg{font-size:2.2rem}.axis-diagram-container{display:flex;border-bottom:2px solid #db7093;padding:.5em!important}.axis-diagram{display:block;border:2px solid #db7093;margin-right:.5em;padding:.5em}.axis-diagram:last-child{margin-right:0}.axis-diagram>label{margin-top:.3em;display:block}.axis-calibration-value,.axis-log-power-setting,.axis-log-setting{display:none}.combined-origin{fill:#db7093!important;font-size:2em!important}.axis-calibration-value:focus,.axis-log-power-setting>input:focus,.axis-log-setting>input:focus,button:focus,select:focus{outline-width:0}.axis-log-power-setting:focus-within,.axis-log-setting:focus-within{outline:1px dotted red}.axis-calibration .cta{color:#fff;background-color:#db7093;border:1px solid #db7093;border-radius:20px;padding:0 .7em}.axis-calibration .cta:before{content:">";font-size:20pt;vertical-align:-.15em;margin-right:.15em;font-weight:700;color:#fff}.matrix-display{border:1px solid #db7093;padding:0;display:flex;flex-direction:column}.matrix-display>.matrix-row{padding:0;margin:0;display:flex}.matrix-display>.matrix-row>.matrix-element{border:1px solid #db7093;padding:.25em;margin:0;flex:1 0}.data-points-table-container{max-height:250px;overflow-y:auto}.data-points-table{border-collapse:collapse;width:100%}.data-points-table tbody,.data-points-table td,.data-points-table th,.data-points-table thead,.data-points-table tr{font-size:inherit}.data-points-table td,.data-points-table th{border:1px solid #db7093}.data-points-table td.selected{background-color:#ff98bb}.data-points-table td.blank-cell,.data-points-table td.data-cell{cursor:pointer}.data-points-table td.auto-add{background-color:#ff98bb}.top.bar{display:flex;flex-direction:row-reverse}.settings{border:1px solid --primaryBackgroundHilightDark3;background-color:pink;color:#db7093;display:flex;align-self:center;align-items:center}.data-points-meta-table-container .button-bar,.series-selector-panel .button-bar{display:flex;align-content:stretch}.data-points-meta-table-container .button-bar button,.series-selector-panel .button-bar button{flex:1 1}.data-points-meta-table-container .button-bar button svg,.series-selector-panel .button-bar button svg{font-size:1.4rem}.data-points-table svg{font-size:1.3rem}.data-points-table svg.disabled{color:#ccc}::-webkit-input-placeholder{color:#bbb}::-moz-placeholder{color:#bbb}:-ms-input-placeholder{color:#bbb}:-moz-placeholder{color:#bbb}.base{vertical-align:sub}.base,.pow{font-size:.7em}.pow{vertical-align:super}.disabled{color:#ccc}.graph-chooser-api-driver{margin:1em 1em 0;padding:.5em;border:1px solid red;display:flex;flex-direction:column}.selection-container{width:100%;height:100%;position:absolute;cursor:crosshair}.selection-rectangle{border:var(--borderSize) dotted grey;z-index:10}.selection-rectangle.hovered{border-color:#000;cursor:move}.selection-handle{position:absolute;display:block;border-radius:0;border-radius:50%;-webkit-transform:scale(.1);transform:scale(.1);opacity:0;width:var(--handleSize);height:var(--handleSize);left:calc(50% - var(--handleSize)/2);top:calc(50% - var(--handleSize)/2)}.selection-rectangle.hovered .selection-handle{background-color:#000}.selection-rectangle.dragging .selection-handle,.selection-rectangle.transparent .selection-handle{cursor:inherit}.selection-rectangle.dragging .selection-handle,.selection-rectangle.focused .selection-handle,.selection-rectangle.hovered .selection-handle,.selection-rectangle:focus .selection-handle,.selection-rectangle:hover .selection-handle{-webkit-transform:scale(1);transform:scale(1);opacity:1}.selection-rectangle.read-only{cursor:default}.selection-rectangle.read-only .selection-handle{display:none}.selection-rectangle .delete{cursor:pointer;font-size:2em;margin:.25em;display:none;float:right}.selection-rectangle.hovered .delete{display:inline-block;fill:#a9a9a9}.selection-rectangle.hovered .delete:hover{fill:#000}.selection-rectangle.creating .delete,.selection-rectangle.editing .delete{display:none}.selection-handle.top-left{left:calc((var(--borderSize) + var(--handleSize))/-2);top:calc((var(--borderSize) + var(--handleSize))/-2);cursor:nwse-resize;z-index:1}.selection-handle.top-center{top:calc((var(--borderSize) + var(--handleSize))/-2);cursor:ns-resize}.selection-handle.top-right{top:calc((var(--borderSize) + var(--handleSize))/-2);cursor:nesw-resize;z-index:1}.selection-handle.right-center,.selection-handle.top-right{left:calc(100% + (var(--borderSize) - var(--handleSize))/2)}.selection-handle.right-center{cursor:ew-resize}.selection-handle.bottom-right{top:calc(100% + (var(--borderSize) - var(--handleSize))/2);left:calc(100% + (var(--borderSize) - var(--handleSize))/2);cursor:nwse-resize;z-index:1}.selection-handle.bottom-center{top:calc(100% + (var(--borderSize) - var(--handleSize))/2);cursor:ns-resize}.selection-handle.bottom-left{top:calc(100% + (var(--borderSize) - var(--handleSize))/2);left:calc((var(--borderSize) + var(--handleSize))/-2);cursor:nesw-resize;z-index:1}.selection-handle.left-center{left:calc((var(--borderSize) + var(--handleSize))/-2);cursor:ew-resize}.graph-chooser-main-ui{display:flex;flex-direction:column;height:100%}.pdf-page-wrapper{border-top:1px dashed grey;position:relative}.graph-selection-rect{border:3px dotted #d3d3d3;z-index:1000}.graph-selection-rect.selected{border:3px dotted #ff98bb;background-color:rgba(255,218,224,.4)}.graph-selection-handle{background-color:#d3d3d3}.graph-selection-rect.selected .graph-selection-handle{background-color:#ff98bb}.page-bounds-rect{border:3px solid gold;z-index:1}.pdf-page-wrapper:first-child{border-top-width:0}.pdf-page-number{border:1px solid #000;display:inline-block;min-width:28px;text-align:center;margin:.5em;position:absolute;top:0;z-index:1000}.drag-group{display:none;cursor:default}.drag-group.selected,.graph-selection-rect.hovered .drag-group{display:inline-block;border:2px solid #d3d3d3;background-color:#d3d3d3;border-radius:4px;padding:0 0 0 .5em;margin:.5em}.graph-selection-rect.creating .drag-group,.graph-selection-rect.editing .drag-group{display:none}.drag-group .inner-group{display:flex;margin-left:-.25em;padding:.25em .25em .25em 0}.drag-group .inner-group .drag-handle{margin-right:.25em;cursor:move}.drag-group.selected,.graph-selection-rect.hovered .drag-group.selected{border:2px solid #b0486b;background-color:#ff98bb}.graph-selection-rect.selected .delete{fill:#ff98bb}.graph-selection-rect.selected .delete:hover{fill:#b0486b}.header-bar{border-bottom:1px dotted #000;padding:.25em;display:flex;flex-direction:row;justify-content:flex-end}.doc-wrapper{flex:1 1;overflow:auto}.GraphChooser{height:100%}.load-progress{margin-right:1em}.load-progress .page-loaded-status{padding:.15em .4em;display:inline-block;border:1px solid #000;border-left-width:0;font-weight:400;text-decoration:none}.load-progress .page-loaded-status:first-child{border-left-width:1px}.load-progress .loaded{background-color:grey;color:#fff}.clickable{cursor:pointer}.lock-selected-graphs{margin:0 .25em}.graph-displayer-api-driver{margin:1em 1em 0;padding:.5em;border:1px solid red;cursor:pointer}.graph-coords{font-size:.8em;border-top:1px dotted red;margin-top:1em;display:block;margin-left:-.5em;margin-right:-.5em;padding:.5em .5em 0;text-align:center}.graph-displayer-main-ui{margin:1em 1em 0;padding:.5em;border:1px solid red;cursor:pointer} +/*# sourceMappingURL=main.d5bea55b.chunk.css.map */ \ No newline at end of file diff --git a/Graph2Data2/static/css/main.d5bea55b.chunk.css.map b/Graph2Data2/static/css/main.d5bea55b.chunk.css.map new file mode 100644 index 0000000..8964e06 --- /dev/null +++ b/Graph2Data2/static/css/main.d5bea55b.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.css","App.scss","vars.scss","style.scss","../../../vars.scss"],"names":[],"mappings":"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","file":"main.d5bea55b.chunk.css","sourcesContent":["body {\n margin: 0;\n padding: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\",\n \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, \"Courier New\",\n monospace;\n}\n","@import './vars.scss';\n\n*, *:before, *:after, graph-2-data {\n box-sizing: border-box;\n font-family: 'fira code retina', 'Lucida Console', Monaco, monospace;\n font-size: 10pt;\n}\n\n*:focus {\n outline: none;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\nhtml, body, .App, .api-driver, .main-ui-container {\n width: 100%;\n height: 100%;\n}\nhtml {\n overflow: hidden;\n}\n\n*[title] {\n cursor: help;\n}\n\n.App {\n text-align: center;\n width: 100%;\n height: 100%;\n}\n\n.App-logo {\n animation: App-logo-spin infinite 20s linear;\n height: 40vmin;\n pointer-events: none;\n}\n\n.App-header {\n background-color: #282c34;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: calc(10px + 2vmin);\n color: white;\n}\n\n.App-link {\n color: #61dafb;\n}\n\n.api-driver, .main-ui-container {\n border: 1px solid red;\n padding: 0;\n display: flex;\n}\n\n.api-driver fieldset {\n border: 1px solid red;\n width: auto;\n display: inline-block;\n flex: 0 0;\n margin-bottom: 0.5em;\n}\n\n.api-driver fieldset legend {\n font-size: 0.8em;\n color: red;\n}\n\n.api-driver .state-display {\n border: 1px solid red;\n flex: 1 1;\n text-align: left;\n padding: 1em;\n overflow: auto;\n margin: 0 0.5em 0 0;\n}\n\n.api-driver .state-editors {\n flex: 1 1;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow: auto;\n margin: 0 0 0 0.5em;\n border: 1px solid red;\n padding: 1em;\n}\n\n.api-driver .state-editors .coord {\n width: 40px;\n margin-right: 20px;\n margin-left: 3px;\n}\n\n.api-driver .state-editors .name {\n width: 80px;\n margin-right: 20px;\n margin-left: 3px;\n}\n\n.api-driver .state-editors button {\n margin-right: 10px;\n}\n\n.api-driver fieldset ul {\n list-style: none;\n padding-left: 0;\n text-align: left;\n}\n\nlabel, button, option, input[type=checkbox] {\n cursor: pointer;\n}\n\nbutton[disabled] {\n cursor: not-allowed;\n}\n\n.main-ui-container {\n flex-direction: column;\n border-width: 0;\n}\n\n.main-ui-container .middle {\n width: 100%;\n height: 100%;\n}\n\n.main-ui-container .middle.column .image-stage {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: auto;\n}\n\n.main-ui-container .middle.column .image-stage canvas.image, .main-ui-container .middle.column .image-stage canvas.chrome {\n position: absolute;\n left: 0;\n top: 0;\n cursor: crosshair;\n}\n\n.main-ui-container .right.column {\n display: flex;\n flex-direction: column;\n}\n\n.main-ui-container .right.column .magnifier-stage {\n box-sizing: content-box;\n display: flex;\n}\n\n.main-ui-container .magnifier-stage {\n border: 1px solid $primaryBackgroundHilight;\n position: relative;\n}\n\n.main-ui-container .magnifier-stage canvas {\n position: absolute;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.main-ui-container .magnifier-stage .image {\n z-index: 1;\n}\n\n.main-ui-container .magnifier-stage .image-chrome {\n z-index: 2;\n}\n\n.main-ui-container .magnifier-stage .chrome {\n z-index: 3;\n}\n\n.main-ui-container .magnifier-wrapper {\n display: flex;\n flex-direction: column;\n}\n\n.main-ui-container .top {\n background-color: $primaryBackground;\n height: 50px;\n border-bottom: 1px solid $primaryBackgroundHilight;\n}\n\n.main-ui-container .middle {\n background-color: $primaryBackground;\n flex: 1 0;\n display: flex;\n border-left: 1px solid $primaryBackgroundHilight;\n}\n\n.main-ui-container .bottom {\n background-color: $primaryBackground;\n height: 50px;\n border-top: 1px solid $primaryBackgroundHilight;\n}\n\n.main-ui-container .left {\n background-color: $primaryBackground;\n width: 50px;\n}\n\n.main-ui-container .middle {\n background-color: $primaryBackground;\n flex: 1 1;\n}\n\n.main-ui-container .middle.bar .right.column {\n background-color: $primaryBackground;\n border-left: 1px solid $primaryBackgroundHilight;\n display: flex;\n flex-direction: column;\n}\n\n.duxpanel-backdrop {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: rgba(0, 0, 0, .3);\n}\n\n.duxpanel {\n border: 1px solid #ddd;\n background-color: #fff;\n border-radius: 4px;\n position: fixed;\n box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 6pt 3pt;\n}\n\n.duxpanel-heading {\n background-color: $primaryBackgroundHilight;\n color: white;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n padding: 10px 15px;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: move;\n}\n\n.duxpanel-body {\n display: flex;\n}\n\n.wizard {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.wizard .body {\n display: flex;\n flex-direction: column;\n padding: 0;\n justify-content: stretch;\n flex: 1;\n width: 100%;\n}\n\n.wizard .body select {\n width: 100%;\n height: 100%;\n border: 0px solid red;\n padding: 0.5em;\n}\n\n.wizard .body select.single-line {\n padding: 0.25em;\n}\n\n.wizard .body select option {\n margin: 0.2em;\n}\n\n.wizard .body .row {\n padding: 0.25em;\n}\n\n.wizard .body .row label input {\n margin-left: 0.25em;\n}\n\n.wizard .body .row input[name='data-series-count'], .wizard .body .row input[name='data-points-count'] {\n width: 40px\n}\n\n.wizard .footer {\n border-top: 1px solid $primaryBackgroundHilightDark3;\n padding: 0.5em;\n background-color: $primaryBackgroundHilight;\n color: white;\n}\n\n.wizard .cta-footer {\n display: none;\n border-top: 1px solid $primaryBackgroundHilightDark2;\n padding: 0.5em;\n background-color: $primaryBackgroundHilight;\n color: white;\n font-size: 8pt;\n}\n\n.duxpanel {\n border: 1px solid $primaryBackgroundHilight;\n}\n\n.duxpanel-footer .dialog-button {\n margin: 0 0 0 0.5em !important;\n}\n\n.status-display {\n margin-top: 0.5em;\n margin-bottom: 1em;\n}\n\n.axis-calibration {\n margin: 1em;\n}\n\n.status-display .body * {\n font-size: 8pt;\n}\n\n.status-display {\n margin-top: 0;\n}\n\n.status-display .header, .axis-calibration .header {\n background-color: $primaryBackgroundHilight;\n color: white;\n margin-bottom: 0.5em;\n}\n\n.status-display {\n flex: 0 !important;\n}\n\n.axis-calibration {\n flex: 1;\n}\n\n.zoom-controls {\n display: flex;\n justify-content: space-between;\n margin: 0.25em;\n border: 1px solid $primaryBackgroundHilight;\n border-radius: 5px;\n padding: 0.25em;\n color: $primaryBackgroundHilight;\n}\n\n\n.zoom-controls>label {\n margin: 0 0.5em;\n}\n\n.zoom-controls .current-value {\n margin: 0 0.25em;\n}\n\n.toggle-icon {\n display: flex;\n justify-content: space-between;\n}\n\n.toggle-icon>label {\n margin: 0 0.5em\n}\n\n.toggle-icon.on {\n color: $primaryBackgroundHilightDark3;\n}\n\n.toggle-icon.on svg {\n font-size: 2.2rem;\n}\n\n.axis-diagram-container {\n display: flex;\n border-bottom: 2px solid $primaryBackgroundHilight;\n padding: 0.5em !important;\n}\n\n.axis-diagram {\n display: block;\n border: 2px solid $primaryBackgroundHilight;\n margin-right: 0.5em;\n padding: 0.5em;\n}\n\n.axis-diagram:last-child {\n margin-right: 0;\n}\n\n.axis-diagram>label {\n margin-top: 0.3em;\n display: block;\n}\n\n.axis-calibration-value {\n display: none;\n}\n.axis-log-setting, .axis-log-power-setting {\n display: none;\n}\n.combined-origin {\n fill: palevioletred !important;\n font-size: 2em !important;\n}\n.combined-origin.on {\n\n}\n.combined-origin.off {\n\n}\n/* *:focus {\n outline: 2px solid red;\n} */\nselect:focus, button:focus {\n outline-width: 0;\n}\n.axis-calibration-value:focus {\n outline-width: 0;\n}\n.axis-log-setting > input:focus, .axis-log-power-setting > input:focus {\n outline-width: 0;\n}\n.axis-log-setting:focus-within, .axis-log-power-setting:focus-within {\n outline: 1px dotted red;\n}\n\n.axis-calibration .cta {\n color: white;\n background-color: palevioletred;\n border: 1px solid palevioletred;\n border-radius: 20px;\n padding: 0 0.7em;\n}\n\n.axis-calibration .cta:before {\n content: '>';\n font-size: 20pt;\n vertical-align: -0.15em;\n margin-right: 0.15em;\n font-weight: bold;\n color: white;\n}\n\n.matrix-display {\n border: 1px solid $primaryBackgroundHilight;\n padding: 0;\n display: flex;\n flex-direction: column;\n}\n\n.matrix-display>.matrix-row {\n padding: 0;\n margin: 0;\n display: flex;\n}\n\n.matrix-display>.matrix-row>.matrix-element {\n border: 1px solid $primaryBackgroundHilight;\n padding: 0.25em;\n margin: 0;\n flex: 1 0;\n}\n\n.data-points-table-container {\n max-height: 250px;\n overflow-y: auto;\n}\n\n.data-points-table {\n border-collapse: collapse;\n width: 100%;\n}\n\n.data-points-table thead, .data-points-table tr, .data-points-table tbody, .data-points-table th, .data-points-table td {\n font-size: inherit;\n}\n.data-points-table td, .data-points-table th {\n border: 1px solid $primaryBackgroundHilight;\n}\n\n.data-points-table td.selected {\n background-color: $primaryBackgroundHilightLight3;\n}\n\n.data-points-table td.data-cell, .data-points-table td.blank-cell {\n cursor: pointer;\n}\n\n.data-points-table td.auto-add {\n background-color: $primaryBackgroundHilightLight3;\n}\n\n.top.bar {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.settings {\n border: 1px solid var (--primaryBackgroundHilightDark3);\n background-color: $primaryBackground;\n color: $primaryBackgroundHilight;\n display: flex;\n align-self: center;\n align-items: center;\n}\n\n.series-selector-panel .button-bar,\n.data-points-meta-table-container .button-bar {\n display: flex;\n align-content: stretch;\n}\n\n.series-selector-panel .button-bar button,\n.data-points-meta-table-container .button-bar button {\n flex: 1;\n}\n\n.series-selector-panel .button-bar button svg,\n.data-points-meta-table-container .button-bar button svg {\n font-size: 1.4rem;\n}\n\n.data-points-table svg {\n font-size: 1.3rem;\n}\n\n.data-points-table svg.disabled {\n color: #ccc;\n}\n\n::-webkit-input-placeholder {\n color: $placeholderTextColor;\n}\n\n::-moz-placeholder {\n color: $placeholderTextColor;\n}\n\n:-ms-input-placeholder {\n color: $placeholderTextColor;\n}\n\n:-moz-placeholder {\n color: $placeholderTextColor;\n}\n\n.base {\n vertical-align: sub;\n font-size: 0.7em;\n}\n\n.pow {\n vertical-align: super;\n font-size: 0.7em;\n}\n.disabled {\n color: #ccc;\n}","\n $primaryBackground: pink;\n $primaryBackgroundHilight: palevioletred;\n $primaryBackgroundHilightDark: #c45c7f;\n $primaryBackgroundHilightDark2: #ba5275;\n $primaryBackgroundHilightDark3: #b0486b;\n $primaryBackgroundHilightLight: #ec84a7;\n $primaryBackgroundHilightLight2: #f68eb1;\n $primaryBackgroundHilightLight3: #ff98bb;\n $primaryBackgroundHilightLight4: lighten($primaryBackgroundHilightLight3, 10%);\n $transulcentBackground: rgba(lighten(pink, 5%), 0.4);\n $lightPink: lighten(pink, 5%);\n $placeholderTextColor: #bbb;\n",".graph-displayer-main-ui {\n margin: 1em 1em 0 1em;\n padding: 0.5em;\n border: 1px solid red;\n cursor: pointer;\n}","\n $primaryBackground: pink;\n $primaryBackgroundHilight: palevioletred;\n $primaryBackgroundHilightDark: #c45c7f;\n $primaryBackgroundHilightDark2: #ba5275;\n $primaryBackgroundHilightDark3: #b0486b;\n $primaryBackgroundHilightLight: #ec84a7;\n $primaryBackgroundHilightLight2: #f68eb1;\n $primaryBackgroundHilightLight3: #ff98bb;\n $primaryBackgroundHilightLight4: lighten($primaryBackgroundHilightLight3, 10%);\n $transulcentBackground: rgba(lighten(pink, 5%), 0.4);\n $lightPink: lighten(pink, 5%);\n $placeholderTextColor: #bbb;\n"]} \ No newline at end of file diff --git a/Graph2Data2/static/js/2.800dd2e2.chunk.js b/Graph2Data2/static/js/2.800dd2e2.chunk.js new file mode 100644 index 0000000..c4cc8a9 --- /dev/null +++ b/Graph2Data2/static/js/2.800dd2e2.chunk.js @@ -0,0 +1,2 @@ +(window.webpackJsonpgraph2data=window.webpackJsonpgraph2data||[]).push([[2],[function(e,t,r){"use strict";e.exports=r(91)},function(e,t,r){"use strict";function n(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}r.d(t,"a",(function(){return n}))},function(e,t,r){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}r.d(t,"a",(function(){return n}))},function(e,t,r){"use strict";function n(e,t){for(var r=0;r=0?atob(e.split(",")[1]):unescape(e.split(",")[1]);for(var r=new Uint8Array(t.length),n=0;n1?t-1:0),n=1;ns)return new Error("Expected `".concat(t,"` to be less or equal to ").concat(s-1,"."))}else if(!(0,l.isDefined)(i))return new Error("`".concat(t,"` not supplied. Either pageIndex or pageNumber must be supplied to `").concat(r,"`."));return null};t.isPageNumber=function(e,t,r){var n=e[t],i=e.pageIndex,o=e.pdf;if(!(0,l.isDefined)(o))return null;if((0,l.isDefined)(n)){if("number"!==typeof n)return new Error("`".concat(t,"` of type `").concat((0,a.default)(n),"` supplied to `").concat(r,"`, expected `number`."));if(n<1)return new Error("Expected `".concat(t,"` to be greater or equal to 1."));var s=o.numPages;if(n>s)return new Error("Expected `".concat(t,"` to be less or equal to ").concat(s,"."))}else if(!(0,l.isDefined)(i))return new Error("`".concat(t,"` not supplied. Either pageIndex or pageNumber must be supplied to `").concat(r,"`."));return null};var y=o.default.oneOfType([o.default.shape({getDestination:o.default.func.isRequired,getOutline:o.default.func.isRequired,getPage:o.default.func.isRequired,numPages:o.default.number.isRequired}),o.default.bool]);t.isPdf=y;var b=o.default.oneOf(["canvas","none","svg"]);t.isRenderMode=b;var w=o.default.oneOf([0,90,180,270]);t.isRotate=w},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(n){"object"===typeof window&&(r=window)}e.exports=r},function(e,t,r){e.exports=r(62)},function(e,t,r){(function(t,n,a){var i;i=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";var n=r(1),a=r(147),i=r(162),o=r(163),s=r(151),c=r(164),l=r(156),u=r(153);if(r(4)()){var h=r(165).PDFNodeStream;a.setPDFNetworkStreamFactory((function(e){return new h(e)}))}else{var f,d=r(168).PDFNetworkStream;s.isFetchSupported()&&(f=r(169).PDFFetchStream),a.setPDFNetworkStreamFactory((function(e){return f&&s.isValidFetchUrl(e.url)?new f(e):new d(e)}))}t.build=a.build,t.version=a.version,t.getDocument=a.getDocument,t.LoopbackPort=a.LoopbackPort,t.PDFDataRangeTransport=a.PDFDataRangeTransport,t.PDFWorker=a.PDFWorker,t.renderTextLayer=i.renderTextLayer,t.AnnotationLayer=o.AnnotationLayer,t.createPromiseCapability=n.createPromiseCapability,t.PasswordResponses=n.PasswordResponses,t.InvalidPDFException=n.InvalidPDFException,t.MissingPDFException=n.MissingPDFException,t.SVGGraphics=c.SVGGraphics,t.NativeImageDecoding=n.NativeImageDecoding,t.CMapCompressionType=n.CMapCompressionType,t.PermissionFlag=n.PermissionFlag,t.UnexpectedResponseException=n.UnexpectedResponseException,t.OPS=n.OPS,t.VerbosityLevel=n.VerbosityLevel,t.UNSUPPORTED_FEATURES=n.UNSUPPORTED_FEATURES,t.createValidAbsoluteUrl=n.createValidAbsoluteUrl,t.createObjectURL=n.createObjectURL,t.removeNullCharacters=n.removeNullCharacters,t.shadow=n.shadow,t.Util=n.Util,t.ReadableStream=n.ReadableStream,t.URL=n.URL,t.RenderingCancelledException=s.RenderingCancelledException,t.getFilenameFromUrl=s.getFilenameFromUrl,t.LinkTarget=s.LinkTarget,t.addLinkAttributes=s.addLinkAttributes,t.loadScript=s.loadScript,t.PDFDateString=s.PDFDateString,t.GlobalWorkerOptions=l.GlobalWorkerOptions,t.apiCompatibilityParams=u.apiCompatibilityParams},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.arrayByteLength=w,t.arraysToBytes=function(e){if(1===e.length&&e[0]instanceof Uint8Array)return e[0];var t,r,n,a=0,i=e.length;for(t=0;t=o.INFOS&&console.log("Info: "+e)},t.isArrayBuffer=function(e){return"object"===i(e)&&null!==e&&void 0!==e.byteLength},t.isArrayEqual=function(e,t){return e.length===t.length&&e.every((function(e,r){return e===t[r]}))},t.isBool=function(e){return"boolean"===typeof e},t.isEmptyObj=function(e){for(var t in e)return!1;return!0},t.isNum=function(e){return"number"===typeof e},t.isString=function(e){return"string"===typeof e},t.isSpace=function(e){return 32===e||9===e||13===e||10===e},t.isSameOrigin=function(e,t){try{var r=new a.URL(e);if(!r.origin||"null"===r.origin)return!1}catch(i){return!1}var n=new a.URL(t,r);return r.origin===n.origin},t.createValidAbsoluteUrl=function(e,t){if(!e)return null;try{var r=t?new a.URL(e,t):new a.URL(e);if(function(e){if(!e)return!1;switch(e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(r))return r}catch(n){}return null},t.isLittleEndian=function(){var e=new Uint8Array(4);return e[0]=1,1===new Uint32Array(e.buffer,0,1)[0]},t.isEvalSupported=function(){try{return new Function(""),!0}catch(e){return!1}},t.log2=function(e){return e<=0?0:Math.ceil(Math.log2(e))},t.readInt8=function(e,t){return e[t]<<24>>24},t.readUint16=function(e,t){return e[t]<<8|e[t+1]},t.readUint32=function(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0},t.removeNullCharacters=function(e){return"string"!==typeof e?(c("The argument for removeNullCharacters must be a string."),e):e.replace(y,"")},t.setVerbosityLevel=function(e){Number.isInteger(e)&&(s=e)},t.shadow=function(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!1}),r},t.string32=function(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e)},t.stringToBytes=b,t.stringToPDFString=function(e){var t,r=e.length,n=[];if("\xfe"===e[0]&&"\xff"===e[1])for(t=2;t=o.WARNINGS&&console.log("Warning: "+e)}function l(e){throw new Error(e)}function u(e,t){e||l(t)}var h=function(){function e(e,t){this.name="PasswordException",this.message=e,this.code=t}return e.prototype=new Error,e.constructor=e,e}();t.PasswordException=h;var f=function(){function e(e,t){this.name="UnknownErrorException",this.message=e,this.details=t}return e.prototype=new Error,e.constructor=e,e}();t.UnknownErrorException=f;var d=function(){function e(e){this.name="InvalidPDFException",this.message=e}return e.prototype=new Error,e.constructor=e,e}();t.InvalidPDFException=d;var p=function(){function e(e){this.name="MissingPDFException",this.message=e}return e.prototype=new Error,e.constructor=e,e}();t.MissingPDFException=p;var m=function(){function e(e,t){this.name="UnexpectedResponseException",this.message=e,this.status=t}return e.prototype=new Error,e.constructor=e,e}();t.UnexpectedResponseException=m;var g=function(){function e(e){this.message=e}return e.prototype=new Error,e.prototype.name="FormatError",e.constructor=e,e}();t.FormatError=g;var v=function(){function e(e){this.name="AbortException",this.message=e}return e.prototype=new Error,e.constructor=e,e}();t.AbortException=v;var y=/\x00/g;function b(e){u("string"===typeof e,"Invalid argument for stringToBytes");for(var t=e.length,r=new Uint8Array(t),n=0;ne[2]&&(t[0]=e[2],t[2]=e[0]),e[1]>e[3]&&(t[1]=e[3],t[3]=e[1]),t},e.intersect=function(t,r){function n(e,t){return e-t}var a=[t[0],t[2],r[0],r[2]].sort(n),i=[t[1],t[3],r[1],r[3]].sort(n),o=[];return t=e.normalizeRect(t),r=e.normalizeRect(r),(a[0]===t[0]&&a[1]===r[0]||a[0]===r[0]&&a[1]===t[0])&&(o[0]=a[1],o[2]=a[2],(i[0]===t[1]&&i[1]===r[1]||i[0]===r[1]&&i[1]===t[1])&&(o[1]=i[1],o[3]=i[2],o))},e}();t.Util=k;var S=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364],_=function(){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return function(t,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!n&&a.URL.createObjectURL){var i=new Blob([t],{type:r});return a.URL.createObjectURL(i)}for(var o="data:"+r+";base64,",s=0,c=t.length;s>2,d=(3&l)<<4|u>>4,p=s+1>6:64,m=s+21?!!arguments[1]:!this.contains(e);return this[t?"add":"remove"](e),t}),String.prototype.startsWith||n(5),String.prototype.endsWith||n(36),String.prototype.includes||n(38),Array.prototype.includes||n(40),Array.from||n(47),Object.assign||n(70),Math.log2||(Math.log2=n(75)),Number.isNaN||(Number.isNaN=n(77)),Number.isInteger||(Number.isInteger=n(79)),i.Promise&&i.Promise.prototype&&i.Promise.prototype.finally||(i.Promise=n(82)),i.WeakMap||(i.WeakMap=n(102)),i.WeakSet||(i.WeakSet=n(119)),String.codePointAt||(String.codePointAt=n(123)),String.fromCodePoint||(String.fromCodePoint=n(125)),i.Symbol||n(127),String.prototype.padStart||n(134),String.prototype.padEnd||n(138),Object.values||(Object.values=n(140))}},function(e,t,r){"use strict";e.exports="undefined"!==typeof window&&window.Math===Math?window:"undefined"!==typeof n&&n.Math===Math?n:"undefined"!==typeof self&&self.Math===Math?self:{}},function(e,t,r){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e.exports=function(){return"object"===("undefined"===typeof a?"undefined":n(a))&&a+""==="[object process]"&&!a.versions.nw&&!a.versions.electron}},function(e,t,r){"use strict";r(6),e.exports=r(9).String.startsWith},function(e,t,r){"use strict";var n=r(7),a=r(28),i=r(30),o="".startsWith;n(n.P+n.F*r(35)("startsWith"),"String",{startsWith:function(e){var t=i(this,e,"startsWith"),r=a(Math.min(arguments.length>1?arguments[1]:void 0,t.length)),n=String(e);return o?o.call(t,n,r):t.slice(r,r+n.length)===n}})},function(e,t,r){"use strict";var n=r(8),a=r(9),i=r(10),o=r(20),s=r(26),c=function e(t,r,c){var l,u,h,f,d=t&e.F,p=t&e.G,m=t&e.P,g=t&e.B,v=p?n:t&e.S?n[r]||(n[r]={}):(n[r]||{}).prototype,y=p?a:a[r]||(a[r]={}),b=y.prototype||(y.prototype={});for(l in p&&(c=r),c)h=((u=!d&&v&&void 0!==v[l])?v:c)[l],f=g&&u?s(h,n):m&&"function"==typeof h?s(Function.call,h):h,v&&o(v,l,h,t&e.U),y[l]!=h&&i(y,l,f),m&&b[l]!=h&&(b[l]=h)};n.core=a,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,r){"use strict";var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,r){"use strict";var n=e.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(e,t,r){"use strict";var n=r(11),a=r(19);e.exports=r(15)?function(e,t,r){return n.f(e,t,a(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t,r){"use strict";var n=r(12),a=r(14),i=r(18),o=Object.defineProperty;t.f=r(15)?Object.defineProperty:function(e,t,r){if(n(e),t=i(t,!0),n(r),a)try{return o(e,t,r)}catch(s){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},function(e,t,r){"use strict";var n=r(13);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t,r){"use strict";function n(e){return(n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e.exports=function(e){return"object"===n(e)?null!==e:"function"===typeof e}},function(e,t,r){"use strict";e.exports=!r(15)&&!r(16)((function(){return 7!=Object.defineProperty(r(17)("div"),"a",{get:function(){return 7}}).a}))},function(e,t,r){"use strict";e.exports=!r(16)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,r){"use strict";e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,r){"use strict";var n=r(13),a=r(8).document,i=n(a)&&n(a.createElement);e.exports=function(e){return i?a.createElement(e):{}}},function(e,t,r){"use strict";var n=r(13);e.exports=function(e,t){if(!n(e))return e;var r,a;if(t&&"function"==typeof(r=e.toString)&&!n(a=r.call(e)))return a;if("function"==typeof(r=e.valueOf)&&!n(a=r.call(e)))return a;if(!t&&"function"==typeof(r=e.toString)&&!n(a=r.call(e)))return a;throw TypeError("Can't convert object to primitive value")}},function(e,t,r){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){"use strict";var n=r(8),a=r(10),i=r(21),o=r(22)("src"),s=r(23),c=(""+s).split("toString");r(9).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,r,s){var l="function"==typeof r;l&&(i(r,"name")||a(r,"name",t)),e[t]!==r&&(l&&(i(r,o)||a(r,o,e[t]?""+e[t]:c.join(String(t)))),e===n?e[t]=r:s?e[t]?e[t]=r:a(e,t,r):(delete e[t],a(e,t,r)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[o]||s.call(this)}))},function(e,t,r){"use strict";var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,r){"use strict";var n=0,a=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+a).toString(36))}},function(e,t,r){"use strict";e.exports=r(24)("native-function-to-string",Function.toString)},function(e,t,r){"use strict";var n=r(9),a=r(8),i=a["__core-js_shared__"]||(a["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:r(25)?"pure":"global",copyright:"\xa9 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t,r){"use strict";e.exports=!1},function(e,t,r){"use strict";var n=r(27);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,a){return e.call(t,r,n,a)}}return function(){return e.apply(t,arguments)}}},function(e,t,r){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,r){"use strict";var n=r(29),a=Math.min;e.exports=function(e){return e>0?a(n(e),9007199254740991):0}},function(e,t,r){"use strict";var n=Math.ceil,a=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?a:n)(e)}},function(e,t,r){"use strict";var n=r(31),a=r(34);e.exports=function(e,t,r){if(n(t))throw TypeError("String#"+r+" doesn't accept regex!");return String(a(e))}},function(e,t,r){"use strict";var n=r(13),a=r(32),i=r(33)("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==a(e))}},function(e,t,r){"use strict";var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,r){"use strict";var n=r(24)("wks"),a=r(22),i=r(8).Symbol,o="function"==typeof i;(e.exports=function(e){return n[e]||(n[e]=o&&i[e]||(o?i:a)("Symbol."+e))}).store=n},function(e,t,r){"use strict";e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,r){"use strict";var n=r(33)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(r){try{return t[n]=!1,!"/./"[e](t)}catch(a){}}return!0}},function(e,t,r){"use strict";r(37),e.exports=r(9).String.endsWith},function(e,t,r){"use strict";var n=r(7),a=r(28),i=r(30),o="".endsWith;n(n.P+n.F*r(35)("endsWith"),"String",{endsWith:function(e){var t=i(this,e,"endsWith"),r=arguments.length>1?arguments[1]:void 0,n=a(t.length),s=void 0===r?n:Math.min(a(r),n),c=String(e);return o?o.call(t,c,s):t.slice(s-c.length,s)===c}})},function(e,t,r){"use strict";r(39),e.exports=r(9).String.includes},function(e,t,r){"use strict";var n=r(7),a=r(30);n(n.P+n.F*r(35)("includes"),"String",{includes:function(e){return!!~a(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,r){"use strict";r(41),e.exports=r(9).Array.includes},function(e,t,r){"use strict";var n=r(7),a=r(42)(!0);n(n.P,"Array",{includes:function(e){return a(this,e,arguments.length>1?arguments[1]:void 0)}}),r(46)("includes")},function(e,t,r){"use strict";var n=r(43),a=r(28),i=r(45);e.exports=function(e){return function(t,r,o){var s,c=n(t),l=a(c.length),u=i(o,l);if(e&&r!=r){for(;l>u;)if((s=c[u++])!=s)return!0}else for(;l>u;u++)if((e||u in c)&&c[u]===r)return e||u||0;return!e&&-1}}},function(e,t,r){"use strict";var n=r(44),a=r(34);e.exports=function(e){return n(a(e))}},function(e,t,r){"use strict";var n=r(32);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t,r){"use strict";var n=r(29),a=Math.max,i=Math.min;e.exports=function(e,t){return(e=n(e))<0?a(e+t,0):i(e,t)}},function(e,t,r){"use strict";var n=r(33)("unscopables"),a=Array.prototype;void 0==a[n]&&r(10)(a,n,{}),e.exports=function(e){a[n][e]=!0}},function(e,t,r){"use strict";r(48),r(63),e.exports=r(9).Array.from},function(e,t,r){"use strict";var n=r(49)(!0);r(50)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})}))},function(e,t,r){"use strict";var n=r(29),a=r(34);e.exports=function(e){return function(t,r){var i,o,s=String(a(t)),c=n(r),l=s.length;return c<0||c>=l?e?"":void 0:(i=s.charCodeAt(c))<55296||i>56319||c+1===l||(o=s.charCodeAt(c+1))<56320||o>57343?e?s.charAt(c):i:e?s.slice(c,c+2):o-56320+(i-55296<<10)+65536}}},function(e,t,r){"use strict";var n=r(25),a=r(7),i=r(20),o=r(10),s=r(51),c=r(52),l=r(60),u=r(61),h=r(33)("iterator"),f=!([].keys&&"next"in[].keys()),d=function(){return this};e.exports=function(e,t,r,p,m,g,v){c(r,t,p);var y,b,w,k=function(e){if(!f&&e in A)return A[e];switch(e){case"keys":case"values":return function(){return new r(this,e)}}return function(){return new r(this,e)}},S=t+" Iterator",_="values"==m,x=!1,A=e.prototype,C=A[h]||A["@@iterator"]||m&&A[m],P=C||k(m),E=m?_?k("entries"):P:void 0,T="Array"==t&&A.entries||C;if(T&&(w=u(T.call(new e)))!==Object.prototype&&w.next&&(l(w,S,!0),n||"function"==typeof w[h]||o(w,h,d)),_&&C&&"values"!==C.name&&(x=!0,P=function(){return C.call(this)}),n&&!v||!f&&!x&&A[h]||o(A,h,P),s[t]=P,s[S]=d,m)if(y={values:_?P:k("values"),keys:g?P:k("keys"),entries:E},v)for(b in y)b in A||i(A,b,y[b]);else a(a.P+a.F*(f||x),t,y);return y}},function(e,t,r){"use strict";e.exports={}},function(e,t,r){"use strict";var n=r(53),a=r(19),i=r(60),o={};r(10)(o,r(33)("iterator"),(function(){return this})),e.exports=function(e,t,r){e.prototype=n(o,{next:a(1,r)}),i(e,t+" Iterator")}},function(e,t,r){"use strict";var n=r(12),a=r(54),i=r(58),o=r(57)("IE_PROTO"),s=function(){},c=function(){var e,t=r(17)("iframe"),n=i.length;for(t.style.display="none",r(59).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write(" + + + + + + +``` + +### Using `webcomponents-loader.js` + +The `webcomponents-loader.js` is a client-side loader that dynamically loads the +minimum polyfill bundle, using feature detection. + +`webcomponents-loader.js` can be loaded synchronously, or asynchronously depending on your needs. + +#### Inlining + +If you have inlined the source of `webcomponent-loader.js`, then you should specify `window.WebComponents.root` as the root from which to load the polyfills. +For example: + +```html + +``` + +#### Synchronous +When loaded synchronously, `webcomponents-loader.js` behaves similarly to `webcomponents-bundle.js`. + +The appropriate bundle will be loaded with `document.write()` to ensure that WebComponent polyfills are available for subsequent scripts and modules. + +Here's an example: + +```html + + + + + + + + +``` + +#### Asynchronous +When loaded asychronously with the `defer` attribute, polyfill bundles will be loaded asynchronously, +which means that scripts and modules that depend on webcomponents APIs *must* be loaded +using `WebComponents.waitFor` function. + +The `WebComponents.waitFor` function takes a callback function as an argument, and will evaluate that callback after the polyfill bundle has been loaded. + +The callback function should load scripts that need the polyfills (typically via `import('my-script.js')`) and +should return a promise that resolves when all scripts have loaded. + +Here's an example: + +```html + + + + + + + + +``` + +The `WebComponents.waitFor` function may be called multiple times, and the callback functions will be processed in order. + +Here's a more complicated example: + +```html + + + + + + +``` + +### WebComponentsReady event + +The `WebComponentsReady` event is fired when polyfills and user scripts have loaded and custom elements have been upgraded. This event is generally not needed; however, it may be useful in some cases like testing. If imperative code should wait until a specific custom element definition has loaded, it can use the platform `customElements.whenDefined` API. + +### `custom-elements-es5-adapter.js` +According to the spec, only ES6 classes (https://html.spec.whatwg.org/multipage/scripting.html#custom-element-conformance) may be passed to the _native_ `customElements.define` API. For best performnace, ES6 should be served to browsers that support it, and ES5 code should be serve to those that don't. Since this may not always be possible, it may make sense to compile and serve ES5 to all browsers. However, if you do so, ES5-style custom element classes will now **not** work on browsers with native Custom Elements because ES5-style classes cannot properly extend ES6 classes, like `HTMLElement`. + +As a workaround, if your project has been compiled to ES5, load `custom-elements-es5-adapter.js` before defining Custom Elements. This adapter will automatically wrap ES5. + +**The adapter must NOT be compiled.** + +## Browser Support + +The polyfills are intended to work in the latest versions of evergreen browsers. See below +for our complete browser support matrix: + +| Polyfill | Edge | IE11+ | Chrome* | Firefox* | Safari 9+* | Chrome Android* | Mobile Safari* | +| ---------- |:----:|:-----:|:-------:|:--------:|:----------:|:---------------:|:--------------:| +| Custom Elements | ✓ | ✓ | ✓ | ✓ | ✓ | ✓| ✓ | +| Shady CSS/DOM | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | + +\*Indicates the current version of the browser + +The polyfills may work in older browsers, however require additional polyfills (such as classList, or other [platform](https://github.com/webcomponents/webcomponents-platform) +polyfills) to be used. We cannot guarantee support for browsers outside of our compatibility matrix. + + +### Manually Building + +If you wish to build the bundles yourself, you'll need `node` and `npm` on your system: + + * install [node.js](http://nodejs.org/) using the instructions on their website + * use `npm` to install [gulp.js](http://gulpjs.com/): `npm install -g gulp` + * make sure you have Java installed per https://www.npmjs.com/package/google-closure-compiler#java-version + +Now you are ready to build the polyfills with: + + # install dependencies + npm install + # build + npm run build + +The builds will be placed into the root directory. + +## Contribute + +See the [contributing guide](CONTRIBUTING.md) + +## License + +Everything in this repository is BSD style license unless otherwise specified. + +Copyright (c) 2015 The Polymer Authors. All rights reserved. + +## Changes in version 2.x + +* The HTML Imports polyfill has been removed. Given that ES modules have shipped in +most browsers, the expectation is that web components code will be loaded via +ES modules. +* When using `webcomponents-loader.js` with the `defer` attribute, scripts that rely on the polyfills *must* be loaded using `WebComponents.waitFor(loadCallback)`. + +## Known Issues + + * [ShadowDOM CSS is not encapsulated out of the box](#shadycss) + * [Custom element's constructor property is unreliable](#constructor) + * [ShadyCSS: :host(.zot:not(.bar:nth-child(2))) doesn't work](#nestedparens) + +### ShadowDOM CSS is not encapsulated out of the box +The ShadowDOM polyfill is not able to encapsulate CSS in ShadowDOM out of the box. You need to use specific code from the ShadyCSS library, included with the polyfill. See [ShadyCSS instructions](https://github.com/webcomponents/shadycss). + +### Custom element's constructor property is unreliable +See [#215](https://github.com/webcomponents/webcomponentsjs/issues/215) for background. + +In Edge and IE, instances of Custom Elements have a `constructor` property of `HTMLUnknownElementConstructor` and `HTMLUnknownElement`, respectively. It's unsafe to rely on this property for checking element types. + +It's worth noting that `customElement.__proto__.__proto__.constructor` is `HTMLElementPrototype` and that the prototype chain isn't modified by the polyfills(onto `ElementPrototype`, etc.) + +### ShadyCSS: :host(.zot:not(.bar:nth-child(2))) doesn't work +ShadyCSS `:host()` rules can only have (at most) 1-level of nested parentheses in its argument selector under ShadyCSS. For example, `:host(.zot)` and `:host(.zot:not(.bar))` both work, but `:host(.zot:not(.bar:nth-child(2)))` does not. diff --git a/Graph2Data2/webcomponentsjs/webcomponentsjs/bundles/webcomponents-ce.js b/Graph2Data2/webcomponentsjs/webcomponentsjs/bundles/webcomponents-ce.js new file mode 100644 index 0000000..ddb41a7 --- /dev/null +++ b/Graph2Data2/webcomponentsjs/webcomponentsjs/bundles/webcomponents-ce.js @@ -0,0 +1,63 @@ +/** +@license @nocompile +Copyright (c) 2018 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +*/ +(function(){/* + + Copyright (c) 2016 The Polymer Project Authors. All rights reserved. + This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + Code distributed by Google as part of the polymer project is also + subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +*/ +'use strict';var n=window.Document.prototype.createElement,p=window.Document.prototype.createElementNS,aa=window.Document.prototype.importNode,ba=window.Document.prototype.prepend,ca=window.Document.prototype.append,da=window.DocumentFragment.prototype.prepend,ea=window.DocumentFragment.prototype.append,q=window.Node.prototype.cloneNode,r=window.Node.prototype.appendChild,t=window.Node.prototype.insertBefore,u=window.Node.prototype.removeChild,v=window.Node.prototype.replaceChild,x=Object.getOwnPropertyDescriptor(window.Node.prototype, +"textContent"),y=window.Element.prototype.attachShadow,z=Object.getOwnPropertyDescriptor(window.Element.prototype,"innerHTML"),A=window.Element.prototype.getAttribute,B=window.Element.prototype.setAttribute,C=window.Element.prototype.removeAttribute,D=window.Element.prototype.getAttributeNS,E=window.Element.prototype.setAttributeNS,F=window.Element.prototype.removeAttributeNS,G=window.Element.prototype.insertAdjacentElement,fa=window.Element.prototype.insertAdjacentHTML,ha=window.Element.prototype.prepend, +ia=window.Element.prototype.append,ja=window.Element.prototype.before,ka=window.Element.prototype.after,la=window.Element.prototype.replaceWith,ma=window.Element.prototype.remove,na=window.HTMLElement,H=Object.getOwnPropertyDescriptor(window.HTMLElement.prototype,"innerHTML"),oa=window.HTMLElement.prototype.insertAdjacentElement,pa=window.HTMLElement.prototype.insertAdjacentHTML;var qa=new Set;"annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" ").forEach(function(a){return qa.add(a)});function ra(a){var b=qa.has(a);a=/^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(a);return!b&&a}var sa=document.contains?document.contains.bind(document):document.documentElement.contains.bind(document.documentElement); +function I(a){var b=a.isConnected;if(void 0!==b)return b;if(sa(a))return!0;for(;a&&!(a.__CE_isImportDocument||a instanceof Document);)a=a.parentNode||(window.ShadowRoot&&a instanceof ShadowRoot?a.host:void 0);return!(!a||!(a.__CE_isImportDocument||a instanceof Document))}function J(a){var b=a.children;if(b)return Array.prototype.slice.call(b);b=[];for(a=a.firstChild;a;a=a.nextSibling)a.nodeType===Node.ELEMENT_NODE&&b.push(a);return b} +function K(a,b){for(;b&&b!==a&&!b.nextSibling;)b=b.parentNode;return b&&b!==a?b.nextSibling:null} +function L(a,b,c){for(var f=a;f;){if(f.nodeType===Node.ELEMENT_NODE){var d=f;b(d);var e=d.localName;if("link"===e&&"import"===d.getAttribute("rel")){f=d.import;void 0===c&&(c=new Set);if(f instanceof Node&&!c.has(f))for(c.add(f),f=f.firstChild;f;f=f.nextSibling)L(f,b,c);f=K(a,d);continue}else if("template"===e){f=K(a,d);continue}if(d=d.__CE_shadowRoot)for(d=d.firstChild;d;d=d.nextSibling)L(d,b,c)}f=f.firstChild?f.firstChild:K(a,f)}}function M(a,b,c){a[b]=c};function ta(a){var b=document;this.c=a;this.a=b;this.b=void 0;N(this.c,this.a);"loading"===this.a.readyState&&(this.b=new MutationObserver(this.f.bind(this)),this.b.observe(this.a,{childList:!0,subtree:!0}))}function ua(a){a.b&&a.b.disconnect()}ta.prototype.f=function(a){var b=this.a.readyState;"interactive"!==b&&"complete"!==b||ua(this);for(b=0;b} */\nconst reservedElementNameSet = new Set();\n// IE11 does not support constructing a set using an iterable.\n[\n 'annotation-xml',\n 'color-profile',\n 'font-face',\n 'font-face-src',\n 'font-face-uri',\n 'font-face-format',\n 'font-face-name',\n 'missing-glyph',\n].forEach(item => reservedElementNameSet.add(item));\n\n/**\n * @param {string} localName\n * @returns {boolean}\n */\nexport function isValidCustomElementName(localName) {\n const reserved = reservedElementNameSet.has(localName);\n const validForm = /^[a-z][.0-9_a-z]*-[\\-.0-9_a-z]*$/.test(localName);\n return !reserved && validForm;\n}\n\n// Note, IE11 doesn't have `document.contains`.\nconst nativeContains = document.contains ? document.contains.bind(document) :\n document.documentElement.contains.bind(document.documentElement);\n\n/**\n * @param {!Node} node\n * @return {boolean}\n */\nexport function isConnected(node) {\n // Use `Node#isConnected`, if defined.\n const nativeValue = node.isConnected;\n if (nativeValue !== undefined) {\n return nativeValue;\n }\n // Optimization: It's significantly faster here to try to use `contains`,\n // especially on Edge/IE/\n if (nativeContains(node)) {\n return true;\n }\n /** @type {?Node|undefined} */\n let current = node;\n while (current && !(current.__CE_isImportDocument || current instanceof Document)) {\n current = current.parentNode || (window.ShadowRoot && current instanceof ShadowRoot ? current.host : undefined);\n }\n return !!(current && (current.__CE_isImportDocument || current instanceof Document));\n}\n\n/**\n * @param {!DocumentFragment} fragment\n * @return {!Array}\n */\nexport function childrenFromFragment(fragment) {\n // Note, IE doesn't have `children` on document fragments.\n const nativeChildren = fragment.children;\n if (nativeChildren) {\n return Array.prototype.slice.call(nativeChildren);\n }\n const children = [];\n for (let n = fragment.firstChild; n; n = n.nextSibling) {\n if (n.nodeType === Node.ELEMENT_NODE) {\n children.push(n);\n }\n }\n return children;\n}\n\n/**\n * @param {!Node} root\n * @param {!Node} start\n * @return {?Node}\n */\nfunction nextSiblingOrAncestorSibling(root, start) {\n let node = start;\n while (node && node !== root && !node.nextSibling) {\n node = node.parentNode;\n }\n return (!node || node === root) ? null : node.nextSibling;\n}\n\n/**\n * @param {!Node} root\n * @param {!Node} start\n * @return {?Node}\n */\nfunction nextNode(root, start) {\n return start.firstChild ? start.firstChild : nextSiblingOrAncestorSibling(root, start);\n}\n\n/**\n * @param {!Node} root\n * @param {!function(!Element)} callback\n * @param {!Set=} visitedImports\n */\nexport function walkDeepDescendantElements(root, callback, visitedImports) {\n let node = root;\n while (node) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = /** @type {!Element} */(node);\n\n callback(element);\n\n const localName = element.localName;\n if (localName === 'link' && element.getAttribute('rel') === 'import') {\n // If this import (polyfilled or not) has it's root node available,\n // walk it.\n const importNode = /** @type {!HTMLLinkElement} */ (element).import;\n if (visitedImports === undefined) {\n visitedImports = new Set();\n }\n if (importNode instanceof Node && !visitedImports.has(importNode)) {\n // Prevent multiple walks of the same import root.\n visitedImports.add(importNode);\n\n for (let child = importNode.firstChild; child; child = child.nextSibling) {\n walkDeepDescendantElements(child, callback, visitedImports);\n }\n }\n\n // Ignore descendants of import links to prevent attempting to walk the\n // elements created by the HTML Imports polyfill that we just walked\n // above.\n node = nextSiblingOrAncestorSibling(root, element);\n continue;\n } else if (localName === 'template') {\n // Ignore descendants of templates. There shouldn't be any descendants\n // because they will be moved into `.content` during construction in\n // browsers that support template but, in case they exist and are still\n // waiting to be moved by a polyfill, they will be ignored.\n node = nextSiblingOrAncestorSibling(root, element);\n continue;\n }\n\n // Walk shadow roots.\n const shadowRoot = element.__CE_shadowRoot;\n if (shadowRoot) {\n for (let child = shadowRoot.firstChild; child; child = child.nextSibling) {\n walkDeepDescendantElements(child, callback, visitedImports);\n }\n }\n }\n\n node = nextNode(root, node);\n }\n}\n\n/**\n * Used to suppress Closure's \"Modifying the prototype is only allowed if the\n * constructor is in the same scope\" warning without using\n * `@suppress {newCheckTypes, duplicate}` because `newCheckTypes` is too broad.\n *\n * @param {!Object} destination\n * @param {string} name\n * @param {*} value\n */\nexport function setPropertyUnchecked(destination, name, value) {\n destination[name] = value;\n}\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport CustomElementInternals from './CustomElementInternals.js';\n\nexport default class DocumentConstructionObserver {\n constructor(internals, doc) {\n /**\n * @type {!CustomElementInternals}\n */\n this._internals = internals;\n\n /**\n * @type {!Document}\n */\n this._document = doc;\n\n /**\n * @type {MutationObserver|undefined}\n */\n this._observer = undefined;\n\n\n // Simulate tree construction for all currently accessible nodes in the\n // document.\n this._internals.patchAndUpgradeTree(this._document);\n\n if (this._document.readyState === 'loading') {\n this._observer = new MutationObserver(this._handleMutations.bind(this));\n\n // Nodes created by the parser are given to the observer *before* the next\n // task runs. Inline scripts are run in a new task. This means that the\n // observer will be able to handle the newly parsed nodes before the inline\n // script is run.\n this._observer.observe(this._document, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n disconnect() {\n if (this._observer) {\n this._observer.disconnect();\n }\n }\n\n /**\n * @param {!Array} mutations\n */\n _handleMutations(mutations) {\n // Once the document's `readyState` is 'interactive' or 'complete', all new\n // nodes created within that document will be the result of script and\n // should be handled by patching.\n const readyState = this._document.readyState;\n if (readyState === 'interactive' || readyState === 'complete') {\n this.disconnect();\n }\n\n for (let i = 0; i < mutations.length; i++) {\n const addedNodes = mutations[i].addedNodes;\n for (let j = 0; j < addedNodes.length; j++) {\n const node = addedNodes[j];\n this._internals.patchAndUpgradeTree(node);\n }\n }\n }\n}\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport CustomElementInternals from './CustomElementInternals.js';\nimport DocumentConstructionObserver from './DocumentConstructionObserver.js';\nimport Deferred from './Deferred.js';\nimport * as Utilities from './Utilities.js';\n\n/**\n * @extends {window.CustomElementRegistry}\n */\nexport default class CustomElementRegistry {\n\n /**\n * @param {!CustomElementInternals} internals\n */\n constructor(internals) {\n /**\n * @private\n * @type {!Map}\n */\n this._localNameToConstructorGetter = new Map();\n\n /**\n * @private\n * @type {!Map}\n */\n this._localNameToDefinition = new Map();\n\n /**\n * @private\n * @type {!Map}\n */\n this._constructorToDefinition = new Map();\n\n /**\n * @private\n * @type {boolean}\n */\n this._elementDefinitionIsRunning = false;\n\n /**\n * @private\n * @type {!CustomElementInternals}\n */\n this._internals = internals;\n\n /**\n * @private\n * @type {!Map>}\n */\n this._whenDefinedDeferred = new Map();\n\n /**\n * The default flush callback triggers the document walk synchronously.\n * @private\n * @type {!Function}\n */\n this._flushCallback = fn => fn();\n\n /**\n * @private\n * @type {boolean}\n */\n this._flushPending = false;\n\n /**\n * A map from `localName`s of definitions that were defined *after* the\n * last flush to unupgraded elements matching that definition, in document\n * order. Entries are added to this map when a definition is registered,\n * but the list of elements is only populated during a flush after which\n * all of the entries are removed. DO NOT edit outside of `#_flush`.\n * @private\n * @type {!Array}\n */\n this._unflushedLocalNames = [];\n\n /**\n * @private\n * @const {!DocumentConstructionObserver|undefined}\n */\n this._documentConstructionObserver = internals.useDocumentConstructionObserver ?\n new DocumentConstructionObserver(internals, document) : undefined;\n }\n\n /**\n * @param {string} localName\n * @param {function(): function(new: HTMLElement)} constructorGetter\n */\n polyfillDefineLazy(localName, constructorGetter) {\n if (!(constructorGetter instanceof Function)) {\n throw new TypeError('Custom element constructor getters must be functions.');\n }\n\n this.internal_assertCanDefineLocalName(localName);\n\n this._localNameToConstructorGetter.set(localName, constructorGetter);\n this._unflushedLocalNames.push(localName);\n\n // If we've already called the flush callback and it hasn't called back yet,\n // don't call it again.\n if (!this._flushPending) {\n this._flushPending = true;\n this._flushCallback(() => this._flush());\n }\n }\n\n /**\n * @override\n * @param {string} localName\n * @param {function(new: HTMLElement)} constructor\n */\n define(localName, constructor) {\n if (!(constructor instanceof Function)) {\n throw new TypeError('Custom element constructors must be functions.');\n }\n\n this.internal_assertCanDefineLocalName(localName);\n\n this.internal_reifyDefinition(localName, constructor);\n this._unflushedLocalNames.push(localName);\n\n // If we've already called the flush callback and it hasn't called back yet,\n // don't call it again.\n if (!this._flushPending) {\n this._flushPending = true;\n this._flushCallback(() => this._flush());\n }\n }\n\n /**\n * @param {string} localName\n */\n internal_assertCanDefineLocalName(localName) {\n if (!Utilities.isValidCustomElementName(localName)) {\n throw new SyntaxError(`The element name '${localName}' is not valid.`);\n }\n\n if (this.internal_localNameToDefinition(localName)) {\n throw new Error(`A custom element with name '${localName}' has already been defined.`);\n }\n\n if (this._elementDefinitionIsRunning) {\n throw new Error('A custom element is already being defined.');\n }\n }\n\n /**\n * @param {string} localName\n * @param {function(new: HTMLElement)} constructor\n * @return {!CustomElementDefinition}\n */\n internal_reifyDefinition(localName, constructor) {\n this._elementDefinitionIsRunning = true;\n\n let connectedCallback;\n let disconnectedCallback;\n let adoptedCallback;\n let attributeChangedCallback;\n let observedAttributes;\n try {\n /** @type {!Object} */\n const prototype = constructor.prototype;\n if (!(prototype instanceof Object)) {\n throw new TypeError('The custom element constructor\\'s prototype is not an object.');\n }\n\n function getCallback(name) {\n const callbackValue = prototype[name];\n if (callbackValue !== undefined && !(callbackValue instanceof Function)) {\n throw new Error(`The '${name}' callback must be a function.`);\n }\n return callbackValue;\n }\n\n connectedCallback = getCallback('connectedCallback');\n disconnectedCallback = getCallback('disconnectedCallback');\n adoptedCallback = getCallback('adoptedCallback');\n attributeChangedCallback = getCallback('attributeChangedCallback');\n // `observedAttributes` should not be read unless an\n // `attributesChangedCallback` exists\n observedAttributes = (attributeChangedCallback &&\n constructor['observedAttributes']) || [];\n } catch (e) {\n throw e;\n } finally {\n this._elementDefinitionIsRunning = false;\n }\n\n const definition = {\n localName,\n constructorFunction: constructor,\n connectedCallback,\n disconnectedCallback,\n adoptedCallback,\n attributeChangedCallback,\n observedAttributes,\n constructionStack: [],\n };\n\n this._localNameToDefinition.set(localName, definition);\n this._constructorToDefinition.set(definition.constructorFunction, definition);\n\n return definition;\n }\n\n /**\n * @override\n * @param {!Node} node\n */\n upgrade(node) {\n this._internals.patchAndUpgradeTree(node);\n }\n\n /**\n * @private\n */\n _flush() {\n // If no new definitions were defined, don't attempt to flush. This could\n // happen if a flush callback keeps the function it is given and calls it\n // multiple times.\n if (this._flushPending === false) return;\n this._flushPending = false;\n\n /**\n * Unupgraded elements with definitions that were defined *before* the last\n * flush, in document order.\n * @type {!Array}\n */\n const elementsWithStableDefinitions = [];\n\n const unflushedLocalNames = this._unflushedLocalNames;\n const elementsWithPendingDefinitions = new Map();\n for (let i = 0; i < unflushedLocalNames.length; i++) {\n elementsWithPendingDefinitions.set(unflushedLocalNames[i], []);\n }\n\n this._internals.patchAndUpgradeTree(document, {\n upgrade: element => {\n // Ignore the element if it has already upgraded or failed to upgrade.\n if (element.__CE_state !== undefined) return;\n\n const localName = element.localName;\n\n // If there is an applicable pending definition for the element, add the\n // element to the list of elements to be upgraded with that definition.\n const pendingElements = elementsWithPendingDefinitions.get(localName);\n if (pendingElements) {\n pendingElements.push(element);\n // If there is *any other* applicable definition for the element, add it\n // to the list of elements with stable definitions that need to be upgraded.\n } else if (this._localNameToDefinition.has(localName)) {\n elementsWithStableDefinitions.push(element);\n }\n },\n });\n\n // Upgrade elements with 'stable' definitions first.\n for (let i = 0; i < elementsWithStableDefinitions.length; i++) {\n this._internals.upgradeReaction(elementsWithStableDefinitions[i]);\n }\n\n // Upgrade elements with 'pending' definitions in the order they were defined.\n for (let i = 0; i < unflushedLocalNames.length; i++) {\n const localName = unflushedLocalNames[i];\n const pendingUpgradableElements = elementsWithPendingDefinitions.get(localName);\n\n // Attempt to upgrade all applicable elements.\n for (let i = 0; i < pendingUpgradableElements.length; i++) {\n this._internals.upgradeReaction(pendingUpgradableElements[i]);\n }\n\n // Resolve any promises created by `whenDefined` for the definition.\n const deferred = this._whenDefinedDeferred.get(localName);\n if (deferred) {\n deferred.resolve(undefined);\n }\n }\n\n unflushedLocalNames.length = 0;\n }\n\n /**\n * @override\n * @param {string} localName\n * @return {function(new: HTMLElement)|undefined}\n */\n get(localName) {\n const definition = this.internal_localNameToDefinition(localName);\n if (definition) {\n return definition.constructorFunction;\n }\n\n return undefined;\n }\n\n /**\n * @override\n * @param {string} localName\n * @return {!Promise}\n */\n whenDefined(localName) {\n if (!Utilities.isValidCustomElementName(localName)) {\n return Promise.reject(new SyntaxError(`'${localName}' is not a valid custom element name.`));\n }\n\n const prior = this._whenDefinedDeferred.get(localName);\n if (prior) {\n return prior.toPromise();\n }\n\n const deferred = new Deferred();\n this._whenDefinedDeferred.set(localName, deferred);\n\n // Resolve immediately if the given local name has a regular or lazy\n // definition *and* the full document walk to upgrade elements with that\n // local name has already happened.\n //\n // The behavior of the returned promise differs between the lazy and the\n // non-lazy cases if the definition fails. Normally, the definition would\n // fail synchronously and no pending promises would resolve. However, if\n // the definition is lazy but has not yet been reified, the promise is\n // resolved early here even though it might fail later when reified.\n const anyDefinitionExists = this._localNameToDefinition.has(localName) ||\n this._localNameToConstructorGetter.has(localName);\n const definitionHasFlushed = this._unflushedLocalNames.indexOf(localName) === -1;\n if (anyDefinitionExists && definitionHasFlushed) {\n deferred.resolve(undefined);\n }\n\n return deferred.toPromise();\n }\n\n /**\n * @override\n * @param {function(function())} outer\n */\n polyfillWrapFlushCallback(outer) {\n if (this._documentConstructionObserver) {\n this._documentConstructionObserver.disconnect();\n }\n const inner = this._flushCallback;\n this._flushCallback = flush => outer(() => inner(flush));\n }\n\n /**\n * @param {string} localName\n * @return {!CustomElementDefinition|undefined}\n */\n internal_localNameToDefinition(localName) {\n const existingDefinition = this._localNameToDefinition.get(localName);\n if (existingDefinition) {\n return existingDefinition;\n }\n\n const constructorGetter = this._localNameToConstructorGetter.get(localName);\n if (constructorGetter) {\n this._localNameToConstructorGetter.delete(localName);\n try {\n return this.internal_reifyDefinition(localName, constructorGetter());\n } catch (e) {\n this._internals.reportTheException(e);\n }\n }\n\n return undefined;\n }\n\n /**\n * @param {!Function} constructor\n * @return {!CustomElementDefinition|undefined}\n */\n internal_constructorToDefinition(constructor) {\n return this._constructorToDefinition.get(constructor);\n }\n}\n\n// Closure compiler exports.\nwindow['CustomElementRegistry'] = CustomElementRegistry;\nCustomElementRegistry.prototype['define'] = CustomElementRegistry.prototype.define;\nCustomElementRegistry.prototype['upgrade'] = CustomElementRegistry.prototype.upgrade;\nCustomElementRegistry.prototype['get'] = CustomElementRegistry.prototype.get;\nCustomElementRegistry.prototype['whenDefined'] = CustomElementRegistry.prototype.whenDefined;\nCustomElementRegistry.prototype['polyfillDefineLazy'] = CustomElementRegistry.prototype.polyfillDefineLazy;\nCustomElementRegistry.prototype['polyfillWrapFlushCallback'] = CustomElementRegistry.prototype.polyfillWrapFlushCallback;\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @template T\n */\nexport default class Deferred {\n constructor() {\n /**\n * @private\n * @type {T|undefined}\n */\n this._value = undefined;\n\n /**\n * @private\n * @type {Function|undefined}\n */\n this._resolve = undefined;\n\n /**\n * @private\n * @type {!Promise}\n */\n this._promise = new Promise(resolve => {\n this._resolve = resolve;\n\n if (this._value) {\n resolve(this._value);\n }\n });\n }\n\n /**\n * @param {T} value\n */\n resolve(value) {\n if (this._value) {\n throw new Error('Already resolved.');\n }\n\n this._value = value;\n\n if (this._resolve) {\n this._resolve(value);\n }\n }\n\n /**\n * @return {!Promise}\n */\n toPromise() {\n return this._promise;\n }\n}\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport Native from './Patch/Native.js';\nimport * as Utilities from './Utilities.js';\nimport CustomElementRegistry from './CustomElementRegistry.js';\nimport CEState from './CustomElementState.js';\n\nconst NS_HTML = 'http://www.w3.org/1999/xhtml';\n\nexport default class CustomElementInternals {\n /**\n * @param {{\n * shadyDomFastWalk: boolean,\n * noDocumentConstructionObserver: boolean,\n * }} options\n */\n constructor(options) {\n /** @type {!Array} */\n this._patchesNode = [];\n\n /** @type {!Array} */\n this._patchesElement = [];\n\n /** @type {boolean} */\n this._hasPatches = false;\n\n /** @const {boolean} */\n this.shadyDomFastWalk = options.shadyDomFastWalk;\n\n /** @const {boolean} */\n this.useDocumentConstructionObserver = !options.noDocumentConstructionObserver;\n }\n\n /**\n * @param {!Node} node\n * @param {!function(!Element)} callback\n * @param {!Set=} visitedImports\n */\n forEachElement(node, callback, visitedImports) {\n const sd = window['ShadyDOM'];\n if (this.shadyDomFastWalk && sd && sd['inUse']) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = /** @type {!Element} */(node);\n callback(element);\n }\n // most easily gets to document, element, documentFragment\n if (node.querySelectorAll) {\n const elements = sd['nativeMethods'].querySelectorAll.call(node, '*');\n for (let i = 0; i < elements.length; i++) {\n callback(elements[i]);\n }\n }\n } else {\n Utilities.walkDeepDescendantElements(node, callback, visitedImports);\n }\n }\n\n /**\n * @param {!function(!Node)} patch\n */\n addNodePatch(patch) {\n this._hasPatches = true;\n this._patchesNode.push(patch);\n }\n\n /**\n * @param {!function(!Element)} patch\n */\n addElementPatch(patch) {\n this._hasPatches = true;\n this._patchesElement.push(patch);\n }\n\n /**\n * @param {!Node} node\n */\n patchTree(node) {\n if (!this._hasPatches) return;\n\n this.forEachElement(node, element => this.patchElement(element));\n }\n\n /**\n * @param {!Node} node\n */\n patchNode(node) {\n if (!this._hasPatches) return;\n\n if (node.__CE_patched) return;\n node.__CE_patched = true;\n\n for (let i = 0; i < this._patchesNode.length; i++) {\n this._patchesNode[i](node);\n }\n }\n\n /**\n * @param {!Element} element\n */\n patchElement(element) {\n if (!this._hasPatches) return;\n\n if (element.__CE_patched) return;\n element.__CE_patched = true;\n\n for (let i = 0; i < this._patchesNode.length; i++) {\n this._patchesNode[i](element);\n }\n\n for (let i = 0; i < this._patchesElement.length; i++) {\n this._patchesElement[i](element);\n }\n }\n\n /**\n * @param {!Node} root\n */\n connectTree(root) {\n const elements = [];\n\n this.forEachElement(root, element => elements.push(element));\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n if (element.__CE_state === CEState.custom) {\n this.connectedCallback(element);\n } else {\n this.upgradeReaction(element);\n }\n }\n }\n\n /**\n * @param {!Node} root\n */\n disconnectTree(root) {\n const elements = [];\n\n this.forEachElement(root, element => elements.push(element));\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n if (element.__CE_state === CEState.custom) {\n this.disconnectedCallback(element);\n }\n }\n }\n\n /**\n * Upgrades all uncustomized custom elements at and below a root node for\n * which there is a definition. When custom element reaction callbacks are\n * assumed to be called synchronously (which, by the current DOM / HTML spec\n * definitions, they are *not*), callbacks for both elements customized\n * synchronously by the parser and elements being upgraded occur in the same\n * relative order.\n *\n * NOTE: This function, when used to simulate the construction of a tree that\n * is already created but not customized (i.e. by the parser), does *not*\n * prevent the element from reading the 'final' (true) state of the tree. For\n * example, the element, during truly synchronous parsing / construction would\n * see that it contains no children as they have not yet been inserted.\n * However, this function does not modify the tree, the element will\n * (incorrectly) have children. Additionally, self-modification restrictions\n * for custom element constructors imposed by the DOM spec are *not* enforced.\n *\n *\n * The following nested list shows the steps extending down from the HTML\n * spec's parsing section that cause elements to be synchronously created and\n * upgraded:\n *\n * The \"in body\" insertion mode:\n * https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n * - Switch on token:\n * .. other cases ..\n * -> Any other start tag\n * - [Insert an HTML element](below) for the token.\n *\n * Insert an HTML element:\n * https://html.spec.whatwg.org/multipage/syntax.html#insert-an-html-element\n * - Insert a foreign element for the token in the HTML namespace:\n * https://html.spec.whatwg.org/multipage/syntax.html#insert-a-foreign-element\n * - Create an element for a token:\n * https://html.spec.whatwg.org/multipage/syntax.html#create-an-element-for-the-token\n * - Will execute script flag is true?\n * - (Element queue pushed to the custom element reactions stack.)\n * - Create an element:\n * https://dom.spec.whatwg.org/#concept-create-element\n * - Sync CE flag is true?\n * - Constructor called.\n * - Self-modification restrictions enforced.\n * - Sync CE flag is false?\n * - (Upgrade reaction enqueued.)\n * - Attributes appended to element.\n * (`attributeChangedCallback` reactions enqueued.)\n * - Will execute script flag is true?\n * - (Element queue popped from the custom element reactions stack.\n * Reactions in the popped stack are invoked.)\n * - (Element queue pushed to the custom element reactions stack.)\n * - Insert the element:\n * https://dom.spec.whatwg.org/#concept-node-insert\n * - Shadow-including descendants are connected. During parsing\n * construction, there are no shadow-*excluding* descendants.\n * However, the constructor may have validly attached a shadow\n * tree to itself and added descendants to that shadow tree.\n * (`connectedCallback` reactions enqueued.)\n * - (Element queue popped from the custom element reactions stack.\n * Reactions in the popped stack are invoked.)\n *\n * @param {!Node} root\n * @param {{\n * visitedImports: (!Set|undefined),\n * upgrade: (!function(!Element)|undefined),\n * }=} options\n */\n patchAndUpgradeTree(root, options = {}) {\n const visitedImports = options.visitedImports;\n const upgrade = options.upgrade || (element => this.upgradeReaction(element));\n\n const elements = [];\n\n const gatherElements = element => {\n if (this._hasPatches) {\n this.patchElement(element);\n }\n if (element.localName === 'link' &&\n element.getAttribute('rel') === 'import') {\n // The HTML Imports polyfill sets a descendant element of the link to\n // the `import` property, specifically this is *not* a Document.\n const importNode = /** @type {?Node} */ (element.import);\n\n if (importNode instanceof Node) {\n importNode.__CE_isImportDocument = true;\n // Connected links are associated with the global registry.\n importNode.__CE_registry = document.__CE_registry;\n }\n\n if (importNode && importNode.readyState === 'complete') {\n importNode.__CE_documentLoadHandled = true;\n } else {\n // If this link's import root is not available, its contents can't be\n // walked. Wait for 'load' and walk it when it's ready.\n element.addEventListener('load', () => {\n const importNode = /** @type {!Node} */ (element.import);\n\n if (importNode.__CE_documentLoadHandled) return;\n importNode.__CE_documentLoadHandled = true;\n\n // Clone the `visitedImports` set that was populated sync during\n // the `patchAndUpgradeTree` call that caused this 'load' handler to\n // be added. Then, remove *this* link's import node so that we can\n // walk that import again, even if it was partially walked later\n // during the same `patchAndUpgradeTree` call.\n const clonedVisitedImports = new Set();\n if (visitedImports) {\n // IE11 does not support constructing a set using an iterable.\n visitedImports.forEach(item => clonedVisitedImports.add(item));\n clonedVisitedImports.delete(importNode);\n }\n this.patchAndUpgradeTree(importNode, {visitedImports: clonedVisitedImports, upgrade});\n });\n }\n } else {\n elements.push(element);\n }\n };\n\n // `forEachElement` populates (and internally checks against)\n // `visitedImports` when traversing a loaded import.\n this.forEachElement(root, gatherElements, visitedImports);\n\n for (let i = 0; i < elements.length; i++) {\n upgrade(elements[i]);\n }\n }\n\n /**\n * @param {!HTMLElement} element\n */\n upgradeReaction(element) {\n try {\n const definition = this._lookupACustomElementDefinition(\n /** @type {!Document} */ (element.ownerDocument), element.localName);\n if (definition) {\n this._upgradeAnElement(element, definition);\n }\n } catch (e) {\n this.reportTheException(e);\n }\n }\n\n /**\n * @private\n * @param {!HTMLElement} element\n * @param {!CustomElementDefinition} definition\n * @see https://html.spec.whatwg.org/multipage/custom-elements.html#concept-upgrade-an-element\n */\n _upgradeAnElement(element, definition) {\n const currentState = element.__CE_state;\n if (currentState !== undefined) return;\n\n definition.constructionStack.push(element);\n\n try {\n try {\n let result = new (definition.constructorFunction)();\n if (result !== element) {\n throw new Error('The custom element constructor did not produce the element being upgraded.');\n }\n } finally {\n definition.constructionStack.pop();\n }\n } catch (e) {\n element.__CE_state = CEState.failed;\n throw e;\n }\n\n element.__CE_state = CEState.custom;\n element.__CE_definition = definition;\n\n // Check `hasAttributes` here to avoid iterating when it's not necessary.\n if (definition.attributeChangedCallback && element.hasAttributes()) {\n const observedAttributes = definition.observedAttributes;\n for (let i = 0; i < observedAttributes.length; i++) {\n const name = observedAttributes[i];\n const value = element.getAttribute(name);\n if (value !== null) {\n this.attributeChangedCallback(element, name, null, value, null);\n }\n }\n }\n\n if (Utilities.isConnected(element)) {\n this.connectedCallback(element);\n }\n }\n\n /**\n * @param {!Element} element\n */\n connectedCallback(element) {\n const definition = element.__CE_definition;\n if (definition.connectedCallback) {\n try {\n definition.connectedCallback.call(element);\n } catch (e) {\n this.reportTheException(e);\n }\n }\n }\n\n /**\n * @param {!Element} element\n */\n disconnectedCallback(element) {\n const definition = element.__CE_definition;\n if (definition.disconnectedCallback) {\n try {\n definition.disconnectedCallback.call(element);\n } catch (e) {\n this.reportTheException(e);\n }\n }\n }\n\n /**\n * @param {!Element} element\n * @param {string} name\n * @param {?string} oldValue\n * @param {?string} newValue\n * @param {?string} namespace\n */\n attributeChangedCallback(element, name, oldValue, newValue, namespace) {\n const definition = element.__CE_definition;\n if (\n definition.attributeChangedCallback &&\n definition.observedAttributes.indexOf(name) > -1\n ) {\n try {\n definition.attributeChangedCallback.call(element, name, oldValue, newValue, namespace);\n } catch (e) {\n this.reportTheException(e);\n }\n }\n }\n\n /**\n * Runs HTML's 'look up a custom element definition', excluding the namespace\n * check.\n *\n * @private\n * @param {!Document} doc\n * @param {string} localName\n * @return {!CustomElementDefinition|undefined}\n * @see https://html.spec.whatwg.org/multipage/custom-elements.html#look-up-a-custom-element-definition\n */\n _lookupACustomElementDefinition(doc, localName) {\n // The document must be associated with a registry.\n const registry =\n /** @type {!CustomElementRegistry|undefined} */ (doc.__CE_registry);\n if (!registry) return;\n\n // Prevent elements created in documents without a browsing context from\n // upgrading.\n //\n // https://html.spec.whatwg.org/multipage/custom-elements.html#look-up-a-custom-element-definition\n // \"If document does not have a browsing context, return null.\"\n //\n // https://html.spec.whatwg.org/multipage/window-object.html#dom-document-defaultview\n // \"The defaultView IDL attribute of the Document interface, on getting,\n // must return this Document's browsing context's WindowProxy object, if\n // this Document has an associated browsing context, or null otherwise.\"\n if (!doc.defaultView && !doc.__CE_isImportDocument) return;\n\n return registry.internal_localNameToDefinition(localName);\n }\n\n /**\n * Runs the DOM's 'create an element'. If namespace is not null, then the\n * native `createElementNS` is used. Otherwise, `createElement` is used.\n *\n * Note, the template polyfill only wraps `createElement`, preventing this\n * function from using `createElementNS` in all cases.\n *\n * @param {!Document} doc\n * @param {string} localName\n * @param {string|null} namespace\n * @return {!Element}\n * @see https://dom.spec.whatwg.org/#concept-create-element\n */\n createAnElement(doc, localName, namespace) {\n const registry =\n /** @type {!CustomElementRegistry|undefined} */ (doc.__CE_registry);\n // Only create custom elements if the document is associated with a\n // registry.\n if (registry && (namespace === null || namespace === NS_HTML)) {\n const definition = registry.internal_localNameToDefinition(localName);\n if (definition) {\n try {\n const result = new (definition.constructorFunction)();\n\n // These conformance checks can't be performed when the user calls\n // the element's constructor themselves. However, this also true in\n // native implementations.\n\n if (result.__CE_state === undefined ||\n result.__CE_definition === undefined) {\n throw new Error('Failed to construct \\'' + localName + '\\': ' +\n 'The returned value was not constructed with the HTMLElement ' +\n 'constructor.');\n }\n\n if (result.namespaceURI !== NS_HTML) {\n throw new Error('Failed to construct \\'' + localName + '\\': ' +\n 'The constructed element\\'s namespace must be the HTML ' +\n 'namespace.');\n }\n\n // The following Errors should be DOMExceptions but DOMException\n // isn't constructible in all browsers.\n\n if (result.hasAttributes()) {\n throw new Error('Failed to construct \\'' + localName + '\\': ' +\n 'The constructed element must not have any attributes.');\n }\n\n // ShadyDOM doesn't wrap `#hasChildNodes`, so we check `#firstChild`\n // instead.\n if (result.firstChild !== null) {\n throw new Error('Failed to construct \\'' + localName + '\\': ' +\n 'The constructed element must not have any children.');\n }\n\n if (result.parentNode !== null) {\n throw new Error('Failed to construct \\'' + localName + '\\': ' +\n 'The constructed element must not have a parent node.');\n }\n\n if (result.ownerDocument !== doc) {\n throw new Error('Failed to construct \\'' + localName + '\\': ' +\n 'The constructed element\\'s owner document is incorrect.');\n }\n\n if (result.localName !== localName) {\n throw new Error('Failed to construct \\'' + localName + '\\': ' +\n 'The constructed element\\'s local name is incorrect.');\n }\n\n return result;\n } catch (e) {\n this.reportTheException(e);\n\n // When construction fails, a new HTMLUnknownElement is produced.\n // However, there's no direct way to create one, so we create a\n // regular HTMLElement and replace its prototype.\n const result = /** @type {!Element} */ (namespace === null ?\n Native.Document_createElement.call(doc, localName) :\n Native.Document_createElementNS.call(doc, namespace, localName));\n Object.setPrototypeOf(result, HTMLUnknownElement.prototype);\n result.__CE_state = CEState.failed;\n result.__CE_definition = undefined;\n this.patchElement(result);\n return result;\n }\n }\n }\n\n const result = /** @type {!Element} */ (namespace === null ?\n Native.Document_createElement.call(doc, localName) :\n Native.Document_createElementNS.call(doc, namespace, localName));\n this.patchElement(result);\n return result;\n }\n\n /**\n * Runs the DOM's 'report the exception' algorithm.\n *\n * @param {!Error} error\n * @see https://html.spec.whatwg.org/multipage/webappapis.html#report-the-exception\n */\n reportTheException(error) {\n const message = error.message;\n /** @type {string} */\n const filename =\n /* Safari */ error.sourceURL || /* Firefox */ error.fileName || \"\";\n /** @type {number} */\n const lineno =\n /* Safari */ error.line || /* Firefox */ error.lineNumber || 0;\n /** @type {number} */\n const colno =\n /* Safari */ error.column || /* Firefox */ error.columnNumber || 0;\n\n /** @type {!ErrorEvent|undefined} */\n let event = undefined;\n if (ErrorEvent.prototype.initErrorEvent === undefined) {\n event = new ErrorEvent('error',\n {cancelable: true, message, filename, lineno, colno, error});\n } else {\n event = /** @type {!ErrorEvent} */ (document.createEvent('ErrorEvent'));\n // initErrorEvent(type, bubbles, cancelable, message, filename, line)\n event.initErrorEvent('error', false, true, message, filename, lineno);\n // Hack for IE, where ErrorEvent#preventDefault does not set\n // #defaultPrevented to true.\n /** @this {!ErrorEvent} */\n event.preventDefault = function() {\n Object.defineProperty(this, 'defaultPrevented', {\n configurable: true,\n get: function() { return true; },\n });\n };\n }\n\n if (event.error === undefined) {\n Object.defineProperty(event, 'error', {\n configurable: true,\n enumerable: true,\n get: function() { return error; },\n });\n }\n\n window.dispatchEvent(event);\n if (!event.defaultPrevented) {\n // In 'report the exception', UAs may optionally write errors to the\n // console if their associated ErrorEvent isn't handled during dispatch\n // (indicated by calling `preventDefault`). In practice, these errors are\n // always displayed.\n console.error(error);\n }\n }\n}\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport CustomElementInternals from './CustomElementInternals.js';\nimport CustomElementRegistry from './CustomElementRegistry.js';\n\nimport PatchHTMLElement from './Patch/HTMLElement.js';\nimport PatchDocument from './Patch/Document.js';\nimport PatchDocumentFragment from './Patch/DocumentFragment.js';\nimport PatchNode from './Patch/Node.js';\nimport PatchElement from './Patch/Element.js';\n\nconst priorCustomElements = window['customElements'];\n\nfunction installPolyfill() {\n const noDocumentConstructionObserver = priorCustomElements && priorCustomElements['noDocumentConstructionObserver'];\n const shadyDomFastWalk = priorCustomElements && priorCustomElements['shadyDomFastWalk'];\n\n /** @type {!CustomElementInternals} */\n const internals = new CustomElementInternals({\n noDocumentConstructionObserver,\n shadyDomFastWalk\n });\n\n PatchHTMLElement(internals);\n PatchDocument(internals);\n PatchDocumentFragment(internals);\n PatchNode(internals);\n PatchElement(internals);\n\n const customElements = new CustomElementRegistry(internals);\n\n // The main document is associated with the global registry.\n document.__CE_registry = customElements;\n\n Object.defineProperty(window, 'customElements', {\n configurable: true,\n enumerable: true,\n value: customElements,\n });\n};\n\nif (!priorCustomElements ||\n priorCustomElements['forcePolyfill'] ||\n (typeof priorCustomElements['define'] != 'function') ||\n (typeof priorCustomElements['get'] != 'function')) {\n installPolyfill();\n}\n\n// This is NOT public API and is only meant to work around a GC bug in older\n// versions of Safari that randomly removes the polyfill during tests.\nwindow['__CE_installPolyfill'] = installPolyfill;\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * @enum {number}\n */\nconst CustomElementState = {\n custom: 1,\n failed: 2,\n};\n\nexport default CustomElementState;\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * This class exists only to work around Closure's lack of a way to describe\n * singletons. It represents the 'already constructed marker' used in custom\n * element construction stacks.\n *\n * https://html.spec.whatwg.org/#concept-already-constructed-marker\n * @extends AlreadyConstructedMarkerType\n */\nclass AlreadyConstructedMarker {}\n\nexport default new AlreadyConstructedMarker();\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport Native from './Native.js';\nimport CustomElementInternals from '../CustomElementInternals.js';\nimport CustomElementRegistry from '../CustomElementRegistry.js';\nimport CEState from '../CustomElementState.js';\nimport AlreadyConstructedMarker from '../AlreadyConstructedMarker.js';\n\n/**\n * @param {!CustomElementInternals} internals\n */\nexport default function(internals) {\n window['HTMLElement'] = (function() {\n /**\n * @type {function(new: HTMLElement): !HTMLElement}\n */\n const PatchedHTMLElement = function HTMLElement() {\n // This should really be `new.target` but `new.target` can't be emulated\n // in ES5. Assuming the user keeps the default value of the constructor's\n // prototype's `constructor` property, this is equivalent.\n const constructor = /** @type {!Function} */ (this.constructor);\n\n // Always look up the definition from the global registry.\n const registry = /** @type {!CustomElementRegistry|undefined} */\n (document.__CE_registry);\n const definition = registry.internal_constructorToDefinition(constructor);\n if (!definition) {\n throw new Error('Failed to construct a custom element: ' +\n 'The constructor was not registered with `customElements`.');\n }\n\n const constructionStack = definition.constructionStack;\n\n if (constructionStack.length === 0) {\n const element = /** @type {!HTMLElement} */ (Native.Document_createElement.call(document, definition.localName));\n Object.setPrototypeOf(element, constructor.prototype);\n element.__CE_state = CEState.custom;\n element.__CE_definition = definition;\n internals.patchElement(element);\n return element;\n }\n\n const lastIndex = constructionStack.length - 1;\n const element = constructionStack[lastIndex];\n if (element === AlreadyConstructedMarker) {\n const localName = definition.localName;\n throw new Error('Failed to construct \\'' + localName + '\\': ' +\n 'This element was already constructed.');\n }\n const toConstructElement = /** @type {!HTMLElement} */ (element);\n constructionStack[lastIndex] = AlreadyConstructedMarker;\n\n Object.setPrototypeOf(toConstructElement, constructor.prototype);\n internals.patchElement(toConstructElement);\n\n return toConstructElement;\n };\n\n PatchedHTMLElement.prototype = Native.HTMLElement.prototype;\n // Safari 9 has `writable: false` on the propertyDescriptor\n // Make it writable so that TypeScript can patch up the\n // constructor in the ES5 compiled code.\n Object.defineProperty(PatchedHTMLElement.prototype, 'constructor', {\n writable: true,\n configurable: true,\n enumerable: false,\n value: PatchedHTMLElement\n });\n\n return PatchedHTMLElement;\n })();\n};\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport CustomElementInternals from '../../CustomElementInternals.js';\nimport * as Utilities from '../../Utilities.js';\n\n/**\n * @typedef {{\n * prepend: !function(...(!Node|string)),\n * append: !function(...(!Node|string)),\n * }}\n */\nlet ParentNodeNativeMethods;\n\n/**\n * @param {!CustomElementInternals} internals\n * @param {!Object} destination\n * @param {!ParentNodeNativeMethods} builtIn\n */\nexport default function(internals, destination, builtIn) {\n /**\n * @param {!function(...(!Node|string))} builtInMethod\n * @return {!function(...(!Node|string))}\n */\n function appendPrependPatch(builtInMethod) {\n return /** @this {!Node} */ function(...nodes) {\n /**\n * A copy of `nodes`, with any DocumentFragment replaced by its children.\n * @type {!Array}\n */\n const flattenedNodes = [];\n\n /**\n * Elements in `nodes` that were connected before this call.\n * @type {!Array}\n */\n const connectedElements = [];\n\n for (var i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n if (node instanceof Element && Utilities.isConnected(node)) {\n connectedElements.push(node);\n }\n\n if (node instanceof DocumentFragment) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n flattenedNodes.push(child);\n }\n } else {\n flattenedNodes.push(node);\n }\n }\n\n builtInMethod.apply(this, nodes);\n\n for (let i = 0; i < connectedElements.length; i++) {\n internals.disconnectTree(connectedElements[i]);\n }\n\n if (Utilities.isConnected(this)) {\n for (let i = 0; i < flattenedNodes.length; i++) {\n const node = flattenedNodes[i];\n if (node instanceof Element) {\n internals.connectTree(node);\n }\n }\n }\n };\n }\n\n if (builtIn.prepend !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'prepend', appendPrependPatch(builtIn.prepend));\n }\n\n if (builtIn.append !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'append', appendPrependPatch(builtIn.append));\n }\n};\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport Native from './Native.js';\nimport CustomElementInternals from '../CustomElementInternals.js';\nimport CEState from '../CustomElementState.js';\nimport * as Utilities from '../Utilities.js';\n\nimport PatchParentNode from './Interface/ParentNode.js';\n\n/**\n * @param {!CustomElementInternals} internals\n */\nexport default function(internals) {\n Utilities.setPropertyUnchecked(Document.prototype, 'createElement',\n /**\n * @this {Document}\n * @param {string} localName\n * @return {!Element}\n */\n function(localName) {\n return internals.createAnElement(this, localName, null);\n });\n\n Utilities.setPropertyUnchecked(Document.prototype, 'importNode',\n /**\n * @this {Document}\n * @param {!Node} node\n * @param {boolean=} deep\n * @return {!Node}\n */\n function(node, deep) {\n const clone = /** @type {!Node} */ (Native.Document_importNode.call(this, node, !!deep));\n // Only create custom elements if this document is associated with the registry.\n if (!this.__CE_registry) {\n internals.patchTree(clone);\n } else {\n internals.patchAndUpgradeTree(clone);\n }\n return clone;\n });\n\n Utilities.setPropertyUnchecked(Document.prototype, 'createElementNS',\n /**\n * @this {Document}\n * @param {?string} namespace\n * @param {string} localName\n * @return {!Element}\n */\n function(namespace, localName) {\n return internals.createAnElement(this, localName, namespace);\n });\n\n PatchParentNode(internals, Document.prototype, {\n prepend: Native.Document_prepend,\n append: Native.Document_append,\n });\n};\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport Native from './Native.js';\nimport CustomElementInternals from '../CustomElementInternals.js';\nimport * as Utilities from '../Utilities.js';\n\n/**\n * @param {!CustomElementInternals} internals\n */\nexport default function(internals) {\n // `Node#nodeValue` is implemented on `Attr`.\n // `Node#textContent` is implemented on `Attr`, `Element`.\n\n Utilities.setPropertyUnchecked(Node.prototype, 'insertBefore',\n /**\n * @this {Node}\n * @param {!Node} node\n * @param {?Node} refNode\n * @return {!Node}\n */\n function(node, refNode) {\n if (node instanceof DocumentFragment) {\n const insertedNodes = Utilities.childrenFromFragment(node);\n const nativeResult = Native.Node_insertBefore.call(this, node, refNode);\n\n // DocumentFragments can't be connected, so `disconnectTree` will never\n // need to be called on a DocumentFragment's children after inserting it.\n\n if (Utilities.isConnected(this)) {\n for (let i = 0; i < insertedNodes.length; i++) {\n internals.connectTree(insertedNodes[i]);\n }\n }\n\n return nativeResult;\n }\n\n const nodeWasConnectedElement = node instanceof Element && Utilities.isConnected(node);\n const nativeResult = Native.Node_insertBefore.call(this, node, refNode);\n\n if (nodeWasConnectedElement) {\n internals.disconnectTree(node);\n }\n\n if (Utilities.isConnected(this)) {\n internals.connectTree(node);\n }\n\n return nativeResult;\n });\n\n Utilities.setPropertyUnchecked(Node.prototype, 'appendChild',\n /**\n * @this {Node}\n * @param {!Node} node\n * @return {!Node}\n */\n function(node) {\n if (node instanceof DocumentFragment) {\n const insertedNodes = Utilities.childrenFromFragment(node);\n const nativeResult = Native.Node_appendChild.call(this, node);\n\n // DocumentFragments can't be connected, so `disconnectTree` will never\n // need to be called on a DocumentFragment's children after inserting it.\n\n if (Utilities.isConnected(this)) {\n for (let i = 0; i < insertedNodes.length; i++) {\n internals.connectTree(insertedNodes[i]);\n }\n }\n\n return nativeResult;\n }\n\n const nodeWasConnectedElement = node instanceof Element && Utilities.isConnected(node);\n const nativeResult = Native.Node_appendChild.call(this, node);\n\n if (nodeWasConnectedElement) {\n internals.disconnectTree(node);\n }\n\n if (Utilities.isConnected(this)) {\n internals.connectTree(node);\n }\n\n return nativeResult;\n });\n\n Utilities.setPropertyUnchecked(Node.prototype, 'cloneNode',\n /**\n * @this {Node}\n * @param {boolean=} deep\n * @return {!Node}\n */\n function(deep) {\n const clone = Native.Node_cloneNode.call(this, !!deep);\n // Only create custom elements if this element's owner document is\n // associated with the registry.\n if (!this.ownerDocument.__CE_registry) {\n internals.patchTree(clone);\n } else {\n internals.patchAndUpgradeTree(clone);\n }\n return clone;\n });\n\n Utilities.setPropertyUnchecked(Node.prototype, 'removeChild',\n /**\n * @this {Node}\n * @param {!Node} node\n * @return {!Node}\n */\n function(node) {\n const nodeWasConnectedElement = node instanceof Element && Utilities.isConnected(node);\n const nativeResult = Native.Node_removeChild.call(this, node);\n\n if (nodeWasConnectedElement) {\n internals.disconnectTree(node);\n }\n\n return nativeResult;\n });\n\n Utilities.setPropertyUnchecked(Node.prototype, 'replaceChild',\n /**\n * @this {Node}\n * @param {!Node} nodeToInsert\n * @param {!Node} nodeToRemove\n * @return {!Node}\n */\n function(nodeToInsert, nodeToRemove) {\n if (nodeToInsert instanceof DocumentFragment) {\n const insertedNodes = Utilities.childrenFromFragment(nodeToInsert);\n const nativeResult = Native.Node_replaceChild.call(this, nodeToInsert, nodeToRemove);\n\n // DocumentFragments can't be connected, so `disconnectTree` will never\n // need to be called on a DocumentFragment's children after inserting it.\n\n if (Utilities.isConnected(this)) {\n internals.disconnectTree(nodeToRemove);\n for (let i = 0; i < insertedNodes.length; i++) {\n internals.connectTree(insertedNodes[i]);\n }\n }\n\n return nativeResult;\n }\n\n const nodeToInsertWasConnectedElement = nodeToInsert instanceof Element &&\n Utilities.isConnected(nodeToInsert);\n const nativeResult = Native.Node_replaceChild.call(this, nodeToInsert, nodeToRemove);\n const thisIsConnected = Utilities.isConnected(this);\n\n if (thisIsConnected) {\n internals.disconnectTree(nodeToRemove);\n }\n\n if (nodeToInsertWasConnectedElement) {\n internals.disconnectTree(nodeToInsert);\n }\n\n if (thisIsConnected) {\n internals.connectTree(nodeToInsert);\n }\n\n return nativeResult;\n });\n\n\n function patch_textContent(destination, baseDescriptor) {\n Object.defineProperty(destination, 'textContent', {\n enumerable: baseDescriptor.enumerable,\n configurable: true,\n get: baseDescriptor.get,\n set: /** @this {Node} */ function(assignedValue) {\n // If this is a text node then there are no nodes to disconnect.\n if (this.nodeType === Node.TEXT_NODE) {\n baseDescriptor.set.call(this, assignedValue);\n return;\n }\n\n let removedNodes = undefined;\n // Checking for `firstChild` is faster than reading `childNodes.length`\n // to compare with 0.\n if (this.firstChild) {\n // Using `childNodes` is faster than `children`, even though we only\n // care about elements.\n const childNodes = this.childNodes;\n const childNodesLength = childNodes.length;\n if (childNodesLength > 0 && Utilities.isConnected(this)) {\n // Copying an array by iterating is faster than using slice.\n removedNodes = new Array(childNodesLength);\n for (let i = 0; i < childNodesLength; i++) {\n removedNodes[i] = childNodes[i];\n }\n }\n }\n\n baseDescriptor.set.call(this, assignedValue);\n\n if (removedNodes) {\n for (let i = 0; i < removedNodes.length; i++) {\n internals.disconnectTree(removedNodes[i]);\n }\n }\n },\n });\n }\n\n if (Native.Node_textContent && Native.Node_textContent.get) {\n patch_textContent(Node.prototype, Native.Node_textContent);\n } else {\n internals.addNodePatch(function(element) {\n patch_textContent(element, {\n enumerable: true,\n configurable: true,\n // NOTE: This implementation of the `textContent` getter assumes that\n // text nodes' `textContent` getter will not be patched.\n get: /** @this {Node} */ function() {\n /** @type {!Array} */\n const parts = [];\n\n for (let n = this.firstChild; n; n = n.nextSibling) {\n if (n.nodeType === Node.COMMENT_NODE) {\n continue;\n }\n parts.push(n.textContent);\n }\n\n return parts.join('');\n },\n set: /** @this {Node} */ function(assignedValue) {\n while (this.firstChild) {\n Native.Node_removeChild.call(this, this.firstChild);\n }\n // `textContent = null | undefined | ''` does not result in\n // a TextNode childNode\n if (assignedValue != null && assignedValue !== '') {\n Native.Node_appendChild.call(this, document.createTextNode(assignedValue));\n }\n },\n });\n });\n }\n};\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport CustomElementInternals from '../../CustomElementInternals.js';\nimport * as Utilities from '../../Utilities.js';\n\n/**\n * @typedef {{\n * before: !function(...(!Node|string)),\n * after: !function(...(!Node|string)),\n * replaceWith: !function(...(!Node|string)),\n * remove: !function(),\n * }}\n */\nlet ChildNodeNativeMethods;\n\n/**\n * @param {!CustomElementInternals} internals\n * @param {!Object} destination\n * @param {!ChildNodeNativeMethods} builtIn\n */\nexport default function(internals, destination, builtIn) {\n /**\n * @param {!function(...(!Node|string))} builtInMethod\n * @return {!function(...(!Node|string))}\n */\n function beforeAfterPatch(builtInMethod) {\n return /** @this {!Node} */ function(...nodes) {\n /**\n * A copy of `nodes`, with any DocumentFragment replaced by its children.\n * @type {!Array}\n */\n const flattenedNodes = [];\n\n /**\n * Elements in `nodes` that were connected before this call.\n * @type {!Array}\n */\n const connectedElements = [];\n\n for (var i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n if (node instanceof Element && Utilities.isConnected(node)) {\n connectedElements.push(node);\n }\n\n if (node instanceof DocumentFragment) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n flattenedNodes.push(child);\n }\n } else {\n flattenedNodes.push(node);\n }\n }\n\n builtInMethod.apply(this, nodes);\n\n for (let i = 0; i < connectedElements.length; i++) {\n internals.disconnectTree(connectedElements[i]);\n }\n\n if (Utilities.isConnected(this)) {\n for (let i = 0; i < flattenedNodes.length; i++) {\n const node = flattenedNodes[i];\n if (node instanceof Element) {\n internals.connectTree(node);\n }\n }\n }\n };\n }\n\n if (builtIn.before !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'before', beforeAfterPatch(builtIn.before));\n }\n\n if (builtIn.after !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'after', beforeAfterPatch(builtIn.after));\n }\n\n if (builtIn.replaceWith !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'replaceWith',\n /**\n * @param {...(!Node|string)} nodes\n * @this {!Node}\n */\n function(...nodes) {\n /**\n * A copy of `nodes`, with any DocumentFragment replaced by its children.\n * @type {!Array}\n */\n const flattenedNodes = [];\n\n /**\n * Elements in `nodes` that were connected before this call.\n * @type {!Array}\n */\n const connectedElements = [];\n\n for (var i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n if (node instanceof Element && Utilities.isConnected(node)) {\n connectedElements.push(node);\n }\n\n if (node instanceof DocumentFragment) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n flattenedNodes.push(child);\n }\n } else {\n flattenedNodes.push(node);\n }\n }\n\n const wasConnected = Utilities.isConnected(this);\n\n builtIn.replaceWith.apply(this, nodes);\n\n for (let i = 0; i < connectedElements.length; i++) {\n internals.disconnectTree(connectedElements[i]);\n }\n\n if (wasConnected) {\n internals.disconnectTree(this);\n for (let i = 0; i < flattenedNodes.length; i++) {\n const node = flattenedNodes[i];\n if (node instanceof Element) {\n internals.connectTree(node);\n }\n }\n }\n });\n }\n\n if (builtIn.remove !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'remove',\n /** @this {!Node} */\n function() {\n const wasConnected = Utilities.isConnected(this);\n\n builtIn.remove.call(this);\n\n if (wasConnected) {\n internals.disconnectTree(this);\n }\n });\n }\n};\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport Native from './Native.js';\nimport CustomElementInternals from '../CustomElementInternals.js';\nimport CEState from '../CustomElementState.js';\nimport * as Utilities from '../Utilities.js';\n\nimport PatchParentNode from './Interface/ParentNode.js';\nimport PatchChildNode from './Interface/ChildNode.js';\n\n/**\n * @param {!CustomElementInternals} internals\n */\nexport default function(internals) {\n if (Native.Element_attachShadow) {\n Utilities.setPropertyUnchecked(Element.prototype, 'attachShadow',\n /**\n * @this {Element}\n * @param {!{mode: string}} init\n * @return {ShadowRoot}\n */\n function(init) {\n const shadowRoot = Native.Element_attachShadow.call(this, init);\n internals.patchNode(shadowRoot);\n this.__CE_shadowRoot = shadowRoot;\n return shadowRoot;\n });\n }\n\n\n function patch_innerHTML(destination, baseDescriptor) {\n Object.defineProperty(destination, 'innerHTML', {\n enumerable: baseDescriptor.enumerable,\n configurable: true,\n get: baseDescriptor.get,\n set: /** @this {Element} */ function(htmlString) {\n const isConnected = Utilities.isConnected(this);\n\n // NOTE: In IE11, when using the native `innerHTML` setter, all nodes\n // that were previously descendants of the context element have all of\n // their children removed as part of the set - the entire subtree is\n // 'disassembled'. This work around walks the subtree *before* using the\n // native setter.\n /** @type {!Array|undefined} */\n let removedElements = undefined;\n if (isConnected) {\n removedElements = [];\n internals.forEachElement(this, element => {\n if (element !== this) {\n removedElements.push(element);\n }\n });\n }\n\n baseDescriptor.set.call(this, htmlString);\n\n if (removedElements) {\n for (let i = 0; i < removedElements.length; i++) {\n const element = removedElements[i];\n if (element.__CE_state === CEState.custom) {\n internals.disconnectedCallback(element);\n }\n }\n }\n\n // Only create custom elements if this element's owner document is\n // associated with the registry.\n if (!this.ownerDocument.__CE_registry) {\n internals.patchTree(this);\n } else {\n internals.patchAndUpgradeTree(this);\n }\n return htmlString;\n },\n });\n }\n\n if (Native.Element_innerHTML && Native.Element_innerHTML.get) {\n patch_innerHTML(Element.prototype, Native.Element_innerHTML);\n } else if (Native.HTMLElement_innerHTML && Native.HTMLElement_innerHTML.get) {\n patch_innerHTML(HTMLElement.prototype, Native.HTMLElement_innerHTML);\n } else {\n internals.addElementPatch(function(element) {\n patch_innerHTML(element, {\n enumerable: true,\n configurable: true,\n // Implements getting `innerHTML` by performing an unpatched `cloneNode`\n // of the element and returning the resulting element's `innerHTML`.\n // TODO: Is this too expensive?\n get: /** @this {Element} */ function() {\n return /** @type {!Element} */ (\n Native.Node_cloneNode.call(this, true))\n .innerHTML;\n },\n // Implements setting `innerHTML` by creating an unpatched element,\n // setting `innerHTML` of that element and replacing the target\n // element's children with those of the unpatched element.\n set: /** @this {Element} */ function(assignedValue) {\n // NOTE: re-route to `content` for `template` elements.\n // We need to do this because `template.appendChild` does not\n // route into `template.content`.\n const isTemplate = (this.localName === 'template');\n /** @type {!Node} */\n const content = isTemplate ? (/** @type {!HTMLTemplateElement} */\n (this)).content : this;\n /** @type {!Element} */\n const rawElement = Native.Document_createElementNS.call(document,\n this.namespaceURI, this.localName);\n rawElement.innerHTML = assignedValue;\n\n while (content.childNodes.length > 0) {\n Native.Node_removeChild.call(content, content.childNodes[0]);\n }\n const container = isTemplate ?\n /** @type {!HTMLTemplateElement} */ (rawElement).content :\n rawElement;\n while (container.childNodes.length > 0) {\n Native.Node_appendChild.call(content, container.childNodes[0]);\n }\n },\n });\n });\n }\n\n\n Utilities.setPropertyUnchecked(Element.prototype, 'setAttribute',\n /**\n * @this {Element}\n * @param {string} name\n * @param {string} newValue\n */\n function(name, newValue) {\n // Fast path for non-custom elements.\n if (this.__CE_state !== CEState.custom) {\n return Native.Element_setAttribute.call(this, name, newValue);\n }\n\n const oldValue = Native.Element_getAttribute.call(this, name);\n Native.Element_setAttribute.call(this, name, newValue);\n newValue = Native.Element_getAttribute.call(this, name);\n internals.attributeChangedCallback(this, name, oldValue, newValue, null);\n });\n\n Utilities.setPropertyUnchecked(Element.prototype, 'setAttributeNS',\n /**\n * @this {Element}\n * @param {?string} namespace\n * @param {string} name\n * @param {string} newValue\n */\n function(namespace, name, newValue) {\n // Fast path for non-custom elements.\n if (this.__CE_state !== CEState.custom) {\n return Native.Element_setAttributeNS.call(this, namespace, name, newValue);\n }\n\n const oldValue = Native.Element_getAttributeNS.call(this, namespace, name);\n Native.Element_setAttributeNS.call(this, namespace, name, newValue);\n newValue = Native.Element_getAttributeNS.call(this, namespace, name);\n internals.attributeChangedCallback(this, name, oldValue, newValue, namespace);\n });\n\n Utilities.setPropertyUnchecked(Element.prototype, 'removeAttribute',\n /**\n * @this {Element}\n * @param {string} name\n */\n function(name) {\n // Fast path for non-custom elements.\n if (this.__CE_state !== CEState.custom) {\n return Native.Element_removeAttribute.call(this, name);\n }\n\n const oldValue = Native.Element_getAttribute.call(this, name);\n Native.Element_removeAttribute.call(this, name);\n if (oldValue !== null) {\n internals.attributeChangedCallback(this, name, oldValue, null, null);\n }\n });\n\n Utilities.setPropertyUnchecked(Element.prototype, 'removeAttributeNS',\n /**\n * @this {Element}\n * @param {?string} namespace\n * @param {string} name\n */\n function(namespace, name) {\n // Fast path for non-custom elements.\n if (this.__CE_state !== CEState.custom) {\n return Native.Element_removeAttributeNS.call(this, namespace, name);\n }\n\n const oldValue = Native.Element_getAttributeNS.call(this, namespace, name);\n Native.Element_removeAttributeNS.call(this, namespace, name);\n // In older browsers, `Element#getAttributeNS` may return the empty string\n // instead of null if the attribute does not exist. For details, see;\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNS#Notes\n const newValue = Native.Element_getAttributeNS.call(this, namespace, name);\n if (oldValue !== newValue) {\n internals.attributeChangedCallback(this, name, oldValue, newValue, namespace);\n }\n });\n\n\n function patch_insertAdjacentElement(destination, baseMethod) {\n Utilities.setPropertyUnchecked(destination, 'insertAdjacentElement',\n /**\n * @this {Element}\n * @param {string} position\n * @param {!Element} element\n * @return {?Element}\n */\n function(position, element) {\n const wasConnected = Utilities.isConnected(element);\n const insertedElement = /** @type {!Element} */\n (baseMethod.call(this, position, element));\n\n if (wasConnected) {\n internals.disconnectTree(element);\n }\n\n if (Utilities.isConnected(insertedElement)) {\n internals.connectTree(element);\n }\n return insertedElement;\n });\n }\n\n if (Native.HTMLElement_insertAdjacentElement) {\n patch_insertAdjacentElement(HTMLElement.prototype, Native.HTMLElement_insertAdjacentElement);\n } else if (Native.Element_insertAdjacentElement) {\n patch_insertAdjacentElement(Element.prototype, Native.Element_insertAdjacentElement);\n }\n\n\n function patch_insertAdjacentHTML(destination, baseMethod) {\n /**\n * Patches and upgrades all nodes which are siblings between `start`\n * (inclusive) and `end` (exclusive). If `end` is `null`, then all siblings\n * following `start` will be patched and upgraded.\n * @param {!Node} start\n * @param {?Node} end\n */\n function upgradeNodesInRange(start, end) {\n const nodes = [];\n for (let node = start; node !== end; node = node.nextSibling) {\n nodes.push(node);\n }\n for (let i = 0; i < nodes.length; i++) {\n internals.patchAndUpgradeTree(nodes[i]);\n }\n }\n\n Utilities.setPropertyUnchecked(destination, 'insertAdjacentHTML',\n /**\n * @this {Element}\n * @param {string} position\n * @param {string} text\n */\n function(position, text) {\n position = position.toLowerCase();\n\n if (position === \"beforebegin\") {\n const marker = this.previousSibling;\n baseMethod.call(this, position, text);\n upgradeNodesInRange(marker || /** @type {!Node} */ (this.parentNode.firstChild), this);\n } else if (position === \"afterbegin\") {\n const marker = this.firstChild;\n baseMethod.call(this, position, text);\n upgradeNodesInRange(/** @type {!Node} */ (this.firstChild), marker);\n } else if (position === \"beforeend\") {\n const marker = this.lastChild;\n baseMethod.call(this, position, text);\n upgradeNodesInRange(marker || /** @type {!Node} */ (this.firstChild), null);\n } else if (position === \"afterend\") {\n const marker = this.nextSibling;\n baseMethod.call(this, position, text);\n upgradeNodesInRange(/** @type {!Node} */ (this.nextSibling), marker);\n } else {\n throw new SyntaxError(`The value provided (${String(position)}) is ` +\n \"not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'.\");\n }\n });\n }\n\n if (Native.HTMLElement_insertAdjacentHTML) {\n patch_insertAdjacentHTML(HTMLElement.prototype, Native.HTMLElement_insertAdjacentHTML);\n } else if (Native.Element_insertAdjacentHTML) {\n patch_insertAdjacentHTML(Element.prototype, Native.Element_insertAdjacentHTML);\n }\n\n\n PatchParentNode(internals, Element.prototype, {\n prepend: Native.Element_prepend,\n append: Native.Element_append,\n });\n\n PatchChildNode(internals, Element.prototype, {\n before: Native.Element_before,\n after: Native.Element_after,\n replaceWith: Native.Element_replaceWith,\n remove: Native.Element_remove,\n });\n};\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport CustomElementInternals from '../CustomElementInternals.js';\nimport Native from './Native.js';\nimport PatchParentNode from './Interface/ParentNode.js';\n\n/**\n * @param {!CustomElementInternals} internals\n */\nexport default function(internals) {\n PatchParentNode(internals, DocumentFragment.prototype, {\n prepend: Native.DocumentFragment_prepend,\n append: Native.DocumentFragment_append,\n });\n};\n"]} \ No newline at end of file diff --git a/Graph2Data2/webcomponentsjs/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js b/Graph2Data2/webcomponentsjs/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js new file mode 100644 index 0000000..71af97b --- /dev/null +++ b/Graph2Data2/webcomponentsjs/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js @@ -0,0 +1,297 @@ +/** +@license @nocompile +Copyright (c) 2018 The Polymer Project Authors. All rights reserved. +This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt +The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt +The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt +Code distributed by Google as part of the polymer project is also +subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +*/ +(function(){/* + + Copyright (c) 2016 The Polymer Project Authors. All rights reserved. + This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + Code distributed by Google as part of the polymer project is also + subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt +*/ +'use strict';var w;function aa(a){var b=0;return function(){return b\x20\t\r\n\f]+)/i.exec(t)|| +["",""])[1].toLowerCase()];if(D)for(var K=0;K"+t+"";y.body.innerHTML=t;for(a.a(y);this.content.firstChild;)k.call(this.content,this.content.firstChild);t=y.body;if(D)for(K=0;K"+this.innerHTML+""},set:function(t){if(this.parentNode){y.body.innerHTML=t;for(t=this.ownerDocument.createDocumentFragment();y.body.firstChild;)l.call(t, +y.body.firstChild);m.call(this.parentNode,t,this)}else throw Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node.");},configurable:!0})};n(a.prototype);I(a.prototype);a.a=function(p){p=b(p,"template");for(var t=0,D=p.length,K;t]/g,db=function(p){switch(p){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}};v=function(p){for(var t={},D=0;D";break a;case Node.TEXT_NODE:z=z.data;z=S&&eb[S.localName]? +z:z.replace(Wb,db);break a;case Node.COMMENT_NODE:z="\x3c!--"+z.data+"--\x3e";break a;default:throw window.console.error(z),Error("not implemented");}}D+=z}return D}}if(c||N){a.b=function(p,t){var D=f.call(p,!1);this.S&&this.S(D);t&&(l.call(D.content,f.call(p.content,!0)),u(D.content,p.content));return D};var u=function(p,t){if(t.querySelectorAll&&(t=b(t,"template"),0!==t.length)){p=b(p,"template");for(var D=0,K=p.length,ba,ka;D]/g;function Sb(a){switch(a){case "&":return"&";case "<":return"<";case ">":return">";case '"':return""";case "\u00a0":return" "}}function Tb(a){for(var b={},c=0;c";break a;case Node.TEXT_NODE:h=h.data;h=k&&Vb[k.localName]?h:h.replace(Rb,Sb);break a;case Node.COMMENT_NODE:h="\x3c!--"+h.data+"--\x3e";break a;default:throw window.console.error(h), +Error("not implemented");}}c+=h}return c};var Zb=M.D,$b={querySelector:function(a){return this.__shady_native_querySelector(a)},querySelectorAll:function(a){return this.__shady_native_querySelectorAll(a)}},ac={};function bc(a){ac[a]=function(b){return b["__shady_native_"+a]}}function cc(a,b){P(a,b,"__shady_native_");for(var c in b)bc(c)}function R(a,b){b=void 0===b?[]:b;for(var c=0;ce.assignedNodes.length&&(e.ha=!0)}e.ha&&(e.ha=!1,je(this,c))}c=this.a;b=[];for(e=0;eb.indexOf(d))||b.push(d);for(c=0;c "+h}))}return{value:a,Ga:b,stop:f}}function Tg(a,b){a=a.split(/(\[.+?\])/);for(var c=[],d=0;d+~]+)((?:\[.+?\]|[^\s>+~=[])+)/g,Wg=/[[.:#*]/,Og=/^(::slotted)/,Vg=/(:host)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,Ug=/(?:::slotted)(?:\(((?:\([^)(]*\)|[^)(]*)+?)\))/,Rg=/(.*):dir\((?:(ltr|rtl))\)(.*)/,Mg=/:(?:matches|any|-(?:webkit|moz)-any)/,Bg=new yg;function Yg(a,b,c,d,e){this.J=a||null;this.b=b||null;this.ka=c||[];this.H=null;this.cssBuild=e||"";this.Y=d||"";this.a=this.I=this.M=null}function Zg(a){return a?a.__styleInfo:null}function $g(a,b){return a.__styleInfo=b}Yg.prototype.c=function(){return this.J};Yg.prototype._getStyleRules=Yg.prototype.c;function ah(a){var b=this.matches||this.matchesSelector||this.mozMatchesSelector||this.msMatchesSelector||this.oMatchesSelector||this.webkitMatchesSelector;return b&&b.call(this,a)}var bh=/:host\s*>\s*/,ch=navigator.userAgent.match("Trident");function dh(){}function eh(a){var b={},c=[],d=0;jg(a,function(f){fh(f);f.index=d++;f=f.A.cssText;for(var g;g=dg.exec(f);){var h=g[1];":"!==g[2]&&(b[h]=!0)}},function(f){c.push(f)});a.b=c;a=[];for(var e in b)a.push(e);return a} +function fh(a){if(!a.A){var b={},c={};gh(a,c)&&(b.L=c,a.rules=null);b.cssText=a.parsedCssText.replace(gg,"").replace(bg,"");a.A=b}}function gh(a,b){var c=a.A;if(c){if(c.L)return Object.assign(b,c.L),!0}else{c=a.parsedCssText;for(var d;a=bg.exec(c);){d=(a[2]||a[3]).trim();if("inherit"!==d||"unset"!==d)b[a[1].trim()]=d;d=!0}return d}} +function hh(a,b,c){b&&(b=0<=b.indexOf(";")?ih(a,b,c):rg(b,function(d,e,f,g){if(!e)return d+g;(e=hh(a,c[e],c))&&"initial"!==e?"apply-shim-inherit"===e&&(e="inherit"):e=hh(a,c[f]||f,c)||f;return d+(e||"")+g}));return b&&b.trim()||""} +function ih(a,b,c){b=b.split(";");for(var d=0,e,f;d *."+e||-1!==f.indexOf("html"),h=!g&&0===f.indexOf(e));if(g||h)c=e,h&&(b.B||(b.B=Ig(Bg,b,Bg.b,a?"."+a:"",e)),c=b.B||e),g&&"html"===e&&(c=b.B||b.u),d({oa:c,Na:h,ab:g})}} +function lh(a,b,c){var d={},e={};jg(b,function(f){kh(a,f,c,function(g){ah.call(a._element||a,g.oa)&&(g.Na?gh(f,d):gh(f,e))})},null,!0);return{Ta:e,La:d}} +function mh(a,b,c,d){var e=ug(b),f=Hg(e.is,e.Y),g=new RegExp("(?:^|[^.#[:])"+(b.extends?"\\"+f.slice(0,-1)+"\\]":f)+"($|[.:[\\s>+~])"),h=Zg(b);e=h.J;h=h.cssBuild;var k=nh(e,d);return Fg(b,e,function(l){var m="";l.A||fh(l);l.A.cssText&&(m=ih(a,l.A.cssText,c));l.cssText=m;if(!W&&!lg(l)&&l.cssText){var q=m=l.cssText;null==l.sa&&(l.sa=eg.test(m));if(l.sa)if(null==l.ca){l.ca=[];for(var H in k)q=k[H],q=q(m),m!==q&&(m=q,l.ca.push(H))}else{for(H=0;H=l._useCount&&l.parentNode&&l.parentNode.removeChild(l));W?k.a?(k.a.textContent=h,g=k.a):h&&(g=mg(h,f,a.shadowRoot,k.b)):g?g.parentNode||(ch&&-1F&&-1==[34,35,60,62,63,96].indexOf(F)?r:encodeURIComponent(r)}function d(r){var F=r.charCodeAt(0);return 32F&&-1==[34,35,60,62,96].indexOf(F)?r:encodeURIComponent(r)}function e(r,F,C){function N(la){sa.push(la)}var y=F||"scheme start",X=0,v="",ra=!1,fa=!1,sa=[];a:for(;(void 0!=r[X-1]||0==X)&&!this.i;){var n=r[X];switch(y){case "scheme start":if(n&&q.test(n))v+= +n.toLowerCase(),y="scheme";else if(F){N("Invalid scheme.");break a}else{v="";y="no scheme";continue}break;case "scheme":if(n&&H.test(n))v+=n.toLowerCase();else if(":"==n){this.h=v;v="";if(F)break a;void 0!==l[this.h]&&(this.C=!0);y="file"==this.h?"relative":this.C&&C&&C.h==this.h?"relative or authority":this.C?"authority first slash":"scheme data"}else if(F){void 0!=n&&N("Code point not allowed in scheme: "+n);break a}else{v="";X=0;y="no scheme";continue}break;case "scheme data":"?"==n?(this.o="?", +y="query"):"#"==n?(this.v="#",y="fragment"):void 0!=n&&"\t"!=n&&"\n"!=n&&"\r"!=n&&(this.ga+=c(n));break;case "no scheme":if(C&&void 0!==l[C.h]){y="relative";continue}else N("Missing scheme."),f.call(this),this.i=!0;break;case "relative or authority":if("/"==n&&"/"==r[X+1])y="authority ignore slashes";else{N("Expected /, got: "+n);y="relative";continue}break;case "relative":this.C=!0;"file"!=this.h&&(this.h=C.h);if(void 0==n){this.j=C.j;this.m=C.m;this.l=C.l.slice();this.o=C.o;this.s=C.s;this.g=C.g; +break a}else if("/"==n||"\\"==n)"\\"==n&&N("\\ is an invalid code point."),y="relative slash";else if("?"==n)this.j=C.j,this.m=C.m,this.l=C.l.slice(),this.o="?",this.s=C.s,this.g=C.g,y="query";else if("#"==n)this.j=C.j,this.m=C.m,this.l=C.l.slice(),this.o=C.o,this.v="#",this.s=C.s,this.g=C.g,y="fragment";else{y=r[X+1];var I=r[X+2];if("file"!=this.h||!q.test(n)||":"!=y&&"|"!=y||void 0!=I&&"/"!=I&&"\\"!=I&&"?"!=I&&"#"!=I)this.j=C.j,this.m=C.m,this.s=C.s,this.g=C.g,this.l=C.l.slice(),this.l.pop();y= +"relative path";continue}break;case "relative slash":if("/"==n||"\\"==n)"\\"==n&&N("\\ is an invalid code point."),y="file"==this.h?"file host":"authority ignore slashes";else{"file"!=this.h&&(this.j=C.j,this.m=C.m,this.s=C.s,this.g=C.g);y="relative path";continue}break;case "authority first slash":if("/"==n)y="authority second slash";else{N("Expected '/', got: "+n);y="authority ignore slashes";continue}break;case "authority second slash":y="authority ignore slashes";if("/"!=n){N("Expected '/', got: "+ +n);continue}break;case "authority ignore slashes":if("/"!=n&&"\\"!=n){y="authority";continue}else N("Expected authority, got: "+n);break;case "authority":if("@"==n){ra&&(N("@ already seen."),v+="%40");ra=!0;for(n=0;n {\n const prop = Object.getOwnPropertyDescriptor(obj, name);\n return prop && prop.enumerable;\n });\n};\n\n// implement iterators for IE 11\nconst iterator = window.Symbol.iterator;\n\nif (!String.prototype[iterator] || !String.prototype.codePointAt) {\n /** @this {String} */\n String.prototype[iterator] = function*() {\n for (let i = 0; i < this.length; i++) {\n yield this[i];\n }\n }\n}\n\nif (!Set.prototype[iterator]) {\n /** @this {Set} */\n Set.prototype[iterator] = function*() {\n const temp = [];\n this.forEach((value) => {\n temp.push(value);\n });\n for (let i = 0; i < temp.length; i++) {\n yield temp[i];\n }\n };\n}\n\nif (!Map.prototype[iterator]) {\n /** @this {Map} */\n Map.prototype[iterator] = function*() {\n const entries = [];\n this.forEach((value, key) => {\n entries.push([key, value]);\n });\n for(let i = 0; i < entries.length; i++) {\n yield entries[i];\n }\n };\n}\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n(function() {\n 'use strict';\n\n // defaultPrevented is broken in IE.\n // https://connect.microsoft.com/IE/feedback/details/790389/event-defaultprevented-returns-false-after-preventdefault-was-called\n var workingDefaultPrevented = (function() {\n var e = document.createEvent('Event');\n e.initEvent('foo', true, true);\n e.preventDefault();\n return e.defaultPrevented;\n })();\n\n if (!workingDefaultPrevented) {\n var origPreventDefault = Event.prototype.preventDefault;\n Event.prototype.preventDefault = function() {\n if (!this.cancelable) {\n return;\n }\n\n origPreventDefault.call(this);\n\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n },\n configurable: true\n });\n };\n }\n\n var isIE = /Trident/.test(navigator.userAgent);\n\n // Event constructor shim\n if (!window.Event || isIE && (typeof window.Event !== 'function')) {\n var origEvent = window.Event;\n /**\n * @param {!string} inType\n * @param {?(EventInit)=} params\n */\n window.Event = function(inType, params) {\n params = params || {};\n var e = document.createEvent('Event');\n e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable));\n return e;\n };\n if (origEvent) {\n for (var i in origEvent) {\n window.Event[i] = origEvent[i];\n }\n window.Event.prototype = origEvent.prototype;\n }\n }\n\n // CustomEvent constructor shim\n if (!window.CustomEvent || isIE && (typeof window.CustomEvent !== 'function')) {\n /**\n * @template T\n * @param {!string} inType\n * @param {?(CustomEventInit)=} params\n */\n window.CustomEvent = function(inType, params) {\n params = params || {};\n var e = document.createEvent('CustomEvent');\n e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail);\n return e;\n };\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n if (!window.MouseEvent || isIE && (typeof window.MouseEvent !== 'function')) {\n var origMouseEvent = window.MouseEvent;\n /**\n *\n * @param {!string} inType\n * @param {?(MouseEventInit)=} params\n */\n window.MouseEvent = function(inType, params) {\n params = params || {};\n var e = document.createEvent('MouseEvent');\n e.initMouseEvent(inType,\n Boolean(params.bubbles), Boolean(params.cancelable),\n params.view || window, params.detail,\n params.screenX, params.screenY, params.clientX, params.clientY,\n params.ctrlKey, params.altKey, params.shiftKey, params.metaKey,\n params.button, params.relatedTarget);\n return e;\n };\n if (origMouseEvent) {\n for (var j in origMouseEvent) {\n window.MouseEvent[j] = origMouseEvent[j];\n }\n }\n window.MouseEvent.prototype = origMouseEvent.prototype;\n }\n})();","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n// minimal template polyfill\n(function() {\n 'use strict';\n\n var needsTemplate = (typeof HTMLTemplateElement === 'undefined');\n var brokenDocFragment = !(document.createDocumentFragment().cloneNode() instanceof DocumentFragment);\n var needsDocFrag = false;\n\n // NOTE: Replace DocumentFragment to work around IE11 bug that\n // causes children of a document fragment modified while\n // there is a mutation observer to not have a parentNode, or\n // have a broken parentNode (!?!)\n if (/Trident/.test(navigator.userAgent)) {\n (function() {\n\n needsDocFrag = true;\n\n var origCloneNode = Node.prototype.cloneNode;\n Node.prototype.cloneNode = function cloneNode(deep) {\n var newDom = origCloneNode.call(this, deep);\n if (this instanceof DocumentFragment) {\n newDom.__proto__ = DocumentFragment.prototype;\n }\n return newDom;\n };\n\n // IE's DocumentFragment querySelector code doesn't work when\n // called on an element instance\n DocumentFragment.prototype.querySelectorAll = HTMLElement.prototype.querySelectorAll;\n DocumentFragment.prototype.querySelector = HTMLElement.prototype.querySelector;\n\n Object.defineProperties(DocumentFragment.prototype, {\n 'nodeType': {\n get: function () {\n return Node.DOCUMENT_FRAGMENT_NODE;\n },\n configurable: true\n },\n\n 'localName': {\n get: function () {\n return undefined;\n },\n configurable: true\n },\n\n 'nodeName': {\n get: function () {\n return '#document-fragment';\n },\n configurable: true\n }\n });\n\n var origInsertBefore = Node.prototype.insertBefore;\n function insertBefore(newNode, refNode) {\n if (newNode instanceof DocumentFragment) {\n var child;\n while ((child = newNode.firstChild)) {\n origInsertBefore.call(this, child, refNode);\n }\n } else {\n origInsertBefore.call(this, newNode, refNode);\n }\n return newNode;\n }\n Node.prototype.insertBefore = insertBefore;\n\n var origAppendChild = Node.prototype.appendChild;\n Node.prototype.appendChild = function appendChild(child) {\n if (child instanceof DocumentFragment) {\n insertBefore.call(this, child, null);\n } else {\n origAppendChild.call(this, child);\n }\n return child;\n };\n\n var origRemoveChild = Node.prototype.removeChild;\n var origReplaceChild = Node.prototype.replaceChild;\n Node.prototype.replaceChild = function replaceChild(newChild, oldChild) {\n if (newChild instanceof DocumentFragment) {\n insertBefore.call(this, newChild, oldChild);\n origRemoveChild.call(this, oldChild);\n } else {\n origReplaceChild.call(this, newChild, oldChild);\n }\n return oldChild;\n };\n\n Document.prototype.createDocumentFragment = function createDocumentFragment() {\n var frag = this.createElement('df');\n frag.__proto__ = DocumentFragment.prototype;\n return frag;\n };\n\n var origImportNode = Document.prototype.importNode;\n Document.prototype.importNode = function importNode(impNode, deep) {\n deep = deep || false;\n var newNode = origImportNode.call(this, impNode, deep);\n if (impNode instanceof DocumentFragment) {\n newNode.__proto__ = DocumentFragment.prototype;\n }\n return newNode;\n };\n })();\n }\n\n // NOTE: we rely on this cloneNode not causing element upgrade.\n // This means this polyfill must load before the CE polyfill and\n // this would need to be re-worked if a browser supports native CE\n // but not