From 0a6792b765907e2e38fe5633b43877d25e3e1119 Mon Sep 17 00:00:00 2001 From: cdricms <36056008+cdricms@users.noreply.github.com> Date: Tue, 30 Apr 2024 00:53:02 +0200 Subject: [PATCH] Exercise 1 --- 50000 Records.csv => ex1/50000 Records.csv | 0 README.md => ex1/README.md | 0 Records.proto => ex1/Records.proto | 0 app.go => ex1/app.go | 0 {build => ex1/build}/README.md | 0 {build => ex1/build}/appicon.png | Bin {build => ex1/build}/darwin/Info.dev.plist | 0 {build => ex1/build}/darwin/Info.plist | 0 {build => ex1/build}/windows/icon.ico | Bin {build => ex1/build}/windows/info.json | 0 .../build}/windows/installer/project.nsi | 0 .../build}/windows/installer/wails_tools.nsh | 0 {build => ex1/build}/windows/wails.exe.manifest | 0 employee_data.bin => ex1/employee_data.bin | Bin employee_data.json => ex1/employee_data.json | 0 .../frontend}/.vscode/extensions.json | 0 {frontend => ex1/frontend}/README.md | 0 ex1/frontend/dist/assets/index.9b35c904.css | 1 + ex1/frontend/dist/assets/index.b19f2494.js | 1 + .../nunito-v16-latin-regular.06f3af3f.woff2 | Bin ex1/frontend/dist/index.html | 14 ++++++++++++++ {frontend => ex1/frontend}/index.html | 0 {frontend => ex1/frontend}/package-lock.json | 0 {frontend => ex1/frontend}/package.json | 0 {frontend => ex1/frontend}/package.json.md5 | 0 .../frontend}/src/Aggregation.svelte | 0 {frontend => ex1/frontend}/src/App.svelte | 0 {frontend => ex1/frontend}/src/Modal.svelte | 0 {frontend => ex1/frontend}/src/Table.svelte | 0 .../frontend}/src/assets/fonts/OFL.txt | 0 .../assets/fonts/nunito-v16-latin-regular.woff2 | Bin 0 -> 18972 bytes .../src/assets/images/logo-universal.png | Bin {frontend => ex1/frontend}/src/main.ts | 0 {frontend => ex1/frontend}/src/style.css | 0 {frontend => ex1/frontend}/src/vite-env.d.ts | 0 {frontend => ex1/frontend}/svelte.config.js | 0 {frontend => ex1/frontend}/tsconfig.json | 0 {frontend => ex1/frontend}/tsconfig.node.json | 0 {frontend => ex1/frontend}/vite.config.ts | 0 .../frontend}/wailsjs/go/main/App.d.ts | 0 .../frontend}/wailsjs/go/main/App.js | 0 {frontend => ex1/frontend}/wailsjs/go/models.ts | 0 .../frontend}/wailsjs/runtime/package.json | 0 .../frontend}/wailsjs/runtime/runtime.d.ts | 0 .../frontend}/wailsjs/runtime/runtime.js | 0 go.mod => ex1/go.mod | 0 go.sum => ex1/go.sum | 0 main.go => ex1/main.go | 0 {parsing => ex1/parsing}/parsing.go | 0 {parsing => ex1/parsing}/types.go | 0 {proto => ex1/proto}/Records.pb.go | 0 {proto => ex1/proto}/io.go | 0 {proto => ex1/proto}/queries.go | 0 wails.json => ex1/wails.json | 0 54 files changed, 16 insertions(+) rename 50000 Records.csv => ex1/50000 Records.csv (100%) rename README.md => ex1/README.md (100%) rename Records.proto => ex1/Records.proto (100%) rename app.go => ex1/app.go (100%) rename {build => ex1/build}/README.md (100%) rename {build => ex1/build}/appicon.png (100%) rename {build => ex1/build}/darwin/Info.dev.plist (100%) rename {build => ex1/build}/darwin/Info.plist (100%) rename {build => ex1/build}/windows/icon.ico (100%) rename {build => ex1/build}/windows/info.json (100%) rename {build => ex1/build}/windows/installer/project.nsi (100%) rename {build => ex1/build}/windows/installer/wails_tools.nsh (100%) rename {build => ex1/build}/windows/wails.exe.manifest (100%) rename employee_data.bin => ex1/employee_data.bin (100%) rename employee_data.json => ex1/employee_data.json (100%) rename {frontend => ex1/frontend}/.vscode/extensions.json (100%) rename {frontend => ex1/frontend}/README.md (100%) create mode 100644 ex1/frontend/dist/assets/index.9b35c904.css create mode 100644 ex1/frontend/dist/assets/index.b19f2494.js rename frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 => ex1/frontend/dist/assets/nunito-v16-latin-regular.06f3af3f.woff2 (100%) create mode 100644 ex1/frontend/dist/index.html rename {frontend => ex1/frontend}/index.html (100%) rename {frontend => ex1/frontend}/package-lock.json (100%) rename {frontend => ex1/frontend}/package.json (100%) rename {frontend => ex1/frontend}/package.json.md5 (100%) rename {frontend => ex1/frontend}/src/Aggregation.svelte (100%) rename {frontend => ex1/frontend}/src/App.svelte (100%) rename {frontend => ex1/frontend}/src/Modal.svelte (100%) rename {frontend => ex1/frontend}/src/Table.svelte (100%) rename {frontend => ex1/frontend}/src/assets/fonts/OFL.txt (100%) create mode 100644 ex1/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 rename {frontend => ex1/frontend}/src/assets/images/logo-universal.png (100%) rename {frontend => ex1/frontend}/src/main.ts (100%) rename {frontend => ex1/frontend}/src/style.css (100%) rename {frontend => ex1/frontend}/src/vite-env.d.ts (100%) rename {frontend => ex1/frontend}/svelte.config.js (100%) rename {frontend => ex1/frontend}/tsconfig.json (100%) rename {frontend => ex1/frontend}/tsconfig.node.json (100%) rename {frontend => ex1/frontend}/vite.config.ts (100%) rename {frontend => ex1/frontend}/wailsjs/go/main/App.d.ts (100%) rename {frontend => ex1/frontend}/wailsjs/go/main/App.js (100%) rename {frontend => ex1/frontend}/wailsjs/go/models.ts (100%) rename {frontend => ex1/frontend}/wailsjs/runtime/package.json (100%) rename {frontend => ex1/frontend}/wailsjs/runtime/runtime.d.ts (100%) rename {frontend => ex1/frontend}/wailsjs/runtime/runtime.js (100%) rename go.mod => ex1/go.mod (100%) rename go.sum => ex1/go.sum (100%) rename main.go => ex1/main.go (100%) rename {parsing => ex1/parsing}/parsing.go (100%) rename {parsing => ex1/parsing}/types.go (100%) rename {proto => ex1/proto}/Records.pb.go (100%) rename {proto => ex1/proto}/io.go (100%) rename {proto => ex1/proto}/queries.go (100%) rename wails.json => ex1/wails.json (100%) diff --git a/50000 Records.csv b/ex1/50000 Records.csv similarity index 100% rename from 50000 Records.csv rename to ex1/50000 Records.csv diff --git a/README.md b/ex1/README.md similarity index 100% rename from README.md rename to ex1/README.md diff --git a/Records.proto b/ex1/Records.proto similarity index 100% rename from Records.proto rename to ex1/Records.proto diff --git a/app.go b/ex1/app.go similarity index 100% rename from app.go rename to ex1/app.go diff --git a/build/README.md b/ex1/build/README.md similarity index 100% rename from build/README.md rename to ex1/build/README.md diff --git a/build/appicon.png b/ex1/build/appicon.png similarity index 100% rename from build/appicon.png rename to ex1/build/appicon.png diff --git a/build/darwin/Info.dev.plist b/ex1/build/darwin/Info.dev.plist similarity index 100% rename from build/darwin/Info.dev.plist rename to ex1/build/darwin/Info.dev.plist diff --git a/build/darwin/Info.plist b/ex1/build/darwin/Info.plist similarity index 100% rename from build/darwin/Info.plist rename to ex1/build/darwin/Info.plist diff --git a/build/windows/icon.ico b/ex1/build/windows/icon.ico similarity index 100% rename from build/windows/icon.ico rename to ex1/build/windows/icon.ico diff --git a/build/windows/info.json b/ex1/build/windows/info.json similarity index 100% rename from build/windows/info.json rename to ex1/build/windows/info.json diff --git a/build/windows/installer/project.nsi b/ex1/build/windows/installer/project.nsi similarity index 100% rename from build/windows/installer/project.nsi rename to ex1/build/windows/installer/project.nsi diff --git a/build/windows/installer/wails_tools.nsh b/ex1/build/windows/installer/wails_tools.nsh similarity index 100% rename from build/windows/installer/wails_tools.nsh rename to ex1/build/windows/installer/wails_tools.nsh diff --git a/build/windows/wails.exe.manifest b/ex1/build/windows/wails.exe.manifest similarity index 100% rename from build/windows/wails.exe.manifest rename to ex1/build/windows/wails.exe.manifest diff --git a/employee_data.bin b/ex1/employee_data.bin similarity index 100% rename from employee_data.bin rename to ex1/employee_data.bin diff --git a/employee_data.json b/ex1/employee_data.json similarity index 100% rename from employee_data.json rename to ex1/employee_data.json diff --git a/frontend/.vscode/extensions.json b/ex1/frontend/.vscode/extensions.json similarity index 100% rename from frontend/.vscode/extensions.json rename to ex1/frontend/.vscode/extensions.json diff --git a/frontend/README.md b/ex1/frontend/README.md similarity index 100% rename from frontend/README.md rename to ex1/frontend/README.md diff --git a/ex1/frontend/dist/assets/index.9b35c904.css b/ex1/frontend/dist/assets/index.9b35c904.css new file mode 100644 index 0000000..1761893 --- /dev/null +++ b/ex1/frontend/dist/assets/index.9b35c904.css @@ -0,0 +1 @@ +html{background-color:#1b2636;text-align:center;color:#fff}body{margin:0;color:#fff;font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}@font-face{font-family:Nunito;font-style:normal;font-weight:400;src:local(""),url(/assets/nunito-v16-latin-regular.06f3af3f.woff2) format("woff2")}#app{height:100vh;text-align:center}table.svelte-1bs0eb4{width:100%;border-collapse:collapse;margin-bottom:20px}th.svelte-1bs0eb4,td.svelte-1bs0eb4{border:1px solid #ddd;padding:12px;text-align:left}th.svelte-1bs0eb4{background-color:#000}tr.svelte-1bs0eb4:nth-child(even){background-color:#343434}tr.svelte-1bs0eb4:hover{background-color:#110909}.backdrop.svelte-rr3arx{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center}.dialog.svelte-rr3arx{background-color:#fff;padding:20px;border-radius:8px;max-height:300px;overflow-y:auto}table.svelte-xmvjp8{width:100%;border-collapse:collapse;margin-bottom:20px}th.svelte-xmvjp8,td.svelte-xmvjp8{border:1px solid #ddd;padding:12px;text-align:left}th.svelte-xmvjp8{background-color:#fff}tr.svelte-xmvjp8:nth-child(even){background-color:#343434;color:#fff}tr.svelte-xmvjp8:hover{background-color:#110909;color:#fff} diff --git a/ex1/frontend/dist/assets/index.b19f2494.js b/ex1/frontend/dist/assets/index.b19f2494.js new file mode 100644 index 0000000..c6eb498 --- /dev/null +++ b/ex1/frontend/dist/assets/index.b19f2494.js @@ -0,0 +1 @@ +var We=Object.defineProperty;var Xe=(t,e,l)=>e in t?We(t,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):t[e]=l;var y=(t,e,l)=>(Xe(t,typeof e!="symbol"?e+"":e,l),l);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const r of o.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function l(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerpolicy&&(o.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?o.credentials="include":i.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(i){if(i.ep)return;i.ep=!0;const o=l(i);fetch(i.href,o)}})();function V(){}function Ye(t,e){for(const l in e)t[l]=e[l];return t}function Ze(t){return!!t&&(typeof t=="object"||typeof t=="function")&&typeof t.then=="function"}function Je(t){return t()}function we(){return Object.create(null)}function J(t){t.forEach(Je)}function Ke(t){return typeof t=="function"}function oe(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}function xe(t){return Object.keys(t).length===0}function et(t,e,l,n){if(t){const i=Qe(t,e,l,n);return t[0](i)}}function Qe(t,e,l,n){return t[1]&&n?Ye(l.ctx.slice(),t[1](n(e))):l.ctx}function tt(t,e,l,n){if(t[2]&&n){const i=t[2](n(l));if(e.dirty===void 0)return i;if(typeof i=="object"){const o=[],r=Math.max(e.dirty.length,i.length);for(let c=0;c32){const e=[],l=t.ctx.length/32;for(let n=0;nt.removeEventListener(e,l,n)}function A(t,e,l){l==null?t.removeAttribute(e):t.getAttribute(e)!==l&&t.setAttribute(e,l)}function it(t){return Array.from(t.childNodes)}function P(t,e){e=""+e,t.data!==e&&(t.data=e)}function Oe(t,e){t.value=e==null?"":e}function W(t,e,l){for(let n=0;nt.indexOf(n)===-1?e.push(n):l.push(n)),l.forEach(n=>n()),Z=e}const le=new Set;let K;function ve(){K={r:0,c:[],p:K}}function ke(){K.r||J(K.c),K=K.p}function $(t,e){t&&t.i&&(le.delete(t),t.i(e))}function T(t,e,l,n){if(t&&t.o){if(le.has(t))return;le.add(t),K.c.push(()=>{le.delete(t),n&&(l&&t.d(1),n())}),t.o(e)}else n&&n()}function ie(t,e){const l=e.token={};function n(i,o,r,c){if(e.token!==l)return;e.resolved=c;let a=e.ctx;r!==void 0&&(a=a.slice(),a[r]=c);const u=i&&(e.current=i)(a);let h=!1;e.block&&(e.blocks?e.blocks.forEach((g,p)=>{p!==o&&g&&(ve(),T(g,1,1,()=>{e.blocks[p]===g&&(e.blocks[p]=null)}),ke())}):e.block.d(1),u.c(),$(u,1),u.m(e.mount(),e.anchor),h=!0),e.block=u,e.blocks&&(e.blocks[o]=u),h&&be()}if(Ze(t)){const i=De();if(t.then(o=>{I(i),n(e.then,1,e.value,o),I(null)},o=>{if(I(i),n(e.catch,2,e.error,o),I(null),!e.hasCatch)throw o}),e.current!==e.pending)return n(e.pending,0),!0}else{if(e.current!==e.then)return n(e.then,1,e.value,t),!0;e.resolved=t}}function He(t,e,l){const n=e.slice(),{resolved:i}=t;t.current===t.then&&(n[t.value]=i),t.current===t.catch&&(n[t.error]=i),t.block.p(n,l)}function me(t,e,l){const n=t.$$.props[e];n!==void 0&&(t.$$.bound[n]=l,l(t.$$.ctx[n]))}function ye(t){t&&t.c()}function re(t,e,l,n){const{fragment:i,after_update:o}=t.$$;i&&i.m(e,l),n||x(()=>{const r=t.$$.on_mount.map(Je).filter(Ke);t.$$.on_destroy?t.$$.on_destroy.push(...r):J(r),t.$$.on_mount=[]}),o.forEach(x)}function se(t,e){const l=t.$$;l.fragment!==null&&(ct(l.after_update),J(l.on_destroy),l.fragment&&l.fragment.d(e),l.on_destroy=l.fragment=null,l.ctx=[])}function at(t,e){t.$$.dirty[0]===-1&&(Y.push(t),st(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const m=d.length?d[0]:p;return u.ctx&&i(u.ctx[g],u.ctx[g]=m)&&(!u.skip_bound&&u.bound[g]&&u.bound[g](m),h&&at(t,g)),p}):[],u.update(),h=!0,J(u.before_update),u.fragment=n?n(u.ctx):!1,e.target){if(e.hydrate){const g=it(e.target);u.fragment&&u.fragment.l(g),g.forEach(O)}else u.fragment&&u.fragment.c();e.intro&&$(t.$$.fragment),re(t,e.target,e.anchor,e.customElement),be()}I(a)}class ce{$destroy(){se(this,1),this.$destroy=V}$on(e,l){if(!Ke(l))return V;const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(l),()=>{const i=n.indexOf(l);i!==-1&&n.splice(i,1)}}$set(e){this.$$set&&!xe(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function ft(t,e,l){return window.runtime.EventsOnMultiple(t,e,l)}function _e(t,e){return ft(t,e,-1)}function _t(t,e,l){return window.go.main.App.AggregateByColumn(t,e,l)}function ht(t,e,l,n,i){return window.go.main.App.GetEmployees(t,e,l,n,i)}function Ce(t,e,l){const n=t.slice();return n[12]=e[l],n}function Ee(t,e,l){const n=t.slice();return n[15]=e[l],n}function Ae(t,e,l){const n=t.slice();return n[18]=e[l],n}function Ne(t,e,l){const n=t.slice();return n[18]=e[l],n}function dt(t){let e,l=t[23]+"",n;return{c(){e=v("p"),n=S(l)},m(i,o){E(i,e,o),_(e,n)},p(i,o){o&51&&l!==(l=i[23]+"")&&P(n,l)},d(i){i&&O(e)}}}function gt(t){let e,l,n,i,o,r,c,a,u,h,g,p,d=Object.keys(t[11][0]),m=[];for(let f=0;fe,n.anchor=null},p(i,[o]){t=i,n.ctx=t,o&51&&l!==(l=t[6](t[1],qe,t[0],t[4],t[5]))&&ie(l,n)||He(n,t,o)},i:V,o:V,d(i){i&&O(e),n.block.d(),n.token=null,n=null}}}let qe=10;function bt(t,e,l){let{path:n}=e,{page:i}=e,{limitReached:o}=e,r=null,c=null,a=null,u=null;async function h(m,b,j,L,N){try{const f=await ht(m,b,j,L,N);return l(7,o=f.lengthl(2,r=m.value);function p(){c=this.value,l(3,c)}const d=()=>{l(0,i=0),l(4,a=r),l(5,u=c)};return t.$$set=m=>{"path"in m&&l(1,n=m.path),"page"in m&&l(0,i=m.page),"limitReached"in m&&l(7,o=m.limitReached)},[i,n,r,c,a,u,h,o,g,p,d]}class vt extends ce{constructor(e){super(),ue(this,e,bt,pt,oe,{path:1,page:0,limitReached:7})}}function ze(t){let e,l,n,i,o,r,c;const a=t[3].default,u=et(a,t,t[2],null);return{c(){e=v("dialog"),l=v("div"),u&&u.c(),n=R(),i=v("button"),i.textContent="Close",A(l,"class","dialog svelte-rr3arx"),A(e,"class","backdrop svelte-rr3arx"),e.open=t[0]},m(h,g){E(h,e,g),_(e,l),u&&u.m(l,null),_(l,n),_(l,i),o=!0,r||(c=F(i,"click",t[4]),r=!0)},p(h,g){u&&u.p&&(!o||g&4)&&nt(u,a,h,h[2],o?tt(a,h[2],g,null):lt(h[2]),null),(!o||g&1)&&(e.open=h[0])},i(h){o||($(u,h),o=!0)},o(h){T(u,h),o=!1},d(h){h&&O(e),u&&u.d(h),r=!1,c()}}}function kt(t){let e,l,n=t[0]&&ze(t);return{c(){n&&n.c(),e=Ve()},m(i,o){n&&n.m(i,o),E(i,e,o),l=!0},p(i,[o]){i[0]?n?(n.p(i,o),o&1&&$(n,1)):(n=ze(i),n.c(),$(n,1),n.m(e.parentNode,e)):n&&(ve(),T(n,1,1,()=>{n=null}),ke())},i(i){l||($(n),l=!0)},o(i){T(n),l=!1},d(i){n&&n.d(i),i&&O(e)}}}function yt(t,e,l){let{$$slots:n={},$$scope:i}=e,{isOpen:o}=e,{onClose:r}=e;const c=()=>r();return t.$$set=a=>{"isOpen"in a&&l(0,o=a.isOpen),"onClose"in a&&l(1,r=a.onClose),"$$scope"in a&&l(2,i=a.$$scope)},[o,r,i,n,c]}class jt extends ce{constructor(e){super(),ue(this,e,yt,kt,oe,{isOpen:0,onClose:1})}}var pe;(t=>{class e{constructor(n={}){y(this,"emp_id");y(this,"name_prefix");y(this,"first_name");y(this,"middle_initial");y(this,"last_name");y(this,"gender");y(this,"email");y(this,"fathers_name");y(this,"mothers_name");y(this,"mothers_maiden_name");y(this,"birthdate");y(this,"birth_time");y(this,"weight_kg");y(this,"joining_date");y(this,"joining_quarter");y(this,"joining_half");y(this,"joining_year");y(this,"joining_month");y(this,"joining_month_name");y(this,"joining_month_name_short");y(this,"joining_month_day");y(this,"joining_week_day");y(this,"joining_week_day_short");y(this,"years_of_service");y(this,"salary");y(this,"latest_hike_percentage");y(this,"ssn");y(this,"phone_number");y(this,"place_name");y(this,"county");y(this,"city");y(this,"state");y(this,"zip");y(this,"region");y(this,"username");y(this,"password");typeof n=="string"&&(n=JSON.parse(n)),this.emp_id=n.emp_id,this.name_prefix=n.name_prefix,this.first_name=n.first_name,this.middle_initial=n.middle_initial,this.last_name=n.last_name,this.gender=n.gender,this.email=n.email,this.fathers_name=n.fathers_name,this.mothers_name=n.mothers_name,this.mothers_maiden_name=n.mothers_maiden_name,this.birthdate=n.birthdate,this.birth_time=n.birth_time,this.weight_kg=n.weight_kg,this.joining_date=n.joining_date,this.joining_quarter=n.joining_quarter,this.joining_half=n.joining_half,this.joining_year=n.joining_year,this.joining_month=n.joining_month,this.joining_month_name=n.joining_month_name,this.joining_month_name_short=n.joining_month_name_short,this.joining_month_day=n.joining_month_day,this.joining_week_day=n.joining_week_day,this.joining_week_day_short=n.joining_week_day_short,this.years_of_service=n.years_of_service,this.salary=n.salary,this.latest_hike_percentage=n.latest_hike_percentage,this.ssn=n.ssn,this.phone_number=n.phone_number,this.place_name=n.place_name,this.county=n.county,this.city=n.city,this.state=n.state,this.zip=n.zip,this.region=n.region,this.username=n.username,this.password=n.password}static createFrom(n={}){return new e(n)}}t.Employee=e})(pe||(pe={}));function Be(t,e,l){const n=t.slice();return n[13]=e[l][0],n[14]=e[l][1],n}function Ge(t,e,l){const n=t.slice();return n[13]=e[l],n}function Pe(t,e,l){const n=t.slice();return n[13]=e[l],n}function $e(t){let e,l=t[13]+"",n,i;return{c(){e=v("option"),n=S(l),e.__value=i=t[13],e.value=e.__value},m(o,r){E(o,e,r),_(e,n)},p(o,r){r&2&&l!==(l=o[13]+"")&&P(n,l),r&2&&i!==(i=o[13])&&(e.__value=i,e.value=e.__value)},d(o){o&&O(e)}}}function Fe(t){let e,l=t[13]+"",n,i;return{c(){e=v("option"),n=S(l),e.__value=i=t[13],e.value=e.__value},m(o,r){E(o,e,r),_(e,n)},p(o,r){r&2&&l!==(l=o[13]+"")&&P(n,l),r&2&&i!==(i=o[13])&&(e.__value=i,e.value=e.__value)},d(o){o&&O(e)}}}function Ie(t){let e,l,n={ctx:t,current:null,token:null,hasCatch:!0,pending:Ct,then:Ot,catch:wt,value:12,error:17};return ie(l=t[5],n),{c(){e=v("section"),n.block.c()},m(i,o){E(i,e,o),n.block.m(e,n.anchor=null),n.mount=()=>e,n.anchor=null},p(i,o){t=i,n.ctx=t,o&32&&l!==(l=t[5])&&ie(l,n)||He(n,t,o)},d(i){i&&O(e),n.block.d(),n.token=null,n=null}}}function wt(t){let e,l=t[17]+"",n;return{c(){e=v("p"),n=S(l)},m(i,o){E(i,e,o),_(e,n)},p(i,o){o&32&&l!==(l=i[17]+"")&&P(n,l)},d(i){i&&O(e)}}}function Ot(t){let e,l,n,i,o,r,c,a,u,h,g=Object.entries(t[12]),p=[];for(let d=0;dt[7].call(c)),A(h,"for","on-column"),A(p,"name","on-column"),A(p,"id",""),t[3]===void 0&&x(()=>t[8].call(p)),A(m,"for","function"),L.__value="AVG",L.value=L.__value,N.__value="SUM",N.value=N.__value,A(j,"name","function"),A(j,"id",""),t[4]===void 0&&x(()=>t[9].call(j)),A(M,"type","button")},m(k,G){E(k,e,G),_(e,l),_(e,n),_(e,i),_(i,o),_(i,r),_(i,c);for(let w=0;wl(5,a=u()),m=()=>{l(0,n=!1)};return t.$$set=b=>{"isOpen"in b&&l(0,n=b.isOpen),"keys"in b&&l(1,i=b.keys)},[n,i,o,r,c,a,u,h,g,p,d,m]}class Rt extends ce{constructor(e){super(),ue(this,e,Nt,At,oe,{isOpen:0,keys:1})}}function Ue(t){let e,l,n,i,o,r,c,a,u,h=t[2]+1+"",g,p,d,m,b,j,L;function N(s){t[5](s)}function f(s){t[6](s)}let M={path:t[1]};return t[2]!==void 0&&(M.page=t[2]),t[0]!==void 0&&(M.limitReached=t[0]),e=new vt({props:M}),ne.push(()=>me(e,"page",N)),ne.push(()=>me(e,"limitReached",f)),{c(){ye(e.$$.fragment),i=R(),o=v("button"),r=S("Prev"),a=R(),u=v("span"),g=S(h),p=R(),d=v("button"),m=S("Next"),o.disabled=c=t[2]<1,d.disabled=t[0]},m(s,C){re(e,s,C),E(s,i,C),E(s,o,C),_(o,r),E(s,a,C),E(s,u,C),_(u,g),E(s,p,C),E(s,d,C),_(d,m),b=!0,j||(L=[F(o,"click",t[7]),F(d,"click",t[8])],j=!0)},p(s,C){const U={};C&2&&(U.path=s[1]),!l&&C&4&&(l=!0,U.page=s[2],ge(()=>l=!1)),!n&&C&1&&(n=!0,U.limitReached=s[0],ge(()=>n=!1)),e.$set(U),(!b||C&4&&c!==(c=s[2]<1))&&(o.disabled=c),(!b||C&4)&&h!==(h=s[2]+1+"")&&P(g,h),(!b||C&1)&&(d.disabled=s[0])},i(s){b||($(e.$$.fragment,s),b=!0)},o(s){T(e.$$.fragment,s),b=!1},d(s){se(e,s),s&&O(i),s&&O(o),s&&O(a),s&&O(u),s&&O(p),s&&O(d),j=!1,J(L)}}}function Mt(t){let e,l,n,i,o,r=t[1]&&Ue(t);function c(u){t[9](u)}let a={keys:t[4]};return t[3]!==void 0&&(a.isOpen=t[3]),n=new Rt({props:a}),ne.push(()=>me(n,"isOpen",c)),{c(){e=v("main"),r&&r.c(),l=R(),ye(n.$$.fragment)},m(u,h){E(u,e,h),r&&r.m(e,null),_(e,l),re(n,e,null),o=!0},p(u,[h]){u[1]?r?(r.p(u,h),h&2&&$(r,1)):(r=Ue(u),r.c(),$(r,1),r.m(e,l)):r&&(ve(),T(r,1,1,()=>{r=null}),ke());const g={};!i&&h&8&&(i=!0,g.isOpen=u[3],ge(()=>i=!1)),n.$set(g)},i(u){o||($(r),$(n.$$.fragment,u),o=!0)},o(u){T(r),T(n.$$.fragment,u),o=!1},d(u){u&&O(e),r&&r.d(),se(n)}}}function Lt(t,e,l){let n,i=0,o=!1,r;const c=Object.keys(new pe.Employee);ot(async()=>{_e("proto-opened",d=>{l(1,n=d)}),_e("csv-converted",d=>{console.log(d)}),_e("aggregation",()=>{l(3,o=!0)})});function a(d){i=d,l(2,i)}function u(d){r=d,l(0,r)}const h=()=>l(2,i--,i),g=()=>l(2,i++,i);function p(d){o=d,l(3,o)}return t.$$.update=()=>{t.$$.dirty&1&&console.log(r)},[r,n,i,o,c,a,u,h,g,p]}class St extends ce{constructor(e){super(),ue(this,e,Lt,Mt,oe,{})}}new St({target:document.getElementById("app")}); diff --git a/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 b/ex1/frontend/dist/assets/nunito-v16-latin-regular.06f3af3f.woff2 similarity index 100% rename from frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 rename to ex1/frontend/dist/assets/nunito-v16-latin-regular.06f3af3f.woff2 diff --git a/ex1/frontend/dist/index.html b/ex1/frontend/dist/index.html new file mode 100644 index 0000000..ab7edf2 --- /dev/null +++ b/ex1/frontend/dist/index.html @@ -0,0 +1,14 @@ + + + + + + bdooc + + + + +
+ + + diff --git a/frontend/index.html b/ex1/frontend/index.html similarity index 100% rename from frontend/index.html rename to ex1/frontend/index.html diff --git a/frontend/package-lock.json b/ex1/frontend/package-lock.json similarity index 100% rename from frontend/package-lock.json rename to ex1/frontend/package-lock.json diff --git a/frontend/package.json b/ex1/frontend/package.json similarity index 100% rename from frontend/package.json rename to ex1/frontend/package.json diff --git a/frontend/package.json.md5 b/ex1/frontend/package.json.md5 similarity index 100% rename from frontend/package.json.md5 rename to ex1/frontend/package.json.md5 diff --git a/frontend/src/Aggregation.svelte b/ex1/frontend/src/Aggregation.svelte similarity index 100% rename from frontend/src/Aggregation.svelte rename to ex1/frontend/src/Aggregation.svelte diff --git a/frontend/src/App.svelte b/ex1/frontend/src/App.svelte similarity index 100% rename from frontend/src/App.svelte rename to ex1/frontend/src/App.svelte diff --git a/frontend/src/Modal.svelte b/ex1/frontend/src/Modal.svelte similarity index 100% rename from frontend/src/Modal.svelte rename to ex1/frontend/src/Modal.svelte diff --git a/frontend/src/Table.svelte b/ex1/frontend/src/Table.svelte similarity index 100% rename from frontend/src/Table.svelte rename to ex1/frontend/src/Table.svelte diff --git a/frontend/src/assets/fonts/OFL.txt b/ex1/frontend/src/assets/fonts/OFL.txt similarity index 100% rename from frontend/src/assets/fonts/OFL.txt rename to ex1/frontend/src/assets/fonts/OFL.txt diff --git a/ex1/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 b/ex1/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2f9cc5964455b8f5ca989db989250dbebb1a5f66 GIT binary patch literal 18972 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