Last active
June 1, 2022 12:20
-
-
Save gistlyn/87417f60c5f2d885dfa7f2183c6c6d0a to your computer and use it in GitHub Desktop.
Demo Desktop App showcasing Win32 APIs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <meta http-equiv="X-UA-Compatible" content="ie=edge"> | |
| <link href="/favicon.png" rel="icon"> | |
| <link rel="stylesheet" href="/lib/css/bootstrap/bootstrap.css"> | |
| <title>{{ title ?? 'Sharp Data' }}</title> | |
| </head> | |
| <body> | |
| {{ 'buttons,buttons-svg' |> cssIncludes }} | |
| {{ 'app' |> cssIncludes |> svgFill('#444') }} | |
| {{#if fileExists('/bundle.css') }} | |
| <link rel="stylesheet" href="/bundle.css"> | |
| {{else}} | |
| {{ 'content:/src/css/' |> bundleCss({ minify:false, cache:false, out:'/app.bundle.css' }) }} | |
| {{/if}} | |
| <i hidden>{{ '/js/hot-fileloader.js' |> ifDebugIncludeScript }}</i> | |
| <script> | |
| CONFIG = { | |
| debug: {{ debugMode |> json }}, | |
| desktop: {{ desktopInfo |> json }}, | |
| hasExcel: {{ (isWin ? typeofProgId('Excel.Application') != null : false) |> json }}, | |
| } | |
| </script> | |
| <noscript>You need to enable JavaScript to run this app.</noscript> | |
| {{page}} | |
| {{ [ | |
| `/lib/js/vue/vue.min.js`, | |
| `/lib/js/vue-router/vue-router.min.js`, | |
| `/lib/js/vue-class-component/vue-class-component.min.js`, | |
| `/lib/js/vue-property-decorator/vue-property-decorator.min.js`, | |
| `/lib/js/@servicestack/desktop/servicestack-desktop.min.js`, | |
| `/lib/js/@servicestack/client/servicestack-client.min.js`, | |
| `/lib/js/@servicestack/vue/servicestack-vue.min.js`, | |
| ] |> map => `<script src="${it}"></script>` |> joinln |> raw }} | |
| <script> | |
| var ALIASES = { | |
| 'vue': { default: Vue }, | |
| 'vue-router': { default: VueRouter }, | |
| 'vue-class-component': VueClassComponent, | |
| 'vue-property-decorator': VuePropertyDecorator, | |
| '@servicestack/vue': ServiceStackVue | |
| }; | |
| var global = window; | |
| window.exports = {}; | |
| window.require = function(name) { | |
| return ALIASES[name] || exports[name] || window[name] || exports; | |
| }; | |
| Object.assign(window, window["@servicestack/desktop"], window["@servicestack/client"]); | |
| </script> | |
| {{#if fileExists('/bundle.js') }} | |
| <script src="/bundle.js"></script> | |
| {{else}} | |
| {{ [ | |
| 'content:/src/components/', | |
| 'content:/src/shared/', | |
| 'content:/src/', | |
| ] |> bundleJs({ minify:false, cache:false, iife:true, out:`/app.bundle.js` }) }} | |
| {{/if}} | |
| {{ scripts |> raw }} | |
| {{initError |> htmlError}} | |
| {{htmlError}} | |
| </body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name win32 demo | |
| appName win32 | |
| description Demo Desktop App showcasing Win32 APIs | |
| debug true | |
| CefConfig { Kiosk:true } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background-color:#f1f1f1}input[type=number]{width:100px}.jsonviewer .ib{display:inline-block}.jsonviewer table{border-collapse:collapse;border:solid 1px #ccc;clear:left}.jsonviewer th{text-align:left;padding:4px 8px;text-shadow:#fff 1px 1px -1px;background:#f1f1f1;white-space:nowrap;font-weight:bold}.jsonviewer td{padding:8px 8px 0 8px;vertical-align:top;line-height:18px}.jsonviewer dl{margin:0;clear:left}.jsonviewer dt{font-weight:bold;width:160px;clear:left;float:left;display:block;white-space:nowrap;line-height:26px}.jsonviewer dd{display:block;float:left;line-height:26px;max-width:600px;margin:0}.jsonviewer dl dl dt{font-weight:bold}.jsonviewer hr{display:none}.jsonviewer td dl HR{display:block;padding:0;clear:left;border:none}.jsonviewer td dl{padding:4px;margin:0;height:100%;max-width:700px}.jsonviewer dl td dl dt{padding:2px;margin:0 10px 0 0;font-weight:bold;width:120px;overflow:hidden;clear:left;float:left;display:block}.jsonviewer dl td dl dd{margin:0;padding:2px;display:block;float:left} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| (function(){ | |
| "use strict";var __extends=this&&this.__extends||function(){var n=function(t,i){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},n(t,i)};return function(t,i){function r(){this.constructor=t}n(t,i);t.prototype=i===null?Object.create(i):(r.prototype=i.prototype,new r)}}(),__decorate=this&&this.__decorate||function(n,t,i,r){var f=arguments.length,u=f<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,i):r,e,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")u=Reflect.decorate(n,t,i,r);else for(o=n.length-1;o>=0;o--)(e=n[o])&&(u=(f<3?e(u):f>3?e(t,i,u):e(t,i))||u);return f>3&&u&&Object.defineProperty(t,i,u),u},__awaiter=this&&this.__awaiter||function(n,t,i,r){function u(n){return n instanceof i?n:new i(function(t){t(n)})}return new(i||(i=Promise))(function(i,f){function o(n){try{e(r.next(n))}catch(t){f(t)}}function s(n){try{e(r["throw"](n))}catch(t){f(t)}}function e(n){n.done?i(n.value):u(n.value).then(o,s)}e((r=r.apply(n,t||[])).next())})},__generator=this&&this.__generator||function(n,t){function o(n){return function(t){return s([n,t])}}function s(e){if(f)throw new TypeError("Generator is already executing.");while(r)try{if(f=1,u&&(i=e[0]&2?u["return"]:e[0]?u["throw"]||((i=u["return"])&&i.call(u),0):u.next)&&!(i=i.call(u,e[1])).done)return i;(u=0,i)&&(e=[e[0]&2,i.value]);switch(e[0]){case 0:case 1:i=e;break;case 4:return r.label++,{value:e[1],done:!1};case 5:r.label++;u=e[1];e=[0];continue;case 7:e=r.ops.pop();r.trys.pop();continue;default:if(!(i=r.trys,i=i.length>0&&i[i.length-1])&&(e[0]===6||e[0]===2)){r=0;continue}if(e[0]===3&&(!i||e[1]>i[0]&&e[1]<i[3])){r.label=e[1];break}if(e[0]===6&&r.label<i[1]){r.label=i[1];i=e;break}if(i&&r.label<i[2]){r.label=i[2];r.ops.push(e);break}i[2]&&r.ops.pop();r.trys.pop();continue}e=t.call(n,r)}catch(o){e=[6,o];u=0}finally{f=i=0}if(e[0]&5)throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}var r={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},f,u,i,e;return e={next:o(0),"throw":o(1),"return":o(2)},typeof Symbol=="function"&&(e[Symbol.iterator]=function(){return this}),e};Object.defineProperty(exports,"__esModule",{value:!0});exports.Win32=void 0;var vue_property_decorator_1=require("vue-property-decorator"),desktop_1=require("@servicestack/desktop"),shared_1=require("../../shared"),Win32=function(n){function t(){var t=n!==null&&n.apply(this,arguments)||this;return t.counter=1,t.toggleScrollbar=!1,t.x=100,t.y=100,t.width=800,t.height=600,t.responseStatus=null,t.loading=!1,t.cmds={chooseColor:function(){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(n){switch(n.label){case 0:return[4,desktop_1.evaluateCode("chooseColor(`#336699`)")];case 1:return[2,n.sent()]}})})},start:function(){return desktop_1.start("%USERPROFILE%\\\\.sharp-apps")},openUrl:function(){return desktop_1.openUrl("https://google.com")},messageBox:function(){return desktop_1.messageBox("The Title","Caption",desktop_1.MessageBoxType.YesNo|desktop_1.MessageBoxType.IconInformation|desktop_1.MessageBoxType.SystemModal)},clipboard:function(){return desktop_1.clipboard()},setClipboard:function(){return __awaiter(t,void 0,void 0,function(){return __generator(this,function(n){switch(n.label){case 0:return[4,desktop_1.setClipboard("Counter: "+this.counter++)];case 1:return[2,n.sent()]}})})},expandEnvVars:function(){return desktop_1.expandEnvVars("%USERPROFILE% %windir% %OS%")},openFile:function(){return __awaiter(t,void 0,void 0,function(){var t,n;return __generator(this,function(i){switch(i.label){case 0:return t=desktop_1.openFile,n={title:"Pick Images",filter:"Image files (*.png;*.jpeg)|*.png;*.jpeg|All files (*.*)|*.*"},[4,desktop_1.expandEnvVars("%USERPROFILE%\\\\Pictures")];case 1:return[4,t.apply(void 0,[(n.initialDir=i.sent(),n.defaultExt="*.png",n)])];case 2:return[2,i.sent()]}})})},openFileFolder:function(){return desktop_1.openFile({isFolderPicker:!0})},openFolder:function(){return __awaiter(t,void 0,void 0,function(){var t,n;return __generator(this,function(i){switch(i.label){case 0:return t=desktop_1.openFolder,n={},[4,desktop_1.expandEnvVars("%USERPROFILE%")];case 1:return[2,t.apply(void 0,[(n.initialDir=i.sent(),n)])]}})})},deviceScreenResolution:desktop_1.deviceScreenResolution,primaryMonitorInfo:desktop_1.primaryMonitorInfo,windowSize:desktop_1.windowSize,windowClientSize:desktop_1.windowClientSize,windowClientRect:desktop_1.windowClientRect,windowSendToForeground:desktop_1.windowSendToForeground,windowCenterToScreen:desktop_1.windowCenterToScreen,windowSetPosition:t.windowSetPosition,windowSetSize:t.windowSetSize,windowSetFullScreen:desktop_1.windowSetFullScreen,windowSetFocus:desktop_1.windowSetFocus,windowShowScrollBar:function(){return desktop_1.windowShowScrollBar(t.toggleScrollbar=!t.toggleScrollbar)},windowRedrawFrame:desktop_1.windowRedrawFrame,windowIsVisible:desktop_1.windowIsVisible,windowIsEnabled:desktop_1.windowIsEnabled,windowText:desktop_1.windowText,windowSetText:function(){return desktop_1.windowSetText("Counter: "+t.counter++)},windowHide:desktop_1.windowHide,windowShow:desktop_1.windowShow},t.results={},t.leftScripts=["deviceScreenResolution","primaryMonitorInfo","windowSize","windowClientSize","windowClientRect"],t}return __extends(t,n),t.prototype.windowSetPosition=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(n){switch(n.label){case 0:return[4,desktop_1.windowSetPosition(this.x,this.y)];case 1:return[2,n.sent()]}})})},t.prototype.windowSetSize=function(){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(n){switch(n.label){case 0:return[4,desktop_1.windowSetSize(this.width,this.height)];case 1:return[2,n.sent()]}})})},Object.defineProperty(t.prototype,"rightScripts",{get:function(){var n=this;return Object.keys(this.cmds).filter(function(t){return t.startsWith("window")&&n.leftScripts.indexOf(t)==-1})},enumerable:!1,configurable:!0}),t.prototype.fnBody=function(n){return n=="windowSetPosition"?"windowSetPosition(x, y)":n=="windowSetSize"?"windowSetSize(width, height)":n=="windowShowScrollBar"?"windowShowScrollBar(toggleScrollbar=!toggleScrollbar)":n=="windowSetText"?"windowSetText(`Counter: ${this.counter++}`)":n.toString()+"()"},t.prototype.exec=function(n){return __awaiter(this,void 0,void 0,function(){var t=this;return __generator(this,function(i){switch(i.label){case 0:return[4,shared_1.exec(this,function(){return __awaiter(t,void 0,void 0,function(){var t,i;return __generator(this,function(r){switch(r.label){case 0:if(t=this.cmds[n],!t)throw"'"+n+"' does not exist";return[4,t()];case 1:return i=r.sent(),this.$set(this.results,n,i),[2]}})})})];case 1:return i.sent(),[2]}})})},__decorate([vue_property_decorator_1.Component({template:'<div id="desktop" class="p-5">\n <div class="row">\n <div class="col col-6">\n <h3 class="mb-4">Custom APIs<\/h3>\n\n <p>\n <pre>chooseColor(\'#336699\')<\/pre>\n <button class="btn btn-outline-primary" @click="exec(\'chooseColor\')">chooseColor<\/button>\n <span class="result">{{results.chooseColor}}<\/span>\n <\/p>\n\n <h3 class="mb-4">Desktop General APIs<\/h3>\n\n <p>\n <pre>start(\'%USERPROFILE%\\.sharp-apps\')<\/pre>\n <button class="btn btn-outline-primary" @click="exec(\'start\')">start<\/button>\n <span class="result">{{results.open}}<\/span>\n <\/p>\n\n <p>\n <pre>openUrl(\'https://google.com\')<\/pre>\n <button class="btn btn-outline-primary" @click="exec(\'openUrl\')">openUrl<\/button>\n <span class="result">{{results.openUrl}}<\/span>\n <\/p>\n\n <p>\n<pre>messageBox(\'The Title\', \'Caption\', \n MessageBoxType.YesNo | MessageBoxType.IconInformation | MessageBoxType.SystemModal)<\/pre>\n <button class="btn btn-outline-primary" @click="exec(\'messageBox\')">messageBox<\/button>\n <span class="result">{{results.messageBox}}<\/span>\n <\/p>\n \n <p>\n <button class="btn btn-outline-primary" @click="exec(\'clipboard\')">clipboard<\/button>\n <span class="result">{{results.clipboard}}<\/span>\n <\/p>\n \n <p>\n <pre>setClipboard(`Counter: ${counter++}`)<\/pre>\n <button class="btn btn-outline-primary" @click="exec(\'setClipboard\')">setClipboard<\/button>\n <span class="result">{{results.setClipboard}}<\/span>\n <\/p>\n \n <p>\n <pre>expandEnvVars(\'%USERPROFILE% %windir% %OS%\')<\/pre>\n <button class="btn btn-outline-primary" @click="exec(\'expandEnvVars\')">expandEnvVars<\/button>\n <span class="result">{{results.expandEnvVars}}<\/span>\n <\/p>\n \n <p>\n<pre>openFile({\n title: \'Pick Images\',\n filter: "Image files (*.png;*.jpeg)|*.png;*.jpeg|All files (*.*)|*.*",\n initialDir: await expandEnvVars(\'%USERPROFILE%\\Pictures\'),\n defaultExt: \'*.png\',\n})<\/pre>\n <button class="btn btn-outline-primary" @click="exec(\'openFile\')">openFile<\/button>\n <span class="result">{{results.openFile}}<\/span>\n <\/p>\n \n <p>\n <pre>openFile({ isFolderPicker: true })<\/pre>\n <button class="btn btn-outline-primary" @click="exec(\'openFileFolder\')">openFile folder<\/button>\n <span class="result">{{results.openFileFolder}}<\/span>\n <\/p>\n \n \n <p>\n <pre>openFolder({ initialDir: await expandEnvVars(\'%USERPROFILE%\') })<\/pre>\n <button class="btn btn-outline-primary" @click="exec(\'openFolder\')">openFolder<\/button>\n <span class="result">{{results.openFolder}}<\/span>\n <\/p>\n \n <p v-for="fn in leftScripts">\n <pre>{{fnBody(fn)}}<\/pre>\n <button class="btn btn-outline-primary" @click="exec(fn)">{{fn}}<\/button>\n <span>{{results[fn]}}<\/span> \n <\/p>\n <\/div>\n \n <div class="col col-6">\n <h3 class="mb-4">Window APIs<\/h3>\n \n <div>\n X <input type="number" v-model="x" placeholder="X">\n Y <input type="number" v-model="y" placeholder="Y">\n W <input type="number" v-model="width" placeholder="Width">\n H <input type="number" v-model="height" placeholder="Height">\n <\/div>\n \n \n <div>{{x}}, {{y}}, {{width}}, {{height}}<\/div>\n \n <p v-for="fn in rightScripts">\n <pre>{{fnBody(fn)}}<\/pre>\n <button class="btn btn-outline-primary" @click="exec(fn)">{{fn}}<\/button>\n <span>{{results[fn]}}<\/span> \n <\/p>\n \n <\/div>\n <\/div>\n \n <error-summary :responseStatus="responseStatus" />\n <\/div>'})],t)}(vue_property_decorator_1.Vue);exports.Win32=Win32;exports.default=Win32; | |
| })(); | |
| (function(){ | |
| "use strict";function exec(n,t){return __awaiter(this,void 0,void 0,function(){var i;return __generator(this,function(r){switch(r.label){case 0:return r.trys.push([0,2,3,4]),n.loading=!0,n.responseStatus=null,[4,t()];case 1:return[2,r.sent()];case 2:return i=r.sent(),log(i),n.responseStatus=i.responseStatus||(typeof i=="string"?{errorCode:"Error",message:i}:null)||i,n.$emit("error",n.responseStatus),[3,4];case 3:return n.loading=!1,[7];case 4:return[2]}})})}function log(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return exports.store.debug&&console.log.apply(console,arguments),t}function openUrl(n){return __awaiter(this,void 0,void 0,function(){return __generator(this,function(t){switch(t.label){case 0:return exports.store.desktop?[4,desktop_1.evaluateCode("openUrl('"+n+"')")]:[3,2];case 1:return t.sent(),[3,3];case 2:window.open(n);t.label=3;case 3:return[2]}})})}var __extends=this&&this.__extends||function(){var n=function(t,i){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},n(t,i)};return function(t,i){function r(){this.constructor=t}n(t,i);t.prototype=i===null?Object.create(i):(r.prototype=i.prototype,new r)}}(),__awaiter=this&&this.__awaiter||function(n,t,i,r){function u(n){return n instanceof i?n:new i(function(t){t(n)})}return new(i||(i=Promise))(function(i,f){function o(n){try{e(r.next(n))}catch(t){f(t)}}function s(n){try{e(r["throw"](n))}catch(t){f(t)}}function e(n){n.done?i(n.value):u(n.value).then(o,s)}e((r=r.apply(n,t||[])).next())})},__generator=this&&this.__generator||function(n,t){function o(n){return function(t){return s([n,t])}}function s(e){if(f)throw new TypeError("Generator is already executing.");while(r)try{if(f=1,u&&(i=e[0]&2?u["return"]:e[0]?u["throw"]||((i=u["return"])&&i.call(u),0):u.next)&&!(i=i.call(u,e[1])).done)return i;(u=0,i)&&(e=[e[0]&2,i.value]);switch(e[0]){case 0:case 1:i=e;break;case 4:return r.label++,{value:e[1],done:!1};case 5:r.label++;u=e[1];e=[0];continue;case 7:e=r.ops.pop();r.trys.pop();continue;default:if(!(i=r.trys,i=i.length>0&&i[i.length-1])&&(e[0]===6||e[0]===2)){r=0;continue}if(e[0]===3&&(!i||e[1]>i[0]&&e[1]<i[3])){r.label=e[1];break}if(e[0]===6&&r.label<i[1]){r.label=i[1];i=e;break}if(i&&r.label<i[2]){r.label=i[2];r.ops.push(e);break}i[2]&&r.ops.pop();r.trys.pop();continue}e=t.call(n,r)}catch(o){e=[6,o];u=0}finally{f=i=0}if(e[0]&5)throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}var r={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},f,u,i,e;return e={next:o(0),"throw":o(1),"return":o(2)},typeof Symbol=="function"&&(e[Symbol.iterator]=function(){return this}),e},vue_1,client_1,desktop_1,Roles,EventBus;Object.defineProperty(exports,"__esModule",{value:!0});exports.openUrl=exports.log=exports.exec=exports.bus=exports.store=exports.Roles=exports.client=void 0;vue_1=require("vue");client_1=require("@servicestack/client");exports.client=new client_1.JsonServiceClient("/");desktop_1=require("@servicestack/desktop"),function(n){n.Admin="Admin"}(Roles=exports.Roles||(exports.Roles={}));exports.store={debug:global.CONFIG.debug,desktop:global.CONFIG.desktop,hasExcel:global.CONFIG.hasExcel};EventBus=function(n){function t(){var t=n!==null&&n.apply(this,arguments)||this;return t.store=exports.store,t}return __extends(t,n),t}(vue_1.default);exports.bus=new EventBus({data:exports.store});exports.exec=exec;vue_1.default.filter("json",function(n){return n&&JSON.stringify(n)});exports.log=log;exports.openUrl=openUrl,function(){return __awaiter(void 0,void 0,void 0,function(){var n,t;return __generator(this,function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),n=exports.store,[4,desktop_1.desktopInfo()];case 1:return n.desktop=i.sent(),log("In Desktop app:",exports.store.desktop),[3,3];case 2:return t=i.sent(),log("Not in Desktop app:",t),[3,3];case 3:return[2]}})})}(); | |
| })(); | |
| (function(){ | |
| "use strict";var routes;Object.defineProperty(exports,"__esModule",{value:!0});exports.redirect=exports.router=exports.Routes=void 0;var vue_1=require("vue"),vue_router_1=require("vue-router"),vue_2=require("@servicestack/vue"),Win32_1=require("../components/Win32"),Routes;(function(n){n.Home="/";n.Forbidden="/forbidden"})(Routes=exports.Routes||(exports.Routes={}));vue_1.default.use(vue_router_1.default);routes=[{path:Routes.Home,component:Win32_1.Win32},{path:Routes.Forbidden,component:vue_2.Forbidden},{path:"*",redirect:"/"},];exports.router=new vue_router_1.default({mode:"history",linkActiveClass:"active",routes:routes});exports.default=exports.router;exports.redirect=function(n){var t=n.indexOf("://")>=0;t?location.href=n:exports.router.push({path:n})}; | |
| })(); | |
| (function(){ | |
| "use strict";var __extends=this&&this.__extends||function(){var n=function(t,i){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},n(t,i)};return function(t,i){function r(){this.constructor=t}n(t,i);t.prototype=i===null?Object.create(i):(r.prototype=i.prototype,new r)}}(),__decorate=this&&this.__decorate||function(n,t,i,r){var f=arguments.length,u=f<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,i):r,e,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")u=Reflect.decorate(n,t,i,r);else for(o=n.length-1;o>=0;o--)(e=n[o])&&(u=(f<3?e(u):f>3?e(t,i,u):e(t,i))||u);return f>3&&u&&Object.defineProperty(t,i,u),u};Object.defineProperty(exports,"__esModule",{value:!0});exports.App=void 0;var vue_1=require("vue"),vue_property_decorator_1=require("vue-property-decorator"),shared_1=require("./shared"),App=function(n){function t(){return n!==null&&n.apply(this,arguments)||this}return __extends(t,n),Object.defineProperty(t.prototype,"store",{get:function(){return shared_1.store},enumerable:!1,configurable:!0}),__decorate([vue_property_decorator_1.Component({template:"<div>\n <router-view><\/router-view>\n <\/div>"})],t)}(vue_1.default);exports.App=App;exports.default=App; | |
| })(); | |
| (function(){ | |
| "use strict";var __extends=this&&this.__extends||function(){var n=function(t,i){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},n(t,i)};return function(t,i){function r(){this.constructor=t}n(t,i);t.prototype=i===null?Object.create(i):(r.prototype=i.prototype,new r)}}(),__decorate=this&&this.__decorate||function(n,t,i,r){var f=arguments.length,u=f<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,i):r,e,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")u=Reflect.decorate(n,t,i,r);else for(o=n.length-1;o>=0;o--)(e=n[o])&&(u=(f<3?e(u):f>3?e(t,i,u):e(t,i))||u);return f>3&&u&&Object.defineProperty(t,i,u),u},vue_property_decorator_1,ErrorView;Object.defineProperty(exports,"__esModule",{value:!0});exports.ErrorView=void 0;vue_property_decorator_1=require("vue-property-decorator");ErrorView=function(n){function t(){var t=n!==null&&n.apply(this,arguments)||this;return t.showStackTrace=!1,t}return __extends(t,n),__decorate([vue_property_decorator_1.Prop({"default":null})],t.prototype,"responseStatus",void 0),__decorate([vue_property_decorator_1.Component({template:'<div v-if="responseStatus" class="noplugin-error alert alert-danger mt-3 mr-3">\n <div>{{responseStatus.errorCode}}: {{responseStatus.message}}<\/div>\n <div v-if="responseStatus.stackTrace">\n <button v-if="!showStackTrace" class="btn btn-link" style="margin-left: -1em" @click="showStackTrace=true">\n <i class="svg-chevron-right svg-lg mb-1" title="expand" />StackTrace<\/button>\n <div v-if="showStackTrace" class="stacktrace">{{responseStatus.stackTrace}}<\/div>\n <\/div>\n<\/div>'})],t)}(vue_property_decorator_1.Vue);exports.ErrorView=ErrorView;exports.default=ErrorView;vue_property_decorator_1.Vue.component("error-view",ErrorView); | |
| })(); | |
| (function(){ | |
| "use strict";var __extends=this&&this.__extends||function(){var n=function(t,i){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])},n(t,i)};return function(t,i){function r(){this.constructor=t}n(t,i);t.prototype=i===null?Object.create(i):(r.prototype=i.prototype,new r)}}(),__decorate=this&&this.__decorate||function(n,t,i,r){var f=arguments.length,u=f<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,i):r,e,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")u=Reflect.decorate(n,t,i,r);else for(o=n.length-1;o>=0;o--)(e=n[o])&&(u=(f<3?e(u):f>3?e(t,i,u):e(t,i))||u);return f>3&&u&&Object.defineProperty(t,i,u),u};Object.defineProperty(exports,"__esModule",{value:!0});exports.JsonViewer=void 0;var vue_property_decorator_1=require("vue-property-decorator"),client_1=require("@servicestack/client"),show=function(n){return typeof n!="string"||n.substr(0,2)!=="__"},keyFmt=function(n){return client_1.humanize(client_1.toPascalCase(n))},uniqueKeys=function(n){for(var r,t,u={},i=0,f=n.length;i<f;i++){r=n[i];for(t in r)r.hasOwnProperty(t)&&show(t)&&(u[t]=t)}return u},valueFmt=function(n,t,i){return i},num=function(n){return n},date=function(n){return client_1.toDate(n)},pad=function(n){return n<10?"0"+n:n},dmft=function(n){return n.getFullYear()+"/"+pad(n.getMonth()+1)+"/"+pad(n.getDate())},str=function(n){return n.substr(0,6)==="/Date("?dmft(date(n)):n},obj=function(n){return"<dl>\n "+Object.keys(n).filter(show).map(function(t){return'<dt class="ib">'+keyFmt(t)+"<\/dt><dd>"+valueFmt(t,n[t],val(n[t]))+"<\/dd>"}).join("")+"\n <\/dl>"},arr=function(n){if(typeof n[0]=="string"||typeof n[0]=="number")return"<span>"+n.join(", ")+"<\/span>";var t=uniqueKeys(n);return"\n <table>\n <thead>\n <tr>\n "+Object.keys(t).map(function(n){return"<th><b><\/b>"+keyFmt(n)+"<\/th>"}).join("")+"\n <\/tr>\n <\/thead>\n <tbody>\n "+n.map(function(n){return"<tr>\n "+Object.keys(t).filter(show).map(function(t){return"<td>"+valueFmt(t,n[t],val(n[t]))+"<\/td>"}).join("")+"\n <\/tr>"}).join("")+"\n <\/tbody>\n <\/table>"},val=function(n,t){return(t&&(valueFmt=t),n==null)?"":typeof n=="number"?""+num(n):typeof n=="string"?str(n):typeof n=="boolean"?n?"true":"false":n.length?arr(n):obj(n)},JsonViewer=function(n){function t(){return n!==null&&n.apply(this,arguments)||this}return __extends(t,n),Object.defineProperty(t.prototype,"html",{get:function(){return this.json?val(JSON.parse(this.json)):val(this.value)},enumerable:!1,configurable:!0}),__decorate([vue_property_decorator_1.Prop({"default":null})],t.prototype,"value",void 0),__decorate([vue_property_decorator_1.Prop({"default":null})],t.prototype,"json",void 0),__decorate([vue_property_decorator_1.Component({template:'<div class="jsonviewer">\n <div v-html="html"><\/div>\n <span class="clearfix"><\/span>\n <\/div>'})],t)}(vue_property_decorator_1.Vue);exports.JsonViewer=JsonViewer;exports.default=JsonViewer;vue_property_decorator_1.Vue.component("jsonviewer",JsonViewer); | |
| })(); | |
| (function(){ | |
| "use strict";var vue_1,vue_2;Object.defineProperty(exports,"__esModule",{value:!0});require("./app.scss");require("es6-shim");vue_1=require("vue");vue_2=require("@servicestack/vue");vue_1.default.use(vue_2.default);var App_1=require("./App"),router_1=require("./shared/router"),app=new vue_1.default({el:"#app",render:function(n){return n(App_1.App)},router:router_1.router}); | |
| })(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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TUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MTwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzI8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDI8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjE8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjMyPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgICAgPGRjOnN1YmplY3Q+CiAgICAgICAgICAgIDxyZGY6QmFnLz4KICAgICAgICAgPC9kYzpzdWJqZWN0PgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxMy0xMS0xNlQwODoxMToyMzwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+UGl4ZWxtYXRvciAyLjIuMTwveG1wOkNyZWF0b3JUb29sPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4Kpcq+GAAAAsFJREFUWAnVl19oj1EYx2f+lxmFpESZ0hrFhfwp2YU/F6zWSq3kwg3SolyQcqGE4krkguTSlUVJwi1Js7mQi9ViYvOn2VjNzPD52u+t0+l3znvO3td+vz312fu+53me83z3/jnn+VVUTBKbGqGzkthdMA964A9MmMUIlbBZcB+aoBo+wlcoSzuJKokWEnkTNkPZmR79G0jE6vgL7sJWKCs7jRpTaHIuwbdgdbmorUXIECQC7eMAPv0zVVBS0wrwBGyB9nUbMVtKqpTi5wKESrjuvD7AaVASa6SqfQd9163ELyqF0jqKjkaKfUn8hH9o8ynaHilUd/w95P7eTmFSCXKZ1tQW6ALfY7d9fcTvgNxMQpvhAZyADaBt1LaFDJyBAbBFua77id0OuZmWIi3iKvgbXsFF2AR2r7CGMfUCLnH2+BdiN0JutoSZesEsJNFP4RAsgMQk/gh8AzPedf6WuBrIzc4yk6/YKfyLjWrrOddX7soxx58RV23kZjpdS/ZPMAvY5+/wH4M5INO7exvsuGLXN4jTN5HZ9BF1QrEi9tgL4nYWKmpHuhyYt7+Qk/nwMLCghKuTugRJY3I+IPczMSshs4U+RvMOP6eqVgPZBTB9xc7vEKOVJpPdI7vY5Gljn8jbXah8PWCOPYXYcR207HQEFHGJ/kHuPtA8j1PmeY0/eWU4jbPlhH8Hl5CQ8RHy94K6KK0Qvpyj+MdlB8jyTRzqG2aebaDt09d9deFXLxFlM4nWkhMqJi1OW6d2o6spcx7EH2XaEtOKx/r1U2YFfPDM3YZvBgSZfrPHdEUxgtWRtYArR/1EPaSaRKrRdU2UdVytnrqwTk+Na/icNh3PYdBEWcWk5V+hxnFPnW58c+GfaSeYDXrB1bZ1QFqBvPxqdBpg0FOzIelWpHgZrAL1nrKkUxq7+n9/tQE8gnWw1FGm/S9DpCdmD6gwqwAAAABJRU5ErkJggg== |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| {{#raw}} | |
| <div id="app"> | |
| <div class="container"> | |
| <div class="row p-4"> | |
| <div id="content"> | |
| <router-view></router-view> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| {{/raw}} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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bmdGaWVsZAA8Q29uZmlndXJhdGlvbj5rX19CYWNraW5nRmllbGQAQnVpbGQAaFduZABtZXRob2QAU2VydmljZQBoSW5zdGFuY2UAZ2V0X0RlYnVnTW9kZQBzZXRfRGVidWdNb2RlAEVuZEludm9rZQBCZWdpbkludm9rZQBSdW50aW1lRmllbGRIYW5kbGUAUnVudGltZVR5cGVIYW5kbGUARW5hYmxlVGVtcGxhdGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUAc2V0X0FjY2Vzc1JvbGUAZ2V0X05hbWUAc2V0X05hbWUAbHBUZW1wbGF0ZU5hbWUAc2V0X0FwcE5hbWUAU3lzdGVtLlJ1bnRpbWUAc2NvcGUAVmFsdWVUeXBlAE1pY3Jvc29mdC5Bc3BOZXRDb3JlAFByZUNvbmZpZ3VyZQBIb3RSZWxvYWRGZWF0dXJlAERlc2t0b3BGZWF0dXJlAFNoYXJwUGFnZXNGZWF0dXJlAEFwcEhvc3RCYXNlAE11bHRpY2FzdERlbGVnYXRlAEVuYWJsZVRlbXBsYXRlAEVtYmVkZGVkQXR0cmlidXRlAENvbXBpbGVyR2VuZXJhdGVkQXR0cmlidXRlAEF0dHJpYnV0ZVVzYWdlQXR0cmlidXRlAERlYnVnZ2FibGVBdHRyaWJ1dGUATnVsbGFibGVBdHRyaWJ1dGUAQXNzZW1ibHlUaXRsZUF0dHJpYnV0ZQBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBBc3NlbWJseUluZm9ybWF0aW9uYWxWZXJzaW9uQXR0cmlidXRlAEFzc2VtYmx5Q29uZmlndXJhdGlvbkF0dHJpYnV0ZQBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0ZQBOdWxsYWJsZUNvbnRleHRBdHRyaWJ1dGUAQXNzZW1ibHlDb21wYW55QXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmlsaXR5QXR0cmlidXRlAEJ5dGUAdmFsdWUAbFN0cnVjdFNpemUAU2l6ZU9mAEZsYWcAZ2V0X0NvbmZpZwBTZXRDb25maWcASG9zdENvbmZpZwBTeXN0ZW0uUnVudGltZS5WZXJzaW9uaW5nAE1pY3Jvc29mdC5Bc3BOZXRDb3JlLkhvc3RpbmcATWljcm9zb2Z0LkV4dGVuc2lvbnMuSG9zdGluZwBTeXN0ZW0uRHJhd2luZwBtc2cAQXN5bmNDYWxsYmFjawBzZXRfRW5hYmxlU3BhRmFsbGJhY2sAY2FsbGJhY2sAVXNlU2VydmljZVN0YWNrAEVuYWJsZUhvb2sAbHBmbkhvb2sATWFyc2hhbABDb21EbGczMi5kbGwAd2luMzIuZGxsAEZyb21IdG1sAFRvSHRtbABsUGFyYW0Ad1BhcmFtAFByb2dyYW0AQWxsb2NDb1Rhc2tNZW0ARnJlZUNvVGFza01lbQBTeXN0ZW0AUHJldmVudEZ1bGxPcGVuAE1haW4ASVBsdWdpbgBTZXJ2aWNlU3RhY2suQ29uZmlndXJhdGlvbgBNaWNyb3NvZnQuRXh0ZW5zaW9ucy5Db25maWd1cmF0aW9uAElDb25maWd1cmF0aW9uAGdldF9Db25maWd1cmF0aW9uAGNvbmZpZ3VyYXRpb24ATWljcm9zb2Z0LkV4dGVuc2lvbnMuRGVwZW5kZW5jeUluamVjdGlvbgBTeXN0ZW0uUmVmbGVjdGlvbgBJU2VydmljZUNvbGxlY3Rpb24AU2VydmljZVN0YWNrLkNvbW1vbgBJUmV0dXJuAFJ1bgBIZWxsbwBTaG93SGVscABTZXJ2aWNlU3RhY2suRGVza3RvcABhcHAAVXNlU3RhcnR1cABGdW5xAElWaXJ0dWFsUGF0aFByb3ZpZGVyAE1pY3Jvc29mdC5Bc3BOZXRDb3JlLkJ1aWxkZXIAd2ViQnVpbGRlcgBJQXBwbGljYXRpb25CdWlsZGVyAENyZWF0ZURlZmF1bHRCdWlsZGVyAElIb3N0QnVpbGRlcgBJV2ViSG9zdEJ1aWxkZXIAQ3JlYXRlSG9zdEJ1aWxkZXIAQ29udGFpbmVyAGNvbnRhaW5lcgBod25kT3duZXIAU29saWRDb2xvcgBDaG9vc2VDb2xvcgBjaG9vc2VDb2xvcgBkZWZhdWx0Q29sb3IAQW55Q29sb3IAQ29tbURsZ0V4dGVuZGVkRXJyb3IAQ29sb3JUcmFuc2xhdG9yAC5jdG9yAC5jY3RvcgBTeXN0ZW0uRGlhZ25vc3RpY3MAQ3VzdG9tTWV0aG9kcwBnZXRfU2NyaXB0TWV0aG9kcwBTZXJ2aWNlU3RhY2suSW50ZXJmYWNlcwBDb25maWd1cmVTZXJ2aWNlcwBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMAU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBNeVNlcnZpY2VzAHNlcnZpY2VzAERlYnVnZ2luZ01vZGVzAElWaXJ0dWFsRmlsZXMAZ2V0X1ZpcnR1YWxGaWxlcwBzZXRfVmlydHVhbEZpbGVzAENvbmZpZ3VyZVNoYXJwQXBwRmVhdHVyZXMAU3lzdGVtLkRyYXdpbmcuUHJpbWl0aXZlcwBOdWxsYWJsZUZsYWdzAENob29zZUNvbG9yRmxhZ3MASUFwcFNldHRpbmdzAGdldF9BcHBTZXR0aW5ncwBhcmdzADw+NF9fdGhpcwBNaWNyb3NvZnQuQ29kZUFuYWx5c2lzAERlc2t0b3BVdGlscwBnZXRfUGx1Z2lucwBXZWJIb3N0QnVpbGRlckV4dGVuc2lvbnMAR2VuZXJpY0hvc3RCdWlsZGVyRXh0ZW5zaW9ucwBOZXRDb3JlQXBwSG9zdEV4dGVuc2lvbnMASG9zdGluZ0Fic3RyYWN0aW9uc0hvc3RFeHRlbnNpb25zAEhvc3RFbnZpcm9ubWVudEVudkV4dGVuc2lvbnMATWljcm9zb2Z0LkFzcE5ldENvcmUuSG9zdGluZy5BYnN0cmFjdGlvbnMATWljcm9zb2Z0LkV4dGVuc2lvbnMuSG9zdGluZy5BYnN0cmFjdGlvbnMATWljcm9zb2Z0LkV4dGVuc2lvbnMuQ29uZmlndXJhdGlvbi5BYnN0cmFjdGlvbnMATWljcm9zb2Z0LkV4dGVuc2lvbnMuRGVwZW5kZW5jeUluamVjdGlvbi5BYnN0cmFjdGlvbnMATWljcm9zb2Z0LkFzcE5ldENvcmUuSHR0cC5BYnN0cmFjdGlvbnMAU3lzdGVtLkNvbGxlY3Rpb25zAFJ1bnRpbWVIZWxwZXJzAGN1c3RvbUNvbG9ycwBscEN1c3RDb2xvcnMAQXR0cmlidXRlVGFyZ2V0cwBDb25maWd1cmVXZWJIb3N0RGVmYXVsdHMAT2JqZWN0AG9iamVjdABHZXQAUmdiSW5pdAByZ2JSZXN1bHQASUFzeW5jUmVzdWx0AHJlc3VsdABnZXRf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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment