cleanup , header & logo
No files matched your search
@@ -1,42 +0,0 @@
|
||||
<article eiccard class="tile" primary>
|
||||
<header>
|
||||
<div class="cols-2">
|
||||
<div>
|
||||
<h1>${name}</h1>
|
||||
<h2><span eicchip ${(status=='submitted') ? 'warning' : ((status=='sent') ? 'success' : 'info')} xsmall data-trigger="onOneStatus" data-status="${status}">${statusLabel}</span></h2>
|
||||
</div>
|
||||
<div class="cols-1 right">
|
||||
<div eicdropdown >
|
||||
<button eicbutton xsmall rounded icon="icon-more"></button>
|
||||
<menu eicmenu small>
|
||||
<li menuitem data-trigger="onRecipientsList"><a href="#" data-id="${mid}">Recipients list (CSV)</a></li>
|
||||
<li menuitem data-trigger="onBouncesList"><a href="#" data-id="${mid}">Bounces list (CSV)</a></li>
|
||||
</menu>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<section>
|
||||
<div class="path">${pathChips}</div>
|
||||
<div eicalert muted info xsmall>
|
||||
Updated: <b>${lastUpdate}</b><br>
|
||||
by <b>${lastContributor}</b>
|
||||
</div>
|
||||
<article eiccard>
|
||||
<section>
|
||||
<div eicpiechart></div>
|
||||
<div class="cols-4">
|
||||
<div class="center"><span xlarge><b>${kpis.nbRecipients ? kpis.nbRecipients.toLocaleString('fr-FR') : 0}</b></span><label primary xsmall>recipients</label></div>
|
||||
<div class="center"><span xlarge secondary><b>${ (typeof(kpis.nbPending)=='number') ? kpis.nbPending.toLocaleString('fr-FR') : kpis.nbPending }</b></span><label secondary xsmall>pending</label></div>
|
||||
<div class="center"><span xlarge danger><b>${ (typeof(kpis.nbBounced)=='number') ? kpis.nbBounced.toLocaleString('fr-FR') : kpis.nbBounced }</b></span><label danger xsmall>bounced</label></div>
|
||||
<div class="center"><span xlarge success><b>${ (typeof(kpis.nbReached)=='number') ? kpis.nbReached.toLocaleString('fr-FR') : kpis.nbReached }</b></span><label success xsmall>reached</label></div>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-1 right">
|
||||
<button eicbutton xsmall primary data-trigger="onMailingSelect" data-id="${mid}">Open</button>
|
||||
</div>
|
||||
</footer>
|
||||
</article>
|
||||
|
Before Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 99 KiB |
|
Before Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 222 KiB |
|
Before Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 100 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 314 KiB |
|
Before Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 72 KiB |
@@ -1,466 +0,0 @@
|
||||
<svg
|
||||
width="290"
|
||||
height="72"
|
||||
viewBox="0 0 290 72"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M0 24.5C0 24.5 39.8 19.3 41 19.1C42.7 18.8 44.3 18.5 45.7 18.1C48.9 17.2 51.9 15.9 54.5 14.1C57 12.4 59.4 9.9 61.7 7.2C63.2 5.5 64.7 3.2 66.2 1V0C64.5 2.6 62.8 4.8 61.1 6.7C58.8 9.3 56.4 11.4 53.9 13C51.4 14.6 48.5 15.9 45.4 16.7C44 17.1 42.5 17.3 40.8 17.6C39.7 17.8 38.6 17.9 37.5 18C37 18 0 21.9 0 21.9V24.5Z"
|
||||
fill="white"
|
||||
/>
|
||||
<mask
|
||||
id="mask0"
|
||||
style="mask-type:alpha"
|
||||
maskUnits="userSpaceOnUse"
|
||||
x="0"
|
||||
y="5"
|
||||
width="67"
|
||||
height="23"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M0 5.1998H66.0999V27.9998H0V5.1998Z"
|
||||
fill="white"
|
||||
/>
|
||||
</mask>
|
||||
<g mask="url(#mask0)">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M53.4 17.7998C50.9 19.1998 48 20.2998 44.8 20.8998C43.4 21.1998 42 21.3998 40.3 21.5998C39.3 21.6998 38.3 21.7998 37.3 21.8998C36.8 21.8998 36.2 21.9998 35.7 21.9998C23.5 23.1998 11.4 24.2998 0 25.3998V27.9998C11.4 26.5998 23.7 25.0998 35.9 23.6998C36.4 23.5998 37 23.5998 37.5 23.4998C38.5 23.3998 39.5 23.2998 40.5 23.0998C42.2 22.8998 43.8 22.5998 45.1 22.2998C48.4 21.5998 51.4 20.3998 54 18.7998C56.6 17.1998 58.8 15.0998 61.3 12.3998C62.8 10.6998 64.5 8.3998 66.1 6.1998V5.1998C64.2 7.6998 62.5 9.8998 60.7 11.6998C58.3 14.3998 55.9 16.3998 53.4 17.7998"
|
||||
fill="white"
|
||||
/>
|
||||
</g>
|
||||
<mask
|
||||
id="mask1"
|
||||
style="mask-type:alpha"
|
||||
maskUnits="userSpaceOnUse"
|
||||
x="0"
|
||||
y="10"
|
||||
width="67"
|
||||
height="22"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M0 10.9002H66.0999V31.5002H0V10.9002Z"
|
||||
fill="white"
|
||||
/>
|
||||
</mask>
|
||||
<g mask="url(#mask1)">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M60.4 17.2002C58 19.4002 55.4 21.2002 52.9 22.5002C50.4 23.7002 47.6 24.6002 44.3 25.1002C42.9 25.3002 41.5 25.5002 39.8 25.7002L0 28.9002V31.5002L35.3 27.7002L39.9 27.2002C41.6 27.0002 43.1 26.8002 44.5 26.5002C47.9 25.9002 50.8 24.9002 53.4 23.6002C56.1 22.2002 58.7 20.0002 61.2 17.6002C62.9 16.0002 64.4 13.9002 66.1 11.8002V10.9002C64.1 13.4002 62.3 15.4002 60.4 17.2002"
|
||||
fill="white"
|
||||
/>
|
||||
</g>
|
||||
<mask
|
||||
id="mask2"
|
||||
style="mask-type:alpha"
|
||||
maskUnits="userSpaceOnUse"
|
||||
x="0"
|
||||
y="21"
|
||||
width="67"
|
||||
height="18"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M0 21.7H66.1998V38.5H0V21.7Z"
|
||||
fill="white"
|
||||
/>
|
||||
</mask>
|
||||
<g mask="url(#mask2)">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M50.8 30.6C48.5 31.9 46.8 32.7 43.5 33C41.5 33.2 39.5 33.3 37.5 33.4C36.5 33.4 35.6 33.5 34.6 33.6C28.6 33.9 22.7 34.3 16.7 34.7L0 35.9V38.5L16.8 36.9C22.2 36.4 28.5 35.8 34.7 35.3L39.2 35C40.9 34.9 42.4 34.7 43.7 34.5C47.1 34.1 50 33.4 52.6 32.4C55.4 31.4 58 29.7 60.6 27.8C63 26.1 66.2 22.7 66.2 22.6V21.7C64.1 23.8 62.8 25 60.5 26.5C57.6 28.5 52.9 29.5 50.8 30.6"
|
||||
fill="white"
|
||||
/>
|
||||
</g>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M51.6006 35.6001C49.1006 36.3001 46.3006 36.8001 43.0006 37.1001C41.7006 37.2001 40.2006 37.3001 38.6006 37.4001L34.2006 37.6001C23.2006 38.1001 12.2006 38.7001 0.100586 39.3001V41.9001C11.7006 41.0001 23.0006 40.1001 34.4006 39.3001L38.8006 39.0001C40.5006 38.9001 41.9006 38.8001 43.3006 38.6001C46.7006 38.2001 49.6006 37.6001 52.1006 36.8001C54.9006 35.9001 57.7006 34.6001 60.3006 32.9001C62.2006 31.7001 64.2006 30.2001 66.2006 28.4001C64.0006 30.3001 61.9006 30.7001 59.8006 32.0001C57.1006 33.6001 54.4006 34.8001 51.6006 35.6001"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M51.2 39.9004C48.7 40.5004 45.9 40.9004 42.6 41.0994C41.3 41.2004 39.9 41.2994 38.2 41.2994L33.8 41.5004C22.7 41.9004 11.5 42.4004 0 42.9004V45.5004C11.4 44.7004 22.6 44.0004 33.9 43.2004L38.3 42.9004C40 42.7994 41.4 42.7004 42.7 42.5994C46.1 42.2994 48.9 41.7994 51.5 41.0994C54.4 40.2994 57.2 39.2004 59.9 37.7994C62 36.7004 64 35.4004 66.1 33.7994V32.7004C63.8 34.4004 61.6 35.7004 59.4 36.7994C56.8 38.2004 54 39.2004 51.2 39.9004"
|
||||
fill="white"
|
||||
/>
|
||||
<mask
|
||||
id="mask3"
|
||||
style="mask-type:alpha"
|
||||
maskUnits="userSpaceOnUse"
|
||||
x="0"
|
||||
y="38"
|
||||
width="67"
|
||||
height="11"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M0 38.2006H66.1998V48.7996H0V38.2006Z"
|
||||
fill="white"
|
||||
/>
|
||||
</mask>
|
||||
<g mask="url(#mask3)">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M50.8 44.0996C48.3 44.5996 45.5 44.9006 42.2 44.9996C40.9 45.0996 39.6 45.0996 37.9 45.2006L0 46.2006V48.7996L33.6 46.9996L38 46.7996C39.7 46.7006 41.1 46.5996 42.4 46.4996C45.8 46.2006 48.5 45.9006 51.1 45.2996C54 44.7006 56.9 43.7996 59.6 42.5996C61.8 41.7006 63.9 40.5996 66.2 39.2006V38.2006C63.8 39.5996 61.5 40.7006 59.2 41.5996C56.5 42.7996 53.7 43.5996 50.8 44.0996"
|
||||
fill="white"
|
||||
/>
|
||||
</g>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M50.5 48.2998C45.8 48.9008 41.1 48.9998 36.4 49.0998C35.3 49.0998 34.3 49.0998 33.2 49.1998L0 49.7998V52.4008L33.3 50.9998C34.4 50.9998 35.4 50.9008 36.5 50.9008C41.2 50.6998 46 50.4998 50.7 49.7998C53.7 49.2998 56.6 48.5998 59.2 47.6998C61.4 46.9998 63.7 45.9998 66 44.7998V43.7998C63.6 44.9008 61.1 45.9008 58.8 46.5998C56.3 47.2998 53.5 47.9998 50.5 48.2998"
|
||||
fill="white"
|
||||
/>
|
||||
<mask
|
||||
id="mask4"
|
||||
style="mask-type:alpha"
|
||||
maskUnits="userSpaceOnUse"
|
||||
x="0"
|
||||
y="49"
|
||||
width="67"
|
||||
height="7"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M0 49.2006H66.1998V55.7996H0V49.2006Z"
|
||||
fill="white"
|
||||
/>
|
||||
</mask>
|
||||
<g mask="url(#mask4)">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M50.3 52.5996C45.9 52.9996 41.5 52.9996 37.1 52.9996H33.1C22.1 52.9996 11.1 53.0996 0 53.2006V55.7996C10.6 55.4006 21.9 55.0996 33.2 54.7006C34.5 54.7006 35.9 54.5996 37.2 54.5996C41.5 54.4996 46 54.4006 50.4 53.9006C53.5 53.5996 56.3 53.0996 59 52.4006C61.3 51.7996 63.7 50.9996 66.2 50.0996V49.2006C63.7 50.0996 61.2 50.7996 58.8 51.4006C56.1 51.9996 53.3 52.4006 50.3 52.5996"
|
||||
fill="white"
|
||||
/>
|
||||
</g>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M50.1 56.7998C48.3 56.9008 46.3 56.9008 44.1 56.9008H41.6L33 56.7998C27.1 56.7998 21.3 56.6998 15.8 56.6998L0 56.7998V59.4008L15.9 58.9998C21.4 58.9008 27.2 58.6998 33 58.5998L41.6 58.4998C44 58.4998 47.1 58.4008 50.2 58.1998C53.3 57.9998 56.1 57.6998 58.8 57.2998C61.2 56.9008 63.7 56.4008 66.2 55.7998V54.9008C63.7 55.4998 61.1 55.9998 58.7 56.2998C55.9 56.4998 53.2 56.6998 50.1 56.7998"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M41.5 60.9004L32.9 60.7994C22 60.5994 11.1 60.4004 0 60.2004V62.7994C10.6 62.7004 21.8 62.5994 32.9 62.5004L41.5 62.4004C44.4 62.4004 47.2 62.2994 50.1 62.2004C56 62.0004 61.2 61.5994 66.2 60.9004V60.0004C61.3 60.5004 56 60.7994 50.1 60.9004H41.5"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M66.1 65.5L0 63.8V66.4H66.1V65.5Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M60.2 22C57.7 24 55.7 25.5 52.7 26.7C50 27.8 47.1 28.2 43.9 28.7C41.8 29 39.6 29.4 37.5 29.6C36.6 29.7 35.8 29.7 34.9 29.8L0 32.3V34.9L34.9 31.5L39.4 31.1C41.1 30.9 42.6 30.8 44 30.5C47.4 30 50.3 29.1 52.9 27.9C55.6 26.7 58.4 24.7 60.9 22.6C62.6 21.1 64.3 19.3 66.1 17.3V16.4C63.9 18.6 62.1 20.5 60.2 22"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M94.2002 0C94.2002 0 106.1 18.9 108.3 22.4C110.5 25.9 113 28.6 121.8 30.5C130.6 32.4 134.4 33.2 134.4 33.2V33.9C134.4 33.9 128.8 32.7 121.6 31.1C114.4 29.5 111.5 29 108.2 24.4C105.5 20.6 94.2002 4.5 94.2002 4.5V0Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M94.2002 21.6001C94.2002 21.6001 105 32.9001 108.2 36.2001C111.5 39.7001 115.8 40.9001 121.7 42.0001C127.3 43.0001 134.4 44.2001 134.4 44.2001V44.8001C134.4 44.8001 127.7 43.7001 121.7 42.7001C115.8 41.7001 111.6 41.1001 108.2 38.0001C105.2 35.2001 94.3002 25.0001 94.3002 25.0001L94.2002 21.6001Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M94.2002 26.7998C94.2002 26.7998 104.5 36.3998 108.2 39.5998C111.6 42.5998 114.3 43.4998 121.7 44.9008C129.1 46.1998 134.4 46.9998 134.4 46.9998V47.6998C134.4 47.6998 127.7 46.5998 121.7 45.5998C115.7 44.5998 111.8 44.2998 108.2 41.2998C104 37.9008 94.2002 29.8998 94.2002 29.8998V26.7998Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M94.2002 32.2002C94.2002 32.2002 106 41.5002 108.2 43.2002C110.4 44.8002 113.3 46.7002 121.7 48.0002C130.1 49.2002 134.4 49.8002 134.4 49.8002V50.5002C134.4 50.5002 126.8 49.4002 121.7 48.8002C116.6 48.2002 112.7 47.9002 108.2 44.9002C103.8 42.0002 94.2002 35.2002 94.2002 35.2002V32.2002Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M94.2002 37.4004C94.2002 37.4004 106 45.2994 108.2 46.5004C110.4 47.7004 113.1 49.7994 121.7 50.9004C130.3 52.0004 134.4 52.5004 134.4 52.5004V53.2004C134.4 53.2004 127.3 52.4004 121.7 51.7994C116.1 51.2004 112.3 50.4004 108.2 48.0994C104.1 45.7994 94.2002 40.0994 94.2002 40.0994V37.4004Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M94.2002 42.7002C94.2002 42.7002 104.6 48.4002 108.2 50.0992C112.1 52.0992 115.5 53.0002 121.7 53.8002C127.8 54.5002 134.4 55.2002 134.4 55.2002V55.8002C134.4 55.8002 128.3 55.0992 121.7 54.5002C115.2 53.9002 112.9 53.5992 108.2 51.5002C104 49.5992 94.2002 45.0992 94.2002 45.0992V42.7002Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M94.2006 48C94.2006 48 102.401 51.5 108.201 53.8C113.901 56.1 118.201 56.3 121.701 56.6C123.201 56.8 134.301 57.9 134.301 57.9V58.5C134.301 58.5 127.701 58 121.601 57.4C115.601 56.9 113.001 56.6 108.101 55C103.201 53.4 94.1006 50.2 94.1006 50.2L94.2006 48Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M94.2002 53.4004C94.2002 53.4004 102.5 56.0004 108.2 57.5004C113.9 59.0004 119.1 59.5994 121.7 59.7994C124.3 60.0004 134.4 60.7994 134.4 60.7994V61.4004C134.4 61.4004 128.7 61.0004 121.7 60.5004C116 60.0994 111.5 59.7004 108.2 58.9004C104.5 58.0994 94.2002 55.5994 94.2002 55.5994V53.4004Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M94.2002 58.7002C94.2002 58.7002 101 59.9002 108.2 61.0992C113.6 62.0002 120.9 62.5992 121.7 62.5992C122.5 62.5992 134.4 63.5002 134.4 63.5002V64.0992C134.4 64.0992 126.8 63.7002 121.7 63.4002C116.4 63.0992 111.2 62.8002 108.2 62.5002C101.5 61.8002 94.2002 60.9002 94.2002 60.9002V58.7002Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M94.2002 64.2998C94.2002 64.2998 104.9 64.6998 108.2 64.7998C111.5 64.9008 134.4 65.7998 134.4 65.7998V66.4008H94.2002V64.2998Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M121.7 33.3999C112 31.2999 109.8 27.7999 108.2 25.5999C106.6 23.3999 94.2998 5.3999 94.2998 5.3999V9.4999C94.7998 10.0999 105.3 23.8999 108.3 27.6999C111.6 31.9999 116.8 32.9999 121.8 33.9999C126.8 35.0999 134.5 36.5999 134.5 36.5999V35.9999C134.4 35.9999 124.2 33.9999 121.7 33.3999"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M121.7 36.2998C113.7 34.6998 110.5 32.1998 108.2 29.1998C105.9 26.0998 94.2998 10.8998 94.2998 10.8998V14.6998C94.7998 15.2998 105.4 27.7998 108.2 31.0998C111.5 34.8998 116.1 35.8998 121.7 36.8998C127.3 37.9008 134.4 39.2998 134.4 39.2998V38.6998C134.4 38.6998 126.3 37.1998 121.7 36.2998"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M121.7 39.2002C113.4 37.5992 111.7 36.3002 108.2 32.4002C106 30.0002 94.7002 16.7002 94.2002 16.1002V19.6002C94.2002 19.6002 104.7 30.8002 108.1 34.2002C112.5 38.5992 116.7 38.9002 121.6 39.8002C126.5 40.7002 134.3 42.0992 134.3 42.0992V41.5002C134.4 41.5002 125 39.9002 121.7 39.2002"
|
||||
fill="white"
|
||||
/>
|
||||
<mask
|
||||
id="mask5"
|
||||
style="mask-type:alpha"
|
||||
maskUnits="userSpaceOnUse"
|
||||
x="0"
|
||||
y="0"
|
||||
width="258"
|
||||
height="67"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M0 66.7H257.5V0H0V66.7Z"
|
||||
fill="white"
|
||||
/>
|
||||
</mask>
|
||||
<g mask="url(#mask5)">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M27.5 66.3H85.4V27.6H27.5V66.3Z"
|
||||
fill="#004494"
|
||||
stroke="white"
|
||||
stroke-width="2"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M57.1004 33.1001H59.1004L57.5004 34.4001L58.1004 36.4001L56.5004 35.2001L54.9004 36.4001L55.5004 34.4001L53.9004 33.1001H55.9004L56.5004 31.1001L57.1004 33.1001Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M57.1004 58.9004H59.1004L57.5004 60.0994L58.1004 62.0004L56.5004 60.7994L54.9004 62.0004L55.5004 60.0994L53.9004 58.9004H55.9004L56.5004 57.0004L57.1004 58.9004Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M63.4998 57.2002H65.4998L63.8998 58.4002L64.4998 60.3002L62.8998 59.0992L61.2998 60.3002L61.8998 58.4002L60.2998 57.2002H62.2998L62.8998 55.3002L63.4998 57.2002Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M63.5004 34.7998H65.5004L63.9004 35.9998L64.5004 37.9008L62.9004 36.6998L61.3004 37.9998L62.0004 35.9998L60.4004 34.7998H62.4004L63.0004 32.8998L63.5004 34.7998Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M68.2996 39.5996H70.2996L68.6996 40.7996L69.2996 42.7006L67.6996 41.4996L66.0996 42.7006L66.6996 40.7996L65.0996 39.5996H67.0996L67.6996 37.7006L68.2996 39.5996Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M68.2996 52.5996H70.2996L68.6996 53.7996L69.2996 55.7006L67.6996 54.4996L66.0996 55.7006L66.6996 53.7996L65.0996 52.5996H67.0996L67.6996 50.7006L68.2996 52.5996Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M70.0998 46H72.0998L70.4998 47.2L71.0998 49.1L69.4998 47.9L67.8998 49.1L68.4998 47.2L66.7998 46H68.7998L69.3998 44.1L70.0998 46Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M50.4998 34.7998H52.4998L50.8998 35.9998L51.4998 37.9008L49.9998 36.7998L48.2998 37.9998L48.8998 36.0998L47.2998 34.8998H49.2998L49.9998 32.9998L50.4998 34.7998Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M45.9002 39.5996H47.9002L46.3002 40.7996L46.9002 42.7006L45.3002 41.4996L43.7002 42.7006L44.3002 40.7996L42.7002 39.5996H44.7002L45.3002 37.7006L45.9002 39.5996Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M44.2 46H46.2L44.6 47.2L45.2 49.1L43.6 47.9L42 49.1L42.6 47.2L41 46H43L43.6 44.1L44.2 46Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M45.9002 52.5996H47.9002L46.3002 53.7996L46.9002 55.7006L45.3002 54.4996L43.7002 55.7006L44.3002 53.7996L42.7002 52.5996H44.7002L45.3002 50.7006L45.9002 52.5996Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M50.6004 57.2998H52.6004L51.0004 58.4998L51.6004 60.4008L50.0004 59.1998L48.4004 60.4008L49.0004 58.4998L47.4004 57.2998H49.4004L50.0004 55.4008L50.6004 57.2998Z"
|
||||
fill="#FFF100"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M143.4 33.1001C143.4 32.8001 143.5 32.7001 143.8 32.7001H151.2C151.5 32.7001 151.6 32.8001 151.6 33.1001V34.3001C151.6 34.5001 151.5 34.7001 151.2 34.7001H145.7V38.2001H150.6C150.9 38.2001 151 38.3001 151 38.6001V39.8001C151 40.0001 150.9 40.2001 150.6 40.2001H145.7V44.2001H151.3C151.5 44.2001 151.7 44.3001 151.7 44.6001V45.8001C151.7 46.0001 151.6 46.2001 151.3 46.2001H143.8C143.5 46.2001 143.4 46.1001 143.4 45.8001V33.1001Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M161.8 46.0996H160.401C160.3 46.0996 160.2 46.0996 160.1 45.9996C160 45.9006 160 45.7996 160 45.7006V44.9996C159.8 45.0996 159.6 45.2996 159.3 45.4006C159 45.4996 158.8 45.7006 158.5 45.7996C158.2 45.9006 157.901 45.9996 157.6 46.0996C157.3 46.2006 157 46.2006 156.7 46.2006C156 46.2006 155.5 46.0996 155.1 45.9006C154.7 45.7006 154.401 45.4996 154.2 45.0996C154 44.7996 153.901 44.4006 153.8 43.9006C153.7 43.4006 153.7 42.9996 153.7 42.4006V36.4996C153.7 36.2006 153.8 36.0996 154.1 36.0996H155.6C155.8 36.0996 156 36.2006 156 36.4996V42.0996C156 42.4006 156 42.7006 156.1 42.9006C156.1 43.0996 156.2 43.2996 156.3 43.4996C156.401 43.7006 156.6 43.7996 156.7 43.9006C156.8 43.9996 157.1 43.9996 157.401 43.9996C157.6 43.9996 157.8 43.9996 158.1 43.9006C158.401 43.7996 158.6 43.7006 158.901 43.5996C159.2 43.4996 159.401 43.4006 159.6 43.2996C159.8 43.2006 160 43.0996 160.1 42.9996V36.2996C160.1 36.2006 160.1 36.0996 160.2 35.9996C160.3 35.8996 160.401 35.8996 160.5 35.8996H161.901C162.2 35.8996 162.3 35.9996 162.3 36.2996V45.4006C162.2 45.9006 162.1 46.0996 161.8 46.0996"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M166.901 45.7002C166.901 46.0002 166.8 46.0992 166.501 46.0992H165.001C164.701 46.0992 164.6 46.0002 164.6 45.7002V36.6002C164.6 36.3002 164.701 36.2002 165.001 36.2002H166.401C166.701 36.2002 166.8 36.3002 166.8 36.6002V37.5002C166.901 37.4002 167.1 37.2002 167.401 37.0992C167.6 36.9002 167.901 36.8002 168.201 36.7002C168.501 36.6002 168.8 36.5002 169.001 36.3002C169.3 36.2002 169.501 36.1002 169.8 36.1002H170.1C170.201 36.1002 170.201 36.2002 170.3 36.4002L170.401 37.7002V38.0002C170.401 38.0992 170.3 38.0992 170.001 38.2002C169.701 38.3002 169.401 38.3002 169.1 38.4002C168.8 38.5002 168.501 38.5992 168.201 38.5992C167.901 38.7002 167.6 38.8002 167.401 38.9002C167.1 39.0002 166.901 39.0992 166.8 39.0992L166.901 45.7002Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M177.9 41.0996C177.9 40.5996 177.9 40.0996 177.799 39.7006C177.7 39.2996 177.599 38.9996 177.5 38.7006C177.299 38.4006 177.099 38.2006 176.799 38.0996C176.5 37.9996 176.2 37.9006 175.7 37.9006C175.299 37.9006 174.9 37.9996 174.7 38.0996C174.5 38.2006 174.2 38.4006 174.099 38.7006C173.9 38.9996 173.799 39.2996 173.799 39.7006C173.7 40.0996 173.7 40.5996 173.7 41.0996C173.7 41.5996 173.7 42.0996 173.799 42.4996C173.9 42.9006 174 43.2006 174.099 43.4996C174.2 43.7996 174.5 43.9996 174.7 44.0996C174.9 44.2006 175.299 44.2996 175.7 44.2996C176.2 44.2996 176.5 44.2006 176.799 44.0996C177.099 43.9996 177.299 43.7996 177.5 43.4996C177.7 43.2006 177.799 42.9006 177.799 42.4996C177.9 42.0996 177.9 41.7006 177.9 41.0996M180.2 40.9996C180.2 41.5996 180.2 42.2006 180.099 42.7996C180 43.4006 179.799 43.9996 179.5 44.4996C179.2 44.9996 178.799 45.4006 178.2 45.7996C177.599 46.0996 176.799 46.2996 175.799 46.2996C174.799 46.2996 174 46.0996 173.4 45.7996C172.799 45.4996 172.4 45.0996 172.099 44.4996C171.799 43.9996 171.599 43.4006 171.599 42.7996C171.5 42.2006 171.5 41.5996 171.5 40.9996C171.5 40.4996 171.5 39.9996 171.599 39.4006C171.7 38.7996 171.9 38.2996 172.2 37.7996C172.5 37.2996 172.9 36.8996 173.5 36.4996C174.099 36.2006 174.799 35.9996 175.799 35.9996C176.799 35.9996 177.599 36.0996 178.099 36.3996C178.7 36.7006 179.099 37.0996 179.4 37.5996C179.7 38.0996 179.9 38.5996 180 39.2006C180.099 39.7996 180.2 40.4006 180.2 40.9996"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M188.5 41.0996C188.5 40.4996 188.5 39.9006 188.4 39.5996C188.3 39.2996 188.2 38.9006 188.1 38.7006C188 38.4996 187.8 38.2996 187.6 38.2996C187.4 38.2006 187.2 38.2006 186.9 38.2006C186.7 38.2006 186.5 38.2006 186.2 38.2996C185.9 38.4006 185.7 38.4006 185.4 38.4996C185.2 38.5996 184.9 38.7006 184.7 38.7996C184.5 38.9006 184.3 38.9996 184.1 39.0996V44.0996C184.6 44.2006 185 44.2996 185.3 44.4006C185.6 44.4996 186 44.4996 186.4 44.4996C186.8 44.4996 187.1 44.4006 187.3 44.2996C187.5 44.2006 187.7 43.9996 187.9 43.7996C188.1 43.4996 188.2 43.2006 188.2 42.7996C188.5 42.2006 188.5 41.7006 188.5 41.0996M190.8 41.0996C190.8 41.9006 190.7 42.5996 190.6 43.2996C190.5 43.9006 190.3 44.4996 190 44.9006C189.7 45.2996 189.3 45.7006 188.8 45.9006C188.3 46.0996 187.6 46.2006 186.8 46.2006C186.5 46.2006 186.1 46.2006 185.6 46.0996C185.2 45.9996 184.7 45.9006 184.2 45.7996V49.2996C184.2 49.4006 184.2 49.4996 184.1 49.5996C184 49.7006 183.9 49.7006 183.8 49.7006H182.4C182.2 49.7006 182.1 49.7006 182.1 49.5996C182.1 49.4996 182 49.4006 182 49.2996V36.5996C182 36.2996 182.1 36.2006 182.4 36.2006H183.8C183.9 36.2006 184 36.2006 184.1 36.2996C184.2 36.3996 184.2 36.4996 184.2 36.5996V37.2006H184.3C184.5 37.0996 184.7 36.9996 184.9 36.7996C185.1 36.7006 185.4 36.4996 185.7 36.3996C186 36.2996 186.3 36.2006 186.6 36.0996C186.9 35.9996 187.2 35.9996 187.5 35.9996C188.2 35.9996 188.7 36.0996 189.1 36.3996C189.5 36.5996 189.9 36.9996 190.1 37.4006C190.3 37.7996 190.5 38.4006 190.6 38.9996C190.8 39.5996 190.8 40.2996 190.8 41.0996"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M196.701 37.7998C196.301 37.7998 196.001 37.9008 195.801 37.9998C195.6 38.0998 195.401 38.2998 195.201 38.4998C195.001 38.6998 194.901 38.9998 194.901 39.2998C194.801 39.5998 194.801 39.9008 194.801 40.2998H198.801C198.801 39.9998 198.801 39.6998 198.701 39.4008C198.6 39.0998 198.501 38.9008 198.401 38.5998C198.301 38.2998 198.1 38.1998 197.801 38.0998C197.401 37.9008 197.1 37.7998 196.701 37.7998V37.7998ZM194.701 41.6998C194.701 42.1998 194.801 42.5998 194.901 42.9998C195.001 43.2998 195.201 43.5998 195.401 43.7998C195.6 43.9998 195.801 44.0998 196.1 44.1998C196.401 44.2998 196.701 44.2998 197.201 44.2998C197.6 44.2998 198.001 44.2998 198.501 44.1998C199.001 44.0998 199.401 44.0998 199.801 44.0998H200.201C200.301 44.0998 200.301 44.1998 200.401 44.4008L200.501 45.0998V45.4998C200.501 45.5998 200.401 45.6998 200.201 45.7998C200.001 45.9008 199.801 45.9998 199.501 45.9998C199.201 45.9998 199.001 46.0998 198.701 46.1998C198.401 46.2998 198.1 46.2998 197.801 46.2998H197.001C196.001 46.2998 195.301 46.1998 194.701 45.9008C194.1 45.5998 193.701 45.1998 193.401 44.7998C193.1 44.2998 192.901 43.7998 192.801 43.1998C192.701 42.5998 192.6 41.9998 192.6 41.2998C192.6 40.7998 192.6 40.2998 192.701 39.6998C192.801 39.0998 193.001 38.4998 193.301 37.9998C193.6 37.4998 194.001 36.9998 194.6 36.6998C195.201 36.2998 195.901 36.1998 196.901 36.1998C197.801 36.1998 198.501 36.2998 199.1 36.5998C199.701 36.8998 200.1 37.1998 200.401 37.5998C200.701 37.9998 200.901 38.4998 201.001 38.9998C201.1 39.4998 201.201 40.0998 201.201 40.5998C201.201 40.9998 201.201 41.2998 201.001 41.4998C200.801 41.6998 200.6 41.7998 200.201 41.7998H194.701V41.6998Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M208.9 41.5996H206.5C206 41.5996 205.599 41.7006 205.299 41.9996C205 42.2006 204.9 42.7006 204.9 43.2996C204.9 43.7006 205 43.9996 205.2 44.2006C205.4 44.4006 205.7 44.4996 206.2 44.4996C206.4 44.4996 206.599 44.4996 206.9 44.4006C207.2 44.2996 207.4 44.2996 207.7 44.2006C208 44.0996 208.2 43.9996 208.4 43.9006C208.599 43.7996 208.9 43.7006 209 43.5996V41.5996H208.9ZM209 44.9006C208.5 45.2996 207.9 45.5996 207.299 45.7996C206.7 45.9996 206 46.2006 205.299 46.2006C204.799 46.2006 204.299 46.0996 204 45.9996C203.599 45.9006 203.4 45.7006 203.2 45.4006C203 45.2006 202.799 44.9006 202.799 44.4996C202.7 44.2006 202.7 43.7996 202.7 43.2996C202.7 42.0996 203 41.2996 203.599 40.7006C204.2 40.2006 205.2 39.9006 206.4 39.9006H209V39.4006C209 39.0996 209 38.9006 208.9 38.5996C208.799 38.4006 208.7 38.2006 208.599 38.0996C208.4 37.9996 208.2 37.9006 208 37.7996C207.7 37.7006 207.4 37.7006 207 37.7006H206.4H205.7C205.5 37.7006 205.2 37.7006 205 37.7996C204.799 37.7996 204.5 37.7996 204.299 37.9006H203.9C203.799 37.9006 203.799 37.7996 203.7 37.5996L203.5 36.8996V36.5996C203.599 36.4996 203.7 36.3996 203.9 36.2996C204.099 36.2006 204.4 36.2006 204.7 36.0996C205 35.9996 205.299 35.9996 205.599 35.9996C205.9 35.9996 206.2 35.8996 206.5 35.8996H207.299C208.2 35.8996 208.9 35.9996 209.4 36.2006C209.9 36.3996 210.299 36.5996 210.599 36.8996C210.9 37.2006 211 37.5996 211.099 38.0996C211.2 38.5996 211.2 39.0996 211.2 39.5996V43.4996V43.9996C211.2 44.0996 211.299 44.2006 211.299 44.2996C211.299 44.4006 211.4 44.4006 211.5 44.4006C211.599 44.4006 211.7 44.4006 211.9 44.4996C212 44.4996 212.099 44.4996 212.2 44.5996C212.299 44.5996 212.299 44.7006 212.299 44.7996V45.5996C212.299 45.7996 212.099 45.9996 211.799 45.9996C211.599 45.9996 211.5 45.9996 211.299 46.0996H210.799C210.299 46.0996 210 45.9996 209.7 45.7996C209.299 45.7006 209.099 45.4006 209 44.9006V44.9006Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M222.1 46C222 46.1 221.901 46.1 221.8 46.1H220.3C220 46.1 219.901 46 219.901 45.7V40.1C219.901 39.5 219.8 39 219.6 38.7C219.401 38.3 219 38.2 218.401 38.2C218.201 38.2 218 38.2 217.701 38.3C217.401 38.4 217.201 38.5 216.901 38.6C216.6 38.7 216.401 38.8 216.201 38.9C216 39 215.8 39.1 215.701 39.2V45.9C215.701 46.2 215.6 46.3 215.3 46.3H213.901C213.6 46.3 213.5 46.2 213.5 45.9V36.8C213.5 36.5 213.6 36.4 213.901 36.4H215.3C215.6 36.4 215.701 36.5 215.701 36.8V37.4C215.901 37.3 216.1 37.1 216.401 37C216.701 36.9 216.901 36.7 217.201 36.6L218.1 36.3C218.401 36.2 218.701 36.2 219 36.2C219.701 36.2 220.201 36.3 220.6 36.5C221 36.7 221.3 37 221.5 37.3C221.701 37.6 221.8 38.1 221.901 38.5C222 39 222 39.4 222 40V45.8C222.1 45.8 222.1 45.9 222.1 46"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M143.2 59.7998C143.2 58.9008 143.3 58.0998 143.4 57.2998C143.5 56.4998 143.8 55.6998 144.2 55.0998C144.6 54.4998 145.1 53.9008 145.8 53.4998C146.5 53.0998 147.4 52.9008 148.599 52.9008H149.4C149.7 52.9008 150 52.9998 150.4 52.9998C150.7 52.9998 151.099 53.0998 151.4 53.1998C151.7 53.2998 152 53.4008 152.3 53.4998C152.5 53.5998 152.599 53.5998 152.599 53.6998C152.599 53.7998 152.7 53.9008 152.7 54.0998L152.5 54.9008C152.5 54.9998 152.4 55.0998 152.4 55.1998C152.3 55.2998 152.2 55.2998 152 55.1998C151.5 55.0998 151 55.0998 150.4 54.9998C149.8 54.9008 149.3 54.9008 148.8 54.9008C148.099 54.9008 147.599 54.9998 147.2 55.2998C146.8 55.5998 146.5 55.9008 146.2 56.2998C146 56.6998 145.8 57.2998 145.8 57.7998C145.8 58.2998 145.7 58.9998 145.7 59.6998C145.7 60.4008 145.7 60.9998 145.8 61.4998C145.9 62.0998 146 62.5998 146.3 62.9998C146.5 63.4008 146.8 63.7998 147.3 63.9998C147.7 64.1998 148.2 64.4008 148.9 64.4008C149.5 64.4008 150 64.4008 150.5 64.2998C151 64.1998 151.5 64.1998 152.099 64.0998H152.5C152.599 64.1998 152.599 64.1998 152.7 64.4008L152.9 65.1998C153 65.4998 152.9 65.6998 152.599 65.7998C152.4 65.9008 152.099 65.9998 151.7 66.0998C151.4 66.1998 151 66.1998 150.7 66.2998C150.4 66.4008 150 66.4008 149.7 66.4008H148.8C147.7 66.4008 146.8 66.1998 146.099 65.7998C145.4 65.4008 144.8 64.9008 144.5 64.2998C144.1 63.6998 143.8 62.9998 143.7 62.1998C143.3 61.4998 143.2 60.6998 143.2 59.7998"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M160.599 61.4004C160.599 60.9004 160.599 60.4004 160.499 60.0004C160.4 59.5994 160.299 59.2994 160.2 59.0004C159.999 58.7004 159.799 58.5004 159.499 58.4004C159.2 58.2994 158.9 58.2004 158.4 58.2004C157.999 58.2004 157.599 58.2994 157.4 58.4004C157.2 58.5004 156.9 58.7004 156.799 59.0004C156.599 59.2994 156.499 59.5994 156.499 60.0004C156.4 60.4004 156.4 60.9004 156.4 61.4004C156.4 61.9004 156.4 62.4004 156.499 62.7994C156.599 63.2004 156.7 63.5004 156.799 63.7994C156.9 64.0994 157.2 64.2994 157.4 64.4004C157.599 64.5004 157.999 64.5994 158.4 64.5994C158.9 64.5994 159.2 64.5004 159.499 64.4004C159.799 64.2994 159.999 64.0994 160.2 63.7994C160.4 63.5004 160.499 63.2004 160.499 62.7994C160.499 62.4004 160.599 62.0004 160.599 61.4004M162.9 61.2994C162.9 61.9004 162.9 62.5004 162.799 63.0994C162.7 63.7004 162.499 64.2994 162.2 64.7994C161.9 65.2994 161.499 65.7004 160.9 66.0994C160.299 66.4004 159.499 66.5994 158.499 66.5994C157.499 66.5994 156.7 66.4004 156.099 66.0994C155.499 65.7994 155.099 65.4004 154.799 64.7994C154.499 64.2994 154.299 63.7004 154.299 63.0994C154.2 62.5004 154.2 61.9004 154.2 61.2994C154.2 60.7994 154.2 60.2994 154.299 59.7004C154.4 59.0994 154.599 58.5994 154.9 58.0994C155.2 57.5994 155.599 57.2004 156.2 56.7994C156.799 56.5004 157.499 56.2994 158.499 56.2994C159.499 56.2994 160.299 56.4004 160.799 56.7004C161.4 57.0004 161.799 57.4004 162.099 57.9004C162.4 58.4004 162.599 58.9004 162.7 59.5004C162.799 60.0994 162.9 60.7004 162.9 61.2994"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M179.2 66.2998C179.2 66.4008 179.099 66.4008 178.9 66.4008H177.5C177.2 66.4008 177.099 66.2998 177.099 65.9998V60.2998C177.099 59.5998 177 58.9998 176.8 58.7998C176.599 58.4998 176.2 58.4008 175.7 58.4008C175.5 58.4008 175.3 58.4008 175.099 58.4998C174.9 58.5998 174.599 58.5998 174.4 58.6998C174.2 58.7998 173.9 58.9008 173.7 58.9998C173.5 59.0998 173.3 59.1998 173.099 59.2998V59.6998V60.2998V65.9998C173.099 66.0998 173.099 66.1998 173 66.2998C172.9 66.4008 172.8 66.4008 172.7 66.4008H171.2C171 66.4008 170.9 66.2998 170.9 65.9998V60.1998C170.9 59.5998 170.8 59.0998 170.599 58.7998C170.4 58.4998 170.099 58.4008 169.599 58.4008C169.4 58.4008 169.2 58.4008 169 58.4998C168.8 58.5998 168.599 58.5998 168.3 58.6998C168.099 58.7998 167.8 58.9008 167.599 58.9998C167.4 59.0998 167.2 59.1998 167 59.2998V65.9998C167 66.2998 166.9 66.4008 166.599 66.4008H165.2C165 66.4008 164.8 66.2998 164.8 65.9998V56.9008C164.8 56.5998 164.9 56.4998 165.2 56.4998H166.599C166.9 56.4998 167 56.5998 167 56.9008V57.4998C167.2 57.4008 167.4 57.1998 167.599 57.0998C167.8 56.9998 168.099 56.7998 168.3 56.6998C168.5 56.5998 168.8 56.4998 169.099 56.4008C169.4 56.2998 169.599 56.2998 169.9 56.2998C170.5 56.2998 171 56.4008 171.5 56.5998C172 56.7998 172.4 57.1998 172.7 57.6998C173.2 57.2998 173.8 56.9998 174.4 56.6998C175 56.4008 175.599 56.2998 176.3 56.2998C177 56.2998 177.5 56.4008 177.9 56.5998C178.3 56.7998 178.599 57.0998 178.8 57.4008C179 57.6998 179.099 58.0998 179.2 58.5998C179.3 59.0998 179.3 59.4998 179.3 59.9998V65.9998C179.2 66.0998 179.2 66.1998 179.2 66.2998"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M195.7 66.2998C195.7 66.4008 195.599 66.4008 195.4 66.4008H194C193.7 66.4008 193.599 66.2998 193.599 65.9998V60.2998C193.599 59.5998 193.5 58.9998 193.3 58.7998C193.099 58.4998 192.7 58.4008 192.2 58.4008C192 58.4008 191.8 58.4008 191.599 58.4998C191.4 58.5998 191.099 58.5998 190.9 58.6998C190.7 58.7998 190.4 58.9008 190.2 58.9998C190 59.0998 189.8 59.1998 189.599 59.2998V59.6998V60.2998V65.9998C189.599 66.0998 189.599 66.1998 189.5 66.2998C189.4 66.4008 189.3 66.4008 189.2 66.4008H187.7C187.5 66.4008 187.4 66.2998 187.4 65.9998V60.1998C187.4 59.5998 187.3 59.0998 187.099 58.7998C186.9 58.4998 186.599 58.4008 186.099 58.4008C185.9 58.4008 185.7 58.4008 185.5 58.4998C185.3 58.5998 185.099 58.5998 184.8 58.6998C184.5 58.7998 184.3 58.9008 184.099 58.9998C183.9 59.0998 183.7 59.1998 183.5 59.2998V65.9998C183.5 66.2998 183.4 66.4008 183.099 66.4008H181.7C181.5 66.4008 181.3 66.2998 181.3 65.9998V56.9008C181.3 56.5998 181.4 56.4998 181.7 56.4998H183.099C183.4 56.4998 183.5 56.5998 183.5 56.9008V57.4998C183.7 57.4008 183.9 57.1998 184.099 57.0998C184.3 56.9998 184.599 56.7998 184.8 56.6998C185.099 56.5998 185.3 56.4998 185.599 56.4008C185.9 56.2998 186.099 56.2998 186.4 56.2998C187 56.2998 187.5 56.4008 188 56.5998C188.5 56.7998 188.9 57.1998 189.2 57.6998C189.7 57.2998 190.3 56.9998 190.9 56.6998C191.5 56.4008 192.099 56.2998 192.8 56.2998C193.5 56.2998 194 56.4008 194.4 56.5998C194.8 56.7998 195.099 57.0998 195.3 57.4008C195.5 57.6998 195.599 58.0998 195.7 58.5998C195.8 59.0998 195.8 59.4998 195.8 59.9998V65.9998C195.8 66.0998 195.7 66.1998 195.7 66.2998"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M200.401 66C200.401 66.1 200.401 66.2 200.3 66.3C200.3 66.4 200.201 66.4 200.001 66.4H198.6C198.3 66.4 198.201 66.3 198.201 66V56.9C198.201 56.6 198.3 56.5 198.6 56.5H200.001C200.1 56.5 200.201 56.5 200.3 56.6C200.3 56.7 200.401 56.8 200.401 56.9V66ZM200.501 53.9V54.4C200.501 54.5 200.401 54.7 200.3 54.8C200.201 54.9 200.1 55 199.901 55.1C199.701 55.2 199.501 55.2 199.3 55.2C199.001 55.2 198.8 55.2 198.701 55.1C198.501 55 198.401 54.9 198.3 54.8C198.201 54.7 198.201 54.6 198.1 54.4V54C198.1 53.7 198.201 53.4 198.3 53.2C198.501 53 198.8 52.9 199.3 52.9C199.8 52.9 200.1 53 200.3 53.2C200.401 53.3 200.501 53.6 200.501 53.9V53.9Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M210.201 63.4004C210.201 64.0004 210.1 64.5004 209.901 64.9004C209.701 65.2994 209.401 65.5994 209.001 65.9004C208.6 66.0994 208.201 66.2994 207.701 66.4004C207.201 66.5004 206.701 66.5994 206.201 66.5994C205.701 66.5994 205.1 66.5994 204.6 66.5004C204.001 66.4004 203.501 66.2994 203.1 66.2004C202.901 66.0994 202.801 66.0004 202.701 65.9004C202.6 65.7994 202.6 65.7004 202.701 65.5004L202.801 64.7994C202.801 64.5994 202.901 64.5004 203.001 64.5004H203.401C203.6 64.5004 203.901 64.5994 204.1 64.5994C204.401 64.5994 204.6 64.5994 204.901 64.7004C205.201 64.7004 205.401 64.7004 205.6 64.7994H206.201C206.801 64.7994 207.301 64.7004 207.6 64.5004C207.901 64.2994 208.001 64.0004 208.001 63.5994C208.001 63.4004 208.001 63.2004 207.901 63.0004C207.801 62.7994 207.801 62.7004 207.6 62.5994C207.401 62.5004 207.301 62.4004 207.1 62.4004C206.901 62.2994 206.6 62.2994 206.301 62.2004C205.801 62.0994 205.301 62.0004 204.901 61.9004C204.501 61.7994 204.1 61.5994 203.701 61.4004C203.401 61.2004 203.1 60.9004 202.901 60.5994C202.701 60.2994 202.6 59.7994 202.6 59.2994C202.6 58.2994 202.901 57.5994 203.6 57.0004C204.301 56.5004 205.201 56.2004 206.301 56.2004H207.001C207.301 56.2004 207.501 56.2004 207.801 56.2994C208.1 56.2994 208.301 56.4004 208.6 56.4004C208.901 56.4004 209.1 56.5004 209.301 56.5994C209.6 56.7004 209.801 56.9004 209.701 57.2004L209.501 57.9004C209.501 58.0004 209.401 58.0994 209.301 58.2004H208.901C208.501 58.0994 208.001 58.0994 207.501 58.0004C207.001 58.0004 206.6 57.9004 206.201 57.9004C205.6 57.9004 205.1 58.0004 204.901 58.2004C204.701 58.4004 204.6 58.7004 204.6 59.0994C204.6 59.5004 204.701 59.7004 205.001 59.9004C205.301 60.0004 205.701 60.0994 206.301 60.2004C206.801 60.2994 207.201 60.4004 207.701 60.5004C208.201 60.5994 208.501 60.7994 208.901 61.0004C209.201 61.2004 209.501 61.5004 209.701 61.9004C210.1 62.2994 210.201 62.7994 210.201 63.4004"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M219.401 63.4004C219.401 64.0004 219.3 64.5004 219.1 64.9004C218.901 65.2994 218.6 65.5994 218.201 65.9004C217.8 66.0994 217.401 66.2994 216.901 66.4004C216.401 66.5004 215.901 66.5994 215.401 66.5994C214.901 66.5994 214.3 66.5994 213.8 66.5004C213.201 66.4004 212.701 66.2994 212.3 66.2004C212.1 66.0994 212.001 66.0004 211.901 65.9004C211.8 65.7994 211.8 65.7004 211.901 65.5004L212.001 64.7994C212.001 64.5994 212.1 64.5004 212.201 64.5004H212.6C212.8 64.5004 213.1 64.5994 213.3 64.5994C213.6 64.5994 213.8 64.5994 214.1 64.7004C214.401 64.7004 214.6 64.7004 214.8 64.7994H215.401C216.001 64.7994 216.501 64.7004 216.8 64.5004C217.1 64.2994 217.201 64.0004 217.201 63.5994C217.201 63.4004 217.201 63.2004 217.1 63.0004C217.001 62.7994 217.001 62.7004 216.8 62.5994C216.6 62.5004 216.501 62.4004 216.3 62.4004C216.1 62.2994 215.8 62.2994 215.501 62.2004C215.001 62.0994 214.501 62.0004 214.1 61.9004C213.701 61.7994 213.3 61.5994 212.901 61.4004C212.6 61.2004 212.3 60.9004 212.1 60.5994C211.901 60.2994 211.8 59.7994 211.8 59.2994C211.8 58.2994 212.1 57.5994 212.8 57.0004C213.501 56.5004 214.401 56.2004 215.501 56.2004H216.201C216.501 56.2004 216.701 56.2004 217.001 56.2994C217.3 56.2994 217.501 56.4004 217.8 56.4004C218.1 56.4004 218.3 56.5004 218.501 56.5994C218.8 56.7004 219.001 56.9004 218.901 57.2004L218.701 57.9004C218.701 58.0004 218.6 58.0994 218.501 58.2004H218.1C217.701 58.0994 217.201 58.0994 216.701 58.0004C216.201 58.0004 215.8 57.9004 215.401 57.9004C214.8 57.9004 214.3 58.0004 214.1 58.2004C213.901 58.4004 213.8 58.7004 213.8 59.0994C213.8 59.5004 213.901 59.7004 214.201 59.9004C214.501 60.0004 214.901 60.0994 215.501 60.2004C216.001 60.2994 216.401 60.4004 216.901 60.5004C217.401 60.5994 217.701 60.7994 218.1 61.0004C218.401 61.2004 218.701 61.5004 218.901 61.9004C219.3 62.2994 219.401 62.7994 219.401 63.4004"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M223.8 66C223.8 66.1 223.8 66.2 223.7 66.3C223.7 66.4 223.6 66.4 223.401 66.4H222C221.7 66.4 221.6 66.3 221.6 66V56.9C221.6 56.6 221.7 56.5 222 56.5H223.401C223.5 56.5 223.6 56.5 223.7 56.6C223.7 56.7 223.8 56.8 223.8 56.9V66ZM223.901 53.9V54.4C223.901 54.5 223.8 54.7 223.7 54.8C223.6 54.9 223.5 55 223.3 55.1C223.1 55.2 222.901 55.2 222.7 55.2C222.401 55.2 222.2 55.2 222.1 55.1C221.901 55 221.8 54.9 221.7 54.8C221.6 54.7 221.6 54.6 221.5 54.4V54C221.5 53.7 221.6 53.4 221.7 53.2C221.901 53 222.2 52.9 222.7 52.9C223.2 52.9 223.5 53 223.7 53.2C223.8 53.3 223.901 53.6 223.901 53.9V53.9Z"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M232.5 61.4004C232.5 60.9004 232.5 60.4004 232.4 60.0004C232.3 59.5994 232.2 59.2994 232.1 59.0004C231.9 58.7004 231.7 58.5004 231.4 58.4004C231.1 58.2994 230.8 58.2004 230.3 58.2004C229.9 58.2004 229.5 58.2994 229.3 58.4004C229.1 58.5004 228.8 58.7004 228.7 59.0004C228.5 59.2994 228.4 59.5994 228.4 60.0004C228.3 60.4004 228.3 60.9004 228.3 61.4004C228.3 61.9004 228.3 62.4004 228.4 62.7994C228.5 63.2004 228.6 63.5004 228.7 63.7994C228.8 64.0994 229.1 64.2994 229.3 64.4004C229.5 64.5004 229.9 64.5994 230.3 64.5994C230.8 64.5994 231.1 64.5004 231.4 64.4004C231.7 64.2994 231.9 64.0994 232.1 63.7994C232.3 63.5004 232.4 63.2004 232.4 62.7994C232.4 62.4004 232.5 62.0004 232.5 61.4004M234.8 61.2994C234.8 61.9004 234.8 62.5004 234.7 63.0994C234.6 63.7004 234.4 64.2994 234.1 64.7994C233.8 65.2994 233.4 65.7004 232.8 66.0994C232.2 66.4004 231.4 66.5994 230.4 66.5994C229.4 66.5994 228.6 66.4004 228 66.0994C227.4 65.7994 227 65.4004 226.7 64.7994C226.4 64.2994 226.2 63.7004 226.2 63.0994C226.1 62.5004 226.1 61.9004 226.1 61.2994C226.1 60.7994 226.1 60.2994 226.2 59.7004C226.3 59.0994 226.5 58.5994 226.8 58.0994C227.1 57.5994 227.5 57.2004 228.1 56.7994C228.7 56.5004 229.4 56.2994 230.4 56.2994C231.4 56.2994 232.2 56.4004 232.7 56.7004C233.3 57.0004 233.7 57.4004 234 57.9004C234.3 58.4004 234.5 58.9004 234.6 59.5004C234.7 60.0994 234.8 60.7004 234.8 61.2994"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M245.201 66.2998C245.1 66.4008 245.001 66.4008 244.901 66.4008H243.401C243.1 66.4008 243.001 66.2998 243.001 65.9998V60.4008C243.001 59.7998 242.901 59.2998 242.701 58.9998C242.501 58.5998 242.1 58.4998 241.501 58.4998C241.301 58.4998 241.1 58.4998 240.801 58.5998C240.501 58.6998 240.301 58.7998 240.001 58.9008C239.701 58.9998 239.501 59.0998 239.301 59.1998C239.1 59.2998 238.901 59.4008 238.801 59.4998V65.9998C238.801 66.2998 238.701 66.4008 238.401 66.4008H237.001C236.701 66.4008 236.6 66.2998 236.6 65.9998V56.9008C236.6 56.5998 236.701 56.4998 237.001 56.4998H238.401C238.701 56.4998 238.801 56.5998 238.801 56.9008V57.4998C239.001 57.4008 239.201 57.1998 239.501 57.0998C239.801 56.9998 240.001 56.7998 240.301 56.6998C240.6 56.5998 240.901 56.4998 241.201 56.4008C241.501 56.2998 241.801 56.2998 242.1 56.2998C242.801 56.2998 243.301 56.4008 243.701 56.5998C244.1 56.7998 244.401 57.0998 244.6 57.4008C244.801 57.6998 244.901 58.1998 245.001 58.5998C245.1 59.0998 245.1 59.4998 245.1 60.0998V65.9998C245.301 66.0998 245.201 66.1998 245.201 66.2998"
|
||||
fill="white"
|
||||
/>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M254.2 66.7H257.5V28H254.2V66.7Z"
|
||||
fill="white"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 631 KiB |
|
Before Width: | Height: | Size: 327 KiB |
@@ -11,11 +11,6 @@
|
||||
"controller" : "/common/errorController",
|
||||
"method": "_401"
|
||||
},
|
||||
{
|
||||
"url": "/",
|
||||
"role": [ "PROJECT_PO", "PROJECT_FIO", "PROJECT_TechDDExpert" ],
|
||||
"exturl": "/icmp"
|
||||
},
|
||||
{
|
||||
"url": "/",
|
||||
"role": "Org_Member",
|
||||
@@ -23,140 +18,7 @@
|
||||
},
|
||||
{
|
||||
"url": "/",
|
||||
"role": ["SOE_Admin", "SOE_National" ],
|
||||
"exturl": "/soe"
|
||||
},
|
||||
{
|
||||
"url": "/",
|
||||
"role": "*",
|
||||
"exturl": "/onboarding"
|
||||
},
|
||||
{
|
||||
"url": "/onboarding",
|
||||
"role": "*",
|
||||
"controller": "/common/onboardingController"
|
||||
},
|
||||
{
|
||||
"url": "/",
|
||||
"role": [ "EIC_Admin", "BP_PO", "BP_HoU" ],
|
||||
"exturl": "/bypass"
|
||||
},
|
||||
{
|
||||
"url": "/",
|
||||
"role": [ "BP_SPOC_Plugin" ],
|
||||
"exturl": "/bypass/plugins"
|
||||
},
|
||||
{
|
||||
"url": "/",
|
||||
"role": [ "BP_SPOC_FastTrack" ],
|
||||
"exturl": "/bypass/fast-tracks"
|
||||
},
|
||||
{
|
||||
"url": "/common/myprofile",
|
||||
"role": "*",
|
||||
"controller" : "common/myProfileController",
|
||||
"method": "index"
|
||||
},
|
||||
{
|
||||
"url": "/about",
|
||||
"role": "*",
|
||||
"controller" : "common/aboutController"
|
||||
},
|
||||
{
|
||||
"url": "/bypass",
|
||||
"role": "*",
|
||||
"controller" : "/projects/bypass/BypassController"
|
||||
},
|
||||
{
|
||||
"url": "/system",
|
||||
"role": "*",
|
||||
"controller" : "/system/systemController"
|
||||
},
|
||||
{
|
||||
"url": "/applicant",
|
||||
"role": "*",
|
||||
"controller": "/applicants/ApplicantController"
|
||||
},
|
||||
{
|
||||
"url": "/organisations/:pic/proposals",
|
||||
"role": "Org_Member",
|
||||
"controller": "/projects/submissions/SubmissionsController"
|
||||
},
|
||||
{
|
||||
"url": "/coachings/admin",
|
||||
"role": [ "EIC_Dev", "EIC_Admin" ],
|
||||
"controller": "/coachings/CoachingAdminController",
|
||||
"method": "dashboard"
|
||||
},
|
||||
{
|
||||
"url": "/coachings/coach",
|
||||
"role": [ "EIC_Dev", "EIC_Admin" ],
|
||||
"controller": "/coachings/CoachingCoachController",
|
||||
"method": "dashboard"
|
||||
},
|
||||
{
|
||||
"url": "/coachings/coaches/:id",
|
||||
"role": [ "EIC_Dev", "EIC_Admin" ],
|
||||
"controller": "/coachings/CoachingAdminController",
|
||||
"method": "profile"
|
||||
},
|
||||
{
|
||||
"url": "/coachings/coaching/:id",
|
||||
"role": [ "EIC_Dev", "EIC_Admin" ],
|
||||
"controller": "/coachings/CoachingApplicantController",
|
||||
"method": "view"
|
||||
},
|
||||
{
|
||||
"url": "/lab/components",
|
||||
"role": "EIC_Dev",
|
||||
"controller" : "/system/systemController",
|
||||
"method": "components"
|
||||
},
|
||||
{
|
||||
"url": "/soe",
|
||||
"role": [ "EIC_Dev", "EIC_Admin", "SOE_National", "SOE_Admin" ],
|
||||
"controller" : "/projects/soe/SoeController",
|
||||
"method": "dashboard"
|
||||
},
|
||||
{
|
||||
"url": "/soe/companies/:pic/projects/:number/fundings",
|
||||
"role": [ "EIC_Dev", "EIC_Admin", "SOE_National", "SOE_Admin" ],
|
||||
"controller" : "/projects/soe/SoeController",
|
||||
"method": "feedbacks"
|
||||
},
|
||||
{
|
||||
"url": "/mailings",
|
||||
"role": [ "MAIL_Editor", "MAIL_Reviewer", "MAIL_Sender", "EIC_Dev", "EIC_Admin" ],
|
||||
"controller" : "/comms/mailings/MailingsController"
|
||||
},
|
||||
{
|
||||
"url": "/icmp",
|
||||
"role": [ "PROJECT_PO", "PROJECT_FIO", "PROJECT_TechDDExpert" ],
|
||||
"controller" : "/projects/icmp/ICMPController",
|
||||
"method": "Dashboard"
|
||||
},
|
||||
{
|
||||
"url": "/icmp/projects/:number",
|
||||
"role": [ "PROJECT_PO", "PROJECT_FIO", "PROJECT_TechDDExpert" ],
|
||||
"controller" : "/projects/icmp/ICMPController",
|
||||
"method": "project"
|
||||
},
|
||||
{
|
||||
"url": "/icmp/projects/:number/:node/:nodeId",
|
||||
"role": [ "PROJECT_PO", "PROJECT_TechDDExpert", "PROJECT_FIO" ],
|
||||
"controller" : "/projects/icmp/ICMPController",
|
||||
"method": "project"
|
||||
},
|
||||
{
|
||||
"url": "/templates",
|
||||
"role": ["TEMPLATE_Editor", "TEMPLATE_Reviewer", "EIC_Dev", "EIC_Admin"],
|
||||
"controller" : "comms/templates/TemplatesController",
|
||||
"method": "search"
|
||||
},
|
||||
{
|
||||
"url": "/templates/:id",
|
||||
"role": ["TEMPLATE_Editor", "TEMPLATE_Reviewer", "EIC_Dev", "EIC_Admin"],
|
||||
"controller" : "comms/templates/TemplatesController",
|
||||
"method": "tplAction"
|
||||
"role": [ "*" ],
|
||||
"exturl": "/dashboard"
|
||||
}
|
||||
]
|
||||
@@ -1,110 +0,0 @@
|
||||
{
|
||||
"assets": {
|
||||
"basePath": "/app/assets/"
|
||||
},
|
||||
"router": {
|
||||
"getRolesFrom": "app.User.getRoles",
|
||||
"controllersPath": "/app/controllers/",
|
||||
"modelsPath": "/app/models/",
|
||||
"viewsPath": "/app/views/",
|
||||
"libsBaseClasses":[
|
||||
{
|
||||
"path": "/EIC",
|
||||
"classes": [ "EICController", "EICDomContent", "EICDialogContent", "EICMetaData", "EICModel", "EICPluralModel", "EICBusModel" ],
|
||||
"dependencies" : { "EICPluralModel": [ "EICModel" ] }
|
||||
},
|
||||
{ "onlyIfClasses": [ "MessageBus" ],
|
||||
"path": "/Bus/rendezVous",
|
||||
"classes": [ "MBRendezVous" ],
|
||||
"dependencies" : { }
|
||||
}
|
||||
],
|
||||
"masterController": "EICAppController",
|
||||
"defaultMasterTemplate": "templates/EICAppTemplate"
|
||||
},
|
||||
"logger": {
|
||||
"enabled": true,
|
||||
"levels": ["err","warn"],
|
||||
"latestErrsMax": 20,
|
||||
"postUrl": "xxxhttps://api.accp.eismea.eu/logger"
|
||||
},
|
||||
"userLib": {
|
||||
"className": "myUser",
|
||||
"authEndpoint": "https://api.accp.eismea.eu/stable/authorizer/checkAuthenticated",
|
||||
"logoutEndpoint": "https://api.accp.eismea.eu/stable/authorizer/logout",
|
||||
"apiDiscoveryEndpoint": "https://api.accp.eismea.eu/stable/apis/services",
|
||||
"resourcePermissionsEndpoint": "https://api.accp.eismea.eu/stable/permissions",
|
||||
"apiStage": "stable",
|
||||
"apiStageExceptions": {
|
||||
},
|
||||
"authForwardDomain": false,
|
||||
"keepAliveSeconds": 0
|
||||
},
|
||||
"matomo4sparc": {
|
||||
"enabled": true,
|
||||
"trackUrl": "https://analytics.accp.eismea.eu/matomo.php",
|
||||
"idsite":5
|
||||
},
|
||||
"messageBus":{
|
||||
"enabled": true,
|
||||
"debug": false,
|
||||
"tokenUrl": "https://api.accp.eismea.eu/stable/msgBusToken",
|
||||
"pathToWorker": "/core/libs/MessageBusWorker.js",
|
||||
"protocol": "wss://",
|
||||
"host": "bus.accp.eismea.eu",
|
||||
"port": "",
|
||||
"path": "/msgbus",
|
||||
"connectTimeout": 5,
|
||||
"autoReconnect": 5,
|
||||
"autoReconnectTimeFactor": 1.3,
|
||||
"autoReconnectTimeMax": 30,
|
||||
"autoReconnectJitterPercent": 10,
|
||||
"frontBusPrefix": "",
|
||||
"userNotifChan": "system:notifs:{uid}",
|
||||
"rendezVousChan": "rendezVous:{uid}",
|
||||
"ptpChanPrefix": "peer2peer:"
|
||||
},
|
||||
"squeeze": {
|
||||
"indexDefaults" : {
|
||||
"scripts" : [ "/core/Sparc-core-1.0.js" ],
|
||||
"styles" : ["/app/thirdparty/eicui/eicui-2.0.css"]
|
||||
},
|
||||
"packages" : [
|
||||
{
|
||||
"target": "core.js",
|
||||
"sources": [ "/core/Sparc-core-1.0.js",
|
||||
"/core/libs/Assets.js",
|
||||
"/core/libs/Events.js",
|
||||
"/core/libs/Logger.js",
|
||||
"/core/libs/MessageBus.js",
|
||||
"/core/libs/Router.js",
|
||||
"/core/baseClasses/Controller.js",
|
||||
"/core/baseClasses/MasterController.js",
|
||||
"/core/baseClasses/Model.js",
|
||||
"/core/baseClasses/View.js",
|
||||
"/core/baseClasses/User.js",
|
||||
"/app/libs/myUser.js"
|
||||
],
|
||||
"compressed": false,
|
||||
"minify": true,
|
||||
"mangle": false,
|
||||
"setIndexPage": true
|
||||
},
|
||||
{
|
||||
"target": "eiclibs.js",
|
||||
"sources": [
|
||||
"/app/libs/EIC/EICController.js",
|
||||
"/app/libs/EIC/EICDialogContent.js",
|
||||
"/app/libs/EIC/EICDomContent.js",
|
||||
"/app/libs/EIC/EICMetaData.js",
|
||||
"/app/libs/EIC/EICModel.js",
|
||||
"/app/libs/EIC/EICPluralModel.js"
|
||||
],
|
||||
"compressed": false,
|
||||
"minify": false,
|
||||
"mangle": false,
|
||||
"setIndexPage": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
{
|
||||
"assets": {
|
||||
"basePath": "/app/assets/"
|
||||
},
|
||||
"router": {
|
||||
"getRolesFrom": "app.User.getRoles",
|
||||
"controllersPath": "/app/controllers/",
|
||||
"modelsPath": "/app/models/",
|
||||
"viewsPath": "/app/views/",
|
||||
"libsBaseClasses":[
|
||||
{
|
||||
"path": "/EIC",
|
||||
"classes": [ "EICController", "EICDomContent", "EICDialogContent", "EICMetaData", "EICModel", "EICPluralModel", "EICBusModel" ],
|
||||
"dependencies" : { "EICPluralModel": [ "EICModel" ] }
|
||||
},
|
||||
{ "onlyIfClasses": [ "MessageBus" ],
|
||||
"path": "/Bus/rendezVous",
|
||||
"classes": [ "MBRendezVous" ],
|
||||
"dependencies" : { }
|
||||
}
|
||||
],
|
||||
"masterController": "EICAppController",
|
||||
"defaultMasterTemplate": "templates/EICAppTemplate"
|
||||
},
|
||||
"logger": {
|
||||
"enabled": true,
|
||||
"levels": ["err","warn"],
|
||||
"latestErrsMax": 20,
|
||||
"postUrl": "xxxhttps://api.eismea.eu/logger"
|
||||
},
|
||||
"userLib": {
|
||||
"className": "myUser",
|
||||
"authEndpoint": "https://api.eismea.eu/stable/authorizer/checkAuthenticated",
|
||||
"logoutEndpoint": "https://api.eismea.eu/stable/authorizer/logout",
|
||||
"apiDiscoveryEndpoint": "https://api.eismea.eu/stable/apis/services",
|
||||
"resourcePermissionsEndpoint": "https://api.eismea.eu/stable/permissions",
|
||||
"apiStage": "stable",
|
||||
"apiStageExceptions": {
|
||||
},
|
||||
"authForwardDomain": false,
|
||||
"keepAliveSeconds": 0
|
||||
},
|
||||
"matomo4sparc": {
|
||||
"enabled": true,
|
||||
"trackUrl": "https://analytics.eismea.eu/matomo.php",
|
||||
"idsite":10
|
||||
},
|
||||
"messageBus":{
|
||||
"enabled": true,
|
||||
"debug": false,
|
||||
"tokenUrl": "https://api.eismea.eu/stable/msgBusToken",
|
||||
"pathToWorker": "/core/libs/MessageBusWorker.js",
|
||||
"protocol": "wss://",
|
||||
"host": "bus.eismea.eu",
|
||||
"port": "",
|
||||
"path": "/msgbus",
|
||||
"connectTimeout": 5,
|
||||
"autoReconnect": 5,
|
||||
"autoReconnectTimeFactor": 1.3,
|
||||
"autoReconnectTimeMax": 30,
|
||||
"autoReconnectJitterPercent": 10,
|
||||
"frontBusPrefix": "",
|
||||
"userNotifChan": "system:notifs:{uid}",
|
||||
"rendezVousChan": "rendezVous:{uid}",
|
||||
"ptpChanPrefix": "peer2peer:"
|
||||
},
|
||||
"squeeze": {
|
||||
"indexDefaults" : {
|
||||
"scripts" : [ "/core/Sparc-core-1.0.js" ],
|
||||
"styles" : ["/app/thirdparty/eicui/eicui-2.0.css"]
|
||||
},
|
||||
"packages" : [
|
||||
{
|
||||
"target": "core.js",
|
||||
"sources": [ "/core/Sparc-core-1.0.js",
|
||||
"/core/libs/Assets.js",
|
||||
"/core/libs/Events.js",
|
||||
"/core/libs/Logger.js",
|
||||
"/core/libs/MessageBus.js",
|
||||
"/core/libs/Router.js",
|
||||
"/core/baseClasses/Controller.js",
|
||||
"/core/baseClasses/MasterController.js",
|
||||
"/core/baseClasses/Model.js",
|
||||
"/core/baseClasses/View.js",
|
||||
"/core/baseClasses/User.js",
|
||||
"/app/libs/myUser.js"
|
||||
],
|
||||
"compressed": false,
|
||||
"minify": true,
|
||||
"mangle": false,
|
||||
"setIndexPage": true
|
||||
},
|
||||
{
|
||||
"target": "eiclibs.js",
|
||||
"sources": [
|
||||
"/app/libs/EIC/EICController.js",
|
||||
"/app/libs/EIC/EICDialogContent.js",
|
||||
"/app/libs/EIC/EICDomContent.js",
|
||||
"/app/libs/EIC/EICMetaData.js",
|
||||
"/app/libs/EIC/EICModel.js",
|
||||
"/app/libs/EIC/EICPluralModel.js"
|
||||
],
|
||||
"compressed": false,
|
||||
"minify": false,
|
||||
"mangle": false,
|
||||
"setIndexPage": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
{
|
||||
"assets": {
|
||||
"basePath": "/app/assets/"
|
||||
},
|
||||
"router": {
|
||||
"getRolesFrom": "app.User.getRoles",
|
||||
"controllersPath": "/app/controllers/",
|
||||
"modelsPath": "/app/models/",
|
||||
"viewsPath": "/app/views/",
|
||||
"libsBaseClasses":[
|
||||
{
|
||||
"path": "/EIC",
|
||||
"classes": [ "EICController", "EICDomContent", "EICDialogContent", "EICMetaData", "EICModel", "EICPluralModel", "EICBusModel" ],
|
||||
"dependencies" : { "EICPluralModel": [ "EICModel" ] }
|
||||
},
|
||||
{ "onlyIfClasses": [ "MessageBus" ],
|
||||
"path": "/Bus/rendezVous",
|
||||
"classes": [ "MBRendezVous" ],
|
||||
"dependencies" : { }
|
||||
}
|
||||
],
|
||||
"masterController": "EICAppController",
|
||||
"defaultMasterTemplate": "templates/EICAppTemplate"
|
||||
},
|
||||
"logger": {
|
||||
"enabled": true,
|
||||
"levels": ["err","warn"],
|
||||
"latestErrsMax": 20,
|
||||
"postUrl": "xxxhttps://api.test.eismea.eu/logger"
|
||||
},
|
||||
"userLib": {
|
||||
"className": "myUser",
|
||||
"authEndpoint": "https://api.test.eismea.eu/stable/authorizer/checkAuthenticated",
|
||||
"logoutEndpoint": "https://api.test.eismea.eu/stable/authorizer/logout",
|
||||
"apiDiscoveryEndpoint": "https://api.test.eismea.eu/stable/apis/services",
|
||||
"resourcePermissionsEndpoint": "https://api.test.eismea.eu/stable/permissions",
|
||||
"apiStage": "stable",
|
||||
"apiStageExceptions": {
|
||||
},
|
||||
"authForwardDomain": false,
|
||||
"keepAliveSeconds": 0
|
||||
},
|
||||
"matomo4sparc": {
|
||||
"enabled": true,
|
||||
"trackUrl": "https://analytics.test.eismea.eu/matomo.php",
|
||||
"idsite":9
|
||||
},
|
||||
"messageBus":{
|
||||
"enabled": true,
|
||||
"debug": true,
|
||||
"tokenUrl": "https://api.test.eismea.eu/stable/msgBusToken",
|
||||
"pathToWorker": "/core/libs/MessageBusWorker.js",
|
||||
"protocol": "wss://",
|
||||
"host": "bus.test.eismea.eu",
|
||||
"port": "",
|
||||
"path": "/msgbus",
|
||||
"connectTimeout": 5,
|
||||
"autoReconnect": 5,
|
||||
"autoReconnectTimeFactor": 1.3,
|
||||
"autoReconnectTimeMax": 30,
|
||||
"autoReconnectJitterPercent": 10,
|
||||
"frontBusPrefix": "",
|
||||
"userNotifChan": "system:notifs:{uid}",
|
||||
"rendezVousChan": "rendezVous:{uid}",
|
||||
"ptpChanPrefix": "peer2peer:"
|
||||
},
|
||||
"squeeze": {
|
||||
"indexDefaults" : {
|
||||
"scripts" : [ "/core/Sparc-core-1.0.js" ],
|
||||
"styles" : ["/app/thirdparty/eicui/eicui-2.0.css"]
|
||||
},
|
||||
"packages" : [
|
||||
{
|
||||
"target": "core.js",
|
||||
"sources": [ "/core/Sparc-core-1.0.js",
|
||||
"/core/libs/Assets.js",
|
||||
"/core/libs/Events.js",
|
||||
"/core/libs/Logger.js",
|
||||
"/core/libs/MessageBus.js",
|
||||
"/core/libs/Router.js",
|
||||
"/core/baseClasses/Controller.js",
|
||||
"/core/baseClasses/MasterController.js",
|
||||
"/core/baseClasses/Model.js",
|
||||
"/core/baseClasses/View.js",
|
||||
"/core/baseClasses/User.js",
|
||||
"/app/libs/myUser.js"
|
||||
],
|
||||
"compressed": false,
|
||||
"minify": true,
|
||||
"mangle": false,
|
||||
"setIndexPage": true
|
||||
},
|
||||
{
|
||||
"target": "eiclibs.js",
|
||||
"sources": [
|
||||
"/app/libs/EIC/EICController.js",
|
||||
"/app/libs/EIC/EICDialogContent.js",
|
||||
"/app/libs/EIC/EICDomContent.js",
|
||||
"/app/libs/EIC/EICMetaData.js",
|
||||
"/app/libs/EIC/EICModel.js",
|
||||
"/app/libs/EIC/EICPluralModel.js"
|
||||
],
|
||||
"compressed": false,
|
||||
"minify": false,
|
||||
"mangle": false,
|
||||
"setIndexPage": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,79 +0,0 @@
|
||||
/**
|
||||
* Applicant management
|
||||
*
|
||||
* @version 1.0
|
||||
* @author Michael Fallise
|
||||
*/
|
||||
class ApplicantController extends EICController {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
dispatch() {
|
||||
app.User.getBusinessPermissions([ '/organisations' ], 'Org_Member')
|
||||
.then(async payload => {
|
||||
if(payload['/organisations'].permissions.includes("list")) {
|
||||
let model = new ApplicantOrganisationsModel(payload['/organisations'].permissions)
|
||||
|
||||
model.list()
|
||||
.then( async payload => {
|
||||
if(payload.length > 0) {
|
||||
let first = payload[0];
|
||||
app.Router.route('/applicant/' + first.pic);
|
||||
} else {
|
||||
ui.growl.append("You don't belong to any organisation", 'danger')
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
dashboard(options) {
|
||||
ui.lock();
|
||||
|
||||
let pic = options.params.pic;
|
||||
|
||||
app.User.getBusinessPermissions([
|
||||
'/organisations',
|
||||
'/organisations/' + pic,
|
||||
'/organisations/' + pic + '/members',
|
||||
'/organisations/' + pic + '/proposals'
|
||||
], 'Org_Member')
|
||||
.then(async payload => {
|
||||
|
||||
if(payload['/organisations/' + pic].permissions.includes('read')) {
|
||||
|
||||
// MFA: Coachings currently using proposals permissions as they are linked and BE not having coaching info locally on their side
|
||||
let models = {
|
||||
myOrganisations: new ApplicantOrganisationsModel(payload['/organisations'].permissions),
|
||||
applicant: new ApplicantOrganisationModel(payload['/organisations/' + pic].permissions),
|
||||
members: new ApplicantMembersModel(payload['/organisations/' + pic + '/members'].permissions),
|
||||
proposals: new ApplicantOrganisationProposalsModel(payload['/organisations/' + pic + '/proposals'].permissions),
|
||||
coachings: new ApplicantOrganisationCoachingsModel(payload['/organisations/' + pic + '/proposals'].permissions),
|
||||
}
|
||||
|
||||
ui.unlock();
|
||||
|
||||
this.loadWindow(
|
||||
'applicants/ApplicantDashboardView',
|
||||
{
|
||||
title: 'My EIC',
|
||||
static: true,
|
||||
expanded: true
|
||||
},
|
||||
{
|
||||
models: models,
|
||||
pic: pic,
|
||||
url: options.currentRoute.url
|
||||
}
|
||||
)
|
||||
} else {
|
||||
ui.unlock();
|
||||
ui.growl.append('You don\'t have access to this organisation', 'danger' );
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ApplicantController', ApplicantController);
|
||||
@@ -1,35 +0,0 @@
|
||||
{
|
||||
"routes": [
|
||||
{
|
||||
"url": "/",
|
||||
"role": "Org_Member",
|
||||
"controller" : "applicants/ApplicantController",
|
||||
"method": "dispatch"
|
||||
},
|
||||
{
|
||||
"url": "/:pic",
|
||||
"role": "Org_Member",
|
||||
"controller" : "applicants/ApplicantController",
|
||||
"method": "dashboard"
|
||||
}
|
||||
],
|
||||
"models": [
|
||||
"organisations/ApplicantOrganisationModel",
|
||||
"organisations/ApplicantMembersModel",
|
||||
"organisations/ApplicantOrganisationsModel",
|
||||
"users/onboardingUserModel"
|
||||
],
|
||||
"views": [
|
||||
"applicants/ApplicantDashboardView",
|
||||
"applicants/dialogs/ApplicantMemberDialog",
|
||||
"applicants/dialogs/ApplicantProposalSearchDialog",
|
||||
"common/onboarding/dialogs/onboardingApplicantDialog"
|
||||
],
|
||||
"dependencies": { },
|
||||
"assets": {
|
||||
"json": [
|
||||
{"id":"organisation-genders", "name": "meta/organisation-genders.json"},
|
||||
{"id":"organisation-functions", "name": "meta/organisation-functions.json"}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
class CoachingAdminController extends EICController {
|
||||
|
||||
dashboard() {
|
||||
|
||||
let models = {
|
||||
coachings: new CoachingAdminModel()
|
||||
}
|
||||
|
||||
this.loadWindow(
|
||||
'coachings/admin/CoachingAdminDashboardView',
|
||||
{
|
||||
title: 'Coaching monitoring',
|
||||
static: true,
|
||||
expanded: true
|
||||
},
|
||||
{
|
||||
models: models
|
||||
});
|
||||
}
|
||||
|
||||
coaching(options) {
|
||||
|
||||
}
|
||||
|
||||
profile(options) {
|
||||
this.loadWindow('coachings/common/CoachProfileView', {
|
||||
title: 'Coach profile',
|
||||
static: true,
|
||||
expanded: true
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('CoachingAdminController', CoachingAdminController);
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"routes": [ ],
|
||||
"models": [ "coachings/CoachingAdminModel" ],
|
||||
"views": [
|
||||
"coachings/common/CoachProfileView",
|
||||
"coachings/admin/CoachingAdminDashboardView",
|
||||
"coachings/admin/dialogs/CoachingCreditsDialog"
|
||||
],
|
||||
"dependencies": { },
|
||||
"controllerDependencies": [
|
||||
"/thirdparty/eicui/plugins/SVG/SVG",
|
||||
"/thirdparty/eicui/plugins/NodeMap/NodeMap"
|
||||
],
|
||||
"assets": {
|
||||
"styles": [
|
||||
{"path": "/app/thirdparty/eicui/plugins/SVG", "name":"/SVG.css" },
|
||||
{"path": "/app/thirdparty/eicui/plugins/NodeMap", "name":"/NodeMap.css" }
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
class CoachingApplicantController extends EICController {
|
||||
|
||||
view(options) {
|
||||
this.loadWindow('coachings/applicant/CoachingApplicantView', {
|
||||
title: 'My coaching ' + options.params.id,
|
||||
static: true,
|
||||
expanded: true
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('CoachingApplicantController', CoachingApplicantController);
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"routes": [ ],
|
||||
"models": [ ],
|
||||
"views": [ "coachings/applicant/CoachingApplicantView" ],
|
||||
"dependencies": { },
|
||||
"assets": { }
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
class CoachingCoachController extends EICController {
|
||||
|
||||
dashboard() {
|
||||
let models = {
|
||||
coachings: new CoachingCoachModel()
|
||||
}
|
||||
|
||||
this.loadWindow('coachings/coach/CoachingCoachDashboardView', {
|
||||
title: 'Coach dashboard',
|
||||
static: true,
|
||||
expanded: true
|
||||
},
|
||||
{
|
||||
models: models
|
||||
});
|
||||
}
|
||||
|
||||
coaching(id) {
|
||||
|
||||
}
|
||||
|
||||
profile(options) {
|
||||
this.loadWindow('coachings/common/CoachProfileView', {
|
||||
title: 'My profile',
|
||||
static: true,
|
||||
expanded: true
|
||||
},
|
||||
{
|
||||
mode: 'edit'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('CoachingCoachController', CoachingCoachController);
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"routes": [ ],
|
||||
"models": [ "coachings/CoachingCoachModel" ],
|
||||
"views": [
|
||||
"coachings/coach/CoachingCoachView",
|
||||
"coachings/coach/CoachingCoachDashboardView"
|
||||
],
|
||||
"dependencies": { },
|
||||
"assets": { }
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
class aboutController extends EICController {
|
||||
|
||||
disclaimer(){
|
||||
this.loadWindow('common/disclaimerView', {
|
||||
title: 'Legal notice',
|
||||
static: true,
|
||||
expanded: true
|
||||
});
|
||||
}
|
||||
|
||||
support() {
|
||||
|
||||
|
||||
this.loadWindow('common/support/SupportView', {
|
||||
title: 'Technical support',
|
||||
static: true,
|
||||
expanded: true
|
||||
},
|
||||
{
|
||||
models: { tickets: new SupportModel(["list", "create"]) }
|
||||
});
|
||||
}
|
||||
|
||||
helpdesk(){
|
||||
this.loadWindow('common/HelpDeskView', {
|
||||
title: 'Help Desk',
|
||||
static: true,
|
||||
expanded: true
|
||||
});
|
||||
}
|
||||
|
||||
guides(){
|
||||
this.loadWindow('common/GuidesListView', {
|
||||
title: 'Welcome Guides',
|
||||
static: true,
|
||||
expanded: true
|
||||
},
|
||||
{});
|
||||
}
|
||||
|
||||
guide(params){
|
||||
let guideMeta = app.Assets.Store.json.videoGuides.guides.find((item)=>item.id==params.params.guideID)
|
||||
|
||||
this.loadWindow('common/GuideView', {
|
||||
title: guideMeta.title,
|
||||
static: true,
|
||||
expanded: true
|
||||
},
|
||||
{
|
||||
guideMeta: guideMeta,
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('aboutController', aboutController);
|
||||
@@ -1,48 +0,0 @@
|
||||
{
|
||||
"routes": [
|
||||
{
|
||||
"url": "/legalnotice",
|
||||
"role": "*",
|
||||
"controller" : "common/aboutController",
|
||||
"method": "disclaimer"
|
||||
},
|
||||
{
|
||||
"url": "/support",
|
||||
"role": "*",
|
||||
"controller" : "common/aboutController",
|
||||
"method": "support"
|
||||
},
|
||||
{
|
||||
"url": "/helpdesk",
|
||||
"role": "*",
|
||||
"controller" : "common/aboutController",
|
||||
"method": "helpdesk"
|
||||
},
|
||||
{
|
||||
"url": "/guides",
|
||||
"role": "*",
|
||||
"controller" : "common/aboutController",
|
||||
"method": "guides"
|
||||
},
|
||||
{
|
||||
"url": "/guide/:guideID",
|
||||
"role": "*",
|
||||
"controller" : "common/aboutController",
|
||||
"method": "guide"
|
||||
}
|
||||
],
|
||||
"models": [ "system/SupportModel" ],
|
||||
"views": [
|
||||
"common/disclaimerView",
|
||||
"common/support/SupportView",
|
||||
"common/support/dialogs/SupportIssueFormDialog",
|
||||
"common/HelpDeskView",
|
||||
"common/GuidesListView",
|
||||
"common/GuideView"
|
||||
],
|
||||
"controllerDependencies": [
|
||||
"/thirdparty/eicui/plugins/Select/BinaryFileContentSelector",
|
||||
"/helpers/basicDialogs"
|
||||
],
|
||||
"assets": { }
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
class myProfileController extends EICController {
|
||||
|
||||
index(routeInfo){
|
||||
this.loadWindow('common/profile/myProfileView', {
|
||||
title: 'My Profile',
|
||||
static: true,
|
||||
expanded: true
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('myProfileController', myProfileController);
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"routes": [ ],
|
||||
"models": [ ],
|
||||
"views": [
|
||||
"common/profile/myProfileView",
|
||||
"common/profile/dialogs/ProfilePreferencesResetDialog"
|
||||
],
|
||||
"dependencies": { },
|
||||
"assets": { }
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
class onboardingController extends EICController {
|
||||
|
||||
async index() {
|
||||
|
||||
let profile = await this.openDialog(
|
||||
await this.loadContent(
|
||||
'common/onboarding/dialogs/onboardingLandingDialog', { title: 'Welcome to the EIC platform!' }, {})
|
||||
);
|
||||
|
||||
if(profile) { this.onboardProfile(profile); }
|
||||
}
|
||||
|
||||
async onboardProfile(profile) {
|
||||
let options = { view: '', label: '' };
|
||||
|
||||
switch(profile) {
|
||||
case 'Applicant':
|
||||
options.view = 'common/onboarding/dialogs/onboardingApplicantDialog';
|
||||
options.label = 'Now tell us about your organisation';
|
||||
break;
|
||||
}
|
||||
|
||||
app.User.getBusinessPermissions(['/organisations'])
|
||||
.then(async payload => {
|
||||
let rc = await this.openDialog(
|
||||
await this.loadContent(
|
||||
options.view,
|
||||
{ title: options.label },
|
||||
{ models: {'user': new onboardingUserModel(payload['/organisations'].permissions) } }
|
||||
)
|
||||
);
|
||||
if(!rc) this.index();
|
||||
else {
|
||||
if(rc.request=='join') {
|
||||
await this.openDialog(
|
||||
await this.loadContent(
|
||||
'common/onboarding/dialogs/onboardingRequestSuccessDialog',
|
||||
{ title: 'Request successfull' },
|
||||
{ legalname: rc.legalname }
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('onboardingController', onboardingController);
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"routes": [ ],
|
||||
"models": [
|
||||
"users/onboardingUserModel"
|
||||
],
|
||||
"views": [
|
||||
"common/onboarding/dialogs/onboardingLandingDialog",
|
||||
"common/onboarding/dialogs/onboardingApplicantDialog",
|
||||
"common/onboarding/dialogs/onboardingRequestSuccessDialog"
|
||||
],
|
||||
"dependencies": { },
|
||||
"assets": {
|
||||
"styles": []
|
||||
}
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
class MailingsController extends EICController {
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
|
||||
app.meta.add('wf-mailings', app.Assets.Store.json['wf-mailings'])
|
||||
}
|
||||
|
||||
async dashboard(options) {
|
||||
|
||||
app.User.getBusinessPermissions(['/mailings'])
|
||||
.then(async payload => {
|
||||
if(payload['/mailings'].permissions.length > 0) {
|
||||
let models = {
|
||||
mailings: new MailingsModel(payload['/mailings'].permissions)
|
||||
}
|
||||
|
||||
await app.Assets.loadHtml({name:'mailing/tile.html'})
|
||||
this.loadWindow(
|
||||
'comms/mailings/dashboard/MailingDashboardView',
|
||||
{
|
||||
title: 'Mailings',
|
||||
static: true,
|
||||
expanded: true
|
||||
},
|
||||
{
|
||||
models: models
|
||||
}
|
||||
)
|
||||
} else {
|
||||
ui.growl.append('Sorry, you do not have access to this resource', 'danger')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async mailing(options) {
|
||||
app.User.getBusinessPermissions(['/mailings', '/templates', '/contactMgr'])
|
||||
.then(async payload => {
|
||||
if(payload['/mailings'].permissions.length > 0) {
|
||||
let models = {
|
||||
mailings: new MailingsModel(payload['/mailings'].permissions),
|
||||
templates : new TemplatesModel(payload['/templates'].permissions),
|
||||
contactMgr: new ContactMgrModel(payload['/contactMgr'].permissions),
|
||||
}
|
||||
|
||||
this.loadWindow('comms/mailings/sheet/MailingSheetView', {
|
||||
title: 'Mailing sheet',
|
||||
static: true,
|
||||
expanded: true
|
||||
},{
|
||||
id: options.params.id,
|
||||
models: models
|
||||
})
|
||||
} else {
|
||||
ui.growl.append('Sorry, you do not have access to this resource', 'danger')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('MailingsController', MailingsController)
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
{
|
||||
"routes": [
|
||||
{
|
||||
"url": "/:id",
|
||||
"role": [ "MAIL_Editor", "MAIL_Reviewer", "MAIL_Sender", "EIC_Dev", "EIC_Admin" ],
|
||||
"controller" : "comms/mailings/MailingsController",
|
||||
"method": "mailing"
|
||||
},
|
||||
{
|
||||
"url": "/",
|
||||
"role": [ "MAIL_Editor", "MAIL_Reviewer", "MAIL_Sender", "EIC_Dev", "EIC_Admin" ],
|
||||
"controller" : "comms/mailings/MailingsController",
|
||||
"method": "dashboard"
|
||||
}
|
||||
],
|
||||
"models": [ "comms/templates/TemplatesModel",
|
||||
"comms/mailings/MailingsModel",
|
||||
"comms/mailings/ContactMgrModel"
|
||||
],
|
||||
"views": [
|
||||
"/comms/mailings/dashboard/MailingDashboardView",
|
||||
"comms/mailings/sheet/MailingSheetView",
|
||||
"comms/mailings/sheet/dialogs/MailingImportDialog",
|
||||
"comms/mailings/sheet/dialogs/MailingExclusionDialog",
|
||||
"comms/mailings/sheet/dialogs/MailingFetchDialog",
|
||||
"comms/mailings/sheet/dialogs/MailingMappingDialog",
|
||||
"comms/mailings/sheet/dialogs/MailingTestDialog",
|
||||
"comms/mailings/sheet/dialogs/MailingTemplatePreviewDialog",
|
||||
"comms/mailings/sheet/dialogs/MailingDuplicatesDialog",
|
||||
"templates/Ffs/dialogs/FileBrowserDialog"
|
||||
],
|
||||
"controllerDependencies": [
|
||||
"https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js",
|
||||
"/helpers/basicDialogs",
|
||||
"/helpers/translator",
|
||||
"/helpers/validators",
|
||||
"/helpers/activeAttributes",
|
||||
"/thirdparty/eicui/plugins/FileUpload/FileUpload",
|
||||
"/thirdparty/eicui/plugins/NodeMap/NodeMap",
|
||||
"/thirdparty/eicui/plugins/Charts/Charts",
|
||||
"/libs/Ffs/fakeFileSystem"
|
||||
],
|
||||
"assets": {
|
||||
"json": [
|
||||
{"id":"wf-mailings", "name": "workflows/wf-mailings.json"}
|
||||
],
|
||||
"styles": [
|
||||
{"name":"NodeMap.css", "path":"/app/thirdparty/eicui/plugins/NodeMap/" },
|
||||
{"name":"FileUpload.css", "path":"/app/thirdparty/eicui/plugins/FileUpload/"},
|
||||
{"name":"Charts.css", "path":"/app/thirdparty/eicui/plugins/Charts/" }
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
class TemplatesController extends EICController {
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
|
||||
async search() {
|
||||
app.User.getBusinessPermissions(['/templates'])
|
||||
.then(async payload => {
|
||||
if(payload['/templates'].permissions.length > 0) {
|
||||
let models = {
|
||||
templates: new TemplatesModel(payload['/templates'].permissions)
|
||||
}
|
||||
this.loadWindow('comms/templates/manager/TemplatesManagerView', {
|
||||
title: 'Templates',
|
||||
static: true,
|
||||
expanded: true
|
||||
},
|
||||
{
|
||||
models: models
|
||||
}
|
||||
)
|
||||
} else {
|
||||
ui.growl.append('Sorry, you do not have access to this resource', 'danger')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async tplAction(options) {
|
||||
app.User.getBusinessPermissions(['/templates'])
|
||||
.then(async payload => {
|
||||
if(payload['/templates'].permissions.length > 0) {
|
||||
const templateId = options.params.id;
|
||||
let models = {
|
||||
templates: new TemplatesModel(payload['/templates'].permissions)
|
||||
}
|
||||
// Edit template
|
||||
this.loadWindow(
|
||||
'comms/templates/editor/TemplatesEditorView',
|
||||
{
|
||||
title: 'Edit Template ' + templateId.substring(0, 6),
|
||||
static: true,
|
||||
expanded: true
|
||||
},
|
||||
{
|
||||
id: templateId,
|
||||
models: models
|
||||
})
|
||||
} else {
|
||||
ui.growl.append('Sorry, you do not have access to this resource', 'danger')
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('TemplatesController', TemplatesController);
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"routes": [
|
||||
{
|
||||
"url": "/templates",
|
||||
"role": [ "EIC_Dev", "EIC_Admin" ],
|
||||
"controller" : "comms/templates/TemplatesController",
|
||||
"method": "search"
|
||||
},
|
||||
{
|
||||
"url": "/:id",
|
||||
"role": [ "EIC_Dev", "EIC_Admin" ],
|
||||
"controller" : "comms/templates/TemplatesController",
|
||||
"method": "tplAction"
|
||||
}
|
||||
],
|
||||
"models": [ "comms/templates/TemplatesModel" ],
|
||||
"views": [
|
||||
"comms/templates/manager/TemplatesManagerView",
|
||||
"comms/templates/editor/TemplatesEditorView",
|
||||
"comms/templates/dialogs/TemplatesMailTestDialog",
|
||||
"comms/templates/dialogs/TemplatesUplImgDialog",
|
||||
"comms/templates/dialogs/TemplatesDecisionDialog",
|
||||
"templates/Ffs/dialogs/FileBrowserDialog"
|
||||
],
|
||||
"controllerDependencies": [
|
||||
"/helpers/basicDialogs",
|
||||
"/helpers/translator",
|
||||
"/helpers/validators",
|
||||
"/helpers/activeAttributes",
|
||||
"/libs/Ffs/fakeFileSystem",
|
||||
"/thirdparty/eicui/plugins/HtmlEditor/HtmlEditor",
|
||||
"/thirdparty/eicui/plugins/FileUpload/FileUpload"
|
||||
],
|
||||
"assets": {
|
||||
"styles": [
|
||||
{"name":"FileUpload.css", "path":"/app/thirdparty/eicui/plugins/FileUpload/"}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
/**
|
||||
* FastTrack management
|
||||
*
|
||||
* @version 1.0
|
||||
* @author Michael Fallise
|
||||
*/
|
||||
class BypassController extends EICController {
|
||||
|
||||
guidelinesURL = "https://eic.ec.europa.eu/eic-funding-opportunities/eic-accelerator/fast-track-and-plug-schemes-eic-accelerator_en";
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
app.meta.add('accelerator-tracks', app.Assets.Store.json['accelerator-tracks']);
|
||||
app.meta.add('organisation-functions', app.Assets.Store.json['organisation-functions']);
|
||||
app.meta.add('organisation-genders', app.Assets.Store.json['organisation-genders']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Entrypoint for FastTrack Managers
|
||||
*/
|
||||
dashboardAdmin() {
|
||||
|
||||
app.User.getBusinessPermissions(['/organisations/tokens', '/organisations/tokens/users', '/organisations'])
|
||||
.then(payload => {
|
||||
let profile = Object.keys(payload).reduce((acc, perm)=>{ Object.assign(acc,payload[perm].profile); return(acc) }, {})
|
||||
|
||||
let models = {
|
||||
tokens: new BypassTokensModel(payload['/organisations/tokens'].permissions),
|
||||
company: new BypassCompanyModel([...payload['/organisations'].permissions, ...payload['/organisations/tokens'].permissions]),
|
||||
};
|
||||
|
||||
if(payload['/organisations/tokens/users'].permissions && (payload['/organisations/tokens/users'].permissions.length>0)) {
|
||||
models.users = new BypassUsersModel(payload['/organisations/tokens/users'].permissions)
|
||||
}
|
||||
|
||||
this.loadWindow(
|
||||
'projects/bypass/BypassAdminDashboard',
|
||||
{ title: 'Bypass', static: true, expanded: true },
|
||||
{ profile: profile, models: models }
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Entrypoint for FastTrack KIC Managers
|
||||
*/
|
||||
dashboardKIC() {
|
||||
app.User.getBusinessPermissions(['/organisations/tokens', '/organisations/tokens/users', '/organisations'])
|
||||
.then(payload => {
|
||||
let profile = Object.keys(payload).reduce((acc, perm)=>{ Object.assign(acc,payload[perm].profile); return(acc) }, {})
|
||||
|
||||
let models = {
|
||||
tokens: new BypassTokensModel(payload['/organisations/tokens'].permissions),
|
||||
company: new BypassCompanyModel([...payload['/organisations'].permissions, ...payload['/organisations/tokens'].permissions])
|
||||
};
|
||||
|
||||
if(payload['/organisations/tokens/users'].permissions && (payload['/organisations/tokens/users'].permissions.length>0)) {
|
||||
models.users = new BypassUsersModel(payload['/organisations/tokens/users'].permissions)
|
||||
}
|
||||
|
||||
this.loadWindow(
|
||||
'projects/bypass/BypassKICDashboard',
|
||||
{ title: 'Fast-Tracks', static: true, expanded: true },
|
||||
{ profile: profile, models: models }
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Entrypoint for FastTrack Plugin Managers
|
||||
*/
|
||||
dashboardPlugin() {
|
||||
app.User.getBusinessPermissions(['/organisations/tokens', '/organisations/tokens/users', '/organisations'])
|
||||
.then(payload => {
|
||||
let profile = Object.keys(payload).reduce((acc, perm)=>{ Object.assign(acc,payload[perm].profile); return(acc) }, {})
|
||||
|
||||
let models = {
|
||||
tokens: new BypassTokensModel(payload['/organisations/tokens'].permissions),
|
||||
company: new BypassCompanyModel([...payload['/organisations'].permissions, ...payload['/organisations/tokens'].permissions])
|
||||
};
|
||||
|
||||
if(payload['/organisations/tokens/users'].permissions) {
|
||||
models.users = new BypassUsersModel(payload['/organisations/tokens/users'].permissions)
|
||||
}
|
||||
|
||||
this.loadWindow(
|
||||
'projects/bypass/BypassPluginDashboard',
|
||||
{ title: 'Plugins', static: true, expanded: true },
|
||||
{ profile: profile, models: models } );
|
||||
});
|
||||
}
|
||||
|
||||
guidelines() { window.open(this.guidelinesURL, "_blank"); }
|
||||
}
|
||||
|
||||
app.registerClass('BypassController', BypassController);
|
||||
@@ -1,74 +0,0 @@
|
||||
{
|
||||
"routes": [
|
||||
{
|
||||
"url": "/",
|
||||
"role": ["BP_SPOC_Plugin"],
|
||||
"exturl":"/bypass/plugins"
|
||||
},
|
||||
{
|
||||
"url": "/",
|
||||
"role": ["BP_SPOC_FastTrack"],
|
||||
"exturl":"/bypass/fast-tracks"
|
||||
},
|
||||
{
|
||||
"url": "/",
|
||||
"role": ["BP_PO", "BP_HoU"],
|
||||
"controller" : "/projects/bypass/BypassController",
|
||||
"method": "dashboardAdmin"
|
||||
},
|
||||
{
|
||||
"url": "/fast-tracks",
|
||||
"role": ["BP_SPOC_FastTrack"],
|
||||
"controller" : "/projects/bypass/BypassController",
|
||||
"method": "dashboardKIC"
|
||||
},
|
||||
{
|
||||
"url": "/plugins",
|
||||
"role": ["BP_SPOC_Plugin"],
|
||||
"controller" : "/projects/bypass/BypassController",
|
||||
"method": "dashboardPlugin"
|
||||
},
|
||||
{
|
||||
"url": "/path-finder",
|
||||
"role": ["BP_SPOC_FastTrack"],
|
||||
"controller" : "/projects/bypass/BypassController",
|
||||
"method": "dashboardKIC"
|
||||
},
|
||||
{
|
||||
"url": "/guidelines",
|
||||
"role": ["BP_PO", "BP_HoU", "BP_SPOC_FastTrack", "BP_SPOC_Plugin"],
|
||||
"controller" : "/projects/bypass/BypassController",
|
||||
"method": "guidelines"
|
||||
}
|
||||
],
|
||||
"models": [
|
||||
"evaluations/BypassTokensModel",
|
||||
"organisations/BypassCompanyModel",
|
||||
"users/BypassUsersModel"
|
||||
],
|
||||
"views": [
|
||||
"projects/bypass/BypassAdminDashboard",
|
||||
"projects/bypass/BypassKICDashboard",
|
||||
"projects/bypass/BypassPluginDashboard",
|
||||
{"view":"projects/bypass/BypassPluginManagementContent", "dependencies": ["projects/bypass/BypassBaseManagementContent"]},
|
||||
{"view":"projects/bypass/BypassAdminManagementContent", "dependencies": ["projects/bypass/BypassBaseManagementContent"]},
|
||||
{"view":"projects/bypass/BypassKICManagementContent", "dependencies": ["projects/bypass/BypassBaseManagementContent"]},
|
||||
"projects/bypass/dialogs/BypassProgramAddDialog",
|
||||
"projects/bypass/dialogs/BypassTokenGrantDialog",
|
||||
"projects/bypass/dialogs/BypassTokenGrantProposalDialog",
|
||||
"projects/bypass/dialogs/BypassTokenRevokeDialog",
|
||||
"projects/bypass/dialogs/BypassTrackSetupDialog",
|
||||
"projects/bypass/dialogs/BypassUserProfileDialog"
|
||||
],
|
||||
"controllerDependencies": [ "/helpers/basicDialogs", "/helpers/translator" ],
|
||||
"assets": {
|
||||
"styles": [
|
||||
{ "name": "projects/bypass.css" }
|
||||
],
|
||||
"json": [
|
||||
{ "id": "accelerator-tracks", "name": "meta/accelerator-tracks.json" },
|
||||
{ "id":"organisation-genders", "name": "meta/organisation-genders.json"},
|
||||
{ "id":"organisation-functions", "name": "meta/organisation-functions.json"}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
class ICMPController extends EICController {
|
||||
|
||||
constructor(params) {
|
||||
super(params)
|
||||
app.meta.add('icmp-techdd-status', app.Assets.Store.json['icmp-techdd-status']);
|
||||
app.meta.add('icmp-fundings', app.Assets.Store.json['icmp-fundings']);
|
||||
app.meta.add('icmp-countries', app.Assets.Store.json['icmp-countries']);
|
||||
app.meta.add('icmp-instruments', app.Assets.Store.json['icmp-instruments']);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns
|
||||
*/
|
||||
Dashboard() {
|
||||
console.log('here')
|
||||
ui.lock();
|
||||
|
||||
app.User.getBusinessPermissions([ '/icmp/projects' ])
|
||||
.then(async payload => {
|
||||
|
||||
ui.unlock();
|
||||
|
||||
if(payload['/icmp/projects'].permissions.length > 0) {
|
||||
let models = {
|
||||
projects: new ICMPProjectsModel(payload['/icmp/projects'].permissions)
|
||||
};
|
||||
|
||||
if(app.User.hasRole('PROJECT_PO') || app.User.hasRole('PROJECT_FIO')) {
|
||||
this.loadWindow(
|
||||
'projects/icmp/ProjectFundingPODashboardView',
|
||||
{ title: 'ICMP', static: true, expanded: true },
|
||||
{ models: models } );
|
||||
return;
|
||||
}
|
||||
|
||||
if(app.User.hasRole('PROJECT_TechDDExpert')) {
|
||||
this.loadWindow(
|
||||
'projects/icmp/ProjectFundingExpertDashboardView',
|
||||
{ title: 'ICMP', static: true, expanded: true },
|
||||
{ models: models } );
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
ui.growl.append('You don\'t have access to this resource', 'danger' );
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} options
|
||||
*/
|
||||
project(options) {
|
||||
|
||||
let number = options.params.number
|
||||
let node = options.params.node
|
||||
let nodeId = options.params.nodeId
|
||||
|
||||
ui.lock();
|
||||
|
||||
app.User.getBusinessPermissions([`/icmp/projects/${number}`])
|
||||
.then(async payload => {
|
||||
|
||||
if(payload[`/icmp/projects/${number}`].permissions.length > 0) {
|
||||
ui.unlock();
|
||||
|
||||
let models = {
|
||||
project: new ICMPProjectModel(payload[`/icmp/projects/${number}`].permissions)
|
||||
};
|
||||
|
||||
this.loadWindow(
|
||||
'projects/icmp/ProjectFundingProjectView',
|
||||
{ title: 'Project sheet', static: true, expanded: true },
|
||||
{
|
||||
models: models,
|
||||
projectNumber: number,
|
||||
node: node,
|
||||
nodeId: nodeId,
|
||||
});
|
||||
} else {
|
||||
ui.growl.append('You don\'t have access to this resource', 'danger' );
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ICMPController', ICMPController);
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"routes": [],
|
||||
"models": [
|
||||
"projects/icmp/ProjectFundingModel",
|
||||
"projects/icmp/ICMPProjectsModel",
|
||||
"projects/icmp/ICMPProjectModel",
|
||||
"projects/icmp/ICMPProjectNodeModel"
|
||||
],
|
||||
"views": [
|
||||
"projects/icmp/ProjectFundingPODashboardView",
|
||||
"projects/icmp/ProjectFundingExpertDashboardView",
|
||||
"projects/icmp/ProjectFundingProjectView",
|
||||
"projects/icmp/project/ProjectFundingInfoView",
|
||||
"projects/icmp/project/ProjectFundingTechDDView",
|
||||
"projects/icmp/project/ProjectFundingTeamView",
|
||||
"projects/icmp/project/ProjectFundingHistoryView",
|
||||
"projects/icmp/project/ProjectFundingDocumentsView",
|
||||
"projects/icmp/project/dialogs/ICMPNodeActionConfirmDialog",
|
||||
{"view":"projects/icmp/project/forms/ICMPFormTechddV1FullView", "dependencies": ["projects/icmp/project/forms/ICMPFormTechddV1View"]},
|
||||
{"view":"projects/icmp/project/forms/ICMPFormTechddV1EnhancedView", "dependencies": ["projects/icmp/project/forms/ICMPFormTechddV1View"]}
|
||||
|
||||
],
|
||||
"controllerDependencies": [
|
||||
"/thirdparty/eicui/plugins/SVG/SVG",
|
||||
"/thirdparty/eicui/plugins/NodeMap/NodeMap"
|
||||
],
|
||||
"assets": {
|
||||
"styles": [
|
||||
{"path": "/app/thirdparty/eicui/plugins/SVG", "name":"/SVG.css" },
|
||||
{"path": "/app/thirdparty/eicui/plugins/NodeMap", "name":"/NodeMap.css" }
|
||||
],
|
||||
"json": [
|
||||
{ "id": "icmp-techdd-status", "name": "meta/icmp-techdd-statuses.json" },
|
||||
{ "id": "icmp-fundings", "name": "meta/project-funding-types.json" },
|
||||
{ "id": "icmp-countries", "name": "meta/coaching-countries.json" },
|
||||
{ "id": "icmp-instruments", "name": "meta/project-funding-instruments.json" }
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
|
||||
class SoeController extends EICController {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
app.meta.add('soe-fundings', app.Assets.Store.json['soe-fundings']);
|
||||
app.meta.add('soe-countries', app.Assets.Store.json['coaching-countries']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Entrypoint for FastTrack Managers
|
||||
*/
|
||||
dashboard() {
|
||||
|
||||
app.User.getBusinessPermissions(['/soe'])
|
||||
.then(payload => {
|
||||
|
||||
if(payload['/soe'].permissions.length > 0) {
|
||||
let models = {
|
||||
soe: new SoeModel(payload['/soe'].permissions)
|
||||
}
|
||||
|
||||
let scope = payload['/soe'].profile.country ? app.meta.getItem('soe-countries', payload['/soe'].profile.country).label: 'Monitoring';
|
||||
|
||||
this.loadWindow(
|
||||
'projects/soe/SoeDashboardView',
|
||||
{ title: 'SoE ' + scope, static: true, expanded: true },
|
||||
{
|
||||
models: models,
|
||||
scope : scope
|
||||
}
|
||||
);
|
||||
} else {
|
||||
ui.growl.append('Sorry, you do not have access to this resource!', 'danger')
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
feedbacks(options) {
|
||||
|
||||
let pic = options.params.pic
|
||||
let number = options.params.number
|
||||
|
||||
app.User.getBusinessPermissions([`/soe/organisations/${pic}/projects/${number}/fundings`])
|
||||
.then(payload => {
|
||||
let scope = payload[`/soe/organisations/${pic}/projects/${number}/fundings`]
|
||||
if(scope.permissions.length > 0) {
|
||||
|
||||
let models = { soe: new SoeModel(scope.permissions) }
|
||||
|
||||
this.loadWindow(
|
||||
'projects/soe/SoeFeedbacksView',
|
||||
{ title: `Project ${number} (SoE)`, static: true, expanded: true },
|
||||
{
|
||||
pic: pic,
|
||||
number: number,
|
||||
models: models
|
||||
}
|
||||
);
|
||||
} else {
|
||||
ui.growl.append('Sorry, you do not have access to this resource', 'danger')
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('SoeController', SoeController);
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"routes": [ ],
|
||||
"models": [ "projects/SoeModel" ],
|
||||
"views": [
|
||||
"projects/soe/SoeDashboardView",
|
||||
"projects/soe/SoeFeedbacksView",
|
||||
"projects/soe/dialogs/SoeFeedbackFormDialog",
|
||||
"projects/soe/dialogs/SoeFeedbackHistoryDialog"
|
||||
],
|
||||
"dependencies": { },
|
||||
"assets": {
|
||||
"json": [
|
||||
{ "id":"coaching-countries", "name": "meta/coaching-countries.json" },
|
||||
{ "id":"soe-fundings", "name": "meta/soe-fundings.json" }
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
/**
|
||||
* Submission management
|
||||
*
|
||||
* @version 1.0
|
||||
*/
|
||||
class SubmissionsController extends EICController {
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} options
|
||||
*
|
||||
*/
|
||||
proposal(options) {
|
||||
let pic = options.params.pic;
|
||||
let number = options.params.pid;
|
||||
let mode = options.params.mode || 'read';
|
||||
|
||||
app.User.getBusinessPermissions([
|
||||
`/organisations/${pic}/proposals/${number}`,
|
||||
`/organisations/${pic}/proposals/${number}/members`
|
||||
], 'Org_Member')
|
||||
.then( async payload => {
|
||||
|
||||
if(mode == 'edit') {
|
||||
if(!payload[`/organisations/${pic}/proposals/${number}`].permissions.includes('update')) {
|
||||
mode = 'read';
|
||||
}
|
||||
}
|
||||
|
||||
if(payload[`/organisations/${pic}/proposals/${number}`].permissions.includes('read')) {
|
||||
|
||||
let models = {
|
||||
'submission' : new SubmissionModel( payload[`/organisations/${pic}/proposals/${number}`].permissions ),
|
||||
'team' : new SubmissionTeamModel( [ 'create', 'update', 'delete' ] ),
|
||||
'members' : new SubmissionMembersModel( payload[`/organisations/${pic}/proposals/${number}/members`].permissions )
|
||||
};
|
||||
|
||||
app.meta.add('organisation-functions', app.Assets.Store.json['organisation-functions']);
|
||||
app.meta.add('organisation-genders', app.Assets.Store.json['organisation-genders']);
|
||||
app.meta.add('eic-keywords', app.Assets.Store.json['eic-keywords']);
|
||||
|
||||
models.submission.getProposal(pic,number).then(
|
||||
async () => {
|
||||
let formVersions = {
|
||||
'legacy' : '2022',
|
||||
'1.0' : '2023',
|
||||
'1.1' : '2023'
|
||||
};
|
||||
|
||||
let formVersion = formVersions[models.submission.data.version || 'legacy'];
|
||||
|
||||
await Loader.loadViews(app.Router.ControllerConfigs.SubmissionsController.lazyViews[formVersion]);
|
||||
this.loadWindow(
|
||||
`projects/submissions/${formVersion}/SubmissionShortForm${formVersion}View`,
|
||||
{ title: 'Proposal ' + number, static: true, expanded: true },
|
||||
{
|
||||
profile: {
|
||||
mode: mode,
|
||||
pic: pic,
|
||||
number: number
|
||||
},
|
||||
models: models
|
||||
}
|
||||
);
|
||||
})
|
||||
|
||||
} else {
|
||||
ui.growl.append('You are not allowed to access this proposal', 'danger');
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('SubmissionsController', SubmissionsController);
|
||||
@@ -1,60 +0,0 @@
|
||||
{
|
||||
"routes": [
|
||||
{
|
||||
"url": "/:pid",
|
||||
"role": "Org_Member",
|
||||
"controller" : "/projects/submissions/SubmissionsController",
|
||||
"method": "proposal"
|
||||
}
|
||||
],
|
||||
"models": [
|
||||
"/submissions/SubmissionModel",
|
||||
"/organisations/ApplicantMembersModel"
|
||||
],
|
||||
"views": [
|
||||
"/projects/submissions/dialogs/SubmissionFormAccessDialog",
|
||||
"/projects/submissions/dialogs/SubmissionFormComplaintDialog"
|
||||
|
||||
],
|
||||
"controllerDependencies": [ "/thirdparty/AwsGoodies/AwsFileDownload", "/thirdparty/AwsGoodies/AwsFileUpload", "https://cdn.jsdelivr.net/npm/hls.js@latest" ],
|
||||
"assets": {
|
||||
"styles": [ { "name": "projects/submissions.css" } ],
|
||||
"json": [
|
||||
{"id":"organisation-genders", "name": "meta/organisation-genders.json"},
|
||||
{"id":"eic-keywords", "name": "meta/eic-keywords.json"},
|
||||
{"id":"organisation-functions", "name": "meta/organisation-functions.json"}
|
||||
]
|
||||
},
|
||||
"lazyViews": {
|
||||
"2022": [
|
||||
"/projects/submissions/2022/SubmissionShortForm2022View",
|
||||
{"view":"projects/submissions/2022/tabs/SubmissionShortForm2022WhatView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2022/tabs/SubmissionShortForm2022WhyView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2022/tabs/SubmissionShortForm2022WhoView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2022/tabs/SubmissionShortForm2022HowView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2022/tabs/SubmissionShortForm2022AmountView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2022/tabs/SubmissionShortForm2022WhomView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2022/tabs/SubmissionShortForm2022ImpactView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2022/tabs/SubmissionShortForm2022DocumentsView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2022/tabs/SubmissionShortForm2022StatusView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]}
|
||||
],
|
||||
"2023": [
|
||||
"/projects/submissions/2023/SubmissionShortForm2023View",
|
||||
"/projects/submissions/dialogs/SubmissionFormTeamMemberDialog",
|
||||
"/projects/submissions/dialogs/SubmissionFormUploadDialog",
|
||||
"/projects/submissions/dialogs/SubmissionFormConcurrencyDialog",
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023CompanyView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023CompetitionView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023FundingView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023GeneralView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023ProblemView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023SolutionView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023TeamView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023ImpactView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023DocumentsView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023DisclaimerView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023StatusView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]},
|
||||
{"view":"projects/submissions/2023/tabs/SubmissionShortForm2023ConsentView", "dependencies": [ "projects/submissions/SubmissionShortFormTabView" ]}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
class systemController extends EICController {
|
||||
|
||||
/**
|
||||
* Platform access control
|
||||
*
|
||||
* @param {*} params
|
||||
*/
|
||||
control() {
|
||||
app.meta.add('user-roles', app.Assets.Store.json['user-roles']);
|
||||
app.meta.add('user-messages', app.Assets.Store.json['user-messages']);
|
||||
let models = {
|
||||
platform: new PlatformModel()
|
||||
}
|
||||
|
||||
this.loadWindow(
|
||||
'system/admin/platform-control/AdminAccessControlView',
|
||||
{ title: 'Platform Control', static: true, expanded: true },
|
||||
{ models: models }
|
||||
);
|
||||
}
|
||||
|
||||
explore() {
|
||||
|
||||
|
||||
app.User.getBusinessPermissions([ '/storage/entities' ], 'EIC_Admin')
|
||||
.then(payload => {
|
||||
|
||||
console.log(payload)
|
||||
|
||||
let models = {
|
||||
ml: new MarklogicModel(payload['/storage/entities'].permissions)
|
||||
}
|
||||
|
||||
this.loadWindow(
|
||||
'system/admin/explorer/DataExplorerView',
|
||||
{ title: 'Data explorer', static: true, expanded: true },
|
||||
{ models: models }
|
||||
);
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* System Health check content
|
||||
*
|
||||
* @param {*} params
|
||||
*/
|
||||
healthcheck() {
|
||||
|
||||
this.loadWindow('system/tools/statusView', {
|
||||
title: 'Health Check',
|
||||
static: true,
|
||||
expanded: true
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
async styleguide() {
|
||||
|
||||
await Loader.loadViews(["system/tools/styleguideView"]);
|
||||
|
||||
this.loadWindow('system/tools/styleguideView', {
|
||||
title: 'Style guide',
|
||||
static: true,
|
||||
expanded: true
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
async eicui() {
|
||||
|
||||
await Loader.loadViews(["system/tools/EICUIView"]);
|
||||
|
||||
this.loadWindow(
|
||||
'system/tools/EICUIView',
|
||||
{ title: 'EICUI', static: true, expanded: true}
|
||||
);
|
||||
}
|
||||
|
||||
sampler(params) {
|
||||
this.loadWindow(
|
||||
'system/lab/SamplerView',
|
||||
{ title: 'SAMPLER3000', static: true, expanded: true }
|
||||
);
|
||||
}
|
||||
|
||||
chalkboard(params) {
|
||||
this.loadWindow(
|
||||
'system/lab/ChalkboardView',
|
||||
{ title: 'Chalkboard', static: true, expanded: true }
|
||||
);
|
||||
}
|
||||
|
||||
components(params) {
|
||||
this.loadWindow('system/lab/ComponentLabView', {
|
||||
title: 'Component Lab',
|
||||
static: true,
|
||||
expanded: true
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('systemController', systemController);
|
||||
@@ -1,82 +0,0 @@
|
||||
{
|
||||
"routes": [
|
||||
{
|
||||
"url": "/control",
|
||||
"role": "*",
|
||||
"controller" : "/system/systemController",
|
||||
"method": "control"
|
||||
},
|
||||
{
|
||||
"url": "/healthcheck",
|
||||
"role": "*",
|
||||
"controller" : "/system/systemController",
|
||||
"method": "healthcheck"
|
||||
},
|
||||
{
|
||||
"url": "/styleguide",
|
||||
"role": "*",
|
||||
"controller" : "/system/systemController",
|
||||
"method": "styleguide"
|
||||
},
|
||||
{
|
||||
"url": "/eicui",
|
||||
"role": "*",
|
||||
"controller" : "/system/systemController",
|
||||
"method": "eicui"
|
||||
},
|
||||
{
|
||||
"url": "/sampler",
|
||||
"role": "*",
|
||||
"controller" : "/system/systemController",
|
||||
"method": "sampler"
|
||||
},
|
||||
{
|
||||
"url": "/chalkboard",
|
||||
"role": "*",
|
||||
"controller" : "/system/systemController",
|
||||
"method": "chalkboard"
|
||||
},
|
||||
{
|
||||
"url": "/explorer",
|
||||
"role": "*",
|
||||
"controller" : "/system/systemController",
|
||||
"method": "explore"
|
||||
}
|
||||
],
|
||||
"models": [
|
||||
"system/PlatformModel",
|
||||
"system/MarklogicModel"
|
||||
],
|
||||
"views": [
|
||||
"system/admin/platform-control/AdminAccessControlView",
|
||||
"system/lab/SamplerView",
|
||||
"system/lab/ChalkboardView",
|
||||
"system/lab/ComponentLabView",
|
||||
"system/tools/statusView",
|
||||
"system/admin/explorer/DataExplorerView",
|
||||
"system/admin/platform-control/dialogs/PlatformUserMessageDialog",
|
||||
"system/admin/platform-control/dialogs/PlatformDownDialog",
|
||||
"system/admin/platform-control/dialogs/PlatformConfigViewDialog",
|
||||
"system/tools/dialogs/codeTemplateDialog"
|
||||
],
|
||||
"controllerDependencies": [
|
||||
"/thirdparty/eicui/plugins/FileUpload/FileUpload",
|
||||
"/thirdparty/eicui/plugins/Charts/Charts",
|
||||
"/thirdparty/beautify/beautify.min",
|
||||
"/thirdparty/beautify/beautify.html.min",
|
||||
"/thirdparty/beautify/beautify.css.min",
|
||||
"/thirdparty/highlight/highlight.min",
|
||||
"/helpers/basicDialogs"
|
||||
],
|
||||
"assets": {
|
||||
"styles": [
|
||||
{ "name":"FileUpload.css", "path":"/app/thirdparty/eicui/plugins/FileUpload/" },
|
||||
{ "name":"Charts.css", "path":"/app/thirdparty/eicui/plugins/Charts/" },
|
||||
{ "name":"monokai.min.css", "path":"/app/thirdparty/highlight/styles/" }
|
||||
],
|
||||
"json": [
|
||||
{ "id": "user-roles", "name": "global/user-roles.json" },
|
||||
{ "id": "user-messages", "name": "system/user-messages.json" }
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,264 +0,0 @@
|
||||
/**
|
||||
* @category MyEic
|
||||
* @subcategory Libraries
|
||||
*/
|
||||
class ChatModule{
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} appContent
|
||||
*/
|
||||
constructor(appContent) {
|
||||
this.appContent = appContent;
|
||||
this.unreadChats = {};
|
||||
this.chatTargets = {};
|
||||
this.onlineUsers = [];
|
||||
this.recipientId = null;
|
||||
this.currentHistory = [];
|
||||
|
||||
this.initView();
|
||||
|
||||
//TODO: inherit API entry_points
|
||||
// this.APmeta.xxxx
|
||||
this.APIEntries = {
|
||||
'chatTargets' :'/api/chatTargets',
|
||||
'':'',
|
||||
|
||||
};
|
||||
|
||||
//TODO: Do this on opening the chat-panel ? => when is it updated ?
|
||||
this.getConversations()
|
||||
.then( this.updateChanList.bind(this) )
|
||||
.then( this.RequestOnlineUsers.bind(this));
|
||||
this.addMsgBusEvents();
|
||||
this.RequestUnreadMsgs();
|
||||
}
|
||||
|
||||
addMsgBusEvents(){
|
||||
app.events.addEvent('MessageBus.Connected', this.RequestUnreadMsgs.bind(this));
|
||||
app.events.addEvent('MessageBus.Closed', this.updateUnreadBadge.bind(this));
|
||||
app.events.addEvent('MessageBus.NOTIFS', this.updateUnreadBadge.bind(this));
|
||||
app.events.addEvent('MessageBus.ISONLINE', this.updateOnlineBadges.bind(this));
|
||||
app.events.addEvent('MessageBus.CHANHIST', this.replaceHisto.bind(this));
|
||||
app.events.addEvent('MessageBus.CHATMSG', this.recvBus.bind(this));
|
||||
}
|
||||
|
||||
RequestUnreadMsgs(){
|
||||
return(
|
||||
app.MessageBus.requestWssGwAction('NOTIFS', null).then(
|
||||
(payload) => {
|
||||
this.unreadChats = payload.unreadChats;
|
||||
//TODO: share the other stuff with friends... (app.something ??)
|
||||
this.updateUnreadBadge();
|
||||
},
|
||||
(err)=>{ console.warn('MSGBUS error:',err) })
|
||||
);
|
||||
}
|
||||
|
||||
RequestOnlineUsers(){
|
||||
let usrlist = Object.keys(this.chatTargets.users);
|
||||
// Request them now
|
||||
app.MessageBus.requestWssGwAction('ISONLINE', usrlist);
|
||||
// Watch them
|
||||
app.MessageBus.requestWssGwAction('WATCHUSERS', usrlist);
|
||||
}
|
||||
|
||||
getConversations(){
|
||||
//TODO use app central fetcher ??? => use fake model like in myUser
|
||||
return(fetch(this.APIEntries.chatTargets)
|
||||
.then((response) => response.json()));
|
||||
}
|
||||
|
||||
recvBus(e){
|
||||
let histoDetail = {};
|
||||
histoDetail[e.detail.msg.histId] = {
|
||||
'msg' : e.detail.msg.msg,
|
||||
'sender' : e.detail.msg.sender
|
||||
};
|
||||
this.replaceHisto({ 'detail': histoDetail });
|
||||
}
|
||||
|
||||
replaceHisto(e){
|
||||
let hids = Object.keys(e.detail);
|
||||
for(let hid of hids){ // Insert without creating dups
|
||||
if(!(hid in this.currentHistory)) this.currentHistory[hid] = e.detail[hid];
|
||||
}
|
||||
let html = ''; let day = '';
|
||||
let user, acro, dat, timestp;
|
||||
for(let hid of Object.keys(this.currentHistory).sort()){
|
||||
user = this.chatTargets.users[this.currentHistory[hid].sender];
|
||||
acro = user.given_name[0].toUpperCase()+'. '+user.family_name;
|
||||
dat = new Date(1*hid.substring(0,hid.indexOf('-')));
|
||||
timestp = dat.toLocaleString('fr').replace('/'+new Date().getFullYear(),''); // hide current year
|
||||
if((day != '') && (day != dat.getDate())) {
|
||||
html += `<div class="day-separator">${(dat.getDate()==(new Date()).getDate())?'(today)':''}</div>`;
|
||||
}
|
||||
html += `<div class="histo-entry ${(this.currentHistory[hid].sender==app.currentUser.userInfo.sub)?'me':''}">
|
||||
<span class="sender">${acro} (${timestp})</span><br>
|
||||
${this.currentHistory[hid].msg.replace(/\n/g, '<br>')}
|
||||
</div><br>`;
|
||||
day = dat.getDate();
|
||||
}
|
||||
this.chatView.el.querySelector('.history').innerHTML = html;
|
||||
this.chatView.el.querySelector('.history').scrollTop = this.chatView.el.querySelector('.history').scrollHeight;
|
||||
}
|
||||
|
||||
updateChanList(chatTargets){
|
||||
this.chatTargets = chatTargets;
|
||||
for(var uid in chatTargets.users){
|
||||
if(uid != app.currentUser.userInfo.sub){
|
||||
this.addUserChannel(uid, chatTargets.users[uid]);
|
||||
}
|
||||
}
|
||||
for(var chid in chatTargets.lobbies){
|
||||
this.addLobbyChannel(chid, chatTargets.lobbies[chid]);
|
||||
}
|
||||
}
|
||||
|
||||
addUserChannel(uid, user) {
|
||||
let acro = user.given_name[0].toUpperCase()+'. '+user.family_name;
|
||||
this.chanlist.addRow('P:'+uid, [ '<span eicbadge danger class="userled"></span>', acro ]);
|
||||
}
|
||||
|
||||
addLobbyChannel(chid, lobby) {
|
||||
this.chanlist.addRow('C:'+chid, [ '<span eicbadge info class="lobbyled"></span>', lobby.name]);
|
||||
}
|
||||
|
||||
initView() {
|
||||
this.chatView = {
|
||||
el: null,
|
||||
channels: [],
|
||||
active: false,
|
||||
currentChannel: null
|
||||
};
|
||||
this.chatView.el = new DropDown(ui.create(`
|
||||
<div eicdropdown>
|
||||
<button eicbutton rounded basic small primary class="icon-comment chat-menu"></button>
|
||||
<menu eicmenu>
|
||||
<li menuitem>
|
||||
<div class="eic-chat">
|
||||
<div class="chanlist"></div>
|
||||
<div class="lobbyname">Lobby name...</div>
|
||||
<div class="history"></div>
|
||||
<textarea eictextarea class="message" placeholder="Type message here..."></textarea>
|
||||
<button eicbutton small primary class="send" eicicon="icon-send"></button>
|
||||
</div>
|
||||
</li>
|
||||
</menu>
|
||||
</div>
|
||||
`)).el;
|
||||
ui.eicfy(this.chatView.el);
|
||||
this.appContent.find('header .eic-session').prepend(this.chatView.el);
|
||||
this.chanlist = new DataGrid(this.appContent.find('.chanlist'), {
|
||||
headers: [
|
||||
{label: '', sortable:true },
|
||||
{label: 'name', filter: 'text', sortable:true},
|
||||
],
|
||||
height: '350px',
|
||||
});
|
||||
this.chanlist.onRowClick= this.selectChan.bind(this);
|
||||
this.chatView.el.querySelector('.send').addEventListener('click', this.onSendMessage.bind(this));
|
||||
this.chatView.el.querySelector('.message').addEventListener("keyup", this.onKeyUp.bind(this));
|
||||
this.updateUnreadBadge();
|
||||
this.chatView.tab = new Tab();
|
||||
}
|
||||
|
||||
onKeyUp(event) {
|
||||
if(this.aftertypeTo) clearTimeout(this.aftertypeTo);
|
||||
if(event.which == 13 && !event.shiftKey) {
|
||||
this.onSendMessage(event);
|
||||
return
|
||||
}
|
||||
this.aftertypeTo = setTimeout(() => {
|
||||
this.chatView.el.querySelector('.message').value = this.emotiAscii2Utf(this.chatView.el.querySelector('.message').value);
|
||||
}, 900);
|
||||
}
|
||||
|
||||
emotiAscii2Utf(txt) {
|
||||
let conv = {
|
||||
':-)':'🙂',':)':'🙂',';-)':'😉',';)':'😉',':-D':'😄','x-D':'😂',':-P':'😛',
|
||||
':P':'😛',':-|':'😑',':|':'😑',':-(':'🙁',':(':'🙁',":'-)":'😂',":')":'😂',
|
||||
":'-(":'😢',":'(":'😢','>:(':'😠','>:[':'😡',':-*':'😘',':*':'😘','O:-)':'😇',
|
||||
'O:)':'😇',':-J':'😏'
|
||||
}
|
||||
for(let emoasci of Object.keys(conv)) {
|
||||
if(emoasci == txt.substring(txt.length-emoasci.length)){
|
||||
return(txt.substring(0,txt.length-emoasci.length)+conv[emoasci]);
|
||||
}
|
||||
}
|
||||
return(txt);
|
||||
}
|
||||
|
||||
selectChan(e){
|
||||
let rawid = e.currentTarget.dataset.id;
|
||||
if((rawid[0]!='P') && (rawid[0]!='C')) return;
|
||||
this.recipientId = rawid;
|
||||
for(let el of this.chatView.el.querySelectorAll(`.chanlist li.row`)){
|
||||
el.style.backgroundColor = '';
|
||||
el.style.color = '';
|
||||
}
|
||||
e.currentTarget.style.backgroundColor = 'var(--eicui-app-toolbar-bg-color)';
|
||||
e.currentTarget.style.color = 'var(--eicui-base-color-white)';
|
||||
this.currentHistory = {};
|
||||
let realRecipientId = rawid.substring(2);
|
||||
let lobbyname;
|
||||
if(this.recipientId[0]=='P') {
|
||||
lobbyname = this.chatTargets.users[realRecipientId].given_name+' '+this.chatTargets.users[realRecipientId].family_name
|
||||
} else if(this.recipientId[0]=='C') {
|
||||
lobbyname = this.chatTargets.lobbies[realRecipientId].name;
|
||||
}
|
||||
this.chatView.el.querySelector('.lobbyname').innerHTML = lobbyname;
|
||||
app.MessageBus.requestWssGwAction('STARTCHAT', this.recipientId);
|
||||
app.MessageBus.requestWssGwAction('CHANHIST', this.recipientId);
|
||||
}
|
||||
|
||||
onSendMessage(e){
|
||||
let txt = this.chatView.el.querySelector('.message').value;
|
||||
app.MessageBus.requestWssGwAction('SENDCHAT', {
|
||||
'recipient' : this.recipientId,
|
||||
'msg': txt
|
||||
})
|
||||
this.chatView.el.querySelector('.message').value = '';
|
||||
}
|
||||
|
||||
updateUnreadBadge(){
|
||||
//updateUnreadBadge is decoupled from the msgbus via nbUnreadMsgs so you can redraw the UI anytime, not depending on a msgbus request
|
||||
let totUnRead = 0;
|
||||
for(let chan in this.unreadChats) totUnRead += this.unreadChats[chan];
|
||||
|
||||
if(!app.MessageBus.connected) {
|
||||
this.chatView.el.querySelector('button.chat-menu').innerHTML = `<span class="icon-warning" warning xsmall></span>`;
|
||||
} else if(totUnRead>0) {
|
||||
this.chatView.el.querySelector('button.chat-menu').innerHTML = `<span eicbadge success xxsmall>${totUnRead}</span>`;
|
||||
} else {
|
||||
this.chatView.el.querySelector('button.chat-menu').innerHTML = '';
|
||||
}
|
||||
}
|
||||
|
||||
updateOnlineBadges(event){
|
||||
this.onlineUsers = event.detail;
|
||||
let el;
|
||||
for(el of this.chatView.el.querySelectorAll(`.eic-chat .userled`)){
|
||||
el.removeAttribute('success');
|
||||
el.setAttribute('danger','');
|
||||
}
|
||||
for(let uid of this.onlineUsers){
|
||||
el = this.chatView.el.querySelector(`[data-id="P:${uid}"] .userled`);
|
||||
if(el) {
|
||||
el.removeAttribute('danger');
|
||||
el.setAttribute('success','');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('ChatModule', ChatModule);
|
||||
|
||||
|
||||
//TODOs
|
||||
// Lobbies
|
||||
// Return to send, shift-return to CRLF
|
||||
// Limit displayed / requested history
|
||||
// Store my read / unread msg => real unread notifs
|
||||
// Smileys
|
||||
@@ -1,168 +0,0 @@
|
||||
@font-face {
|
||||
font-family: 'NotoColorEmoji';
|
||||
src: url('NotoColorEmoji.ttf') format('truetype');
|
||||
}
|
||||
|
||||
.eic-chat {
|
||||
min-width: 50vw;
|
||||
padding: var(--eicui-base-spacing-m) !important;
|
||||
}
|
||||
.eic-chat section .conversations > div > div {
|
||||
display: grid;
|
||||
grid-gap: 10px;
|
||||
grid-template-rows: auto min-content min-content;
|
||||
}
|
||||
.eic-chat .status {
|
||||
float: right;
|
||||
color: var(--eicui-base-color-white);
|
||||
display: grid;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: var(--eicui-base-color-danger-100);
|
||||
border-radius: 24px;
|
||||
font-size: 1rem;
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.eic-chat .status.active {
|
||||
background: var(--eicui-base-color-success-100);
|
||||
}
|
||||
|
||||
|
||||
.eic-chat .chanlist {
|
||||
width: 250px;
|
||||
font-size: .8em;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
min-height:350px;
|
||||
padding: 5px;
|
||||
grid-area: chanlist;
|
||||
}
|
||||
.eic-chat .history{
|
||||
grid-area: history;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 5px;
|
||||
min-height: 300px;
|
||||
width:100%;
|
||||
text-transform: none;
|
||||
max-height: 500px;
|
||||
overflow: scroll;
|
||||
}
|
||||
.eic-chat .lobbyname {
|
||||
grid-area: lobbyname;
|
||||
background-color: var(--eicui-app-toolbar-bg-color);
|
||||
color: var(--eicui-base-color-white);
|
||||
padding: 5px;
|
||||
text-transform: none;
|
||||
}
|
||||
.eic-chat .history .histo-entry{
|
||||
font-family: sans-serif, 'NotoColorEmoji' !important;
|
||||
background-color: #E8E8FF;
|
||||
border-radius: 5px;
|
||||
margin: 2px 5px;
|
||||
padding: 2px 5px;
|
||||
display: inline-block;
|
||||
max-width: 500px;
|
||||
float: left;
|
||||
clear: both;
|
||||
}
|
||||
.eic-chat .history .day-separator{
|
||||
clear: both;
|
||||
height: 0;
|
||||
border: 0px none transparent;
|
||||
border-top: 2px dotted #777;
|
||||
text-align: center;
|
||||
line-height: 17px;
|
||||
font-size: smaller;
|
||||
}
|
||||
.eic-chat .history .histo-entry.me{
|
||||
float: right;
|
||||
background-color: #D9F2D7;
|
||||
}
|
||||
.eic-chat .history .histo-entry .sender{
|
||||
display: inline-block;
|
||||
font-size: .85em;
|
||||
font-weight: bold;
|
||||
background-color: var(--eicui-app-toolbar-bg-color);
|
||||
color: #FFF;
|
||||
padding: 0 2px 2px 2px;
|
||||
border-radius: 5px;
|
||||
font-family: monospace;
|
||||
}
|
||||
.eic-chat .message{
|
||||
grid-area: message;
|
||||
width:550px;
|
||||
font-family: sans-serif, 'NotoColorEmoji' !important;
|
||||
}
|
||||
.eic-chat .send{
|
||||
grid-area: send;
|
||||
}
|
||||
|
||||
|
||||
.eic-chat {
|
||||
display:grid;
|
||||
grid-template-areas:
|
||||
'chanlist lobbyname lobbyname'
|
||||
'chanlist history history'
|
||||
'chanlist message send';
|
||||
}
|
||||
.eic-chat .chanlist li.row{
|
||||
grid-template-columns: 15px 2fr;
|
||||
}
|
||||
|
||||
.eic-chat .chanlist span.userled{
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
height: calc(var(--eicui-base-spacing-s)*.8);
|
||||
min-width: calc(var(--eicui-base-spacing-s)*.8);
|
||||
border: 1px outset #aaa;
|
||||
}
|
||||
.eic-chat .chanlist span.lobbyled{
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
height: calc(var(--eicui-base-spacing-s)*.8);
|
||||
min-width: calc(var(--eicui-base-spacing-s)*.8);
|
||||
border: 2px outset #00A;
|
||||
}
|
||||
|
||||
.eic-chat .output {
|
||||
overflow-y: auto;
|
||||
height: 350px;
|
||||
background-color: var(--eicui-base-color-white);
|
||||
width: 100%;
|
||||
border: 1px solid var(--eicui-base-color-grey);
|
||||
padding: 10px;
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
.eic-chat .output .emitter {
|
||||
color: var(--eicui-base-color-primary);
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
.eic-chat .cols-2.form {
|
||||
height: 60px;
|
||||
align-items: flex-end;
|
||||
}
|
||||
.eic-chat .cols-2.form textarea {
|
||||
resize: none;
|
||||
}
|
||||
.eic-chat .lobby {
|
||||
display: grid;
|
||||
grid-gap: var(--eicui-base-spacing-m);
|
||||
}
|
||||
#subchalst{
|
||||
margin: 0 0 0 0;
|
||||
padding: 0 0 0 5px;
|
||||
}
|
||||
#subchalst li{
|
||||
font-size:12px;
|
||||
}
|
||||
.eic-chat .subscriptions,
|
||||
.eic-chat .onlineusers{
|
||||
min-width: 300px;
|
||||
}
|
||||
|
||||
.eic-chat .subscriptions label,
|
||||
.eic-chat .onlineusers label{
|
||||
font-weight:bold;
|
||||
}
|
||||
@@ -1,90 +0,0 @@
|
||||
'use strict'
|
||||
/**
|
||||
* @category MyEic
|
||||
* @subcategory Libraries
|
||||
*/
|
||||
class MBRendezVous {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} appctrl
|
||||
*/
|
||||
constructor(appctrl){
|
||||
if(!app.MessageBus) return
|
||||
this.activeMeetChans = {}
|
||||
this.myUserNotifChan = app.config.messageBus.userNotifChan.replace(/\{uid\}/g, app.User.identity.uuid)
|
||||
app.MessageBus.addBusListener(
|
||||
'rendezVous',
|
||||
[ this.myUserNotifChan ],
|
||||
this.onRendezVousRequest.bind(this)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} chan
|
||||
* @param {*} payload
|
||||
* @param {*} sender
|
||||
*/
|
||||
async onRendezVousRequest(chan, payload, sender){
|
||||
if(! await this.userConfirmation(sender, payload.userMessage)) return
|
||||
let rdvzchan = payload.chanPrefix + crypto.randomUUID()
|
||||
//this.activeMeetChans[] = chan
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} sender
|
||||
* @param {*} userMessage
|
||||
*/
|
||||
async userConfirmation(sender, userMessage){
|
||||
let options = {
|
||||
title: 'Connexion request',
|
||||
message: `<p>The user <b>${sender}</b> invites you to ${userMessage}.</p>
|
||||
`,
|
||||
cancelLabel: 'Refuse',
|
||||
okLabel: 'Accept',
|
||||
severity: 'danger',
|
||||
okPromise: () => new Promise((ok,ko)=>ok())
|
||||
}
|
||||
await this.mainCtrl.loadContent('templates/dialogs/ConfirmDialog', options, options)
|
||||
/*
|
||||
let result = await this.mainView.confirmDialog({
|
||||
title: 'Connexion request',
|
||||
message: `<p>The user <b>${sender}</b> invites you to ${userMessage}.</p>
|
||||
`,
|
||||
cancelLabel: 'Refuse',
|
||||
okLabel: 'Accept',
|
||||
severity: 'danger',
|
||||
okPromise: () => new Promise((ok,ko)=>ok())
|
||||
})
|
||||
|
||||
if(result) {
|
||||
console.log('you said YES')
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} hisUid
|
||||
* @param {*} userMessage
|
||||
* @param {*} timeout
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getRendezVousChan(hisUid, userMessage, timeout){
|
||||
if(!app.MessageBus) return(
|
||||
|
||||
new Promise((resolve, reject) => reject('Cannot rendez-vous without messageBus !'))
|
||||
)
|
||||
|
||||
return(
|
||||
new Promise((resolve, reject) => {
|
||||
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('MBRendezVous', MBRendezVous);
|
||||
@@ -1,115 +0,0 @@
|
||||
class FakeFileSystem {
|
||||
|
||||
constructor() {
|
||||
this.currentPath='/'
|
||||
this.path2dir = {}
|
||||
}
|
||||
|
||||
/*
|
||||
loadStructure : loads an object like dirname: [ subojbects ]
|
||||
*/
|
||||
loadStructure(struct, files) {
|
||||
this._scanStruct('/', struct, files || []);
|
||||
}
|
||||
|
||||
_scanStruct(locPath, struct, files){
|
||||
this.path2dir[locPath]={ /* assign local files & local folers*/
|
||||
files: [...files.filter(item=>{
|
||||
let filePath = (item.fullPath.split('/').length>2) ? item.fullPath.substr(0,item.fullPath.lastIndexOf('/')) : '/'
|
||||
return(filePath==locPath)
|
||||
})],
|
||||
folders: [...Object.keys(struct).map(item=> {
|
||||
let folderPath = (locPath=='/') ? '/'+item: locPath+'/'+item
|
||||
let childrenFiles = files.filter(item=>(item.object.path==folderPath))
|
||||
return({
|
||||
name:item,
|
||||
path: folderPath,
|
||||
isEmpty:( (Object.keys(struct[item]).length==0) && (childrenFiles.length==0) )
|
||||
})
|
||||
})]
|
||||
}
|
||||
if(locPath!='/') this.path2dir[locPath].folders.unshift({name:'..', path:'..'})
|
||||
|
||||
this.path2dir[locPath].files.sort((a,b)=>((a.object.name<b.object.name) ? -1 : 1))
|
||||
this.path2dir[locPath].folders.sort((a,b)=>((a.name<b.name) ? -1 : 1))
|
||||
for(let folderName of Object.keys(struct)){ // Now recur for each subfolder
|
||||
let subPath = (locPath=='/') ? '/'+folderName : locPath+'/'+folderName
|
||||
let childrenFiles = files.filter(item=>(item.fullPath.length>subPath.length))
|
||||
this._scanStruct(
|
||||
subPath,
|
||||
struct[folderName],
|
||||
childrenFiles
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
getFolder : returns an alphabetically sorted array of folders at the current path
|
||||
*/
|
||||
getFolders(){
|
||||
return(this.path2dir[this.currentPath].folders)
|
||||
}
|
||||
|
||||
/*
|
||||
getFiles : returns an alphabetically sorted array of files at the current path
|
||||
*/
|
||||
getFiles(){
|
||||
return(this.path2dir[this.currentPath].files)
|
||||
}
|
||||
|
||||
/*
|
||||
findFile : returns the path of the first file than validates the comparison function.
|
||||
The comparison function is given the file object as parameter, and should return a boolean.
|
||||
*/
|
||||
findFile(fn){
|
||||
for(let path of Object.keys(this.path2dir)){
|
||||
for(let file of this.path2dir[path].files){
|
||||
if(fn(file.object)) return(path)
|
||||
}
|
||||
}
|
||||
return(false)
|
||||
}
|
||||
|
||||
/*
|
||||
changeDir : changes the current path, relatively or absolutely
|
||||
*/
|
||||
changeDir(path){
|
||||
if(path.startsWith('/')){ //Absolute
|
||||
if(this.pathExists(path)) this.currentPath = path
|
||||
} else { //relative
|
||||
let newPath = this.normalizePath(this.currentPath+'/'+path)
|
||||
if(newPath=='') newPath='/'
|
||||
if(this.pathExists(newPath)) this.currentPath = newPath
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
pathExists : Check if path (file excluded) exists in the structure
|
||||
*/
|
||||
pathExists(path){
|
||||
return(Object.keys(this.path2dir).includes(path))
|
||||
}
|
||||
|
||||
/*
|
||||
normalizePath : cleans up and normalizes (executes all /../)
|
||||
*/
|
||||
normalizePath(path) {
|
||||
path = path.replace(/\/+/g, '/')
|
||||
if (path.startsWith("/")) path = path.substring(1)
|
||||
if (path.endsWith("/")) path = path.slice(0, -1)
|
||||
let segments = path.split("/")
|
||||
let normalizedPath = "/"
|
||||
for(let segment of segments) {
|
||||
if (segment === "." || segment === "") continue
|
||||
if (segment === "..") {
|
||||
normalizedPath = normalizedPath.substring(0, normalizedPath.lastIndexOf("/") )
|
||||
continue
|
||||
}
|
||||
if (!normalizedPath.endsWith("/")) normalizedPath = normalizedPath + "/"
|
||||
normalizedPath = normalizedPath + segment
|
||||
}
|
||||
return(normalizedPath)
|
||||
}
|
||||
|
||||
}
|
||||
app.registerClass('FakeFileSystem', FakeFileSystem)
|
||||
@@ -7,7 +7,7 @@
|
||||
(______)(___/(____)(_)\_)
|
||||
By Nike
|
||||
|
||||
This file is part of EIC implementation of SPARC.
|
||||
This file is part of P42 implementation of SPARC.
|
||||
* @category MyEic
|
||||
* @subcategory Libraries
|
||||
* @extends User
|
||||
@@ -101,7 +101,10 @@ class myUser extends app.LoadedClasses.User {
|
||||
email: 'info@nicsys.eu'
|
||||
};
|
||||
this.roles = ['admin']
|
||||
return
|
||||
this.isAuthenticated = true
|
||||
console.log('Will call callback...', callBack)
|
||||
callBack();
|
||||
/*
|
||||
|
||||
fetch(app.config.userLib.authEndpoint+'?'+crypto.randomUUID(),{
|
||||
headers: headers,
|
||||
@@ -147,6 +150,7 @@ class myUser extends app.LoadedClasses.User {
|
||||
console.error('Server error calling authorizer checkAuthenticated (Network error)',err);
|
||||
document.location.href = '/eulogin-error.html';
|
||||
});
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -155,25 +159,6 @@ class myUser extends app.LoadedClasses.User {
|
||||
*/
|
||||
getMessageBusUserInfo() { return(this.identity.uuid) }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} objects An array of URI to be checked
|
||||
* @param {*} role
|
||||
* @returns {Promise}
|
||||
*/
|
||||
getBusinessPermissions(objects, role) {
|
||||
let requestedObjects = { resources: objects }
|
||||
let uri = app.config.userLib.resourcePermissionsEndpoint.replace('{id}', this.identity.uuid);
|
||||
|
||||
// This is just to make use of the whole base model request mechanism (especially for the 401 flow)
|
||||
let fakeModel = new EICModel(null, null)
|
||||
return(
|
||||
fakeModel.request(uri, 'POST', requestedObjects)
|
||||
.then( async serverData => {
|
||||
return(serverData.payload)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -198,77 +183,6 @@ class myUser extends app.LoadedClasses.User {
|
||||
document.location.href = this.authUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
startKeepAlive() {
|
||||
if((!app.config.userLib.keepAliveSeconds) || this.KALtimer) return
|
||||
this.KALtimer = setInterval(this.doKeepAlive.bind(this), 1000*app.config.userLib.keepAliveSeconds)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
stopKeepAlive() {
|
||||
if(this.KALtimer) clearInterval(this.KALtimer)
|
||||
this.KALtimer = null
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
doKeepAlive() {
|
||||
this.checkAuthenticated(()=>{
|
||||
// KAL was successfull... do we care ?
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
isVIP(){
|
||||
if(Array.isArray(this.platformRestrictions.allowedRoles)){
|
||||
let intersect = this.roles.filter(r => (this.platformRestrictions.allowedRoles.includes(r)) )
|
||||
if(intersect.length>0) return(true)
|
||||
}
|
||||
if((Array.isArray(this.platformRestrictions.allowedUUIDs)) &&
|
||||
(this.platformRestrictions.allowedUUIDs.includes(this.identity.uuid))){
|
||||
return(true)
|
||||
}
|
||||
return(false)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @todo should be handled by an external view
|
||||
*/
|
||||
ShowCurtain() {
|
||||
let link = document.createElement("link");
|
||||
link.rel='stylesheet'
|
||||
link.type='text/css'
|
||||
link.href='/app/thirdparty/eicui/eicui-2.0.css'
|
||||
document.head.appendChild(link)
|
||||
|
||||
let style = document.createElement('style')
|
||||
style.innerHTML = ` .maintenance{ width: 40vw!important; text-align: center; margin: auto!important; } `
|
||||
document.head.appendChild(style)
|
||||
|
||||
let content = document.createElement('div')
|
||||
content.innerHTML = `
|
||||
<article class="maintenance" eiccard="" aria-enabled="true" >
|
||||
<header><h1>Maintenance</h1></header>
|
||||
<section>
|
||||
<alert eicalert="" danger="">
|
||||
The site is currently under maintenance.</br>
|
||||
Please come back later.
|
||||
</alert>
|
||||
</section>
|
||||
</article>
|
||||
`
|
||||
document.body.appendChild(content)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} info
|
||||
|
||||
@@ -1,125 +0,0 @@
|
||||
class CoachingAdminModel extends EICModel {
|
||||
|
||||
organisations = [
|
||||
{
|
||||
pic: '789654123',
|
||||
legalname: 'NightSHift.be',
|
||||
projects: [
|
||||
{
|
||||
reference: 1,
|
||||
number: '965432187',
|
||||
type: 'project',
|
||||
acronym: 'Total Pepet 3000',
|
||||
organisation: 'ACME inc.',
|
||||
status: 'coach selected',
|
||||
creditsUsed: 3,
|
||||
creditsLeft: 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
pic: '896754312',
|
||||
legalname: 'ACME inc.',
|
||||
projects: [
|
||||
{
|
||||
reference: 1,
|
||||
number: '965432187',
|
||||
type: 'project',
|
||||
acronym: 'Total Pepet 2000',
|
||||
organisation: 'ACME inc.',
|
||||
status: 'coach selected',
|
||||
creditsUsed: 3,
|
||||
creditsLeft: 3
|
||||
},
|
||||
{
|
||||
reference: 1,
|
||||
number: '965432187',
|
||||
type: 'project',
|
||||
acronym: 'MAXIBROUZOUF',
|
||||
organisation: 'ACME inc.',
|
||||
status: 'closed',
|
||||
creditsUsed: 3,
|
||||
creditsLeft: 3
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
/**
|
||||
*
|
||||
*/
|
||||
getCoachings() {
|
||||
return Promise.resolve([
|
||||
{
|
||||
reference: 1,
|
||||
number: '987654321',
|
||||
type: 'proposal',
|
||||
acronym: 'MAXIBROUZOUF',
|
||||
organisation: 'ACME inc.',
|
||||
status: 'closed',
|
||||
creditsUsed: 6,
|
||||
creditsLeft: 0
|
||||
},
|
||||
{
|
||||
reference: 1,
|
||||
number: '965432187',
|
||||
type: 'project',
|
||||
acronym: 'Total Pepet 2000',
|
||||
organisation: 'ACME inc.',
|
||||
status: 'coach selected',
|
||||
creditsUsed: 3,
|
||||
creditsLeft: 3
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
getCoaching(number, id) { return Promise.resolve({ }); }
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
getCompanies() { return Promise.resolve(this.organisations); }
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
getOrganisation(pic) { return this.organisations.find(item => item.pic == pic); }
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
getCoaches() {
|
||||
return Promise.resolve([
|
||||
{
|
||||
id: 12345,
|
||||
uid: 'fallimi',
|
||||
firstname: 'Michael',
|
||||
lastname: 'Fallise',
|
||||
email: 'michael.fallise@gmail.com',
|
||||
invitations: 2,
|
||||
coachings: 3
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
getCoach(id) {
|
||||
return Promise.resolve(
|
||||
{
|
||||
id: 12345,
|
||||
firstname: 'Michael',
|
||||
lastname: 'Fallise',
|
||||
email: 'michael.fallise@gmail.com',
|
||||
phone: '+32477708551',
|
||||
address: '',
|
||||
coachings: 3
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('CoachingAdminModel',CoachingAdminModel);
|
||||
@@ -1,5 +0,0 @@
|
||||
class CoachingApplicantModel extends EICModel {
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('CoachingApplicantModel',CoachingApplicantModel);
|
||||
@@ -1,58 +0,0 @@
|
||||
class CoachingCoachModel extends EICModel {
|
||||
|
||||
getInvitations() {
|
||||
return Promise.resolve([
|
||||
{
|
||||
id: 1,
|
||||
status: 'invitations-sent',
|
||||
proposal: {
|
||||
number: '9876545421',
|
||||
acronym: 'MAXIBROUZOUF'
|
||||
},
|
||||
priorities: {
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
status: 'invitations-sent',
|
||||
proposal: {
|
||||
number: '9876421545',
|
||||
acronym: 'Inno Pepet 2000'
|
||||
},
|
||||
priorities: {
|
||||
|
||||
}
|
||||
}
|
||||
]);
|
||||
}
|
||||
|
||||
getCoachings() {
|
||||
return Promise.resolve([
|
||||
{
|
||||
id: 1,
|
||||
status: 'closed',
|
||||
proposal: {
|
||||
number: '9876545421',
|
||||
acronym: 'MAXIBROUZOUF'
|
||||
},
|
||||
priorities: {
|
||||
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 1,
|
||||
status: 'plan-approved',
|
||||
proposal: {
|
||||
number: '9876421545',
|
||||
acronym: 'Inno Pepet 2000'
|
||||
},
|
||||
priorities: {
|
||||
|
||||
}
|
||||
}
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('CoachingCoachModel',CoachingCoachModel);
|
||||
@@ -1,83 +0,0 @@
|
||||
class ContactMgrModel extends EICModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('/contactMgr', privileges)
|
||||
Object.assign(this, app.helpers.validators)
|
||||
}
|
||||
|
||||
async list() {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('list')
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async get(qcid){
|
||||
if(!this.hasPrivilege('get')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('get')
|
||||
endpoint.uri = endpoint.uri.replace('{qcid}', qcid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async getField(qcid, fieldid){
|
||||
if(!this.hasPrivilege('getFields')) return( new Promise((resolve, reject) => reject()))
|
||||
const endpoint = this.getApiEndpoint('getFields')
|
||||
endpoint.uri = endpoint.uri.replace('{qcid}', qcid)
|
||||
const payload = {
|
||||
fieldid: fieldid
|
||||
}
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async getSample(qcid, values){
|
||||
if(!this.hasPrivilege('execute')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('execute')
|
||||
endpoint.uri = endpoint.uri.replace('{qcid}', qcid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {
|
||||
sample: true,
|
||||
sampleSize: 10,
|
||||
values: values,
|
||||
})
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async execute(qcid, values){
|
||||
if(!this.hasPrivilege('execute')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('execute')
|
||||
endpoint.uri = endpoint.uri.replace('{qcid}', qcid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {
|
||||
sample: false,
|
||||
values: values,
|
||||
})
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async probe(qcid, values, probe){
|
||||
if(!this.hasPrivilege('execute')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('execute')
|
||||
endpoint.uri = endpoint.uri.replace('{qcid}', qcid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {
|
||||
sample: false,
|
||||
probe: probe,
|
||||
values: values,
|
||||
})
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('ContactMgrModel', ContactMgrModel);
|
||||
@@ -1,427 +0,0 @@
|
||||
class MailingsModel extends EICModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('/mailing', privileges)
|
||||
this.ffs = new FakeFileSystem()
|
||||
Object.assign(this, app.helpers.validators)
|
||||
}
|
||||
|
||||
async search(query, status=[]) {
|
||||
if(!this.hasPrivilege('search')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('search')
|
||||
let payload = {
|
||||
query: query,
|
||||
status: status,
|
||||
}
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload) // Separate filesystem info from true mailings
|
||||
.then( async serverData => serverData.payload)
|
||||
.then( data => { // And feed ffs
|
||||
this.ffs.loadStructure(
|
||||
data.ffs,
|
||||
data.mailings.map(item=>(
|
||||
{
|
||||
fullPath: (item.path+'/'+item.name).replace(/\/+/g, '/'),
|
||||
object : item
|
||||
}
|
||||
))
|
||||
)
|
||||
return(data.mailings)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
async get(mid) {
|
||||
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('read')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async getRecipients(mid){
|
||||
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject())) // if can read mailing => can read recipients
|
||||
let endpoint = this.getApiEndpoint('read', '/mailing/{mid}/recipients')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async getBounces(mid){
|
||||
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject())) // if can read mailing => can read bounces
|
||||
let endpoint = this.getApiEndpoint('read', '/mailing/{mid}/bounces')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async save(mailingInfo) {
|
||||
// Local copy where we'll remove display (non-save-able) mailingInfo stuff, and join-in ext stuff into the request.
|
||||
let localMmailingInfo = JSON.parse(JSON.stringify(mailingInfo))
|
||||
|
||||
// template struct => templateId
|
||||
if(localMmailingInfo.template && localMmailingInfo.template.id){
|
||||
localMmailingInfo.templateId = localMmailingInfo.template.id
|
||||
delete(localMmailingInfo.template)
|
||||
}
|
||||
|
||||
delete(localMmailingInfo.imports)
|
||||
delete(localMmailingInfo.sources)
|
||||
delete(localMmailingInfo.statusHistory)
|
||||
delete(localMmailingInfo.kpis)
|
||||
delete(localMmailingInfo.nbSources)
|
||||
delete(localMmailingInfo.nbRecipients)
|
||||
|
||||
let endpoint = this.getApiEndpoint('save')
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, localMmailingInfo)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async delete(mid) {
|
||||
if(!this.hasPrivilege('delete')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('delete')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async schedule(mid, scheduleDate) {
|
||||
if(!this.hasPrivilege('schedule')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('schedule')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, { scheduleDate: scheduleDate })
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async test(mid, templateId, recipientEmail, mappings={}) {
|
||||
if((!this.hasPrivilege('edit')) && (!this.hasPrivilege('approve')) && (!this.hasPrivilege('reject'))) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('test')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {
|
||||
templateId: templateId,
|
||||
recipientEmail: recipientEmail,
|
||||
parameters: mappings
|
||||
})
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async getImports(mid) {
|
||||
let endpoint = this.getApiEndpoint('list', '/mailing/{mid}/imports')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async saveImport(mid, data) {
|
||||
data.refresh = false
|
||||
let endpoint = this.getApiEndpoint('save', '/mailing/{mid}/imports')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, data)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async saveExclusion(mid, data) {
|
||||
data.refresh = false
|
||||
data.exclusionList = true
|
||||
data.availableColumns = data.availableColumns.filter(item=>item.isEmail)
|
||||
const emailIdx = data.availableColumns[0].value
|
||||
data.data = data.data.map(row=>row[emailIdx])
|
||||
let endpoint = this.getApiEndpoint('save', '/mailing/{mid}/imports')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, data)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async refreshImport(mid, data, importId) {
|
||||
if(data.sourceType=='Excel') return({})
|
||||
data.refresh = true
|
||||
data.importId = importId
|
||||
let endpoint = this.getApiEndpoint('save', '/mailing/{mid}/imports')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, data)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async readImport(mid, iid) {
|
||||
let endpoint = this.getApiEndpoint('read', '/mailing/{mid}/imports/{iid}')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid).replace('{iid}', iid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async deleteImport(mid, id) {
|
||||
let endpoint = this.getApiEndpoint('delete', '/mailing/{mid}/imports')
|
||||
endpoint.uri = endpoint.uri.replace('{mid}', mid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, { id: id })
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async getReadableFolders() {
|
||||
try {
|
||||
const endpoint = this.getApiEndpoint('list', '/mailing/folders')
|
||||
const payload = { path: '/', withFiles: true }
|
||||
|
||||
const serverData = await this.request(endpoint.uri, endpoint.method, payload)
|
||||
return serverData.payload || {}
|
||||
} catch (err) {
|
||||
console.error("Error in getReadableFolders", err)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async makeDir(path=null, dirName){
|
||||
let ffs = this.ffs
|
||||
if(path && (!ffs.pathExists(path))) return(Promise.resolve(null))
|
||||
if(!path) path=ffs.currentPath
|
||||
dirName = dirName.replace(/\//g,'').replace(/"/g,'').replace('\\','').replace(/\./g,'')
|
||||
|
||||
let endpoint = this.getApiEndpoint('add', '/mailing/folders')
|
||||
let uri = endpoint.uri
|
||||
return (
|
||||
this.request(uri, endpoint.method, {
|
||||
appId: 2,
|
||||
path: path,
|
||||
newFolder: dirName
|
||||
})
|
||||
.then( async serverData => {
|
||||
return(serverData.payload)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
async removeDir(appId, path = null) {
|
||||
let ffs = this.ffs
|
||||
if (!path) return Promise.resolve(null)
|
||||
|
||||
path = ffs.normalizePath(path)
|
||||
|
||||
let endpoint = this.getApiEndpoint('delete', '/mailing/folders')
|
||||
let uri = endpoint.uri
|
||||
|
||||
|
||||
return this.request(uri, endpoint.method, {
|
||||
appId: appId,
|
||||
path: path
|
||||
}).then(async serverData => {
|
||||
return serverData.payload
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
/********************************* Data helpers **************************************/
|
||||
getStatusLabel() {
|
||||
return({
|
||||
created : 'Created',
|
||||
draft : 'Draft',
|
||||
submitted : app.User.roles.includes('MAIL_Reviewer') ? 'To review' : 'Being reviewed',
|
||||
approved : 'Approved',
|
||||
rejected : 'Rejected',
|
||||
scheduled : 'Scheduled',
|
||||
sent : 'Sent',
|
||||
})
|
||||
}
|
||||
|
||||
findDupes(allImports){
|
||||
let dupes = {} //Key email, value: array of where it is found
|
||||
let allEmails = []
|
||||
for(let oneImport of allImports){
|
||||
const emailCol = oneImport.availableColumns.find(item => item.isEmail)
|
||||
if(!emailCol) continue
|
||||
for(let[rownb, row] of oneImport.data.entries()){
|
||||
let inAllEmails = allEmails.find(item => ( item.email == row[emailCol.value]))
|
||||
if(inAllEmails) { // that's a dupe
|
||||
if(!(row[emailCol.value] in dupes)) { // First time we come across this one, add the original entry
|
||||
dupes[row[emailCol.value]] = [{
|
||||
sourceName: inAllEmails.sourceName,
|
||||
sourceType: inAllEmails.sourceType,
|
||||
rownb: inAllEmails.rownb,
|
||||
}]
|
||||
}
|
||||
dupes[row[emailCol.value]].push({ // Add the dupe
|
||||
sourceName: oneImport.sourceName,
|
||||
sourceType: oneImport.sourceType,
|
||||
rownb: rownb,
|
||||
})
|
||||
} else {
|
||||
allEmails.push({
|
||||
email: row[emailCol.value],
|
||||
sourceName: oneImport.sourceName,
|
||||
sourceType : oneImport.sourceType,
|
||||
rownb: rownb,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
return(dupes)
|
||||
}
|
||||
|
||||
getLatestStatus(mailingInfo, status=null){
|
||||
if(!mailingInfo || !mailingInfo.statusHistory || (mailingInfo.statusHistory.length<1)) return('')
|
||||
const latest = mailingInfo.statusHistory.reduce((max, obj) =>
|
||||
(obj.dateTime > max.dateTime) && ((!status) || (status==obj.value)) ? obj : max
|
||||
)
|
||||
return( (!status) ? latest : (status == latest.value) ? latest : null )
|
||||
}
|
||||
|
||||
getStepActivations(mailing, templateTokens){
|
||||
const stepActivations = { }
|
||||
stepActivations['start'] = {
|
||||
disabled: (!this.hasPrivilege('edit')) || ((mailing.status != 'created') && (mailing.status != 'draft')),
|
||||
severity: (mailing.status != 'created') ? 'success' : 'warning',
|
||||
done: (mailing.name && mailing.path)
|
||||
}
|
||||
stepActivations['template'] = {
|
||||
disabled: (!this.hasPrivilege('edit')) || (mailing.status != 'draft'),
|
||||
severity: (!mailing.template.id) ? (mailing.status != 'draft') ? 'secondary' : 'warning' : 'success',
|
||||
done: (mailing.template.id)
|
||||
}
|
||||
stepActivations['recipients'] = {
|
||||
disabled: (!this.hasPrivilege('edit')) || (mailing.status != 'draft'), // || (!stepActivations.template.done),
|
||||
severity: (mailing.nbRecipients == 0) ? ((mailing.status != 'draft') || (!mailing.template.id)) ? 'secondary' : 'warning' : 'success',
|
||||
done: (mailing.nbRecipients > 0)
|
||||
}
|
||||
stepActivations['mappings'] = {
|
||||
disabled: (!this.hasPrivilege('edit')) || (mailing.status != 'draft') || (!stepActivations.template.done) || (!stepActivations.recipients.done),
|
||||
severity: (stepActivations.template.done && stepActivations.recipients.done) ? (this.TotalNbMapMissing(mailing, templateTokens) > 0) ? 'warning': 'success' : 'secondary',
|
||||
done: (stepActivations['template'].done && stepActivations['recipients'].done && (this.TotalNbMapMissing(mailing, templateTokens) == 0))
|
||||
}
|
||||
stepActivations['approval'] = {
|
||||
disabled: ((!this.hasPrivilege('edit')) && (!this.hasPrivilege('approve')) && (!this.hasPrivilege('reject'))) || (!(['draft','submitted'].includes(mailing.status))) || (!stepActivations.mappings.done) ,
|
||||
severity: stepActivations.mappings.done ? ((mailing.status == 'approved') || (mailing.status == 'scheduled')) ? 'success' : 'warning' : 'secondary',
|
||||
done: (mailing.status == 'approved')
|
||||
}
|
||||
stepActivations['schedule'] = {
|
||||
disabled: (!this.hasPrivilege('schedule')) || ((mailing.status!='approved') && (mailing.status!='scheduled')),
|
||||
severity: (mailing.status!='scheduled') ? (mailing.status!='approved') ? 'secondary' : 'warning' : 'success',
|
||||
done: (mailing.status=='scheduled')
|
||||
}
|
||||
return(stepActivations)
|
||||
}
|
||||
|
||||
nbMapMissingPerSrc(mailing, templateTokens){
|
||||
let nbMissing = {}
|
||||
mailing.sources.forEach(src => {
|
||||
let srcMappings = mailing.mappings.find(mp => mp. sourceId==src.id)
|
||||
if(srcMappings) {
|
||||
nbMissing[src.id] = (templateTokens.length - Object.keys(srcMappings.mappings).length)
|
||||
} else {
|
||||
nbMissing[src.id] = templateTokens.length
|
||||
}
|
||||
})
|
||||
return(nbMissing)
|
||||
}
|
||||
|
||||
TotalNbMapMissing(mailing, templateTokens){
|
||||
const missingPerSrc = this.nbMapMissingPerSrc(mailing, templateTokens)
|
||||
return(Object.keys(missingPerSrc).reduce((acc,key) => acc+=missingPerSrc[key],0))
|
||||
}
|
||||
|
||||
getReviewBlocks(mailing){
|
||||
const latestSubmitted = this.getLatestStatus(mailing, 'submitted')
|
||||
const latestRejected = this.getLatestStatus(mailing, 'rejected')
|
||||
const latestApproved = this.getLatestStatus(mailing, 'approved')
|
||||
let blocks = []
|
||||
let contents = {}
|
||||
if(!app.User.roles.includes('MAIL_Reviewer')){
|
||||
// Only Editors & Revieers can sen test mails
|
||||
if(app.User.roles.includes('MAIL_Editor')) blocks.push('testPane')
|
||||
blocks.push('revieweePane')
|
||||
switch(mailing.status){
|
||||
case 'submitted': blocks.push('revieweeOngoing'); break
|
||||
case 'approved': blocks.push('revieweeApproved')
|
||||
contents['approUser1'] = `${latestApproved.changedBy.firstname} ${latestApproved.changedBy.lastname}`
|
||||
contents['approDate1'] = (new Intl.DateTimeFormat("fr-FR", {timeZone: "Europe/Paris", dateStyle:'medium', timeStyle:'medium'}))
|
||||
.format(new Date(latestApproved.dateTime))
|
||||
break
|
||||
case 'draft': if((latestRejected) && // no rejection ever
|
||||
// Rejection and no approval afterwards (possible because might be draft again after unscheduled)
|
||||
((!latestApproved) || (latestApproved.dateTime<latestRejected.dateTime))){
|
||||
blocks.push('revieweeRejected')
|
||||
contents['rejectionUser1'] = `${latestRejected.changedBy.firstname} ${latestRejected.changedBy.lastname}`
|
||||
contents['rejectionDate1'] = (new Intl.DateTimeFormat("fr-FR", {timeZone: "Europe/Paris", dateStyle:'medium', timeStyle:'medium'}))
|
||||
.format(new Date(latestRejected.dateTime))
|
||||
contents['rejectionReason1'] = (latestRejected.meta && latestRejected.meta.reason) ? latestRejected.meta.reason : ''
|
||||
} else if(app.User.roles.includes('MAIL_Editor')) {
|
||||
blocks.push('revieweeRequest')
|
||||
}
|
||||
break
|
||||
}
|
||||
} else {
|
||||
blocks.push('testPane')
|
||||
|
||||
switch(mailing.status){
|
||||
case 'submitted': blocks.push('reviewerPane')
|
||||
blocks.push('reviewerChoice')
|
||||
contents['requestUser2'] =`${latestSubmitted.changedBy.firstname} ${latestSubmitted.changedBy.lastname}`
|
||||
contents['requestDate2'] =(new Intl.DateTimeFormat("fr-FR", {timeZone: "Europe/Paris", dateStyle:'medium', timeStyle:'medium'}))
|
||||
.format(new Date(latestSubmitted.dateTime))
|
||||
contents['reviewComments2'] = (latestSubmitted.meta && latestSubmitted.meta.comments) ? latestSubmitted.meta.comments : ''
|
||||
break
|
||||
case 'approved': blocks.push('reviewerPane')
|
||||
blocks.push('reviewerApproved')
|
||||
contents['approUser2'] = `${latestApproved.changedBy.firstname} ${latestApproved.changedBy.lastname}`
|
||||
contents['approDate2'] = (new Intl.DateTimeFormat("fr-FR", {timeZone: "Europe/Paris", dateStyle:'medium', timeStyle:'medium'}))
|
||||
.format(new Date(latestApproved.dateTime))
|
||||
break
|
||||
case 'draft': if(app.User.roles.includes('MAIL_Editor')) {
|
||||
// For those who are both editor & reviewer, let them ask themselves (or other reviewer)
|
||||
blocks.push('revieweePane')
|
||||
blocks.push('revieweeRequest')
|
||||
}
|
||||
if((latestRejected) &&
|
||||
// Rejection and no approval afterwards (possible because might be draft again after unscheduled)
|
||||
((!latestApproved) || (latestApproved.dateTime<latestRejected.dateTime))){
|
||||
blocks.push('reviewerPane')
|
||||
blocks.push('reviewerRejected')
|
||||
contents['rejectionUser2'] = `${latestRejected.changedBy.firstname} ${latestRejected.changedBy.lastname}`
|
||||
contents['rejectionDate2'] = (new Intl.DateTimeFormat("fr-FR", {timeZone: "Europe/Paris", dateStyle:'medium', timeStyle:'medium'}))
|
||||
.format(new Date(latestRejected.dateTime))
|
||||
contents['rejectionReason2'] = (latestRejected.meta && latestRejected.meta.reason) ? latestRejected.meta.reason : ''
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
return([blocks, contents])
|
||||
}
|
||||
|
||||
canImport(){
|
||||
return(true)
|
||||
}
|
||||
|
||||
canImportExclusion(){
|
||||
return(true)
|
||||
}
|
||||
|
||||
canFetch(){
|
||||
return(app.User.identity.uuid=='steinic')
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('MailingsModel', MailingsModel);
|
||||
@@ -1,315 +0,0 @@
|
||||
class TemplatesModel extends EICModel {
|
||||
|
||||
current = null;
|
||||
|
||||
constructor(privileges) {
|
||||
super('/templates', privileges)
|
||||
this.ffs = new FakeFileSystem()
|
||||
this.tokenCache = {}
|
||||
}
|
||||
|
||||
getLatestStatus(templateInfo, status=null){
|
||||
if(!templateInfo.statusHistory || (templateInfo.statusHistory.length<1)) return('')
|
||||
return(
|
||||
templateInfo.statusHistory.reduce((max, obj) =>
|
||||
(obj.dateTime > max.dateTime) && ((!status) || (status==obj.value)) ? obj : max
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
getTokens(templateInfo){
|
||||
if((!templateInfo) || (!templateInfo.id)) return
|
||||
if(templateInfo.id in this.tokenCache) return(this.tokenCache[templateInfo.id])
|
||||
const re = new RegExp(/\{\{([\w\-\.\^\#\/]+)\}\}/,'gm')
|
||||
let txt = atob(templateInfo.html)
|
||||
let allTokens = [...txt.matchAll(re)].map(item=>item[1])
|
||||
if(templateInfo.meta.altText){
|
||||
txt = atob(templateInfo.meta.altText)
|
||||
for(let m of txt.matchAll(re)){
|
||||
if(!allTokens.includes(m[1])) allTokens.push(m[1])
|
||||
}
|
||||
}
|
||||
if(templateInfo.meta.subject){
|
||||
txt = templateInfo.meta.subject
|
||||
for(let m of txt.matchAll(re)){
|
||||
if(!allTokens.includes(m[1])) allTokens.push(m[1])
|
||||
}
|
||||
}
|
||||
this.tokenCache[templateInfo.id] = allTokens
|
||||
return(allTokens)
|
||||
}
|
||||
|
||||
countTokens(templateInfo){
|
||||
return(this.getTokens(templateInfo).length)
|
||||
}
|
||||
|
||||
async getTechDDTokens() {
|
||||
this.tokenList = Promise.resolve([
|
||||
{ name: 'personEmail' },
|
||||
{ name: 'personEuLogin' },
|
||||
{ name: 'personFirstName' },
|
||||
{ name: 'personLastName' },
|
||||
{ name: 'personFullName' },
|
||||
{ name: 'organisationFullName' },
|
||||
{ name: 'organisationShortName' },
|
||||
{ name: 'organisationPIC' },
|
||||
{ name: 'proposalId' },
|
||||
{ name: 'proposalAcronym' },
|
||||
{ name: 'proposalType' },
|
||||
{ name: 'expertFirstName' },
|
||||
{ name: 'expertLastName' },
|
||||
{ name: 'expertFullName' },
|
||||
{ name: 'FIOFirstName' },
|
||||
{ name: 'FIOLastName' },
|
||||
{ name: 'FIOFullName' },
|
||||
{ name: 'POFirstName' },
|
||||
{ name: 'POLastName' },
|
||||
{ name: 'POFullName' },
|
||||
{ name: 'TechDDFirstName' },
|
||||
{ name: 'TechDDLastName' },
|
||||
{ name: 'TechDDFullName' },
|
||||
{ name: 'reportURL' },
|
||||
{ name: 'unsubscribeURL' }
|
||||
]);
|
||||
return this.tokenList;
|
||||
}
|
||||
|
||||
/************************/
|
||||
|
||||
|
||||
/**
|
||||
* Get a template by its ID.
|
||||
* @param {string} tid - The ID of the templitor.
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
async get(tid) {
|
||||
let endpoint = this.getApiEndpoint('read')
|
||||
endpoint.uri = endpoint.uri.replace('{tid}', tid)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* List all templates.
|
||||
* @returns {Promise<any[]>}
|
||||
*/
|
||||
async search(query, status=[]) {
|
||||
if(!this.hasPrivilege('search')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('search')
|
||||
let payload = {
|
||||
query: query,
|
||||
status: status,
|
||||
}
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => serverData.payload)
|
||||
.then( data => {
|
||||
this.ffs.loadStructure(
|
||||
data.ffs,
|
||||
data.templates.map(item=>(
|
||||
{
|
||||
fullPath: (item.path+'/'+item.name).replace(/\/+/g, '/'),
|
||||
object : item
|
||||
}
|
||||
))
|
||||
)
|
||||
return(data.templates)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
async save(data) {
|
||||
let endpoint = this.getApiEndpoint('save')
|
||||
console.log("Saving template with data:", data);
|
||||
return this.request(endpoint.uri, endpoint.method, data)
|
||||
}
|
||||
|
||||
async delete(tid) {
|
||||
if(!this.hasPrivilege('delete')) return( new Promise((reject) => reject('Insufficient privileges to perform delete templates')))
|
||||
let endpoint = this.getApiEndpoint('delete')
|
||||
endpoint.uri = endpoint.uri.replace('{tid}', tid)
|
||||
return this.request(endpoint.uri, endpoint.method)
|
||||
}
|
||||
|
||||
/*
|
||||
* list of predefined images can be used in template
|
||||
*/
|
||||
async getImages() {
|
||||
if(!this.hasPrivilege('read')) return( new Promise((reject) => reject('Insufficient privileges to perform get images'))) // if can read templates => can search list
|
||||
let endpoint = this.getApiEndpoint('getImages');
|
||||
return this.request(endpoint.uri, endpoint.method)
|
||||
.then(serverData => serverData.payload)
|
||||
.then(data => {
|
||||
return data.map(item => ({
|
||||
fullPath: (item.path + '/' + item.name).replace(/\/+/g, '/'),
|
||||
object: item,
|
||||
}));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete image
|
||||
* @param {*} pid - picture id
|
||||
* @param {*} deleteUrl - aws image url
|
||||
* @returns {Promise<any[]>}
|
||||
*/
|
||||
async deleteImage(pid, deleteUrl) {
|
||||
if (!this.hasPrivilege('delete')) {
|
||||
return new Promise((reject) => reject('Insufficient privileges to perform delete images'));
|
||||
}
|
||||
|
||||
let endpoint = this.getApiEndpoint('deleteImage');
|
||||
endpoint.uri = endpoint.uri.replace('{pid}', pid);
|
||||
|
||||
const requestBody = { deleteUrl: deleteUrl };
|
||||
|
||||
return this.request(endpoint.uri, endpoint.method, requestBody)
|
||||
.then(response => {
|
||||
console.log('Image deleted successfully:', response);
|
||||
return response;
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error deleting image:', error);
|
||||
throw error;
|
||||
});
|
||||
}
|
||||
|
||||
getStatusLabel() {
|
||||
return({
|
||||
created : 'Created',
|
||||
draft : 'Draft',
|
||||
submitted : app.User.roles.includes('TEMPLATE_Reviewer') ? 'To review' : 'Being reviewed',
|
||||
prod : 'Approved',
|
||||
archived : 'Archived',
|
||||
})
|
||||
}
|
||||
|
||||
async readDir(path = '/', withFiles=true ){
|
||||
if(!this.hasPrivilege('read')) return( new Promise((reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('list', '/templitor/folders')
|
||||
let uri = endpoint.uri
|
||||
return (
|
||||
this.request(uri, endpoint.method, { "path":path, withFiles: true })
|
||||
.then( async serverData => {
|
||||
if(!withFiles){
|
||||
this.ffs.changeDir('/')
|
||||
this.ffs.loadStructure(serverData.payload, this.ffs.getFiles())
|
||||
} else {
|
||||
const ffsData = serverData.payload.ffs || serverData.payload
|
||||
this.ffs.loadStructure(ffsData, serverData.payload.files || [])
|
||||
}
|
||||
return(serverData.payload)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
async getReadableFolders() {
|
||||
try {
|
||||
const endpoint = this.getApiEndpoint('list', '/templitor/folders')
|
||||
const payload = { path: '/', withFiles: true }
|
||||
|
||||
const serverData = await this.request(endpoint.uri, endpoint.method, payload)
|
||||
return serverData.payload || {}
|
||||
} catch (err) {
|
||||
console.error("Error in getReadableFolders", err)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
async makeDir(path=null, dirName){
|
||||
let ffs = this.ffs //here not first param of method
|
||||
if(path && (!ffs.pathExists(path))) return(Promise.resolve(null))
|
||||
if(!path) path=ffs.currentPath
|
||||
dirName = dirName.replace(/\//g,'').replace(/"/g,'').replace('\\','').replace(/\./g,'')
|
||||
|
||||
let endpoint = this.getApiEndpoint('add', '/templitor/folders');
|
||||
let uri = endpoint.uri
|
||||
return (
|
||||
this.request(uri, endpoint.method, {
|
||||
appId: 1,
|
||||
path: path,
|
||||
newFolder: dirName
|
||||
})
|
||||
.then( async serverData => {
|
||||
return(serverData.payload)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
async removeDir(appId, path = null) {
|
||||
let ffs = this.ffs
|
||||
if (!path) return Promise.resolve(null)
|
||||
|
||||
path = ffs.normalizePath(path)
|
||||
|
||||
let endpoint = this.getApiEndpoint('delete', '/templitor/folders')
|
||||
let uri = endpoint.uri
|
||||
|
||||
|
||||
return this.request(uri, endpoint.method, {
|
||||
appId: appId,
|
||||
path: path
|
||||
}).then(async serverData => {
|
||||
return serverData.payload
|
||||
})
|
||||
}
|
||||
|
||||
async testMail(templateId, recipientEmail) {
|
||||
if(!this.hasPrivilege('edit')) return( new Promise((reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('testTemplateMail')
|
||||
endpoint.uri = endpoint.uri.replace('{tid}',templateId)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {
|
||||
templateId: templateId,
|
||||
recipientEmail: recipientEmail
|
||||
})
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async saveImage(data) {
|
||||
let endpoint = this.getApiEndpoint('addImage');
|
||||
return this.request(endpoint.uri, endpoint.method, data);
|
||||
}
|
||||
|
||||
async requestPub(templateId, recipientEmail) {
|
||||
if(!this.hasPrivilege('edit')) return( new Promise((reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('requestPubTemplate')
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {
|
||||
templateId: templateId,
|
||||
recipientEmail: recipientEmail
|
||||
})
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async approvePub(templateId, recipientEmail) {
|
||||
if((!this.hasPrivilege('edit')) && (!this.hasPrivilege('approve')) && (!this.hasPrivilege('reject'))) return( new Promise((reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('approvePub')
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {
|
||||
templateId: templateId,
|
||||
recipientEmail: recipientEmail
|
||||
})
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
async rejectPub(templateId, recipientEmail) {
|
||||
if((!this.hasPrivilege('edit')) && (!this.hasPrivilege('approve')) && (!this.hasPrivilege('reject'))) return( new Promise((reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('rejectPub')
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {
|
||||
templateId: templateId,
|
||||
recipientEmail: recipientEmail
|
||||
})
|
||||
.then( async serverData => serverData.payload)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
app.registerClass('TemplatesModel', TemplatesModel);
|
||||
@@ -1,235 +0,0 @@
|
||||
class BypassTokensModel extends EICPluralModel {
|
||||
|
||||
freeTokens = 0;
|
||||
|
||||
constructor(privileges) {
|
||||
|
||||
super('tokens', privileges);
|
||||
|
||||
this.singletonClass = class {
|
||||
itemData = {
|
||||
id: null,
|
||||
granted: null,
|
||||
track: null,
|
||||
domain: null,
|
||||
subdomain: null,
|
||||
enterprise: null,
|
||||
project: null,
|
||||
history: null,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sanitize(item) {
|
||||
item.history.sort((a,b) => a.dateTime < b.dateTime ? 1: -1);
|
||||
item.status = item.history[0].status;
|
||||
for(let entry of item.history) {
|
||||
if(entry.actor && entry.actor.lastname == 'Application User') {
|
||||
entry.actor.lastname = entry.actor.firstname;
|
||||
entry.actor.firstname = null;
|
||||
}
|
||||
}
|
||||
item.enterprise.pic = item.enterprise.pic || '(not provided)';
|
||||
item.enterprise.legalname = item.enterprise.legalname || '(not provided)';
|
||||
// fuck PI
|
||||
if(item.project && item.project.submissiondate) {
|
||||
item.project.submissionDate = item.project.submissiondate;
|
||||
delete item.project.submissiondate;
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} filters
|
||||
* @returns
|
||||
*/
|
||||
list(filters) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
this.collection = [];
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, filters)
|
||||
.then( async serverData => {
|
||||
const payload = serverData.payload;
|
||||
this.freeTokens = payload.countOfTokens;
|
||||
this.fill(payload.tokens);
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} filters
|
||||
* @returns
|
||||
*/
|
||||
export(filters) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, filters)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
getSettings(track) {
|
||||
if(!this.hasPrivilege('getSettings')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('getSettings');
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {track: track})
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
setSettings(payload) {
|
||||
if(!this.hasPrivilege('setSettings')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('setSettings');
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
getPrograms(track, domain) {
|
||||
if(!this.hasPrivilege('getPrograms')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = app.config.api.programs['getPrograms'];
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {domain: domain, track: track})
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
addProgram(payload) {
|
||||
if(!this.hasPrivilege('addProgram')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = app.config.api.programs['addProgram'];
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
removeProgram(payload) {
|
||||
if(!this.hasPrivilege('removeProgram')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = app.config.api.programs['removeProgram'];
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides the list of awarded tokens
|
||||
*
|
||||
* @returns array
|
||||
*/
|
||||
awardedTokens(year) {
|
||||
return (
|
||||
this.collection.filter(
|
||||
item => (['allocated','consumed'].includes(item.itemData.status))
|
||||
&& (new Date(item.itemData.granted).getFullYear() == year))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides the list of consumed tokens
|
||||
*
|
||||
* @returns array
|
||||
*/
|
||||
consumedTokens(year) {
|
||||
return (
|
||||
this.collection.filter(
|
||||
item => (['consumed'].includes(item.itemData.status))
|
||||
&& (new Date(item.itemData.granted).getFullYear() == year))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a light-proposal for saving+submission+consume token
|
||||
*/
|
||||
viewToken(id) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = JSON.parse(JSON.stringify(app.config.api.tokens.view))
|
||||
endpoint.uri = endpoint.uri.replace('{tokenid}', id);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a light-proposal for saving+submission+consume token
|
||||
*/
|
||||
consumeToken(payload) {
|
||||
if(!this.hasPrivilege('assign')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = app.config.api.tokens.assign
|
||||
endpoint.uri = endpoint.uri.replace('{pic}', payload.organisation.pic);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides the history (log) of all token actions
|
||||
*
|
||||
* @returns array
|
||||
*/
|
||||
history() {
|
||||
let dataset = [];
|
||||
for(let item of this.collection) {
|
||||
if(item.itemData.history.find(entry => entry.status == 'allocated')) {
|
||||
for(let entry of item.itemData.history) {
|
||||
if(entry.status != 'created' && entry.status != 'active') {
|
||||
dataset.push({
|
||||
date: entry.dateTime,
|
||||
pic: item.itemData.enterprise.pic,
|
||||
legalname: item.itemData.enterprise.legalname,
|
||||
action: entry.status,
|
||||
actor: entry.actor
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return dataset.sort((a,b) => a.date < b.date ? 1: -1);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('BypassTokensModel',BypassTokensModel);
|
||||
@@ -1,123 +0,0 @@
|
||||
class ApplicantMembersModel extends EICModel {
|
||||
|
||||
members = [];
|
||||
|
||||
constructor(privileges) {
|
||||
super('/organisations/{pic}/members', privileges);
|
||||
}
|
||||
|
||||
list(pic) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
this.members = [];
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
this.members = serverData.payload;
|
||||
return this.members;
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
read(pic, uid) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
//let endpoint = this.getApiEndpoint('list');
|
||||
//let uri = endpoint.uri.replace('{pic}', pic) + '/' + uid;
|
||||
|
||||
return (new Promise((resolve) => resolve(this.members.find(member => member.uid == uid))))
|
||||
|
||||
/*
|
||||
return (
|
||||
|
||||
//this.request(uri, endpoint.method)
|
||||
//.then( async serverData => { return serverData.payload })
|
||||
);
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
search(hint) {
|
||||
if(!this.hasPrivilege('add')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('search');
|
||||
let uri = endpoint.uri;
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, {'hint': hint })
|
||||
.then( async serverData => {
|
||||
let users = serverData.payload.map(x=> { // Cleanup keys starting with https://
|
||||
for(let k in x){
|
||||
if(k.substring(0,4)=='http') { x[k.substring(k.lastIndexOf('/')+1)]=x[k]; delete(x[k]);}
|
||||
} return(x);
|
||||
} )
|
||||
return(users);
|
||||
})
|
||||
)
|
||||
|
||||
|
||||
}
|
||||
|
||||
update(pic, uid, payload) {
|
||||
if(!this.hasPrivilege('update')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('update');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{uid}', uid);
|
||||
let organisationLink = '/applicant/{pic}'.replace('{pic}',pic)
|
||||
payload.organisationLink = organisationLink
|
||||
return (
|
||||
this.request(uri, endpoint.method, payload)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
);
|
||||
}
|
||||
|
||||
add(pic, uid, payload) {
|
||||
if(!this.hasPrivilege('add')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('add');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{uid}', uid);
|
||||
let organisationLink = '/applicant/{pic}'.replace('{pic}',pic)
|
||||
payload.organisationLink = organisationLink
|
||||
payload.status = 'active';
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, payload)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
);
|
||||
}
|
||||
|
||||
grant(pic, uid, payload) {
|
||||
if(!this.hasPrivilege('grant')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('grant');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{uid}', uid);
|
||||
let organisationLink = '/applicant/{pic}'.replace('{pic}',pic)
|
||||
payload.organisationLink = organisationLink
|
||||
payload.status = 'active';
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, payload)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
);
|
||||
}
|
||||
|
||||
revoke(pic, uid) {
|
||||
if(!this.hasPrivilege('revoke')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('revoke');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{uid}', uid);
|
||||
let payload = {
|
||||
organisationLink: '/applicant/{pic}'.replace('{pic}',pic),
|
||||
status: 'deleted'
|
||||
}
|
||||
return (
|
||||
this.request(uri, endpoint.method, payload)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ApplicantMembersModel', ApplicantMembersModel);
|
||||
@@ -1,151 +0,0 @@
|
||||
class ApplicantOrganisationModel extends EICModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('/organisations/{pic}', privileges);
|
||||
}
|
||||
|
||||
search(pic) {
|
||||
if(!this.hasPrivilege('search')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('search');
|
||||
let uri = endpoint.uri
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, {'search': pic })
|
||||
.then( async serverData => this.loadData(serverData.payload))
|
||||
)
|
||||
}
|
||||
|
||||
list() {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
let uri = endpoint.uri
|
||||
|
||||
return ( this.request(uri, endpoint.method, payload) );
|
||||
}
|
||||
|
||||
read(pic) {
|
||||
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('read');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method)
|
||||
.then( async serverData => { return serverData.payload })
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('ApplicantOrganisationModel', ApplicantOrganisationModel);
|
||||
|
||||
|
||||
class ApplicantOrganisationProposalsModel extends EICModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('/organisations/{pic}/proposals', privileges);
|
||||
}
|
||||
|
||||
sanitize(list) {
|
||||
for(let item of list) {
|
||||
if(['created', 'updated'].includes(item.status)) item.status = 'draft';
|
||||
if(['evaluation-finalised'].includes(item.status)) item.status = 'evaluated';
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
list(pic) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method)
|
||||
.then( async serverData => { return this.sanitize(serverData.payload) })
|
||||
);
|
||||
}
|
||||
|
||||
search(pic, query) {
|
||||
if(!this.hasPrivilege('search')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('search');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, query)
|
||||
.then( async serverData => { return this.sanitize(serverData.payload) })
|
||||
)
|
||||
}
|
||||
|
||||
create(pic) {
|
||||
if(!this.hasPrivilege('create')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('create');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method)
|
||||
.then( async serverData => { return serverData.payload })
|
||||
)
|
||||
}
|
||||
|
||||
apply(pic, pid, uid) {
|
||||
if(!this.hasPrivilege('apply')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('apply');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', pid).replace('{uid}', uid);
|
||||
//TODO NIKE : should get it via app.Route.makelink() but that one seems outdated, doesn't work as expected on complex cases.
|
||||
// => it only searches in routes known (loaded) at time of call, not into the whole tree of possible routes
|
||||
// (which would be to crazy to recursively build... ) => refactor makelink & come back here ! GREP for proposalLink & organisationLink in models
|
||||
let proposalLink = '/organisations/{pic}/proposals/{pid}'.replace('{pic}',pic).replace('{pid}',pid)
|
||||
return (
|
||||
this.request(uri, endpoint.method, { status: 'pending', proposalLink: proposalLink})
|
||||
.then( async serverData => { return serverData.payload })
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ApplicantOrganisationProposalsModel', ApplicantOrganisationProposalsModel);
|
||||
|
||||
class ApplicantOrganisationCoachingsModel extends EICModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('/organisations/{pic}/coachings', privileges);
|
||||
}
|
||||
|
||||
sanitize(list) {
|
||||
for(let item of list) {
|
||||
if(['created', 'updated'].includes(item.status)) item.status = 'draft';
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
list(pic) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method)
|
||||
.then( async serverData => { return this.sanitize(serverData.payload) })
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens a specific coaching. Currently sending user to SMED mycoachings (id is no use right now either)
|
||||
* @param {*} id
|
||||
*/
|
||||
read(id) {
|
||||
let endpoint = this.getApiEndpoint('read');
|
||||
|
||||
window.open(endpoint.uri, '_blank');
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ApplicantOrganisationCoachingsModel', ApplicantOrganisationCoachingsModel);
|
||||
@@ -1,43 +0,0 @@
|
||||
class ApplicantOrganisationsModel extends EICPluralModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('/organisations', privileges);
|
||||
this.singletonClass = class {
|
||||
itemData = {
|
||||
pic: null,
|
||||
legalname: null,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
search(criteria) { // search onlegalname can bring several
|
||||
if(!this.hasPrivilege('search')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('search');
|
||||
let uri = endpoint.uri
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, {'search': criteria })
|
||||
.then( async serverData => this.loadData(serverData.payload))
|
||||
)
|
||||
}
|
||||
|
||||
list() {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
let uri = endpoint.uri
|
||||
return (
|
||||
this.request(uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
const payload = serverData.payload;
|
||||
//this.fill(payload);
|
||||
|
||||
return payload;
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('ApplicantOrganisationsModel', ApplicantOrganisationsModel);
|
||||
@@ -1,51 +0,0 @@
|
||||
class BypassCompanyModel extends EICModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('company', privileges);
|
||||
}
|
||||
|
||||
/**
|
||||
* Searches for a company based on its PIC and retrieves its information and the allocated token if applies
|
||||
* @param {*} endpoint
|
||||
* @param {*} payload
|
||||
* @returns
|
||||
*/
|
||||
search(pic) {
|
||||
if(!this.hasPrivilege('search')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('search');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method)
|
||||
.then( async serverData => this.loadData(serverData.payload))
|
||||
)
|
||||
}
|
||||
|
||||
grant(pic, payload) {
|
||||
if(!this.hasPrivilege('grant')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('grant');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, payload).then(
|
||||
(reply) => { // Now that we have a token, populate company model with it (was null)
|
||||
this.itemData.token = reply.payload.token
|
||||
return(reply)
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
revoke(pic, payload) {
|
||||
if(!this.hasPrivilege('revoke')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('revoke');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
return this.request(uri, endpoint.method, payload);
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('BypassCompanyModel', BypassCompanyModel);
|
||||
@@ -1,119 +0,0 @@
|
||||
class SoeModel extends EICModel {
|
||||
|
||||
latestProject = null;
|
||||
|
||||
constructor(privileges) {
|
||||
super('/soe', privileges);
|
||||
}
|
||||
|
||||
list() {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
members() {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('members');
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
fundings(companyId, projectId) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('project');
|
||||
endpoint.uri = endpoint.uri.replace('{pic}', companyId);
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', projectId);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
this.latestProject = serverData.payload;
|
||||
return this.latestProject;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
getFeedback(id) {
|
||||
return this.latestProject ? this.latestProject.fundings.find(item => item.id == id) : null;
|
||||
}
|
||||
|
||||
item(companyId, projectId, fundingId) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('read');
|
||||
endpoint.uri = endpoint.uri.replace('{pic}', companyId);
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', projectId);
|
||||
endpoint.uri = endpoint.uri.replace('{fundingId}', fundingId);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
create(companyId, projectId, payload) {
|
||||
if(!this.hasPrivilege('create')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('create');
|
||||
endpoint.uri = endpoint.uri.replace('{pic}', companyId);
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', projectId);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
update(companyId, projectId, fundingId, payload) {
|
||||
if(!this.hasPrivilege('update')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('update');
|
||||
endpoint.uri = endpoint.uri.replace('{pic}', companyId);
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', projectId);
|
||||
endpoint.uri = endpoint.uri.replace('{fundingId}', fundingId);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
delete(companyId, projectId, fundingId) {
|
||||
if(!this.hasPrivilege('delete')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('delete');
|
||||
endpoint.uri = endpoint.uri.replace('{pic}', companyId);
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', projectId);
|
||||
endpoint.uri = endpoint.uri.replace('{fundingId}', fundingId);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('SoeModel', SoeModel);
|
||||
@@ -1,58 +0,0 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class ICMPProjectModel extends EICModel {
|
||||
|
||||
current = null;
|
||||
|
||||
constructor(privileges) { super('/icmp', privileges); }
|
||||
|
||||
get(number) {
|
||||
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
this.current = null;
|
||||
|
||||
let endpoint = this.getApiEndpoint('getProject');
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
this.current = this.sanitize(serverData.payload);
|
||||
return this.current;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
sanitize(data) { return data; }
|
||||
|
||||
documents(number) {
|
||||
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('getProjectDocuments');
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
contributors(number) {
|
||||
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('getProjectContributors');
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ICMPProjectModel', ICMPProjectModel);
|
||||
@@ -1,83 +0,0 @@
|
||||
class ICMPProjectNodeModel extends EICModel {
|
||||
|
||||
currentProject = null;
|
||||
|
||||
constructor(privileges) { super('/icmp', privileges); }
|
||||
|
||||
get(number, node, nodeId) {
|
||||
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('getProjectNode');
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
||||
endpoint.uri = endpoint.uri.replace('{node}', node);
|
||||
endpoint.uri = endpoint.uri.replace('{nodeId}', nodeId);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
process(action, number, node, nodeId, payload) {
|
||||
switch (action) {
|
||||
case 'saving':
|
||||
if(!this.hasPrivilege('update')) return( new Promise((resolve, reject) => reject()))
|
||||
break;
|
||||
case 'submitting':
|
||||
if(!this.hasPrivilege('submit')) return( new Promise((resolve, reject) => reject()))
|
||||
break;
|
||||
case 'validating':
|
||||
if(!this.hasPrivilege('validate')) return( new Promise((resolve, reject) => reject()))
|
||||
break;
|
||||
case 'aborting':
|
||||
if(!this.hasPrivilege('cancel')) return( new Promise((resolve, reject) => reject()))
|
||||
break;
|
||||
case 'reviewing':
|
||||
if(!this.hasPrivilege('sendforreview')) return( new Promise((resolve, reject) => reject()))
|
||||
break;
|
||||
}
|
||||
|
||||
let endpoint = this.getApiEndpoint('saveProjectNode');
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
||||
endpoint.uri = endpoint.uri.replace('{node}', node);
|
||||
endpoint.uri = endpoint.uri.replace('{nodeId}', nodeId);
|
||||
|
||||
payload.status = action;
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
comment(action, number, node, nodeId, payload) {
|
||||
switch (action) {
|
||||
case 'rejecting':
|
||||
if(!this.hasPrivilege('reject')) return( new Promise((resolve, reject) => reject()))
|
||||
break;
|
||||
case 'reviewing':
|
||||
if(!this.hasPrivilege('review')) return( new Promise((resolve, reject) => reject()))
|
||||
break;
|
||||
}
|
||||
|
||||
let endpoint = this.getApiEndpoint('saveProjectNodeComments');
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
||||
endpoint.uri = endpoint.uri.replace('{node}', node);
|
||||
endpoint.uri = endpoint.uri.replace('{nodeId}', nodeId);
|
||||
|
||||
payload.status = action;
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ICMPProjectNodeModel', ICMPProjectNodeModel);
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class ICMPProjectsModel extends EICModel {
|
||||
|
||||
list = [];
|
||||
|
||||
constructor(privileges) { super('/icmp', privileges); }
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} node
|
||||
*/
|
||||
get(phase) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
this.list = [];
|
||||
let payload = {}
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
this.list = this.sanitize(serverData.payload);
|
||||
return this.list;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
sanitize(data) { return data; }
|
||||
}
|
||||
|
||||
app.registerClass('ICMPProjectsModel', ICMPProjectsModel);
|
||||
@@ -1,103 +0,0 @@
|
||||
class ProjectFundingModel extends EICModel {
|
||||
|
||||
currentProject = null;
|
||||
projects = [];
|
||||
|
||||
constructor(privileges) {
|
||||
super('/icmp', privileges);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} node
|
||||
*/
|
||||
getProjects(phase) {
|
||||
|
||||
this.projects = [];
|
||||
|
||||
let payload = {}
|
||||
//if(phase) payload.phase = phase
|
||||
|
||||
/*
|
||||
this.projects = [
|
||||
{
|
||||
number: '987654321',
|
||||
acronym: 'MAXIBROUZOUF',
|
||||
status: '...'
|
||||
},
|
||||
{
|
||||
number: '965432187',
|
||||
acronym: 'Total Pepet 2000',
|
||||
status: '...'
|
||||
}
|
||||
];
|
||||
|
||||
return Promise.resolve(this.projects);
|
||||
*/
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
this.projects = this.sanitizeProjects(serverData.payload);
|
||||
return this.projects;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
sanitizeProjects(data) { return data; }
|
||||
|
||||
getProject(number) {
|
||||
//if(!this.hasPrivilege('getProject')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
this.currentProject = null;
|
||||
|
||||
let endpoint = this.getApiEndpoint('getProject');
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
this.currentProject = this.sanitizeProject(serverData.payload);
|
||||
return this.currentProject;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
sanitizeProject(data) { return data; }
|
||||
|
||||
getProjectNode(number, node, nodeId) {
|
||||
//if(!this.hasPrivilege('update')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('getProjectNode');
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
||||
endpoint.uri = endpoint.uri.replace('{node}', node);
|
||||
endpoint.uri = endpoint.uri.replace('{nodeId}', nodeId);
|
||||
console.log(endpoint)
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
updateProjectNode(number, node, nodeId, payload) {
|
||||
//if(!this.hasPrivilege('update')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('saveProjectNode');
|
||||
endpoint.uri = endpoint.uri.replace('{projectId}', number);
|
||||
endpoint.uri = endpoint.uri.replace('{node}', node);
|
||||
endpoint.uri = endpoint.uri.replace('{nodeId}', nodeId);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, payload)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('ProjectFundingModel', ProjectFundingModel);
|
||||
@@ -1,336 +0,0 @@
|
||||
class SubmissionModel extends EICModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('/organisations/{pic}/proposals/{pid}', privileges);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sanitizes legacy short proposals form format
|
||||
* @param {*} item
|
||||
* @returns
|
||||
*/
|
||||
sanitizeLegacy(item) {
|
||||
|
||||
let merged = {...item.DiagnosticSubmission, ...item.Diagnostic};
|
||||
this.data = item;
|
||||
this.data.team = JSON.parse(JSON.stringify(item.DiagnosticTeamMembers));
|
||||
this.data.UpdatedAt = item.DiagnosticSubmission.UpdatedAt;
|
||||
this.data.resubmitted = item.DiagnosticSubmission.ResubmissionType ? true: false;
|
||||
|
||||
delete this.data.DiagnosticSubmission;
|
||||
delete this.data.Diagnostic;
|
||||
|
||||
for(let key in merged) {
|
||||
this.data[key] = merged[key];
|
||||
}
|
||||
|
||||
return this.sanitize(this.data);
|
||||
}
|
||||
|
||||
sanitize(item) {
|
||||
if(['created', 'updated'].includes(item.status)) item.status = 'draft';
|
||||
if(['evaluation-finalised'].includes(item.status)) item.status = 'evaluated';
|
||||
if(['evaluation-contested'].includes(item.status)) item.status = 'contested';
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
getProposalLegacy(pic, number) {
|
||||
//if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('read');
|
||||
endpoint.uri = endpoint.uri.replace('{pic}', pic);
|
||||
endpoint.uri = endpoint.uri.replace('{pid}', number);
|
||||
/**/
|
||||
|
||||
return (
|
||||
this.request('https://api.dev.eismea.eu/stable/bypass/legacy/short-proposals'+'?'+crypto.randomUUID(), 'POST', { params: { ProposalId: number}})
|
||||
.then( async serverData => {
|
||||
return this.sanitizeLegacy(serverData.payload);
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
getProposal(pic, number) {
|
||||
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('read');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', number);
|
||||
|
||||
return (
|
||||
this.request(uri+'?'+crypto.randomUUID(), endpoint.method)
|
||||
.then( async serverData => {
|
||||
switch(serverData.payload.version) {
|
||||
case '1.1':
|
||||
case '1.0':
|
||||
this.data = serverData.payload;
|
||||
return this.sanitize(this.data);
|
||||
default:
|
||||
return this.sanitizeLegacy(serverData.payload);
|
||||
|
||||
}
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches latest company info from F&T portal
|
||||
* @param {string} pic
|
||||
* @returns
|
||||
*/
|
||||
getOrganisationInfo(pic) {
|
||||
if(!this.hasPrivilege('update')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('organisationUpdate');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
return (
|
||||
this.request(uri+'?'+crypto.randomUUID(), endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Saves proposal form
|
||||
* @param {*} number
|
||||
* @param {*} payload
|
||||
* @returns
|
||||
*/
|
||||
save(pic, number, form) {
|
||||
if(!this.hasPrivilege('update')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('update');
|
||||
endpoint.uri = endpoint.uri.replace('{pic}', pic);
|
||||
endpoint.uri = endpoint.uri.replace('{pid}', number);
|
||||
|
||||
let payload = {
|
||||
status: 'draft',
|
||||
form: form
|
||||
}
|
||||
|
||||
//this.merge(this.data, form);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri+'?'+crypto.randomUUID(), endpoint.method, payload)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Submits the short proposal
|
||||
* @param {*} number
|
||||
* @param {*} payload
|
||||
*/
|
||||
submit(pic,number, form) {
|
||||
if(!this.hasPrivilege('update')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('update');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', number);
|
||||
|
||||
let payload = {
|
||||
status: 'submitting',
|
||||
form: form
|
||||
}
|
||||
|
||||
return (
|
||||
this.request(uri+'?'+crypto.randomUUID(), endpoint.method, payload)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Withdraws the submitted short proposal
|
||||
* @param {*} number
|
||||
* @param {*} payload
|
||||
*/
|
||||
withdraw(pic,number, form) {
|
||||
if(!this.hasPrivilege('withdraw')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('update');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', number);
|
||||
|
||||
let payload = {
|
||||
status: 'withdrawing',
|
||||
form: form
|
||||
}
|
||||
|
||||
return (
|
||||
this.request(uri+'?'+crypto.randomUUID(), endpoint.method, payload)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
)
|
||||
}
|
||||
|
||||
clone(pic, number) {
|
||||
if(!this.hasPrivilege('clone')) return ( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('clone');
|
||||
let uri = endpoint.uri.replace('{pic}', pic);
|
||||
|
||||
let payload = {
|
||||
sourceProposal: number
|
||||
}
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, payload)
|
||||
.then( async serverData => { return serverData.payload })
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Complains the evaluation of the short proposal
|
||||
* @param {*} number
|
||||
* @param {*} payload
|
||||
*/
|
||||
complain(pic,number, form) {
|
||||
if(!this.hasPrivilege('complain')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('complain');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', number);
|
||||
|
||||
/*
|
||||
let payload = {
|
||||
status: 'complaining',
|
||||
form: form
|
||||
}
|
||||
*/
|
||||
return (
|
||||
this.request(uri+'?'+crypto.randomUUID(), endpoint.method, form)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('SubmissionModel', SubmissionModel);
|
||||
|
||||
class SubmissionTeamModel extends EICModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('/organisations/{pic}/proposals/{pid}/team', privileges);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a team member to the short proposal
|
||||
* @param {*} member
|
||||
* @returns
|
||||
*/
|
||||
create(pic, number, member) {
|
||||
if(!this.hasPrivilege('create')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('create');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', number);
|
||||
|
||||
return (
|
||||
this.request(uri+'?'+crypto.randomUUID(), endpoint.method, member)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates a team member of the short proposal
|
||||
* @param {*} member
|
||||
* @returns
|
||||
*/
|
||||
update(pic, number, member) {
|
||||
if(!this.hasPrivilege('update')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('update');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', number).replace('{uid}', member.id);
|
||||
|
||||
return (
|
||||
this.request(uri+'?'+crypto.randomUUID(), endpoint.method, member)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a team member from the short proposal
|
||||
* @param {*} id
|
||||
* @returns
|
||||
*/
|
||||
delete(pic, number, id) {
|
||||
if(!this.hasPrivilege('delete')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('delete');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', number).replace('{uid}', id);
|
||||
|
||||
return (
|
||||
this.request(uri+'?'+crypto.randomUUID(), endpoint.method)
|
||||
.then( async serverData => { return serverData.payload; })
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('SubmissionTeamModel', SubmissionTeamModel);
|
||||
|
||||
class SubmissionMembersModel extends EICModel {
|
||||
contributors = [];
|
||||
|
||||
constructor(privileges) {
|
||||
super('/organisations/{pic}/proposals/{pid}/members', privileges);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the contributors list on a proposal
|
||||
* @param {string} pic
|
||||
* @param {string} pid
|
||||
* @returns
|
||||
*/
|
||||
list(pic,pid) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', pid);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
this.contributors = serverData.payload;
|
||||
return this.contributors;
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Grants to an organisation member access to the short proposal
|
||||
* @param {string} pic
|
||||
* @param {string} pid
|
||||
* @param {string} uid
|
||||
* @returns
|
||||
*/
|
||||
grant(pic, pid, uid) {
|
||||
if(!this.hasPrivilege('grant')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('grant');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', pid).replace('{uid}', uid);
|
||||
let proposalLink = '/organisations/{pic}/proposals/{pid}'.replace('{pic}',pic).replace('{pid}',pid)
|
||||
return (
|
||||
this.request(uri, endpoint.method, { status: 'active', proposalLink: proposalLink})
|
||||
.then( async serverData => { return serverData.payload })
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Revokes an organisation member access to the short proposal
|
||||
* @param {string} pic
|
||||
* @param {string} pid
|
||||
* @param {string} uid
|
||||
* @returns
|
||||
*/
|
||||
revoke(pic, pid, uid) {
|
||||
if(!this.hasPrivilege('revoke')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('revoke');
|
||||
let uri = endpoint.uri.replace('{pic}', pic).replace('{pid}', pid).replace('{uid}', uid);
|
||||
let proposalLink = '/organisations/{pic}/proposals/{pid}'.replace('{pic}',pic).replace('{pid}',pid)
|
||||
return (
|
||||
this.request(uri, endpoint.method, { status: 'deleted', proposalLink: proposalLink })
|
||||
.then( async serverData => { return serverData.payload })
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('SubmissionMembersModel', SubmissionMembersModel);
|
||||
@@ -1,184 +0,0 @@
|
||||
class MarklogicModel extends EICModel {
|
||||
|
||||
entityTypes = [
|
||||
{
|
||||
ref: '',
|
||||
label: '(entity)',
|
||||
icon: '',
|
||||
filters: [ ]
|
||||
},
|
||||
{
|
||||
ref: 'person',
|
||||
label: 'Person',
|
||||
icon: '',
|
||||
filters: [ 'id', 'euLogin', 'email' ]
|
||||
},
|
||||
{
|
||||
ref: 'application',
|
||||
label: 'App',
|
||||
icon: '',
|
||||
filters: [ ]
|
||||
},
|
||||
{
|
||||
ref: 'evaluation',
|
||||
label: 'SP Evaluation',
|
||||
icon: '',
|
||||
filters: [ ]
|
||||
},
|
||||
{
|
||||
ref: 'organisation',
|
||||
label: 'Organisation',
|
||||
icon: '',
|
||||
filters: [ 'id', 'pic' ]
|
||||
}
|
||||
]
|
||||
|
||||
payload = {
|
||||
entities: [],
|
||||
relations: []
|
||||
};
|
||||
|
||||
constructor(privileges) {
|
||||
|
||||
super('explorer', privileges);
|
||||
|
||||
}
|
||||
|
||||
getType(type) { return this.entityTypes.find(item => item.ref == type) || this.entityTypes.find(item => item.ref == ''); }
|
||||
|
||||
filters() {
|
||||
//if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('filters');
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
search(filters) {
|
||||
//if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('search');
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, filters)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('MarklogicModel', MarklogicModel);
|
||||
|
||||
/* Leftovers
|
||||
|
||||
addPerson() {
|
||||
let fnames = ['Mike', 'Marc', 'Nico', 'John', 'Jack', 'Sam', 'Steve', 'Mary', 'July']
|
||||
let lnames = ['Myers', 'Vandenbroek', 'Dumoulin', 'Smith', 'Yamaha', 'Roland', 'Jones', 'Flintstone', 'Moog']
|
||||
|
||||
let fname = fnames[Math.floor(Math.random() * fnames.length)]
|
||||
let lname = lnames[Math.floor(Math.random() * lnames.length)]
|
||||
let item = {
|
||||
id: crypto.randomUUID().substring(0,8),
|
||||
label: fname + ' ' + lname,
|
||||
type: 'person',
|
||||
userProfile: {
|
||||
euLogin: lname.substring(0,5).toLowerCase() + fname.substring(0,2).toLowerCase(),
|
||||
roles: [
|
||||
{
|
||||
role: [
|
||||
{
|
||||
referenceItemKey: {
|
||||
key: "dK1kTbD_kSAS64tAxGB4LoQ",
|
||||
_value: "ByPass Project Officer"
|
||||
}
|
||||
},
|
||||
{
|
||||
referenceItemKey: {
|
||||
key: "dlcsLwB2vQMOPEXN5D8PUQg",
|
||||
_value: "EIC Developer"
|
||||
}
|
||||
},
|
||||
{
|
||||
referenceItemKey: {
|
||||
key: "d3XJP_8OETQyb4Qqmip2ypw",
|
||||
_value: "EIC_Admin"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
information: {
|
||||
gender: {
|
||||
referenceItemKey: {
|
||||
key: "dKQGjloGhSbGlOKIiABV8eQ",
|
||||
_value: "M"
|
||||
}
|
||||
},
|
||||
name: {
|
||||
firstName: fname,
|
||||
lastName: lname
|
||||
},
|
||||
contacts: {
|
||||
email: fname + '.' + lname + '@someemail.com',
|
||||
phone: '+324' + Math.random().toString().slice(2,8)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
this.payload.entities.push(item);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
addOrg() {
|
||||
let fnames = ['co', 'glass', 'alu', 'art', 'steel', 'eco', 'son', 'digit', 'net', 'tech', 'bio', 'nano', 'tron']
|
||||
let lnames = ['sprl', 'ltd', 'inc.', 'gmbh', 'intl.', 'sa']
|
||||
|
||||
let name = fnames[Math.floor(Math.random() * fnames.length)] + fnames[Math.floor(Math.random() * fnames.length)] + ' ' + lnames[Math.floor(Math.random() * lnames.length)]
|
||||
|
||||
let item = {
|
||||
id: crypto.randomUUID().substring(0,8),
|
||||
label: name,
|
||||
type: 'organisation',
|
||||
information: {
|
||||
pic: '8' + Math.random().toString().slice(2,8),
|
||||
legalName: name
|
||||
},
|
||||
statusHistory: [
|
||||
{
|
||||
status: {
|
||||
value: "created",
|
||||
dateTime: "2023-07-18T15:27:06.397381Z",
|
||||
changedByKey: "d4rP8zgrURMiAAv-StY9YKQ"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
this.payload.entities.push(item);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
addLink(org, person) {
|
||||
if(!this.payload.relations.find(
|
||||
item => (item.source == org.id && item.target == person.id) || (item.target == org.id && item.source == person.id))) {
|
||||
let relation = {
|
||||
source: org.id,
|
||||
target: person.id
|
||||
}
|
||||
|
||||
this.payload.relations.push(relation)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
@@ -1,176 +0,0 @@
|
||||
class PlatformModel extends EICBusModel {
|
||||
|
||||
getUsers() {
|
||||
return(
|
||||
this.busWssGwRequest('GETACTIVEUSERS')
|
||||
.then(
|
||||
list => {
|
||||
if(!list) list = []
|
||||
list.sort((a,b) => {
|
||||
if(a.family_name<b.family_name) return(-1)
|
||||
else if(a.family_name>b.family_name) return(1)
|
||||
else if(a.given_name<b.given_name) return(-1)
|
||||
else return(1)
|
||||
})
|
||||
return(list)
|
||||
},
|
||||
() => [] // Empty list on connection timeout
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
getPlatformStatus() {
|
||||
return(
|
||||
this.busWssGwRequest('GETPLATFORMMODE', {}).then(data=>{
|
||||
if(!data) return(null)
|
||||
if(data.platformRestrictions) data.platformRestrictions.allowedUUIDs = data.platformRestrictions.allowedUUIDs || []
|
||||
data.blockedUUIDs = data.blockedUUIDs || []
|
||||
return(data)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
setPlatformStatus(status){
|
||||
app.MessageBus.requestWssGwAction('SETPLATFORMMODE', status)
|
||||
}
|
||||
|
||||
async getDaemonsStatus(){
|
||||
let daemons = {
|
||||
wssGateway:false,
|
||||
httpGateway:false,
|
||||
midas:false
|
||||
}
|
||||
for(let daemon of Object.keys(daemons)){
|
||||
let result = null
|
||||
if(daemon == 'wssGateway'){ //for him, ask direct in wss
|
||||
result = await app.MessageBus.requestWssGwAction('TIME',{}, 200)
|
||||
} else { //all the others we talk via bus
|
||||
try{
|
||||
result = await this.busActionRequest(`infraNotifs:${daemon}`, 'TIME', {}, 200)
|
||||
} catch(err) {
|
||||
console.warn(`Daemon ${daemon} timed out on TIME request ! `)
|
||||
}
|
||||
|
||||
}
|
||||
daemons[daemon] = (result !== null) ? result[`${daemon}Time`] : false
|
||||
}
|
||||
return(daemons)
|
||||
}
|
||||
|
||||
async ban(uid) {
|
||||
let status = await this.getPlatformStatus()
|
||||
if(!status.blockedUUIDs.includes(uid)) status.blockedUUIDs.push(uid)
|
||||
this.setPlatformStatus(status)
|
||||
this.kick(uid)
|
||||
}
|
||||
|
||||
async unban(uid) {
|
||||
let status = await this.getPlatformStatus()
|
||||
let idx = status.blockedUUIDs.indexOf(uid)
|
||||
if(idx>-1) status.blockedUUIDs.splice(idx,1)
|
||||
this.setPlatformStatus(status)
|
||||
}
|
||||
|
||||
async stopPlatform(data){
|
||||
let status = await this.getPlatformStatus()
|
||||
if(status.XX_platformRestrictions) delete(status.XX_platformRestrictions)
|
||||
status.platformRestrictions = {
|
||||
"allowedRoles": data.allowedRoles,
|
||||
"allowedUUIDs": data.allowedUUIDs,
|
||||
}
|
||||
this.setPlatformStatus(status)
|
||||
}
|
||||
|
||||
async startPlatform(data){
|
||||
let status = await this.getPlatformStatus()
|
||||
this.setPlatformStatus({
|
||||
"blockedUUIDs":status.blockedUUIDs
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
growlOne(uid, growlData) {
|
||||
let userNotifChan = app.config.messageBus.userNotifChan.replace(/\{uid\}/g, uid)
|
||||
growlData.growlMessage = growlData.growlMessage.replace(/\n/g,'<br>')
|
||||
this.busEvent(userNotifChan, 'growl', growlData)
|
||||
}
|
||||
|
||||
growlGlobal(growlData) {
|
||||
growlData.growlMessage = growlData.growlMessage.replace(/\n/g,'<br>')
|
||||
this.busEvent('system:notifs', 'growl', growlData)
|
||||
}
|
||||
|
||||
kick(uid) {
|
||||
let userNotifChan = app.config.messageBus.userNotifChan.replace(/\{uid\}/g, uid)
|
||||
this.busEvent(userNotifChan, 'kick')
|
||||
return(
|
||||
this.busWssGwRequest('KILLSESSION', {
|
||||
uids: [ uid ],
|
||||
notRoles : ['EIC_admin', 'EIC_Dev' ],
|
||||
ttl: 0
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
kickAll() {
|
||||
this.busEvent('system:notifs', 'kick')
|
||||
return(
|
||||
this.busWssGwRequest('KILLSESSION', {
|
||||
uids: null,
|
||||
notRoles : ['EIC_admin', 'EIC_Dev' ],
|
||||
ttl: 0
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
refreshWssGwRights(){
|
||||
return(
|
||||
this.busWssGwRequest('RELOADACCESSRIGHTS', {})
|
||||
)
|
||||
}
|
||||
|
||||
viewWssGwRights(){
|
||||
return(
|
||||
this.busWssGwRequest('GETACCESSRIGHTS', {})
|
||||
)
|
||||
}
|
||||
|
||||
refreshHttpGwRights(){
|
||||
return(
|
||||
this.busActionRequest('infraNotifs:httpGateway', 'RELOADACCESSRIGHTS', {})
|
||||
)
|
||||
}
|
||||
|
||||
viewHttpGwRights(){
|
||||
return(
|
||||
this.busActionRequest('infraNotifs:httpGateway', 'GETACCESSRIGHTS', {})
|
||||
)
|
||||
}
|
||||
|
||||
refreshMidasConfig(){
|
||||
return(
|
||||
this.busActionRequest('infraNotifs:midas', 'RELOADCONFIG', {})
|
||||
)
|
||||
}
|
||||
|
||||
viewMidasConfig(){
|
||||
return(
|
||||
this.busActionRequest('infraNotifs:midas', 'GETCONFIG', {})
|
||||
)
|
||||
}
|
||||
|
||||
refreshMidasPlugins(){
|
||||
return(
|
||||
this.busActionRequest('infraNotifs:midas', 'RELOADPLUGINS', {})
|
||||
)
|
||||
}
|
||||
|
||||
viewMidasPlugins(){
|
||||
return(
|
||||
this.busActionRequest('infraNotifs:midas', 'LISTPLUGINS', {})
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('PlatformModel', PlatformModel);
|
||||
@@ -1,87 +0,0 @@
|
||||
class SupportModel extends EICModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('/zammad/tickets', privileges);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns
|
||||
*/
|
||||
list(filters) {
|
||||
//if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, filters)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns
|
||||
*/
|
||||
get(id) {
|
||||
// if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('get');
|
||||
endpoint.uri = endpoint.uri.replace('{id}', id);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns
|
||||
*/
|
||||
create(ticket) {
|
||||
//if(!this.hasPrivilege('create')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('create');
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, ticket)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns
|
||||
*/
|
||||
update(id, content) {
|
||||
//if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('update');
|
||||
endpoint.uri = endpoint.uri.replace('{id}', id);
|
||||
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, content)
|
||||
.then( async serverData => {
|
||||
return serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
download(ticketId, articleId, attachmentId) {
|
||||
// if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('download');
|
||||
endpoint.uri = endpoint.uri.replace('{ticid}', ticketId);
|
||||
endpoint.uri = endpoint.uri.replace('{artid}', articleId);
|
||||
endpoint.uri = endpoint.uri.replace('{attid}', attachmentId);
|
||||
|
||||
window.open(endpoint.uri, '_blank');
|
||||
}
|
||||
}
|
||||
app.registerClass('SupportModel', SupportModel);
|
||||
@@ -1,110 +0,0 @@
|
||||
class BypassUsersModel extends EICPluralModel {
|
||||
|
||||
constructor(privileges) {
|
||||
|
||||
super('users', privileges);
|
||||
|
||||
this.singletonClass = class {
|
||||
itemData = {
|
||||
uuid: null,
|
||||
firstname: null,
|
||||
lastname: null,
|
||||
role: null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getUid(uid) {
|
||||
return(this.collection.find(x=>(x.uid == uid)));
|
||||
}
|
||||
|
||||
create(payload) {
|
||||
if(!this.hasPrivilege('create')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('create');
|
||||
return ( this.request(endpoint.uri, endpoint.method, payload) );
|
||||
}
|
||||
|
||||
revoke(uid) {
|
||||
if(!this.hasPrivilege('revoke')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('revoke');
|
||||
let uri = endpoint.uri.replace('{id}', uid);
|
||||
|
||||
return this.request(uri, endpoint.method, null);
|
||||
}
|
||||
|
||||
search(hint) {
|
||||
// This is publicly avail, don't check until ML understand what anonymous means
|
||||
// if(!this.hasPrivilege('search')) return( new Promise((resolve, reject) => reject()))
|
||||
let endpoint = this.getApiEndpoint('search');
|
||||
let uri = endpoint.uri.replace('{id}', hint);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, {'hint': hint })
|
||||
.then( async serverData => {
|
||||
let users = serverData.payload.map(x=> { // Cleanup keys starting with https://
|
||||
for(let k in x){
|
||||
if(k.substring(0,4)=='http') { x[k.substring(k.lastIndexOf('/')+1)]=x[k]; delete(x[k]);}
|
||||
} return(x);
|
||||
} )
|
||||
return(users);
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
sanitize(item) {
|
||||
//TODO what if several BP_ roles...
|
||||
item.BProle = item.roles.filter(r => (r.substring(0,3)=='BP_'))[0];
|
||||
let trackTree = null;
|
||||
if(item.track) {
|
||||
trackTree = app.meta.getItem('accelerator-tracks',item.track);
|
||||
item.track = { id: item.track, label: trackTree.label };
|
||||
} else {
|
||||
item.track = { id: null, label: '(n/a)' };
|
||||
}
|
||||
|
||||
if((item.domain) && (trackTree)){
|
||||
item.domain = { id: item.domain, label: app.meta.getItemRecurse(trackTree, item.domain).label };
|
||||
} else {
|
||||
item.domain = { id: null, label: '(n/a)' };
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
list(filters) {
|
||||
if(!this.hasPrivilege('list')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('list');
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, filters)
|
||||
.then( async serverData => {
|
||||
const payload = serverData.payload;
|
||||
this.fill(payload);
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
// Not sure why / when / where they think I'll need it, but it exists (and takes 2.5 seconds to get 5 strings)
|
||||
// If someday the response-time is decent, and if we have the delegationRules the payload...maybe...
|
||||
getRoles() {
|
||||
if(!this.hasPrivilege('getRoles')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = app.config.api.roles.list;
|
||||
return (
|
||||
this.request(endpoint.uri, endpoint.method, {})
|
||||
.then( async serverData => {
|
||||
this.existingRoles = serverData.payload;
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
fill(serverData) {
|
||||
if(serverData && serverData.length) {
|
||||
this.collection = [];
|
||||
for(let singletonData of serverData) this.collection.push(this.sanitize(singletonData));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('BypassUsersModel', BypassUsersModel);
|
||||
@@ -1,85 +0,0 @@
|
||||
class applicantModel extends EICModel {
|
||||
|
||||
constructor(privileges) {
|
||||
super('applicant', privileges);
|
||||
}
|
||||
|
||||
getOrganisations() {
|
||||
let responsePayload = [
|
||||
{
|
||||
pic: 12345678,
|
||||
legalname: 'NightShift.be SNC'
|
||||
}
|
||||
];
|
||||
|
||||
return (
|
||||
new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
resolve(responsePayload);
|
||||
}, 300);
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
getOrganisationSummary(pic) {
|
||||
let responsePayload = {
|
||||
pic: 12345678,
|
||||
legalname: 'NightShift.be SNC',
|
||||
proposals: [
|
||||
{
|
||||
id: 14373,
|
||||
proposalNumber: '190129445',
|
||||
acronym: 'patchd',
|
||||
status: 'draft',
|
||||
type: 'short',
|
||||
accessRequests: 2,
|
||||
version: 'legacy1.0'
|
||||
},
|
||||
{
|
||||
id: 99999,
|
||||
proposalNumber: '999123456',
|
||||
acronym: 'fastinfra',
|
||||
status: 'draft',
|
||||
type: 'short',
|
||||
accessRequests: 2,
|
||||
version: '2023'
|
||||
}
|
||||
],
|
||||
coachings: [],
|
||||
members: [
|
||||
{
|
||||
uid: 'fallimi',
|
||||
firstname: 'Michael',
|
||||
lastname: 'Fallise',
|
||||
function: 'Chief Executive Officer',
|
||||
status: 'active'
|
||||
},
|
||||
{
|
||||
uid: 'steinni',
|
||||
firstname: 'Nicolas',
|
||||
lastname: 'Stein',
|
||||
function: 'Chief Technical Officer',
|
||||
status: 'active'
|
||||
},
|
||||
{
|
||||
uid: 'schwemi',
|
||||
firstname: 'Michael',
|
||||
lastname: 'Schweda',
|
||||
function: 'Marketing manager',
|
||||
status: 'pending'
|
||||
}
|
||||
],
|
||||
calendar: []
|
||||
};
|
||||
|
||||
return (
|
||||
new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
resolve(responsePayload);
|
||||
}, 300);
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('applicantModel', applicantModel);
|
||||
@@ -1,120 +0,0 @@
|
||||
class onboardingUserModel extends EICPluralModel {
|
||||
|
||||
constructor(privileges) {
|
||||
|
||||
super('/organisations', privileges);
|
||||
|
||||
this.singletonClass = class {
|
||||
itemData = {
|
||||
uuid: null,
|
||||
firstname: null,
|
||||
lastname: null,
|
||||
role: null,
|
||||
organisations: []
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
readOrganisation(pic) {
|
||||
if(!this.hasPrivilege('read')) return( new Promise((resolve, reject) => reject()));
|
||||
|
||||
let endpoint = this.getApiEndpoint('read');
|
||||
let uri = endpoint.uri.replace('{pic}',pic)
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method)
|
||||
.then( async serverData => {
|
||||
this.loadData(serverData.payload)
|
||||
return(serverData.payload)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
searchOrganisation(pic) {
|
||||
// This is publicly avail, don't check until ML understand what anonymous means
|
||||
// if(!this.hasPrivilege('search')) return( new Promise((resolve, reject) => reject()))
|
||||
|
||||
let endpoint = this.getApiEndpoint('search');
|
||||
let uri = endpoint.uri
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, {'search': pic })
|
||||
.then( async serverData => {
|
||||
this.loadData(serverData.payload)
|
||||
return(serverData.payload)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
registerOrganisationAccess(orgData) {
|
||||
if(!this.hasPrivilege('apply')) return( new Promise((resolve, reject) => reject()));
|
||||
let endpoint = this.getApiEndpoint('apply')
|
||||
let uri = endpoint.uri.replace('{pic}',orgData.pic).replace('{uid}', app.User.identity.uuid);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, {
|
||||
status: 'pending',
|
||||
organisationLink: '/applicant/{pic}'.replace('{pic}',orgData.pic)
|
||||
})
|
||||
.then( async serverData => {
|
||||
return(serverData.payload)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
requestOrganisationAccess(orgData) {
|
||||
if(!this.hasPrivilege('apply')) return( new Promise((resolve, reject) => reject()));
|
||||
|
||||
let endpoint = this.getApiEndpoint('apply')
|
||||
let uri = endpoint.uri.replace('{pic}',orgData.pic).replace('{uid}', app.User.identity.uuid);
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, {
|
||||
status: 'pending',
|
||||
organisationLink: '/applicant/{pic}'.replace('{pic}',orgData.pic)
|
||||
})
|
||||
.then( async serverData => {
|
||||
return(serverData.payload)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
// MFA: needed here ? handled thru dashboard
|
||||
// Nike: Yes, good place, for rel2
|
||||
acceptRegistrationAccess(uid, pic) {
|
||||
if(!this.hasPrivilege('grant')) return( new Promise((resolve, reject) => reject()));
|
||||
let endpoint = this.getApiEndpoint('grant').replace('{pic}',pic).replace('{uid}', app.User.identity.uuid);
|
||||
let uri = endpoint.uri
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, {
|
||||
status: 'pending',
|
||||
organisationLink: '/applicant/{pic}'.replace('{pic}',pic)
|
||||
} )
|
||||
.then( async serverData => {
|
||||
return(serverData.payload)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
// MFA: needed here ? handled thru dashboard
|
||||
// Nike: Yes, good place, for rel2
|
||||
denyRegistrationAccess(uid, pic) {
|
||||
if(!this.hasPrivilege('revoke')) return( new Promise((resolve, reject) => reject()));
|
||||
let endpoint = this.getApiEndpoint('revoke').replace('{pic}',pic).replace('{uid}', app.User.identity.uuid);
|
||||
let uri = endpoint.uri
|
||||
|
||||
return (
|
||||
this.request(uri, endpoint.method, {
|
||||
status: 'pending',
|
||||
organisationLink: '/applicant/{pic}'.replace('{pic}',pic)
|
||||
} )
|
||||
.then( async serverData => {
|
||||
return(serverData.payload)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
app.registerClass('onboardingUserModel', onboardingUserModel);
|
||||
@@ -1,53 +0,0 @@
|
||||
/**
|
||||
* AWS download helper
|
||||
* @author Nike
|
||||
* @version 1.0
|
||||
* @category MyEic
|
||||
* @subcategory Libraries
|
||||
*/
|
||||
class AwsFileDownload {
|
||||
|
||||
options = {
|
||||
pdf : { url: 'https://api.dev.eismea.eu/stable/vod/source?file=',
|
||||
method: 'GET',
|
||||
headers: { 'Accept': 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
credentials: 'include',
|
||||
},
|
||||
}
|
||||
|
||||
constructor(options) {
|
||||
this.mergeOptionsNode(this.options, options);
|
||||
}
|
||||
|
||||
mergeOptionsNode(target, source) {
|
||||
for (let option in source) {
|
||||
if(typeof source[option] === 'object' && !Array.isArray(source[option]) && (option in target) && !(target[option] instanceof(Element))) {
|
||||
this.mergeOptionsNode(target[option], source[option]);
|
||||
} else {
|
||||
target[option] = source[option];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async getDownloadUrl(type, filename) {
|
||||
let response
|
||||
let uri = this.options[type].url+filename
|
||||
try {
|
||||
let foptions = {
|
||||
method: this.options[type].method,
|
||||
headers: this.options[type].headers,
|
||||
}
|
||||
if(this.options[type].credentials) foptions['credentials'] = this.options[type].credentials
|
||||
response = await fetch(uri, foptions)
|
||||
response = await response.json()
|
||||
if(response && response.payload && response.payload.url) return(response.payload.url)
|
||||
return(null)
|
||||
} catch(debugMessage) {
|
||||
console.warn('Error getting upload signed URL:',debugMessage)
|
||||
return('')
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
/**
|
||||
* AWS File upload
|
||||
* @extends FileUpload
|
||||
* @author Nike
|
||||
* @version 1.0
|
||||
* @category MyEic
|
||||
* @subcategory Libraries
|
||||
*/
|
||||
class AwsFileUpload extends FileUpload {
|
||||
constructor(el, options) {
|
||||
super(el, options);
|
||||
this.filename = options.filename
|
||||
this.pic = options.pic
|
||||
this.pid = options.pid
|
||||
}
|
||||
|
||||
mergeOptionsNode(target, source) {
|
||||
for (let option in source) {
|
||||
if(typeof source[option] === 'object' && !Array.isArray(source[option]) && (option in target) && !(target[option] instanceof(Element))) {
|
||||
this.mergeOptionsNode(target[option], source[option]);
|
||||
} else {
|
||||
target[option] = source[option];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async onBeforeUploadOneStart(file) {
|
||||
let response
|
||||
let ext = file.name.substring(file.name.lastIndexOf('.')+1) //Get the extension from the user file name
|
||||
|
||||
if((!this.filename) || (this.filename != this.createFileName(this.pic, this.pid)+'.'+ext)) { // Carefull: extension could change !
|
||||
this.filename = this.createFileName(this.pic, this.pid)+'.'+ext
|
||||
}
|
||||
let uri = this.options.getSignedUrl+this.filename
|
||||
try {
|
||||
response = await fetch(uri, {
|
||||
method: this.options.getSignedMethod,
|
||||
headers: { 'Accept': 'application/json',
|
||||
'Content-Type': file.type,
|
||||
},
|
||||
credentials: 'include',
|
||||
}).then( response => response.json())
|
||||
let payload = response.payload
|
||||
this.options.uploadUrl = payload.url // Signed url is here
|
||||
this.options.uploadMethod = 'PUT'
|
||||
} catch(debugMessage) {
|
||||
console.warn('Error getting upload signed URL:',debugMessage)
|
||||
return(false)
|
||||
}
|
||||
return(true)
|
||||
}
|
||||
|
||||
createFileName(pic, pid) { return(pic+'_'+pid+'_'+crypto.randomUUID()) }
|
||||
|
||||
}
|
||||
@@ -1,113 +0,0 @@
|
||||
/**
|
||||
*
|
||||
* @author Nicolas Stein
|
||||
* @version 1.0
|
||||
* @category MyEic
|
||||
* @subcategory Libraries
|
||||
*/
|
||||
class Matomo4Sparc {
|
||||
|
||||
/**
|
||||
* @typedef Matomo4Sparc~options
|
||||
* @property {string} trackUrl
|
||||
* @property {string} idsite
|
||||
* @property {string} method
|
||||
* @property {object} baseLogObj
|
||||
* @property {number} baseLogObj.rec
|
||||
* @property {number} baseLogObj.apiv
|
||||
* @property {number} baseLogObj.new_visit
|
||||
*/
|
||||
|
||||
/** @type {Matomo4Sparc~options} */
|
||||
options = {
|
||||
trackUrl: '',
|
||||
idsite:'1',
|
||||
method: 'POST',
|
||||
baseLogObj : {
|
||||
rec:1,
|
||||
apiv:1,
|
||||
new_visit: 0,
|
||||
},
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {Matomo4Sparc~options} options
|
||||
*/
|
||||
constructor(options) {
|
||||
this.mergeOptions(this.options, options);
|
||||
this.options.baseLogObj.idsite = this.options.idsite
|
||||
//console.log('Matomo4Sparc started...')
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {Object} target
|
||||
* @param {Object} source
|
||||
*/
|
||||
mergeOptions(target, source) {
|
||||
for (let option in source) {
|
||||
if(typeof source[option] === 'object' && !Array.isArray(source[option]) && (option in target) && !(target[option] instanceof(Element))) {
|
||||
this.mergeOptions(target[option], source[option]);
|
||||
} else {
|
||||
target[option] = source[option];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {Object} Matomo4Sparc~UserInfo
|
||||
* @property {string} res
|
||||
* @property {string} ua
|
||||
* @property {string} uid
|
||||
* @property {string} _var
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns {Matomo4Sparc~UserInfo}
|
||||
|
||||
*/
|
||||
userInfos() {
|
||||
return({
|
||||
res: window.screen.availWidth+'x'+window.screen.availHeight,
|
||||
ua: window.navigator.userAgent,
|
||||
uid: app.User.identity.uuid,
|
||||
_cvar: JSON.stringify({ userRoles: app.User.roles })
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} action
|
||||
* @param {*} callOptions
|
||||
*/
|
||||
logAction(action, callOptions) {
|
||||
let logObj = {
|
||||
...this.options.baseLogObj,
|
||||
...this.userInfos(),
|
||||
...{
|
||||
rand: crypto.randomUUID(),
|
||||
action_name: action,
|
||||
url: document.location.href,
|
||||
},
|
||||
...callOptions
|
||||
}
|
||||
|
||||
let fd = new FormData()
|
||||
for(let key in logObj) fd.set(key, logObj[key])
|
||||
fetch(
|
||||
this.options.trackUrl,{
|
||||
method: this.options.method,
|
||||
body: fd
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('Matomo4Sparc', Matomo4Sparc)
|
||||
|
||||
if(app.config.matomo4sparc && app.config.matomo4sparc.enabled) {
|
||||
app.matomo = new Matomo4Sparc(app.config.matomo4sparc)
|
||||
app.matomo.logAction('Launched Myeic App', { new_visit: 1 })
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
!function(){!function(){"use strict";var n=[,,function(t){function _(t){this.__parent=t,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function i(t,e){this.__cache=[""],this.__indent_size=t.indent_size,this.__indent_string=t.indent_char,t.indent_with_tabs||(this.__indent_string=new Array(t.indent_size+1).join(t.indent_char)),e=e||"",0<t.indent_level&&(e=new Array(t.indent_level+1).join(this.__indent_string)),this.__base_string=e,this.__base_string_length=e.length}function e(t,e){this.__indent_cache=new i(t,e),this.raw=!1,this._end_with_newline=t.end_with_newline,this.indent_size=t.indent_size,this.wrap_line_length=t.wrap_line_length,this.indent_empty_lines=t.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new _(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}_.prototype.clone_empty=function(){var t=new _(this.__parent);return t.set_indent(this.__indent_count,this.__alignment_count),t},_.prototype.item=function(t){return t<0?this.__items[this.__items.length+t]:this.__items[t]},_.prototype.has_match=function(t){for(var e=this.__items.length-1;0<=e;e--)if(this.__items[e].match(t))return!0;return!1},_.prototype.set_indent=function(t,e){this.is_empty()&&(this.__indent_count=t||0,this.__alignment_count=e||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},_.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},_.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},_.prototype._allow_wrap=function(){var t;return!!this._should_wrap()&&(this.__parent.add_new_line(),(t=this.__parent.current_line).set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),t.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),t.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count," "===t.__items[0]&&(t.__items.splice(0,1),--t.__character_count),!0)},_.prototype.is_empty=function(){return 0===this.__items.length},_.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},_.prototype.push=function(t){this.__items.push(t);var e=t.lastIndexOf("\n");-1!==e?this.__character_count=t.length-e:this.__character_count+=t.length},_.prototype.pop=function(){var t=null;return this.is_empty()||(t=this.__items.pop(),this.__character_count-=t.length),t},_.prototype._remove_indent=function(){0<this.__indent_count&&(--this.__indent_count,this.__character_count-=this.__parent.indent_size)},_.prototype._remove_wrap_indent=function(){0<this.__wrap_point_indent_count&&--this.__wrap_point_indent_count},_.prototype.trim=function(){for(;" "===this.last();)this.__items.pop(),--this.__character_count},_.prototype.toString=function(){var t="";return this.is_empty()?this.__parent.indent_empty_lines&&(t=this.__parent.get_indent_string(this.__indent_count)):(t=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),t+=this.__items.join("")),t},i.prototype.get_indent_size=function(t,e){var i=this.__base_string_length;return i=(i=t<0?0:i)+t*this.__indent_size+(e=e||0)},i.prototype.get_indent_string=function(t,e){var i=this.__base_string;return e=e||0,t<0&&(t=0,i=""),e+=t*this.__indent_size,this.__ensure_cache(e),i+=this.__cache[e]},i.prototype.__ensure_cache=function(t){for(;t>=this.__cache.length;)this.__add_column()},i.prototype.__add_column=function(){var t,e=this.__cache.length,i="";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,i=new Array(t+1).join(this.__indent_string)),e&&(i+=new Array(e+1).join(" ")),this.__cache.push(i)},e.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},e.prototype.get_line_number=function(){return this.__lines.length},e.prototype.get_indent_string=function(t,e){return this.__indent_cache.get_indent_string(t,e)},e.prototype.get_indent_size=function(t,e){return this.__indent_cache.get_indent_size(t,e)},e.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},e.prototype.add_new_line=function(t){return!(this.is_empty()||!t&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},e.prototype.geLine truncated
|
||||
@@ -1 +0,0 @@
|
||||
!function(){!function(){"use strict";var i=[,,function(t){function _(t){this.__parent=t,this.__character_count=0,this.__indent_count=-1,this.__alignment_count=0,this.__wrap_point_index=0,this.__wrap_point_character_count=0,this.__wrap_point_indent_count=-1,this.__wrap_point_alignment_count=0,this.__items=[]}function n(t,e){this.__cache=[""],this.__indent_size=t.indent_size,this.__indent_string=t.indent_char,t.indent_with_tabs||(this.__indent_string=new Array(t.indent_size+1).join(t.indent_char)),e=e||"",0<t.indent_level&&(e=new Array(t.indent_level+1).join(this.__indent_string)),this.__base_string=e,this.__base_string_length=e.length}function e(t,e){this.__indent_cache=new n(t,e),this.raw=!1,this._end_with_newline=t.end_with_newline,this.indent_size=t.indent_size,this.wrap_line_length=t.wrap_line_length,this.indent_empty_lines=t.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new _(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}_.prototype.clone_empty=function(){var t=new _(this.__parent);return t.set_indent(this.__indent_count,this.__alignment_count),t},_.prototype.item=function(t){return t<0?this.__items[this.__items.length+t]:this.__items[t]},_.prototype.has_match=function(t){for(var e=this.__items.length-1;0<=e;e--)if(this.__items[e].match(t))return!0;return!1},_.prototype.set_indent=function(t,e){this.is_empty()&&(this.__indent_count=t||0,this.__alignment_count=e||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},_.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},_.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},_.prototype._allow_wrap=function(){var t;return!!this._should_wrap()&&(this.__parent.add_new_line(),(t=this.__parent.current_line).set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),t.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),t.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count," "===t.__items[0]&&(t.__items.splice(0,1),--t.__character_count),!0)},_.prototype.is_empty=function(){return 0===this.__items.length},_.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},_.prototype.push=function(t){this.__items.push(t);var e=t.lastIndexOf("\n");-1!==e?this.__character_count=t.length-e:this.__character_count+=t.length},_.prototype.pop=function(){var t=null;return this.is_empty()||(t=this.__items.pop(),this.__character_count-=t.length),t},_.prototype._remove_indent=function(){0<this.__indent_count&&(--this.__indent_count,this.__character_count-=this.__parent.indent_size)},_.prototype._remove_wrap_indent=function(){0<this.__wrap_point_indent_count&&--this.__wrap_point_indent_count},_.prototype.trim=function(){for(;" "===this.last();)this.__items.pop(),--this.__character_count},_.prototype.toString=function(){var t="";return this.is_empty()?this.__parent.indent_empty_lines&&(t=this.__parent.get_indent_string(this.__indent_count)):(t=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),t+=this.__items.join("")),t},n.prototype.get_indent_size=function(t,e){var n=this.__base_string_length;return n=(n=t<0?0:n)+t*this.__indent_size+(e=e||0)},n.prototype.get_indent_string=function(t,e){var n=this.__base_string;return e=e||0,t<0&&(t=0,n=""),e+=t*this.__indent_size,this.__ensure_cache(e),n+=this.__cache[e]},n.prototype.__ensure_cache=function(t){for(;t>=this.__cache.length;)this.__add_column()},n.prototype.__add_column=function(){var t,e=this.__cache.length,n="";this.__indent_size&&e>=this.__indent_size&&(e-=(t=Math.floor(e/this.__indent_size))*this.__indent_size,n=new Array(t+1).join(this.__indent_string)),e&&(n+=new Array(e+1).join(" ")),this.__cache.push(n)},e.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},e.prototype.get_line_number=function(){return this.__lines.length},e.prototype.get_indent_string=function(t,e){return this.__indent_cache.get_indent_string(t,e)},e.prototype.get_indent_size=function(t,e){return this.__indent_cache.get_indent_size(t,e)},e.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},e.prototype.add_new_line=function(t){return!(this.is_empty()||!t&&this.just_added_newline())&&(this.raw||this.__add_outputline(),!0)},e.prototype.geLine truncated
|
||||
@@ -1 +0,0 @@
|
||||
!function(){!function(){"use strict";var i=[function(t,e,u){var i=u(1).Beautifier,n=u(5).Options;t.exports=function(t,e){return new i(t,e).beautify()},t.exports.defaultOptions=function(){return new n}},function(t,e,u){var i=u(2).Output,n=u(3).Token,o=u(4),_=u(5).Options,s=u(7).Tokenizer,r=u(7).line_starters,h=u(7).positionable_operators,p=u(7).TOKEN;function l(t,e){return-1!==e.indexOf(t)}function a(t,e){return t&&t.type===p.RESERVED&&t.text===e}function f(t,e){return t&&t.type===p.RESERVED&&l(t.text,e)}var c=["case","return","do","if","throw","else","await","break","continue","async"],d=function(t){for(var e={},u=0;u<t.length;u++)e[t[u].replace(/-/g,"_")]=t[u];return e}(["before-newline","after-newline","preserve-newline"]),b=[d.before_newline,d.preserve_newline],g="BlockStatement",k="Statement",m="ObjectLiteral",w="ArrayLiteral",y="ForInitializer",x="Conditional",v="Expression";function E(t,e){e.multiline_frame||e.mode===y||e.mode===x||t.remove_indent(e.start_line_index)}function R(t){return t===w}function O(t){return l(t,[v,y,x])}function T(t,e){e=e||{},this._source_text=t||"",this._output=null,this._tokens=null,this._last_last_text=null,this._flags=null,this._previous_flags=null,this._flag_store=null,this._options=new _(e)}T.prototype.create_flags=function(t,e){var u=0;return t&&(u=t.indentation_level,!this._output.just_added_newline()&&t.line_indent_level>u&&(u=t.line_indent_level)),{mode:e,parent:t,last_token:t?t.last_token:new n(p.START_BLOCK,""),last_word:t?t.last_word:"",declaration_statement:!1,declaration_assignment:!1,multiline_frame:!1,inline_frame:!1,if_block:!1,else_block:!1,class_start_block:!1,do_block:!1,do_while:!1,import_block:!1,in_case_statement:!1,in_case:!1,case_body:!1,case_block:!1,indentation_level:u,alignment:0,line_indent_level:t?t.line_indent_level:u,start_line_index:this._output.get_line_number(),ternary_depth:0}},T.prototype._reset=function(t){var e=t.match(/^[\t ]*/)[0],e=(this._last_last_text="",this._output=new i(this._options,e),this._output.raw=this._options.test_output_raw,this._flag_store=[],this.set_mode(g),new s(t,this._options));return this._tokens=e.tokenize(),t},T.prototype.beautify=function(){if(this._options.disabled)return this._source_text;for(var t=this._reset(this._source_text),e=this._options.eol,u=("auto"===this._options.eol&&(e="\n",t&&o.lineBreak.test(t||"")&&(e=t.match(o.lineBreak)[0])),this._tokens.next());u;)this.handle_token(u),this._last_last_text=this._flags.last_token.text,this._flags.last_token=u,u=this._tokens.next();return this._output.get_code(e)},T.prototype.handle_token=function(t,e){t.type===p.START_EXPR?this.handle_start_expr(t):t.type===p.END_EXPR?this.handle_end_expr(t):t.type===p.START_BLOCK?this.handle_start_block(t):t.type===p.END_BLOCK?this.handle_end_block(t):t.type===p.WORD||t.type===p.RESERVED?this.handle_word(t):t.type===p.SEMICOLON?this.handle_semicolon(t):t.type===p.STRING?this.handle_string(t):t.type===p.EQUALS?this.handle_equals(t):t.type===p.OPERATOR?this.handle_operator(t):t.type===p.COMMA?this.handle_comma(t):t.type===p.BLOCK_COMMENT?this.handle_block_comment(t,e):t.type===p.COMMENT?this.handle_comment(t,e):t.type===p.DOT?this.handle_dot(t):t.type===p.EOF?this.handle_eof(t):(t.type,p.UNKNOWN,this.handle_unknown(t,e))},T.prototype.handle_whitespace_and_comments=function(t,e){var u=t.newlines,i=this._options.keep_array_indentation&&R(this._flags.mode);if(t.comments_before)for(var n=t.comments_before.next();n;)this.handle_whitespace_and_comments(n,e),this.handle_token(n,e),n=t.comments_before.next();if(i)for(var _=0;_<u;_+=1)this.print_newline(0<_,e);else if(this._options.max_preserve_newlines&&u>this._options.max_preserve_newlines&&(u=this._options.max_preserve_newlines),this._options.preserve_newlines&&1<u){this.print_newline(!1,e);for(var s=1;s<u;s+=1)this.print_newline(!0,e)}};var A=["async","break","continue","return","throw","yield"];T.prototype.allow_wrap_or_preserved_newline=function(t,e){e=void 0!==e&&e,this._output.just_added_newline()||(e=this._options.preserve_newlines&&t.newlines||e,(l(this._flags.last_token.text,h)||l(t.text,h))&&(t=l(this._flags.last_token.text,h)&&l(this._options.operator_position,b)||l(t.text,h),e=e&&t),e?this.print_newline(!1,!0):this._options.wrap_line_length&&!f(this._flags.last_token,A)&&this._output.set_wrap_point())},T.prototype.print_newline=function(t,e){if(!e&&";"!==this._flags.last_token.text&&","!==this._flags.last_token.text&&"="!==this._flags.last_token.text&&(this._flags.last_token.type!==p.OPERATOR||"--"===this._flags.last_token.text||"++"===this._flags.last_token.text))for(var u=this._tokens.peek();!(this._flags.mode!==k||this._flags.if_block&&a(u,"else")||this._flags.do_block);)this.restore_mode();this._output.add_new_line(t)&&(this._flags.multiline_frame=!0)},T.prototype.print_token_line_indentation=function(t){this._output.just_added_newline()&&(this._options.keep_array_indentation&&t.newlines&&("["===t.text||R(this._flags.mode))?(this._output.current_line.set_indent(-1),tLine truncated
|
||||
@@ -573,9 +573,9 @@ body[eicapp] {
|
||||
[eicapp] p { padding: var(--eicui-base-spacing-m) 0 !important; }
|
||||
|
||||
[eicapp] [eicapptoolbar] {
|
||||
background: var(--eicui-app-header-bg-color);
|
||||
background: #1d261d;
|
||||
align-items: center;
|
||||
border-bottom: 3px solid var(--eicui-app-toolbar-bg-color);
|
||||
border-bottom: 4px ridge #7D7;
|
||||
color: var(--eicui-app-toolbar-color);
|
||||
width: 100%;
|
||||
height: var(--eicui-app-toolbar-height-active);
|
||||
@@ -585,10 +585,15 @@ body[eicapp] {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
[eicapp] [eicapptoolbar] img.logo{
|
||||
height: var(--eicui-app-toolbar-height-active);
|
||||
border-right: 4px ridge #7D7;
|
||||
}
|
||||
[eicapp] [eicapptoolbar] .app-menu {
|
||||
margin: 0 var(--eicui-base-spacing-xs) 0 0;
|
||||
border: none;
|
||||
background: none;
|
||||
color: white;
|
||||
}
|
||||
[eicapp] [eicapptoolbar] .app-menu:active,
|
||||
[eicapp] [eicapptoolbar] .app-menu:focus {
|
||||
@@ -2731,7 +2736,7 @@ menu[eicmenu][collapsed]:not(:hover) [menuitem] > a > label {
|
||||
}
|
||||
[eicuser] {
|
||||
display: inline-grid;
|
||||
background-color: var(--eicui-base-color-info-25);
|
||||
background-color: var(--eicui-base-color-success-50);
|
||||
border-radius: 50%;
|
||||
font-size: var(--app-font-size-2xs);
|
||||
height: var(--eicui-base-spacing-xl);
|
||||
|
||||
@@ -1,446 +0,0 @@
|
||||
/*!
|
||||
Highlight.js v11.7.0 (git: 82688fad18)
|
||||
(c) 2006-2022 undefined and other contributors
|
||||
License: BSD-3-Clause
|
||||
*/
|
||||
var hljs=function(){"use strict";var e={exports:{}};function t(e){
|
||||
return e instanceof Map?e.clear=e.delete=e.set=()=>{
|
||||
throw Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{
|
||||
throw Error("set is read-only")
|
||||
}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((n=>{var i=e[n]
|
||||
;"object"!=typeof i||Object.isFrozen(i)||t(i)})),e}
|
||||
e.exports=t,e.exports.default=t;class n{constructor(e){
|
||||
void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
|
||||
ignoreMatch(){this.isMatchIgnored=!0}}function i(e){
|
||||
return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")
|
||||
}function r(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
|
||||
;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}
|
||||
const s=e=>!!e.scope||e.sublanguage&&e.language;class o{constructor(e,t){
|
||||
this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
|
||||
this.buffer+=i(e)}openNode(e){if(!s(e))return;let t=""
|
||||
;t=e.sublanguage?"language-"+e.language:((e,{prefix:t})=>{if(e.includes(".")){
|
||||
const n=e.split(".")
|
||||
;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")
|
||||
}return`${t}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(t)}
|
||||
closeNode(e){s(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
|
||||
this.buffer+=`<span class="${e}">`}}const a=(e={})=>{const t={children:[]}
|
||||
;return Object.assign(t,e),t};class c{constructor(){
|
||||
this.rootNode=a(),this.stack=[this.rootNode]}get top(){
|
||||
return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
|
||||
this.top.children.push(e)}openNode(e){const t=a({scope:e})
|
||||
;this.add(t),this.stack.push(t)}closeNode(){
|
||||
if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
|
||||
for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
|
||||
walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
|
||||
return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),
|
||||
t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
|
||||
"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
|
||||
c._collapse(e)})))}}class l extends c{constructor(e){super(),this.options=e}
|
||||
addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}
|
||||
addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root
|
||||
;n.sublanguage=!0,n.language=t,this.add(n)}toHTML(){
|
||||
return new o(this,this.options).value()}finalize(){return!0}}function g(e){
|
||||
return e?"string"==typeof e?e:e.source:null}function d(e){return p("(?=",e,")")}
|
||||
function u(e){return p("(?:",e,")*")}function h(e){return p("(?:",e,")?")}
|
||||
function p(...e){return e.map((e=>g(e))).join("")}function f(...e){const t=(e=>{
|
||||
const t=e[e.length-1]
|
||||
;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}
|
||||
})(e);return"("+(t.capture?"":"?:")+e.map((e=>g(e))).join("|")+")"}
|
||||
function b(e){return RegExp(e.toString()+"|").exec("").length-1}
|
||||
const m=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
|
||||
;function E(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n
|
||||
;let i=g(e),r="";for(;i.length>0;){const e=m.exec(i);if(!e){r+=i;break}
|
||||
r+=i.substring(0,e.index),
|
||||
i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+(Number(e[1])+t):(r+=e[0],
|
||||
"("===e[0]&&n++)}return r})).map((e=>`(${e})`)).join(t)}
|
||||
const x="[a-zA-Z]\\w*",w="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",_="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",O="\\b(0b[01]+)",v={
|
||||
begin:"\\\\[\\s\\S]",relevance:0},N={scope:"string",begin:"'",end:"'",
|
||||
illegal:"\\n",contains:[v]},k={scope:"string",begin:'"',end:'"',illegal:"\\n",
|
||||
contains:[v]},M=(e,t,n={})=>{const i=r({scope:"comment",begin:e,end:t,
|
||||
contains:[]},n);i.contains.push({scope:"doctag",
|
||||
begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
|
||||
end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
|
||||
;const s=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
|
||||
;return i.contains.push({begin:p(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i
|
||||
},S=M("//","$"),R=M("/\\*","\\*/"),j=M("#","$");var A=Object.freeze({
|
||||
__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:x,UNDERSCORE_IDENT_RE:w,
|
||||
NUMBER_RE:y,C_NUMBER_RE:_,BINARY_NUMBER_RE:O,
|
||||
RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
|
||||
SHEBANG:(e={})=>{const t=/^#![ ]*\//
|
||||
;return e.binary&&(e.begin=p(t,/.*\b/,e.binary,/\b.*/)),r({scope:"meta",begin:t,
|
||||
end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},
|
||||
BACKSLASH_ESCAPE:v,APOS_STRING_MODE:N,QUOTE_STRING_MODE:k,PHRASAL_WORDS_MODE:{
|
||||
begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
|
||||
},COMMENT:M,C_LINE_COMMENT_MODE:S,C_BLOCK_COMMENT_MODE:R,HASH_COMMENT_MODE:j,
|
||||
NUMBER_MODE:{scope:"number",begin:y,relevance:0},C_NUMBER_MODE:{scope:"number",
|
||||
begin:_,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:O,relevance:0},
|
||||
REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,
|
||||
end:/\/[gimuy]*/,illegal:/\n/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,
|
||||
contains:[v]}]}]},TITLE_MODE:{scope:"title",begin:x,relevance:0},
|
||||
UNDERSCORE_TITLE_MODE:{scope:"title",begin:w,relevance:0},METHOD_GUARD:{
|
||||
begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
|
||||
"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
|
||||
t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function I(e,t){
|
||||
"."===e.input[e.index-1]&&t.ignoreMatch()}function T(e,t){
|
||||
void 0!==e.className&&(e.scope=e.className,delete e.className)}function L(e,t){
|
||||
t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
|
||||
e.__beforeBegin=I,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
|
||||
void 0===e.relevance&&(e.relevance=0))}function B(e,t){
|
||||
Array.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function D(e,t){
|
||||
if(e.match){
|
||||
if(e.begin||e.end)throw Error("begin & end are not supported with match")
|
||||
;e.begin=e.match,delete e.match}}function H(e,t){
|
||||
void 0===e.relevance&&(e.relevance=1)}const P=(e,t)=>{if(!e.beforeMatch)return
|
||||
;if(e.starts)throw Error("beforeMatch cannot be used with starts")
|
||||
;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]
|
||||
})),e.keywords=n.keywords,e.begin=p(n.beforeMatch,d(n.begin)),e.starts={
|
||||
relevance:0,contains:[Object.assign(n,{endsParent:!0})]
|
||||
},e.relevance=0,delete n.beforeMatch
|
||||
},C=["of","and","for","in","not","or","if","then","parent","list","value"]
|
||||
;function $(e,t,n="keyword"){const i=Object.create(null)
|
||||
;return"string"==typeof e?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach((n=>{
|
||||
Object.assign(i,$(e[n],t,n))})),i;function r(e,n){
|
||||
t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|")
|
||||
;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){
|
||||
return t?Number(t):(e=>C.includes(e.toLowerCase()))(e)?0:1}const z={},K=e=>{
|
||||
console.error(e)},W=(e,...t)=>{console.log("WARN: "+e,...t)},X=(e,t)=>{
|
||||
z[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0)
|
||||
},G=Error();function Z(e,t,{key:n}){let i=0;const r=e[n],s={},o={}
|
||||
;for(let e=1;e<=t.length;e++)o[e+i]=r[e],s[e+i]=!0,i+=b(t[e-1])
|
||||
;e[n]=o,e[n]._emit=s,e[n]._multi=!0}function F(e){(e=>{
|
||||
e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
|
||||
delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
|
||||
_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
|
||||
}),(e=>{if(Array.isArray(e.begin)){
|
||||
if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
|
||||
G
|
||||
;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"),
|
||||
G;Z(e,e.begin,{key:"beginScope"}),e.begin=E(e.begin,{joinWith:""})}})(e),(e=>{
|
||||
if(Array.isArray(e.end)){
|
||||
if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
|
||||
G
|
||||
;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"),
|
||||
G;Z(e,e.end,{key:"endScope"}),e.end=E(e.end,{joinWith:""})}})(e)}function V(e){
|
||||
function t(t,n){
|
||||
return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))
|
||||
}class n{constructor(){
|
||||
this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
|
||||
addRule(e,t){
|
||||
t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),
|
||||
this.matchAt+=b(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
|
||||
;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(E(e,{joinWith:"|"
|
||||
}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
|
||||
;const t=this.matcherRe.exec(e);if(!t)return null
|
||||
;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]
|
||||
;return t.splice(0,n),Object.assign(t,i)}}class i{constructor(){
|
||||
this.rules=[],this.multiRegexes=[],
|
||||
this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
|
||||
if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n
|
||||
;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),
|
||||
t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){
|
||||
return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){
|
||||
this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){
|
||||
const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex
|
||||
;let n=t.exec(e)
|
||||
;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{
|
||||
const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}
|
||||
return n&&(this.regexIndex+=n.position+1,
|
||||
this.regexIndex===this.count&&this.considerAll()),n}}
|
||||
if(e.compilerExtensions||(e.compilerExtensions=[]),
|
||||
e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.")
|
||||
;return e.classNameAliases=r(e.classNameAliases||{}),function n(s,o){const a=s
|
||||
;if(s.isCompiled)return a
|
||||
;[T,D,F,P].forEach((e=>e(s,o))),e.compilerExtensions.forEach((e=>e(s,o))),
|
||||
s.__beforeBegin=null,[L,B,H].forEach((e=>e(s,o))),s.isCompiled=!0;let c=null
|
||||
;return"object"==typeof s.keywords&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),
|
||||
c=s.keywords.$pattern,
|
||||
delete s.keywords.$pattern),c=c||/\w+/,s.keywords&&(s.keywords=$(s.keywords,e.case_insensitive)),
|
||||
a.keywordPatternRe=t(c,!0),
|
||||
o&&(s.begin||(s.begin=/\B|\b/),a.beginRe=t(a.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),
|
||||
s.end&&(a.endRe=t(a.end)),
|
||||
a.terminatorEnd=g(a.end)||"",s.endsWithParent&&o.terminatorEnd&&(a.terminatorEnd+=(s.end?"|":"")+o.terminatorEnd)),
|
||||
s.illegal&&(a.illegalRe=t(s.illegal)),
|
||||
s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>r(e,{
|
||||
variants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?r(e,{
|
||||
starts:e.starts?r(e.starts):null
|
||||
}):Object.isFrozen(e)?r(e):e))("self"===e?s:e)))),s.contains.forEach((e=>{n(e,a)
|
||||
})),s.starts&&n(s.starts,o),a.matcher=(e=>{const t=new i
|
||||
;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"
|
||||
}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"
|
||||
}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function q(e){
|
||||
return!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{
|
||||
constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}
|
||||
const Y=i,Q=r,ee=Symbol("nomatch");var te=(t=>{
|
||||
const i=Object.create(null),r=Object.create(null),s=[];let o=!0
|
||||
;const a="Could not find the language '{}', did you forget to load/include a language module?",c={
|
||||
disableAutodetect:!0,name:"Plain text",contains:[]};let g={
|
||||
ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
|
||||
languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
|
||||
cssSelector:"pre code",languages:null,__emitter:l};function b(e){
|
||||
return g.noHighlightRe.test(e)}function m(e,t,n){let i="",r=""
|
||||
;"object"==typeof t?(i=e,
|
||||
n=t.ignoreIllegals,r=t.language):(X("10.7.0","highlight(lang, code, ...args) has been deprecated."),
|
||||
X("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
|
||||
r=e,i=t),void 0===n&&(n=!0);const s={code:i,language:r};k("before:highlight",s)
|
||||
;const o=s.result?s.result:E(s.language,s.code,n)
|
||||
;return o.code=s.code,k("after:highlight",o),o}function E(e,t,r,s){
|
||||
const c=Object.create(null);function l(){if(!N.keywords)return void M.addText(S)
|
||||
;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(S),n=""
|
||||
;for(;t;){n+=S.substring(e,t.index)
|
||||
;const r=y.case_insensitive?t[0].toLowerCase():t[0],s=(i=r,N.keywords[i]);if(s){
|
||||
const[e,i]=s
|
||||
;if(M.addText(n),n="",c[r]=(c[r]||0)+1,c[r]<=7&&(R+=i),e.startsWith("_"))n+=t[0];else{
|
||||
const n=y.classNameAliases[e]||e;M.addKeyword(t[0],n)}}else n+=t[0]
|
||||
;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(S)}var i
|
||||
;n+=S.substring(e),M.addText(n)}function d(){null!=N.subLanguage?(()=>{
|
||||
if(""===S)return;let e=null;if("string"==typeof N.subLanguage){
|
||||
if(!i[N.subLanguage])return void M.addText(S)
|
||||
;e=E(N.subLanguage,S,!0,k[N.subLanguage]),k[N.subLanguage]=e._top
|
||||
}else e=x(S,N.subLanguage.length?N.subLanguage:null)
|
||||
;N.relevance>0&&(R+=e.relevance),M.addSublanguage(e._emitter,e.language)
|
||||
})():l(),S=""}function u(e,t){let n=1;const i=t.length-1;for(;n<=i;){
|
||||
if(!e._emit[n]){n++;continue}const i=y.classNameAliases[e[n]]||e[n],r=t[n]
|
||||
;i?M.addKeyword(r,i):(S=r,l(),S=""),n++}}function h(e,t){
|
||||
return e.scope&&"string"==typeof e.scope&&M.openNode(y.classNameAliases[e.scope]||e.scope),
|
||||
e.beginScope&&(e.beginScope._wrap?(M.addKeyword(S,y.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
|
||||
S=""):e.beginScope._multi&&(u(e.beginScope,t),S="")),N=Object.create(e,{parent:{
|
||||
value:N}}),N}function p(e,t,i){let r=((e,t)=>{const n=e&&e.exec(t)
|
||||
;return n&&0===n.index})(e.endRe,i);if(r){if(e["on:end"]){const i=new n(e)
|
||||
;e["on:end"](t,i),i.isMatchIgnored&&(r=!1)}if(r){
|
||||
for(;e.endsParent&&e.parent;)e=e.parent;return e}}
|
||||
if(e.endsWithParent)return p(e.parent,t,i)}function f(e){
|
||||
return 0===N.matcher.regexIndex?(S+=e[0],1):(I=!0,0)}function b(e){
|
||||
const n=e[0],i=t.substring(e.index),r=p(N,e,i);if(!r)return ee;const s=N
|
||||
;N.endScope&&N.endScope._wrap?(d(),
|
||||
M.addKeyword(n,N.endScope._wrap)):N.endScope&&N.endScope._multi?(d(),
|
||||
u(N.endScope,e)):s.skip?S+=n:(s.returnEnd||s.excludeEnd||(S+=n),
|
||||
d(),s.excludeEnd&&(S=n));do{
|
||||
N.scope&&M.closeNode(),N.skip||N.subLanguage||(R+=N.relevance),N=N.parent
|
||||
}while(N!==r.parent);return r.starts&&h(r.starts,e),s.returnEnd?0:n.length}
|
||||
let m={};function w(i,s){const a=s&&s[0];if(S+=i,null==a)return d(),0
|
||||
;if("begin"===m.type&&"end"===s.type&&m.index===s.index&&""===a){
|
||||
if(S+=t.slice(s.index,s.index+1),!o){const t=Error(`0 width match regex (${e})`)
|
||||
;throw t.languageName=e,t.badRule=m.rule,t}return 1}
|
||||
if(m=s,"begin"===s.type)return(e=>{
|
||||
const t=e[0],i=e.rule,r=new n(i),s=[i.__beforeBegin,i["on:begin"]]
|
||||
;for(const n of s)if(n&&(n(e,r),r.isMatchIgnored))return f(t)
|
||||
;return i.skip?S+=t:(i.excludeBegin&&(S+=t),
|
||||
d(),i.returnBegin||i.excludeBegin||(S=t)),h(i,e),i.returnBegin?0:t.length})(s)
|
||||
;if("illegal"===s.type&&!r){
|
||||
const e=Error('Illegal lexeme "'+a+'" for mode "'+(N.scope||"<unnamed>")+'"')
|
||||
;throw e.mode=N,e}if("end"===s.type){const e=b(s);if(e!==ee)return e}
|
||||
if("illegal"===s.type&&""===a)return 1
|
||||
;if(A>1e5&&A>3*s.index)throw Error("potential infinite loop, way more iterations than matches")
|
||||
;return S+=a,a.length}const y=O(e)
|
||||
;if(!y)throw K(a.replace("{}",e)),Error('Unknown language: "'+e+'"')
|
||||
;const _=V(y);let v="",N=s||_;const k={},M=new g.__emitter(g);(()=>{const e=[]
|
||||
;for(let t=N;t!==y;t=t.parent)t.scope&&e.unshift(t.scope)
|
||||
;e.forEach((e=>M.openNode(e)))})();let S="",R=0,j=0,A=0,I=!1;try{
|
||||
for(N.matcher.considerAll();;){
|
||||
A++,I?I=!1:N.matcher.considerAll(),N.matcher.lastIndex=j
|
||||
;const e=N.matcher.exec(t);if(!e)break;const n=w(t.substring(j,e.index),e)
|
||||
;j=e.index+n}
|
||||
return w(t.substring(j)),M.closeAllNodes(),M.finalize(),v=M.toHTML(),{
|
||||
language:e,value:v,relevance:R,illegal:!1,_emitter:M,_top:N}}catch(n){
|
||||
if(n.message&&n.message.includes("Illegal"))return{language:e,value:Y(t),
|
||||
illegal:!0,relevance:0,_illegalBy:{message:n.message,index:j,
|
||||
context:t.slice(j-100,j+100),mode:n.mode,resultSoFar:v},_emitter:M};if(o)return{
|
||||
language:e,value:Y(t),illegal:!1,relevance:0,errorRaised:n,_emitter:M,_top:N}
|
||||
;throw n}}function x(e,t){t=t||g.languages||Object.keys(i);const n=(e=>{
|
||||
const t={value:Y(e),illegal:!1,relevance:0,_top:c,_emitter:new g.__emitter(g)}
|
||||
;return t._emitter.addText(e),t})(e),r=t.filter(O).filter(N).map((t=>E(t,e,!1)))
|
||||
;r.unshift(n);const s=r.sort(((e,t)=>{
|
||||
if(e.relevance!==t.relevance)return t.relevance-e.relevance
|
||||
;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1
|
||||
;if(O(t.language).supersetOf===e.language)return-1}return 0})),[o,a]=s,l=o
|
||||
;return l.secondBest=a,l}function w(e){let t=null;const n=(e=>{
|
||||
let t=e.className+" ";t+=e.parentNode?e.parentNode.className:""
|
||||
;const n=g.languageDetectRe.exec(t);if(n){const t=O(n[1])
|
||||
;return t||(W(a.replace("{}",n[1])),
|
||||
W("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}
|
||||
return t.split(/\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return
|
||||
;if(k("before:highlightElement",{el:e,language:n
|
||||
}),e.children.length>0&&(g.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
|
||||
console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
|
||||
console.warn("The element with unescaped HTML:"),
|
||||
console.warn(e)),g.throwUnescapedHTML))throw new J("One of your code blocks includes unescaped HTML.",e.innerHTML)
|
||||
;t=e;const i=t.textContent,s=n?m(i,{language:n,ignoreIllegals:!0}):x(i)
|
||||
;e.innerHTML=s.value,((e,t,n)=>{const i=t&&r[t]||n
|
||||
;e.classList.add("hljs"),e.classList.add("language-"+i)
|
||||
})(e,n,s.language),e.result={language:s.language,re:s.relevance,
|
||||
relevance:s.relevance},s.secondBest&&(e.secondBest={
|
||||
language:s.secondBest.language,relevance:s.secondBest.relevance
|
||||
}),k("after:highlightElement",{el:e,result:s,text:i})}let y=!1;function _(){
|
||||
"loading"!==document.readyState?document.querySelectorAll(g.cssSelector).forEach(w):y=!0
|
||||
}function O(e){return e=(e||"").toLowerCase(),i[e]||i[r[e]]}
|
||||
function v(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
|
||||
r[e.toLowerCase()]=t}))}function N(e){const t=O(e)
|
||||
;return t&&!t.disableAutodetect}function k(e,t){const n=e;s.forEach((e=>{
|
||||
e[n]&&e[n](t)}))}
|
||||
"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
|
||||
y&&_()}),!1),Object.assign(t,{highlight:m,highlightAuto:x,highlightAll:_,
|
||||
highlightElement:w,
|
||||
highlightBlock:e=>(X("10.7.0","highlightBlock will be removed entirely in v12.0"),
|
||||
X("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{g=Q(g,e)},
|
||||
initHighlighting:()=>{
|
||||
_(),X("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},
|
||||
initHighlightingOnLoad:()=>{
|
||||
_(),X("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")
|
||||
},registerLanguage:(e,n)=>{let r=null;try{r=n(t)}catch(t){
|
||||
if(K("Language definition for '{}' could not be registered.".replace("{}",e)),
|
||||
!o)throw t;K(t),r=c}
|
||||
r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&v(r.aliases,{
|
||||
languageName:e})},unregisterLanguage:e=>{delete i[e]
|
||||
;for(const t of Object.keys(r))r[t]===e&&delete r[t]},
|
||||
listLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v,
|
||||
autoDetection:N,inherit:Q,addPlugin:e=>{(e=>{
|
||||
e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{
|
||||
e["before:highlightBlock"](Object.assign({block:t.el},t))
|
||||
}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{
|
||||
e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),s.push(e)}
|
||||
}),t.debugMode=()=>{o=!1},t.safeMode=()=>{o=!0
|
||||
},t.versionString="11.7.0",t.regex={concat:p,lookahead:d,either:f,optional:h,
|
||||
anyNumberOfTimes:u};for(const t in A)"object"==typeof A[t]&&e.exports(A[t])
|
||||
;return Object.assign(t,A),t})({});return te}()
|
||||
;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);/*! `json` grammar compiled for Highlight.js 11.7.0 */
|
||||
(()=>{var e=(()=>{"use strict";return e=>{const a=["true","false","null"],n={
|
||||
scope:"literal",beginKeywords:a.join(" ")};return{name:"JSON",keywords:{
|
||||
literal:a},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,
|
||||
relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0
|
||||
},e.QUOTE_STRING_MODE,n,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],
|
||||
illegal:"\\S"}}})();hljs.registerLanguage("json",e)})();/*! `javascript` grammar compiled for Highlight.js 11.7.0 */
|
||||
(()=>{var e=(()=>{"use strict"
|
||||
;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","module","global"],i=[].concat(r,t,s)
|
||||
;return o=>{const l=o.regex,b=e,d={begin:/<[A-Za-z0-9\\._:-]+/,
|
||||
end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
|
||||
const a=e[0].length+e.index,t=e.input[a]
|
||||
;if("<"===t||","===t)return void n.ignoreMatch();let s
|
||||
;">"===t&&(((e,{after:n})=>{const a="</"+e[0].slice(1)
|
||||
;return-1!==e.input.indexOf(a,n)})(e,{after:a})||n.ignoreMatch())
|
||||
;const r=e.input.substring(a)
|
||||
;((s=r.match(/^\s*=/))||(s=r.match(/^\s+extends\s+/))&&0===s.index)&&n.ignoreMatch()
|
||||
}},g={$pattern:e,keyword:n,literal:a,built_in:i,"variable.language":c
|
||||
},u="\\.([0-9](_?[0-9])*)",m="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",E={
|
||||
className:"number",variants:[{
|
||||
begin:`(\\b(${m})((${u})|\\.)?|(${u}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
|
||||
begin:`\\b(${m})\\b((${u})\\b|\\.)?|(${u})\\b`},{
|
||||
begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
|
||||
begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
|
||||
begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
|
||||
begin:"\\b0[0-7]+n?\\b"}],relevance:0},A={className:"subst",begin:"\\$\\{",
|
||||
end:"\\}",keywords:g,contains:[]},y={begin:"html`",end:"",starts:{end:"`",
|
||||
returnEnd:!1,contains:[o.BACKSLASH_ESCAPE,A],subLanguage:"xml"}},N={
|
||||
begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
|
||||
contains:[o.BACKSLASH_ESCAPE,A],subLanguage:"css"}},_={className:"string",
|
||||
begin:"`",end:"`",contains:[o.BACKSLASH_ESCAPE,A]},h={className:"comment",
|
||||
variants:[o.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
|
||||
begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
|
||||
begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
|
||||
excludeBegin:!0,relevance:0},{className:"variable",begin:b+"(?=\\s*(-)|$)",
|
||||
endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
|
||||
}),o.C_BLOCK_COMMENT_MODE,o.C_LINE_COMMENT_MODE]
|
||||
},f=[o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,{match:/\$\d+/},E]
|
||||
;A.contains=f.concat({begin:/\{/,end:/\}/,keywords:g,contains:["self"].concat(f)
|
||||
});const v=[].concat(h,A.contains),p=v.concat([{begin:/\(/,end:/\)/,keywords:g,
|
||||
contains:["self"].concat(v)}]),S={className:"params",begin:/\(/,end:/\)/,
|
||||
excludeBegin:!0,excludeEnd:!0,keywords:g,contains:p},w={variants:[{
|
||||
match:[/class/,/\s+/,b,/\s+/,/extends/,/\s+/,l.concat(b,"(",l.concat(/\./,b),")*")],
|
||||
scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
|
||||
match:[/class/,/\s+/,b],scope:{1:"keyword",3:"title.class"}}]},R={relevance:0,
|
||||
match:l.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
|
||||
className:"title.class",keywords:{_:[...t,...s]}},O={variants:[{
|
||||
match:[/function/,/\s+/,b,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
|
||||
className:{1:"keyword",3:"title.function"},label:"func.def",contains:[S],
|
||||
illegal:/%/},k={
|
||||
match:l.concat(/\b/,(I=[...r,"super","import"],l.concat("(?!",I.join("|"),")")),b,l.lookahead(/\(/)),
|
||||
className:"title.function",relevance:0};var I;const x={
|
||||
begin:l.concat(/\./,l.lookahead(l.concat(b,/(?![0-9A-Za-z$_(])/))),end:b,
|
||||
excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},T={
|
||||
match:[/get|set/,/\s+/,b,/(?=\()/],className:{1:"keyword",3:"title.function"},
|
||||
contains:[{begin:/\(\)/},S]
|
||||
},C="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+o.UNDERSCORE_IDENT_RE+")\\s*=>",M={
|
||||
match:[/const|var|let/,/\s+/,b,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead(C)],
|
||||
keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]}
|
||||
;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{
|
||||
PARAMS_CONTAINS:p,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/,
|
||||
contains:[o.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
|
||||
label:"use_strict",className:"meta",relevance:10,
|
||||
begin:/^\s*['"]use (strict|asm)['"]/
|
||||
},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,h,{match:/\$\d+/},E,R,{
|
||||
className:"attr",begin:b+l.lookahead(":"),relevance:0},M,{
|
||||
begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
|
||||
keywords:"return throw case",relevance:0,contains:[h,o.REGEXP_MODE,{
|
||||
className:"function",begin:C,returnBegin:!0,end:"\\s*=>",contains:[{
|
||||
className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{
|
||||
className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,
|
||||
excludeEnd:!0,keywords:g,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/,
|
||||
relevance:0},{variants:[{begin:"<>",end:"</>"},{
|
||||
match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:d.begin,
|
||||
"on:begin":d.isTrulyOpeningTag,end:d.end}],subLanguage:"xml",contains:[{
|
||||
begin:d.begin,end:d.end,skip:!0,contains:["self"]}]}]},O,{
|
||||
beginKeywords:"while if switch catch for"},{
|
||||
begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
|
||||
returnBegin:!0,label:"func.def",contains:[S,o.inherit(o.TITLE_MODE,{begin:b,
|
||||
className:"title.function"})]},{match:/\.\.\./,relevance:0},x,{match:"\\$"+b,
|
||||
relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
|
||||
contains:[S]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
|
||||
className:"variable.constant"},w,T,{match:/\$[(.]/}]}}})()
|
||||
;hljs.registerLanguage("javascript",e)})();/*! `xml` grammar compiled for Highlight.js 11.7.0 */
|
||||
(()=>{var e=(()=>{"use strict";return e=>{
|
||||
const a=e.regex,n=a.concat(/[\p{L}_]/u,a.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s={
|
||||
className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},t={begin:/\s/,
|
||||
contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
|
||||
},i=e.inherit(t,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{
|
||||
className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),r={
|
||||
endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",
|
||||
begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
|
||||
className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[s]},{
|
||||
begin:/'/,end:/'/,contains:[s]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
|
||||
name:"HTML, XML",
|
||||
aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
|
||||
case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,
|
||||
end:/>/,relevance:10,contains:[t,l,c,i,{begin:/\[/,end:/\]/,contains:[{
|
||||
className:"meta",begin:/<![a-z]/,end:/>/,contains:[t,i,l,c]}]}]
|
||||
},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,
|
||||
relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,
|
||||
relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",
|
||||
begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[r],starts:{
|
||||
end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
|
||||
begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[r],starts:{
|
||||
end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
|
||||
className:"tag",begin:/<>|<\/>/},{className:"tag",
|
||||
begin:a.concat(/</,a.lookahead(a.concat(n,a.either(/\/>/,/>/,/\s/)))),
|
||||
end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:r}]},{
|
||||
className:"tag",begin:a.concat(/<\//,a.lookahead(a.concat(n,/>/))),contains:[{
|
||||
className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}
|
||||
})();hljs.registerLanguage("xml",e)})();/*! `css` grammar compiled for Highlight.js 11.7.0 */
|
||||
(()=>{var e=(()=>{"use strict"
|
||||
;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],i=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],r=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],t=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],o=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","lLine truncated
|
||||
;return n=>{const a=n.regex,l=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},
|
||||
BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",
|
||||
begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{
|
||||
className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{
|
||||
scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",
|
||||
contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{
|
||||
scope:"number",
|
||||
begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
|
||||
relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}
|
||||
}))(n),s=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",
|
||||
case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},
|
||||
classNameAliases:{keyframePosition:"selector-tag"},contains:[l.BLOCK_COMMENT,{
|
||||
begin:/-(webkit|moz|ms|o)-(?=[a-z])/},l.CSS_NUMBER_MODE,{
|
||||
className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{
|
||||
className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
|
||||
},l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
|
||||
begin:":("+r.join("|")+")"},{begin:":(:)?("+t.join("|")+")"}]},l.CSS_VARIABLE,{
|
||||
className:"attribute",begin:"\\b("+o.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,
|
||||
contains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...s,{
|
||||
begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
|
||||
},contains:[...s,{className:"string",begin:/[^)]/,endsWithParent:!0,
|
||||
excludeEnd:!0}]},l.FUNCTION_DISPATCH]},{begin:a.lookahead(/@/),end:"[{;]",
|
||||
relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/
|
||||
},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{
|
||||
$pattern:/[a-z-]+/,keyword:"and or not only",attribute:i.join(" ")},contains:[{
|
||||
begin:/[a-z-]+(?=:)/,className:"attribute"},...s,l.CSS_NUMBER_MODE]}]},{
|
||||
className:"selector-tag",begin:"\\b("+e.join("|")+")\\b"}]}}})()
|
||||
;hljs.registerLanguage("css",e)})();
|
||||
@@ -1,9 +0,0 @@
|
||||
/*!
|
||||
Theme: Default
|
||||
Description: Original highlight.js style
|
||||
Author: (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
|
||||
Maintainer: @highlightjs/core-team
|
||||
Website: https://highlightjs.org/
|
||||
License: see project LICENSE
|
||||
Touched: 2021
|
||||
*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
|
||||
@@ -1 +0,0 @@
|
||||
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#272822;color:#ddd}.hljs-keyword,.hljs-literal,.hljs-name,.hljs-selector-tag,.hljs-strong,.hljs-tag{color:#f92672}.hljs-code{color:#66d9ef}.hljs-attribute,.hljs-link,.hljs-regexp,.hljs-symbol{color:#bf79db}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-emphasis,.hljs-section,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-string,.hljs-subst,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#a6e22e}.hljs-class .hljs-title,.hljs-title.class_{color:#fff}.hljs-comment,.hljs-deletion,.hljs-meta,.hljs-quote{color:#75715e}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-section,.hljs-selector-id,.hljs-selector-tag,.hljs-title,.hljs-type{font-weight:700}
|
||||
@@ -1,42 +0,0 @@
|
||||
function sheetjs(){ let window={};
|
||||
/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
var DO_NOT_EXPORT_CODEPAGE=true;var cptable={version:"1.15.0"};cptable[437]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[620]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàąçêëèïîćÄĄĘęłôöĆûùŚÖܢ٥śƒŹŻóÓńŃźż¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[737]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[850]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[852]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´˝˛ˇ˘§÷¸°¨˙űŘř■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[857]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´±�¾¶§÷¸°¨·¹³²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[861]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[865]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[866]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\Line truncated
|
||||
}t[153]="����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�".split("");for(a=0;a!=t[153].length;++a)if(t[153][a].charCodeAt(0)!==65533){r[t[153][a]]=39168+a;e[39168+a]=t[153][a]}t[154]="����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�".split("");for(a=0;a!=t[154].length;++a)if(t[154][a].charCodeAt(0)!==65533){r[t[154][a]]=39424+a;e[39424+a]=t[154][a]}t[155]="����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�".split("");for(a=0;a!=t[155].length;++a)if(t[155][a].charCodeAt(0)!==65533){r[t[155][a]]=39680+a;e[39680+a]=t[155][a]}t[156]="����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�".split("");for(a=0;a!=t[156].length;++a)if(t[156][a].charCodeAt(0)!==65533){r[t[156][a]]=39936+a;e[39936+a]=t[156][a]}t[157]="����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�".split("");for(a=0;a!=t[157].length;++a)if(t[157][a].charCodeAt(0)!==65533){r[t[157][a]]=40192+a;e[40192+a]=t[157][a]}t[158]="����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙Line truncated
|
||||
for(a=0;a!=t[236].length;++a)if(t[236][a].charCodeAt(0)!==65533){r[t[236][a]]=60416+a;e[60416+a]=t[236][a]}t[237]="����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split("");for(a=0;a!=t[237].length;++a)if(t[237][a].charCodeAt(0)!==65533){r[t[237][a]]=60672+a;e[60672+a]=t[237][a]}t[238]="����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split("");for(a=0;a!=t[238].length;++a)if(t[238][a].charCodeAt(0)!==65533){r[t[238][a]]=60928+a;e[60928+a]=t[238][a]}t[239]="����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split("");for(a=0;a!=t[239].length;++a)if(t[239][a].charCodeAt(0)!==65533){r[t[239][a]]=61184+a;e[61184+a]=t[239][a]}t[240]="����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split("");for(a=0;a!=t[240].length;++a)if(t[240][a].charCodeAt(0)!==65533){r[t[240][a]]=61440+a;e[61440+a]=t[240][a]}t[241]="����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split("");for(a=0;a!=t[241].length;++a)if(t[241][a].charCodeAt(0)!==65533){r[t[241][a]]=61696+a;e[61696+a]=t[241][a]}t[242]="����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀Line truncated
|
||||
for(a=0;a!=t[193].length;++a)if(t[193][a].charCodeAt(0)!==65533){r[t[193][a]]=49408+a;e[49408+a]=t[193][a]}t[194]="�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�".split("");for(a=0;a!=t[194].length;++a)if(t[194][a].charCodeAt(0)!==65533){r[t[194][a]]=49664+a;e[49664+a]=t[194][a]}t[195]="�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�".split("");for(a=0;a!=t[195].length;++a)if(t[195][a].charCodeAt(0)!==65533){r[t[195][a]]=49920+a;e[49920+a]=t[195][a]}t[196]="�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�".split("");for(a=0;a!=t[196].length;++a)if(t[196][a].charCodeAt(0)!==65533){r[t[196][a]]=50176+a;e[50176+a]=t[196][a]}t[197]="�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�".split("");for(a=0;a!=t[197].length;++a)if(t[197][a].charCodeAt(0)!==65533){r[t[197][a]]=50432+a;e[50432+a]=t[197][a]}t[198]="�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�".split("");for(a=0;a!=t[198].length;++a)if(t[198][a].charCodeAt(0)!==65533){r[t[198][a]]=50688+a;e[50688+a]=t[198][a]}t[199]="����������������������������������������������������������������������������������������������������������������������������������������Line truncated
|
||||
for(a=0;a!=t[184].length;++a)if(t[184][a].charCodeAt(0)!==65533){r[t[184][a]]=47104+a;e[47104+a]=t[184][a]}t[185]="����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�".split("");for(a=0;a!=t[185].length;++a)if(t[185][a].charCodeAt(0)!==65533){r[t[185][a]]=47360+a;e[47360+a]=t[185][a]}t[186]="����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�".split("");for(a=0;a!=t[186].length;++a)if(t[186][a].charCodeAt(0)!==65533){r[t[186][a]]=47616+a;e[47616+a]=t[186][a]}t[187]="����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�".split("");for(a=0;a!=t[187].length;++a)if(t[187][a].charCodeAt(0)!==65533){r[t[187][a]]=47872+a;e[47872+a]=t[187][a]}t[188]="����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�".split("");for(a=0;a!=t[188].length;++a)if(t[188][a].charCodeAt(0)!==65533){r[t[188][a]]=48128+a;e[48128+a]=t[188][a]}t[189]="����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�".split("");for(a=0;a!=t[189].length;++a)if(t[189][a].charCodeAt(0)!==65533){r[t[189][a]]=48384+a;e[48384+a]=t[189][a]}t[190]="����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉���������Line truncated
|
||||
r[t[166][a]]=42496+a;e[42496+a]=t[166][a]}t[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split("");for(a=0;a!=t[167].length;++a)if(t[167][a].charCodeAt(0)!==65533){r[t[167][a]]=42752+a;e[42752+a]=t[167][a]}t[168]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split("");for(a=0;a!=t[168].length;++a)if(t[168][a].charCodeAt(0)!==65533){r[t[168][a]]=43008+a;e[43008+a]=t[168][a]}t[169]="��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split("");for(a=0;a!=t[169].length;++a)if(t[169][a].charCodeAt(0)!==65533){r[t[169][a]]=43264+a;e[43264+a]=t[169][a]}t[176]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split("");for(a=0;a!=t[176].length;++a)if(t[176][a].charCodeAt(0)!==65533){r[t[176][a]]=45056+a;e[45056+a]=t[176][a]}t[177]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split("");for(a=0;a!=t[177].length;++a)if(t[177][a].charCodeAt(0)!==65533){r[t[177][a]]=45312+a;e[45312+a]=t[177][a]}t[178]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不Line truncated
|
||||
n=Buffer.allocUnsafe(2*a);s=0;for(i=0;i<a;++i){f=e[i];if(f<128)n[s++]=t[f];else if(f<224){n[s++]=t[((f&31)<<6)+(e[i+1]&63)];++i}else if(f<240){n[s++]=t[((f&15)<<12)+((e[i+1]&63)<<6)+(e[i+2]&63)];i+=2}else{l=((f&7)<<18)+((e[i+1]&63)<<12)+((e[i+2]&63)<<6)+(e[i+3]&63);i+=3;if(l<65536)n[s++]=t[l];else{l-=65536;n[s++]=t[55296+(l>>10&1023)];n[s++]=t[56320+(l&1023)]}}}n=n.slice(0,s)}else{n=Buffer.allocUnsafe(a);for(i=0;i<a;++i)n[i]=t[e[i].charCodeAt(0)]}if(!r||r==="buf")return n;if(r!=="arr")return n.toString("binary");return[].slice.call(n)}};var w=function U(r){var t=e[r].dec;var a=Buffer.allocUnsafe(131072),n=0,i="";for(n=0;n<t.length;++n){if(!(i=t[n]))continue;var s=i.charCodeAt(0);a[2*n]=s&255;a[2*n+1]=s>>8}return function f(e){var r=e.length,t=0,n=0;if(2*r>p){p=2*r;m=Buffer.allocUnsafe(p)}if(Buffer.isBuffer(e)){for(t=0;t<r;t++){n=2*e[t];m[2*t]=a[n];m[2*t+1]=a[n+1]}}else if(typeof e==="string"){for(t=0;t<r;t++){n=2*e.charCodeAt(t);m[2*t]=a[n];m[2*t+1]=a[n+1]}}else{for(t=0;t<r;t++){n=2*e[t];m[2*t]=a[n];m[2*t+1]=a[n+1]}}return m.slice(0,2*r).toString("ucs2")}};var k=function B(r){var t=e[r].enc;var a=Buffer.allocUnsafe(131072);for(var n=0;n<131072;++n)a[n]=0;var i=Object.keys(t);for(var s=0,f=i[s];s<i.length;++s){if(!(f=i[s]))continue;var l=f.charCodeAt(0);a[2*l]=t[f]&255;a[2*l+1]=t[f]>>8}return function o(e,r){var t=e.length,n=Buffer.allocUnsafe(2*t),i=0,s=0,f=0,l=0,o=0;if(typeof e==="string"){for(i=l=0;i<t;++i){s=e.charCodeAt(i)*2;n[l++]=a[s+1]||a[s];if(a[s+1]>0)n[l++]=a[s]}n=n.slice(0,l)}else if(Buffer.isBuffer(e)){for(i=l=0;i<t;++i){o=e[i];if(o<128)s=o;else if(o<224){s=((o&31)<<6)+(e[i+1]&63);++i}else if(o<240){s=((o&15)<<12)+((e[i+1]&63)<<6)+(e[i+2]&63);i+=2}else{s=((o&7)<<18)+((e[i+1]&63)<<12)+((e[i+2]&63)<<6)+(e[i+3]&63);i+=3}if(s<65536){s*=2;n[l++]=a[s+1]||a[s];if(a[s+1]>0)n[l++]=a[s]}else{f=s-65536;s=2*(55296+(f>>10&1023));n[l++]=a[s+1]||a[s];if(a[s+1]>0)n[l++]=a[s];s=2*(56320+(f&1023));n[l++]=a[s+1]||a[s];if(a[s+1]>0)n[l++]=a[s]}}n=n.slice(0,l)}else{for(i=l=0;i<t;i++){s=e[i].charCodeAt(0)*2;n[l++]=a[s+1]||a[s];if(a[s+1]>0)n[l++]=a[s]}}if(!r||r==="buf")return n;if(r!=="arr")return n.toString("binary");return[].slice.call(n)}};var T=function W(r){var t=e[r].dec;var a=Buffer.allocUnsafe(131072),n=0,i,s=0,f=0,l=0;for(l=0;l<65536;++l){a[2*l]=255;a[2*l+1]=253}for(n=0;n<t.length;++n){if(!(i=t[n]))continue;s=i.charCodeAt(0);f=2*n;a[f]=s&255;a[f+1]=s>>8}return function o(e){var r=e.length,t=Buffer.allocUnsafe(2*r),n=0,i=0,s=0;if(Buffer.isBuffer(e)){for(n=0;n<r;n++){i=2*e[n];if(a[i]===255&&a[i+1]===253){i=2*((e[n]<<8)+e[n+1]);++n}t[s++]=a[i];t[s++]=a[i+1]}}else if(typeof e==="string"){for(n=0;n<r;n++){i=2*e.charCodeAt(n);if(a[i]===255&&a[i+1]===253){i=2*((e.charCodeAt(n)<<8)+e.charCodeAt(n+1));++n}t[s++]=a[i];t[s++]=a[i+1]}}else{for(n=0;n<r;n++){i=2*e[n];if(a[i]===255&&a[i+1]===253){i=2*((e[n]<<8)+e[n+1]);++n}t[s++]=a[i];t[s++]=a[i+1]}}return t.slice(0,s).toString("ucs2")}};i[65001]=function z(e){if(typeof e==="string")return z(e.split("").map(c));var r=e.length,t=0,a=0;if(4*r>p){p=4*r;m=Buffer.allocUnsafe(p)}var n=0;if(r>=3&&e[0]==239)if(e[1]==187&&e[2]==191)n=3;for(var i=1,s=0,f=0;n<r;n+=i){i=1;f=e[n];if(f<128)t=f;else if(f<224){t=(f&31)*64+(e[n+1]&63);i=2}else if(f<240){t=((f&15)<<12)+(e[n+1]&63)*64+(e[n+2]&63);i=3}else{t=(f&7)*262144+((e[n+1]&63)<<12)+(e[n+2]&63)*64+(e[n+3]&63);i=4}if(t<65536){m[s++]=t&255;m[s++]=t>>8}else{t-=65536;a=55296+(t>>10&1023);t=56320+(t&1023);m[s++]=a&255;m[s++]=a>>>8;m[s++]=t&255;m[s++]=t>>>8&255}}return m.slice(0,s).toString("ucs2")};s[65001]=function H(e,r){if(h&&Buffer.isBuffer(e)){if(!r||r==="buf")return e;if(r!=="arr")return e.toString("binary");return[].slice.call(e)}var t=e.length,a=0,n=0,i=0;var s=typeof e==="string";if(4*t>p){p=4*t;m=Buffer.allocUnsafe(p)}for(var f=0;f<t;++f){a=s?e.charCodeAt(f):e[f].charCodeAt(0);if(a<=127)m[i++]=a;else if(a<=2047){m[i++]=192+(a>>6);m[i++]=128+(a&63)}else if(a>=55296&&a<=57343){a-=55296;++f;n=(s?e.charCodeAt(f):e[f].charCodeAt(0))-56320+(a<<10);m[i++]=240+(n>>>18&7);m[i++]=144+(n>>>12&63);m[i++]=128+(n>>>6&63);m[i++]=128+(n&63)}else{m[i++]=224+(a>>12);m[i++]=128+(a>>6&63);m[i++]=128+(a&63)}}if(!r||r==="buf")return m.slice(0,i);if(r!=="arr")return m.slice(0,i).toString("binary");return[].slice.call(m,0,i)}}var A=function V(){if(h){if(f[t[0]])return;var r=0,o=0;for(r=0;r<t.length;++r){o=t[r];if(e[o]){f[o]=w(o);l[o]=b(o)}}for(r=0;r<a.length;++r){o=a[r];if(e[o]){f[o]=T(o);l[o]=k(o)}}for(r=0;r<n.length;++r){o=n[r];if(i[o])f[o]=i[o];if(s[o])l[o]=s[o]}}};var y=function(e,r){void r;return""};var E=function $(e){delete f[e];delete l[e]};var C=function X(){if(h){if(!f[t[0]])return;t.forEach(E);a.forEach(E);n.forEach(E)}O=y;I=0};var _={encache:A,decache:C,sbcs:t,dbcs:a};A();var S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var x="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?";var O=y,I=0;var R=function G(t,a,n){if(t===I&&O){return O(a,n)}if(l[t]){O=l[I=t];return O(a,n)}if(h&&Buffer.isBuffer(a))a=a.Line truncated
|
||||
;case"M":;case"D":;case"Y":;case"H":;case"S":;case"E":;case"m":;case"d":;case"y":;case"h":;case"s":;case"e":;case"g":return true;case"A":;case"a":;case"上":if(e.substr(r,3).toUpperCase()==="A/P")return true;if(e.substr(r,5).toUpperCase()==="AM/PM")return true;if(e.substr(r,5).toUpperCase()==="上午/下午")return true;++r;break;case"[":a=t;while(e.charAt(r++)!=="]"&&r<e.length)a+=e.charAt(r);if(a.match(Pe))return true;break;case".":;case"0":;case"#":while(r<e.length&&("0#?.,E+-%".indexOf(t=e.charAt(++r))>-1||t=="\\"&&e.charAt(r+1)=="-"&&"0#".indexOf(e.charAt(r+2))>-1)){}break;case"?":while(e.charAt(++r)===t){}break;case"*":++r;if(e.charAt(r)==" "||e.charAt(r)=="*")++r;break;case"(":;case")":++r;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":while(r<e.length&&"0123456789".indexOf(e.charAt(++r))>-1){}break;case" ":++r;break;default:++r;break;}}return false}function Me(e,r,t,a){var n=[],i="",s=0,f="",l="t",o,c,h;var u="H";while(s<e.length){switch(f=e.charAt(s)){case"G":if(!K(e,s))throw new Error("unrecognized character "+f+" in "+e);n[n.length]={t:"G",v:"General"};s+=7;break;case'"':for(i="";(h=e.charCodeAt(++s))!==34&&s<e.length;)i+=String.fromCharCode(h);n[n.length]={t:"t",v:i};++s;break;case"\\":var d=e.charAt(++s),v=d==="("||d===")"?d:"t";n[n.length]={t:v,v:d};++s;break;case"_":n[n.length]={t:"t",v:" "};s+=2;break;case"@":n[n.length]={t:"T",v:r};++s;break;case"B":;case"b":if(e.charAt(s+1)==="1"||e.charAt(s+1)==="2"){if(o==null){o=ae(r,t,e.charAt(s+1)==="2");if(o==null)return""}n[n.length]={t:"X",v:e.substr(s,2)};l=f;s+=2;break};case"M":;case"D":;case"Y":;case"H":;case"S":;case"E":f=f.toLowerCase();case"m":;case"d":;case"y":;case"h":;case"s":;case"e":;case"g":if(r<0)return"";if(o==null){o=ae(r,t);if(o==null)return""}i=f;while(++s<e.length&&e.charAt(s).toLowerCase()===f)i+=f;if(f==="m"&&l.toLowerCase()==="h")f="M";if(f==="h")f=u;n[n.length]={t:f,v:i};l=f;break;case"A":;case"a":;case"上":var p={t:f,v:f};if(o==null)o=ae(r,t);if(e.substr(s,3).toUpperCase()==="A/P"){if(o!=null)p.v=o.H>=12?e.charAt(s+2):f;p.t="T";u="h";s+=3}else if(e.substr(s,5).toUpperCase()==="AM/PM"){if(o!=null)p.v=o.H>=12?"PM":"AM";p.t="T";s+=5;u="h"}else if(e.substr(s,5).toUpperCase()==="上午/下午"){if(o!=null)p.v=o.H>=12?"下午":"上午";p.t="T";s+=5;u="h"}else{p.t="t";++s}if(o==null&&p.t==="T")return"";n[n.length]=p;l=f;break;case"[":i=f;while(e.charAt(s++)!=="]"&&s<e.length)i+=e.charAt(s);if(i.slice(-1)!=="]")throw'unterminated "[" block: |'+i+"|";if(i.match(Pe)){if(o==null){o=ae(r,t);if(o==null)return""}n[n.length]={t:"Z",v:i.toLowerCase()};l=i.charAt(1)}else if(i.indexOf("$")>-1){i=(i.match(/\$([^-\[\]]*)/)||[])[1]||"$";if(!Le(e))n[n.length]={t:"t",v:i}}break;case".":if(o!=null){i=f;while(++s<e.length&&(f=e.charAt(s))==="0")i+=f;n[n.length]={t:"s",v:i};break};case"0":;case"#":i=f;while(++s<e.length&&"0#?.,E+-%".indexOf(f=e.charAt(s))>-1)i+=f;n[n.length]={t:"n",v:i};break;case"?":i=f;while(e.charAt(++s)===f)i+=f;n[n.length]={t:f,v:i};l=f;break;case"*":++s;if(e.charAt(s)==" "||e.charAt(s)=="*")++s;break;case"(":;case")":n[n.length]={t:a===1?"t":f,v:f};++s;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":i=f;while(s<e.length&&"0123456789".indexOf(e.charAt(++s))>-1)i+=e.charAt(s);n[n.length]={t:"D",v:i};break;case" ":n[n.length]={t:f,v:f};++s;break;case"$":n[n.length]={t:"t",v:"$"};++s;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(f)===-1)throw new Error("unrecognized character "+f+" in "+e);n[n.length]={t:"t",v:f};++s;break;}}var m=0,g=0,b;for(s=n.length-1,l="t";s>=0;--s){switch(n[s].t){case"h":;case"H":n[s].t=u;l="h";if(m<1)m=1;break;case"s":if(b=n[s].v.match(/\.0+$/)){g=Math.max(g,b[0].length-1);m=4}if(m<3)m=3;case"d":;case"y":;case"e":l=n[s].t;break;case"M":l=n[s].t;if(m<2)m=2;break;case"m":if(l==="s"){n[s].t="M";if(m<2)m=2}break;case"X":break;case"Z":if(m<1&&n[s].v.match(/[Hh]/))m=1;if(m<2&&n[s].v.match(/[Mm]/))m=2;if(m<3&&n[s].v.match(/[Ss]/))m=3;}}var w;switch(m){case 0:break;case 1:;case 2:;case 3:if(o.u>=.5){o.u=0;++o.S}if(o.S>=60){o.S=0;++o.M}if(o.M>=60){o.M=0;++o.H}if(o.H>=24){o.H=0;++o.D;w=ae(o.D);w.u=o.u;w.S=o.S;w.M=o.M;w.H=o.H;o=w}break;case 4:switch(g){case 1:o.u=Math.round(o.u*10)/10;break;case 2:o.u=Math.round(o.u*100)/100;break;case 3:o.u=Math.round(o.u*1e3)/1e3;break;}if(o.u>=1){o.u=0;++o.S}if(o.S>=60){o.S=0;++o.M}if(o.M>=60){o.M=0;++o.H}if(o.H>=24){o.H=0;++o.D;w=ae(o.D);w.u=o.u;w.S=o.S;w.M=o.M;w.H=o.H;o=w}break;}var k="",T;for(s=0;s<n.length;++s){switch(n[s].t){case"t":;case"T":;case" ":;case"D":break;case"X":n[s].v="";n[s].t=";";break;case"d":;case"m":;case"y":;case"h":;case"H":;case"M":;case"s":;case"e":;case"b":;case"Z":n[s].v=he(n[s].t.charCodeAt(0),n[s].v,o,g);n[s].t="t";break;case"n":;case"?":T=s+1;while(n[T]!=null&&((f=n[T].t)==="?"||f==="D"||(f===" "||f==="t")&&n[T+1]!=null&&(n[T+1].t==="?"||n[T+1].t==="t"&&n[T+1].v==="/")||n[s].t==="("&&(f===" "||f==="n"||f===")")||f==="t"&&(n[T].v==="/"||n[T].v===" "&&n[T+1Line truncated
|
||||
root:r.root});var f=t.length-4;while((t[f]!=80||t[f+1]!=75||t[f+2]!=5||t[f+3]!=6)&&f>=0)--f;t.l=f+4;t.l+=4;var l=t._R(2);t.l+=6;var o=t._R(4);t.l=o;for(f=0;f<l;++f){t.l+=20;var c=t._R(4);var h=t._R(4);var u=t._R(2);var d=t._R(2);var v=t._R(2);t.l+=8;var p=t._R(4);var m=s(t.slice(t.l+u,t.l+u+d));t.l+=u+d+v;var g=t.l;t.l=p+4;if(m&&m[1]){if((m[1]||{}).usz)h=m[1].usz;if((m[1]||{}).csz)c=m[1].csz}Ne(t,c,h,i,m);t.l=g}return i}function Ne(e,r,t,a,n){e.l+=2;var f=e._R(2);var l=e._R(2);var o=i(e);if(f&8257)throw new Error("Unsupported ZIP encryption");var c=e._R(4);var h=e._R(4);var u=e._R(4);var d=e._R(2);var v=e._R(2);var p="";for(var m=0;m<d;++m)p+=String.fromCharCode(e[e.l++]);if(v){var g=s(e.slice(e.l,e.l+v));if((g[21589]||{}).mt)o=g[21589].mt;if((g[1]||{}).usz)u=g[1].usz;if((g[1]||{}).csz)h=g[1].csz;if(n){if((n[21589]||{}).mt)o=n[21589].mt;if((n[1]||{}).usz)u=g[1].usz;if((n[1]||{}).csz)h=g[1].csz}}e.l+=v;var b=e.slice(e.l,e.l+h);switch(l){case 8:b=K(e,u);break;case 0:break;default:throw new Error("Unsupported ZIP Compression method "+l);}var w=false;if(f&8){c=e._R(4);if(c==134695760){c=e._R(4);w=true}h=e._R(4);u=e._R(4)}if(h!=r)Ie(w,"Bad compressed size: "+r+" != "+h);if(u!=t)Ie(w,"Bad uncompressed size: "+t+" != "+u);Ve(a,p,b,{unsafe:true,mt:o})}function Fe(e,r){var t=r||{};var a=[],i=[];var s=Ia(1);var f=t.compression?8:0,l=0;var o=false;if(o)l|=8;var c=0,h=0;var u=0,d=0;var v=e.FullPaths[0],p=v,m=e.FileIndex[0];var g=[];var b=0;for(c=1;c<e.FullPaths.length;++c){p=e.FullPaths[c].slice(v.length);m=e.FileIndex[c];if(!m.size||!m.content||p=="Sh33tJ5")continue;var w=u;var k=Ia(p.length);for(h=0;h<p.length;++h)k._W(1,p.charCodeAt(h)&127);k=k.slice(0,k.l);g[d]=typeof m.content=="string"?qe.bstr(m.content,0):qe.buf(m.content,0);var T=typeof m.content=="string"?I(m.content):m.content;if(f==8)T=Y(T);s=Ia(30);s._W(4,67324752);s._W(2,20);s._W(2,l);s._W(2,f);if(m.mt)n(s,m.mt);else s._W(4,0);s._W(-4,l&8?0:g[d]);s._W(4,l&8?0:T.length);s._W(4,l&8?0:m.content.length);s._W(2,k.length);s._W(2,0);u+=s.length;a.push(s);u+=k.length;a.push(k);u+=T.length;a.push(T);if(l&8){s=Ia(12);s._W(-4,g[d]);s._W(4,T.length);s._W(4,m.content.length);u+=s.l;a.push(s)}s=Ia(46);s._W(4,33639248);s._W(2,0);s._W(2,20);s._W(2,l);s._W(2,f);s._W(4,0);s._W(-4,g[d]);s._W(4,T.length);s._W(4,m.content.length);s._W(2,k.length);s._W(2,0);s._W(2,0);s._W(2,0);s._W(2,0);s._W(4,0);s._W(4,w);b+=s.l;i.push(s);b+=k.length;i.push(k);++d}s=Ia(22);s._W(4,101010256);s._W(2,0);s._W(2,0);s._W(2,d);s._W(2,d);s._W(4,b);s._W(4,u);s._W(2,0);return P([P(a),P(i),s])}var De={htm:"text/html",xml:"text/xml",gif:"image/gif",jpg:"image/jpeg",png:"image/png",mso:"application/x-mso",thmx:"application/vnd.ms-officetheme",sh33tj5:"application/octet-stream"};function Pe(e,r){if(e.ctype)return e.ctype;var t=e.name||"",a=t.match(/\.([^\.]+)$/);if(a&&De[a[1]])return De[a[1]];if(r){a=(t=r).match(/[\.\\]([^\.\\])+$/);if(a&&De[a[1]])return De[a[1]]}return"application/octet-stream"}function Le(e){var r=T(e);var t=[];for(var a=0;a<r.length;a+=76)t.push(r.slice(a,a+76));return t.join("\r\n")+"\r\n"}function Me(e){var r=e.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7E-\xFF=]/g,function(e){var r=e.charCodeAt(0).toString(16).toUpperCase();return"="+(r.length==1?"0"+r:r)});r=r.replace(/ $/gm,"=20").replace(/\t$/gm,"=09");if(r.charAt(0)=="\n")r="=0D"+r.slice(1);r=r.replace(/\r(?!\n)/gm,"=0D").replace(/\n\n/gm,"\n=0A").replace(/([^\r\n])\n/gm,"$1=0A");var t=[],a=r.split("\r\n");for(var n=0;n<a.length;++n){var i=a[n];if(i.length==0){t.push("");continue}for(var s=0;s<i.length;){var f=76;var l=i.slice(s,s+f);if(l.charAt(f-1)=="=")f--;else if(l.charAt(f-2)=="=")f-=2;else if(l.charAt(f-3)=="=")f-=3;l=i.slice(s,s+f);s+=f;if(s<i.length)l+="=";t.push(l)}}return t.join("\r\n")}function Ue(e){var r=[];for(var t=0;t<e.length;++t){var a=e[t];while(t<=e.length&&a.charAt(a.length-1)=="=")a=a.slice(0,a.length-1)+e[++t];r.push(a)}for(var n=0;n<r.length;++n)r[n]=r[n].replace(/[=][0-9A-Fa-f]{2}/g,function(e){return String.fromCharCode(parseInt(e.slice(1),16))});return I(r.join("\r\n"))}function Be(e,r,t){var a="",n="",i="",s;var f=0;for(;f<10;++f){var l=r[f];if(!l||l.match(/^\s*$/))break;var o=l.match(/^([^:]*?):\s*([^\s].*)$/);if(o)switch(o[1].toLowerCase()){case"content-location":a=o[2].trim();break;case"content-type":i=o[2].trim();break;case"content-transfer-encoding":n=o[2].trim();break;}}++f;switch(n.toLowerCase()){case"base64":s=I(E(r.slice(f).join("")));break;case"quoted-printable":s=Ue(r.slice(f));break;default:throw new Error("Unsupported Content-Transfer-Encoding "+n);}var c=Ve(e,a.slice(t.length),s,{unsafe:true});if(i)c.ctype=i}function We(e,r){if($(e.slice(0,13)).toLowerCase()!="mime-version:")throw new Error("Unsupported MAD header");var t=r&&r.root||"";var a=(C&&Buffer.isBuffer(e)?e.toString("binary"):$(e)).split("\r\n");var n=0,i="";for(n=0;n<a.length;++n){i=a[n];if(!/^Content-Location:/i.test(i))continue;i=i.slice(i.indexOf("file"));if(!t)t=i.slice(0,i.lastIndexOf("/")+1);if(i.slice(0,t.length)==t)continue;Line truncated
|
||||
};da=function bT(e,r){if(Buffer.isBuffer(e))return e.readDoubleLE(r);return ua(e,r)};va=function wT(e){return Buffer.isBuffer(e)||Array.isArray(e)||typeof Uint8Array!=="undefined"&&e instanceof Uint8Array}}function pa(){Jt=function(e,r,t){return a.utils.decode(1200,e.slice(r,t)).replace(M,"")};ra=function(e,r,t){return a.utils.decode(65001,e.slice(r,t))};aa=function(e,r){var n=wa(e,r);return n>0?a.utils.decode(t,e.slice(r+4,r+4+n-1)):""};ia=function(e,t){var n=wa(e,t);return n>0?a.utils.decode(r,e.slice(t+4,t+4+n-1)):""};fa=function(e,r){var t=2*wa(e,r);return t>0?a.utils.decode(1200,e.slice(r+4,r+4+t-1)):""};oa=function(e,r){var t=wa(e,r);return t>0?a.utils.decode(1200,e.slice(r+4,r+4+t)):""};ha=function(e,r){var t=wa(e,r);return t>0?a.utils.decode(65001,e.slice(r+4,r+4+t)):""}}if(typeof a!=="undefined")pa();var ma=function(e,r){return e[r]};var ga=function(e,r){return e[r+1]*(1<<8)+e[r]};var ba=function(e,r){var t=e[r+1]*(1<<8)+e[r];return t<32768?t:(65535-t+1)*-1};var wa=function(e,r){return e[r+3]*(1<<24)+(e[r+2]<<16)+(e[r+1]<<8)+e[r]};var ka=function(e,r){return e[r+3]<<24|e[r+2]<<16|e[r+1]<<8|e[r]};var Ta=function(e,r){return e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]};function Aa(e,t){var n="",i,s,f=[],l,o,c,h;switch(t){case"dbcs":h=this.l;if(C&&Buffer.isBuffer(this)&&S)n=this.slice(this.l,this.l+2*e).toString("utf16le");else for(c=0;c<e;++c){n+=String.fromCharCode(ga(this,h));h+=2}e*=2;break;case"utf8":n=ra(this,this.l,this.l+e);break;case"utf16le":e*=2;n=Jt(this,this.l,this.l+e);break;case"wstr":if(typeof a!=="undefined")n=a.utils.decode(r,this.slice(this.l,this.l+2*e));else return Aa.call(this,e,"dbcs");e=2*e;break;case"lpstr-ansi":n=aa(this,this.l);e=4+wa(this,this.l);break;case"lpstr-cp":n=ia(this,this.l);e=4+wa(this,this.l);break;case"lpwstr":n=fa(this,this.l);e=4+2*wa(this,this.l);break;case"lpp4":e=4+wa(this,this.l);n=oa(this,this.l);if(e&2)e+=2;break;case"8lpp4":e=4+wa(this,this.l);n=ha(this,this.l);if(e&3)e+=4-(e&3);break;case"cstr":e=0;n="";while((l=ma(this,this.l+e++))!==0)f.push(p(l));n=f.join("");break;case"_wstr":e=0;n="";while((l=ga(this,this.l+e))!==0){f.push(p(l));e+=2}e+=2;n=f.join("");break;case"dbcs-cont":n="";h=this.l;for(c=0;c<e;++c){if(this.lens&&this.lens.indexOf(h)!==-1){l=ma(this,h);this.l=h+1;o=Aa.call(this,e-c,l?"dbcs-cont":"sbcs-cont");return f.join("")+o}f.push(p(ga(this,h)));h+=2}n=f.join("");e*=2;break;case"cpstr":if(typeof a!=="undefined"){n=a.utils.decode(r,this.slice(this.l,this.l+e));break};case"sbcs-cont":n="";h=this.l;for(c=0;c!=e;++c){if(this.lens&&this.lens.indexOf(h)!==-1){l=ma(this,h);this.l=h+1;o=Aa.call(this,e-c,l?"dbcs-cont":"sbcs-cont");return f.join("")+o}f.push(p(ma(this,h)));h+=1}n=f.join("");break;default:switch(e){case 1:i=ma(this,this.l);this.l++;return i;case 2:i=(t==="i"?ba:ga)(this,this.l);this.l+=2;return i;case 4:;case-4:if(t==="i"||(this[this.l+3]&128)===0){i=(e>0?ka:Ta)(this,this.l);this.l+=4;return i}else{s=wa(this,this.l);this.l+=4}return s;case 8:;case-8:if(t==="f"){if(e==8)s=da(this,this.l);else s=da([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0);this.l+=8;return s}else e=8;case 16:n=Qt(this,this.l,e);break;};}this.l+=e;return n}var ya=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255;e[t+2]=r>>>16&255;e[t+3]=r>>>24&255};var Ea=function(e,r,t){e[t]=r&255;e[t+1]=r>>8&255;e[t+2]=r>>16&255;e[t+3]=r>>24&255};var Ca=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255};function _a(e,n,i){var s=0,f=0;if(i==="dbcs"){for(f=0;f!=n.length;++f)Ca(this,n.charCodeAt(f),this.l+2*f);s=2*n.length}else if(i==="sbcs"||i=="cpstr"){if(typeof a!=="undefined"&&t==874){for(f=0;f!=n.length;++f){var l=a.utils.encode(t,n.charAt(f));this[this.l+f]=l[0]}s=n.length}else if(typeof a!=="undefined"&&i=="cpstr"){l=a.utils.encode(r,n);if(l.length==n.length)for(f=0;f<n.length;++f)if(l[f]==0&&n.charCodeAt(f)!=0)l[f]=95;if(l.length==2*n.length)for(f=0;f<n.length;++f)if(l[2*f]==0&&l[2*f+1]==0&&n.charCodeAt(f)!=0)l[2*f]=95;for(f=0;f<l.length;++f)this[this.l+f]=l[f];s=l.length}else{n=n.replace(/[^\x00-\x7F]/g,"_");for(f=0;f!=n.length;++f)this[this.l+f]=n.charCodeAt(f)&255;s=n.length}}else if(i==="hex"){for(;f<e;++f){this[this.l++]=parseInt(n.slice(2*f,2*f+2),16)||0}return this}else if(i==="utf16le"){var o=Math.min(this.l+e,this.length);for(f=0;f<Math.min(n.length,e);++f){var c=n.charCodeAt(f);this[this.l++]=c&255;this[this.l++]=c>>8}while(this.l<o)this[this.l++]=0;return this}else switch(e){case 1:s=1;this[this.l]=n&255;break;case 2:s=2;this[this.l]=n&255;n>>>=8;this[this.l+1]=n&255;break;case 3:s=3;this[this.l]=n&255;n>>>=8;this[this.l+1]=n&255;n>>>=8;this[this.l+2]=n&255;break;case 4:s=4;ya(this,n,this.l);break;case 8:s=8;if(i==="f"){jt(this,n,this.l);break};case 16:break;case-4:s=4;Ea(this,n,this.l);break;}this.l+=s;return this}function Sa(e,r){var t=Qt(this,this.l,e.length>>1);if(t!==e)throw new Error(r+"Expected "+e+" saw "+t);this.l+=e.length>>1}function xa(e,r){e.l=r;e._R=Aa;e.chk=Sa;e._W=_a}function Oa(e,r){e.l+Line truncated
|
||||
function yi(e,r){var t=zt(e);var a;var n;while(a=Ht.exec(t))switch(a[3]){case"manifest":break;case"file-entry":n=ct(a[0],false);if(n.path=="/"&&n.type!==Ai)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":;case"algorithm":;case"start-key-generation":;case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(r&&r.WTF)throw a;}}function Ei(e){var r=[at];r.push('<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2">\n');r.push(' <manifest:file-entry manifest:full-path="/" manifest:version="1.2" manifest:media-type="application/vnd.oasis.opendocument.spreadsheet"/>\n');for(var t=0;t<e.length;++t)r.push(' <manifest:file-entry manifest:full-path="'+e[t][0]+'" manifest:media-type="'+e[t][1]+'"/>\n');r.push("</manifest:manifest>");return r.join("")}function Ci(e,r,t){return[' <rdf:Description rdf:about="'+e+'">\n',' <rdf:type rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/'+(t||"odf")+"#"+r+'"/>\n'," </rdf:Description>\n"].join("")}function _i(e,r){return[' <rdf:Description rdf:about="'+e+'">\n',' <ns0:hasPart xmlns:ns0="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#" rdf:resource="'+r+'"/>\n'," </rdf:Description>\n"].join("")}function Si(e){var r=[at];r.push('<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n');for(var t=0;t!=e.length;++t){r.push(Ci(e[t][0],e[t][1]));r.push(_i("",e[t][0]))}r.push(Ci("","Document","pkg"));r.push("</rdf:RDF>");return r.join("")}function xi(r,t){return'<office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xlink="http://www.w3.org/1999/xlink" office:version="1.2"><office:meta><meta:generator>SheetJS '+e.version+"</meta:generator></office:meta></office:document-meta>"}var Oi=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];function Ii(e){var r={};e=Ot(e);for(var t=0;t<Oi.length;++t){var a=Oi[t],n=Br(e,a[0]);if(n!=null&&n.length>0)r[a[1]]=vt(n[1]);if(a[2]==="date"&&r[a[1]])r[a[1]]=wr(r[a[1]])}return r}function Ri(e,r,t,a,n){if(n[e]!=null||r==null||r==="")return;n[e]=r;r=gt(r);a[a.length]=t?Ut(e,r,t):Lt(e,r)}function Ni(e,r){var t=r||{};var a=[at,Ut("cp:coreProperties",null,{"xmlns:cp":Vt.CORE_PROPS,"xmlns:dc":Vt.dc,"xmlns:dcterms":Vt.dcterms,"xmlns:dcmitype":Vt.dcmitype,"xmlns:xsi":Vt.xsi})],n={};if(!e&&!t.Props)return a.join("");if(e){if(e.CreatedDate!=null)Ri("dcterms:created",typeof e.CreatedDate==="string"?e.CreatedDate:Bt(e.CreatedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n);if(e.ModifiedDate!=null)Ri("dcterms:modified",typeof e.ModifiedDate==="string"?e.ModifiedDate:Bt(e.ModifiedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n)}for(var i=0;i!=Oi.length;++i){var s=Oi[i];var f=t.Props&&t.Props[s[1]]!=null?t.Props[s[1]]:e?e[s[1]]:null;if(f===true)f="1";else if(f===false)f="0";else if(typeof f=="number")f=String(f);if(f!=null)Ri(s[0],f,null,a,n)}if(a.length>2){a[a.length]="</cp:coreProperties>";a[1]=a[1].replace("/>",">")}return a.join("")}var Fi=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];var Di=["Worksheets","SheetNames","NamedRanges","DefinedNames","Chartsheets","ChartNames"];function Pi(e,r,t,a){var n=[];if(typeof e=="string")n=Dt(e,a);else for(var i=0;i<e.length;++i)n=n.concat(e[i].map(function(e){return{v:e}}));var s=typeof r=="string"?Dt(r,a).map(function(e){return e.v}):r;var f=0,l=0;if(s.length>0)for(var o=0;o!==n.length;o+=2){l=+n[o+1].v;switch(n[o].v){case"Worksheets":;case"工作表":;case"Листы":;case"أوراق العمل":;case"ワークシート":;case"גליונות עבודה":;case"Arbeitsblätter":;case"Çalışma Sayfaları":;case"Feuilles de calcul":;case"Fogli di lavoro":;case"Folhas de cálculo":;case"Planilhas":;case"Regneark":;case"Hojas de cálculo":;case"Werkbladen":t.Worksheets=l;t.SheetNames=s.slice(f,f+l);break;case"Named Ranges":;case"Rangos con nombre":;case"名前付き一覧":;case"Benannte Bereiche":;case"Navngivne områder":t.NamedRanges=l;t.DefinedNames=s.slice(f,f+l);break;case"Charts":;case"Diagramme":t.Chartsheets=l;t.ChartNames=s.slice(f,f+l);break;}f+=l}}function Li(e,r,t){var a={}Line truncated
|
||||
fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};if(t.sbcch===14849)n=js(e,r-2,t);i.body=n||e._R(r-2);if(typeof n==="string")i.Name=n;return i}function il(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(1);var s=e._R(1);var f=e._R(t&&t.biff==2?1:2);var l=0;if(!t||t.biff>=5){if(t.biff!=5)e.l+=2;l=e._R(2);if(t.biff==5)e.l+=2;e.l+=4}var o=Ss(e,s,t);if(n&32)o=hi[o.charCodeAt(0)];var c=a-e.l;if(t&&t.biff==2)--c;var h=a==e.l||f===0||!(c>0)?[]:Bd(e,c,t,f);return{chKey:i,Name:o,itab:l,rgce:h}}function sl(e,r,t){if(t.biff<8)return fl(e,r,t);if(!(t.biff>8)&&r==e[e.l]+(e[e.l+1]==3?1:0)+1)return fl(e,r,t);var a=[],n=e.l+r,i=e._R(t.biff>8?4:2);while(i--!==0)a.push(Xs(e,t.biff>8?12:6,t));if(e.l!=n)throw new Error("Bad ExternSheet: "+e.l+" != "+n);return a}function fl(e,r,t){if(e[e.l+1]==3)e[e.l]++;var a=Es(e,r,t);return a.charCodeAt(0)==3?a.slice(1):a}function ll(e,r,t){if(t.biff<8){e.l+=r;return}var a=e._R(2);var n=e._R(2);var i=Ss(e,a,t);var s=Ss(e,n,t);return[i,s]}function ol(e,r,t){var a=Zs(e,6);e.l++;var n=e._R(1);r-=8;return[Wd(e,r,t),n,a]}function cl(e,r,t){var a=Js(e,6);switch(t.biff){case 2:e.l++;r-=7;break;case 3:;case 4:e.l+=2;r-=8;break;default:e.l+=6;r-=12;}return[a,Md(e,r,t,a)]}function hl(e){var r=e._R(4)!==0;var t=e._R(4)!==0;var a=e._R(4);return[r,t,a]}function ul(e,r,t){var a=e._R(2),n=e._R(2);var i=e._R(2),s=e._R(2);var f=Os(e,0,t);return[{r:a,c:n},f,s,i]}function dl(e,r,t){if(t&&t.biff<8){var a=e._R(2),n=e._R(2);if(a==65535||a==-1)return;var i=e._R(2);var s=e._R(Math.min(i,2048),"cpstr");return[{r:a,c:n},s]}return ul(e,r,t)}function vl(e,r,t,a){var n=Ia(6+(a||e.length));n._W(2,r);n._W(2,t);n._W(2,a||e.length);n._W(e.length,e,"sbcs");return n}function pl(e,r){var t=[];var a=e._R(2);while(a--)t.push(Ks(e,r));return t}function ml(e){var r=Ia(2+e.length*8);r._W(2,e.length);for(var t=0;t<e.length;++t)Ys(e[t],r);return r}function gl(e,r,t){if(t&&t.biff<8)return wl(e,r,t);var a=qs(e,22);var n=af(e,r-22,a[1]);return{cmo:a,ft:n}}var bl={8:function(e,r){var t=e.l+r;e.l+=10;var a=e._R(2);e.l+=4;e.l+=2;e.l+=2;e.l+=2;e.l+=4;var n=e._R(1);e.l+=n;e.l=t;return{fmt:a}}};function wl(e,r,t){e.l+=4;var a=e._R(2);var n=e._R(2);var i=e._R(2);e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=6;r-=36;var s=[];s.push((bl[a]||Oa)(e,r,t));return{cmo:[n,a,i],ft:s}}function kl(e,r,t){var a=e.l;var n="";try{e.l+=4;var i=(t.lastobj||{cmo:[0,0]}).cmo[1];var s;if([0,5,7,11,12,14].indexOf(i)==-1)e.l+=6;else s=Rs(e,6,t);var f=e._R(2);e._R(2);ws(e,2);var l=e._R(2);e.l+=l;for(var o=1;o<e.lens.length-1;++o){if(e.l-a!=e.lens[o])throw new Error("TxO: bad continue record");var c=e[e.l];var h=Ss(e,e.lens[o+1]-e.lens[o]-1);n+=h;if(n.length>=(c?f:2*f))break}if(n.length!==f&&n.length!==f*2){throw new Error("cchText: "+f+" != "+n.length)}e.l=a+r;return{t:n}}catch(u){e.l=a+r;return{t:n}}}function Tl(e,r){var t=Ks(e,8);e.l+=16;var a=Ms(e,r-24);return[t,a]}function Al(e){var r=Ia(24);var t=ja(e[0]);r._W(2,t.r);r._W(2,t.r);r._W(2,t.c);r._W(2,t.c);var a="d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" ");for(var n=0;n<16;++n)r._W(1,parseInt(a[n],16));return P([r,Us(e[1])])}function yl(e,r){e._R(2);var t=Ks(e,8);var a=e._R((r-10)/2,"dbcs-cont");a=a.replace(M,"");return[t,a]}function El(e){var r=e[1].Tooltip;var t=Ia(10+2*(r.length+1));t._W(2,2048);var a=ja(e[0]);t._W(2,a.r);t._W(2,a.r);t._W(2,a.c);t._W(2,a.c);for(var n=0;n<r.length;++n)t._W(2,r.charCodeAt(n));t._W(2,0);return t}function Cl(e){var r=[0,0],t;t=e._R(2);r[0]=ni[t]||t;t=e._R(2);r[1]=ni[t]||t;return r}function _l(e){if(!e)e=Ia(4);e._W(2,1);e._W(2,1);return e}function Sl(e){var r=e._R(2);var t=[];while(r-- >0)t.push(Ws(e,8));return t}function xl(e){var r=e._R(2);var t=[];while(r-- >0)t.push(Ws(e,8));return t}function Ol(e){e.l+=2;var r={cxfs:0,crc:0};r.cxfs=e._R(2);r.crc=e._R(4);return r}function Il(e,r,t){if(!t.cellStyles)return Oa(e,r);var a=t&&t.biff>=12?4:2;var n=e._R(a);var i=e._R(a);var s=e._R(a);var f=e._R(a);var l=e._R(2);if(a==2)e.l+=2;var o={s:n,e:i,w:s,ixfe:f,flags:l};if(t.biff>=5||!t.biff)o.level=l>>8&7;return o}function Rl(e,r){var t=Ia(12);t._W(2,r);t._W(2,r);t._W(2,e.width*256);t._W(2,0);var a=0;if(e.hidden)a|=1;t._W(1,a);a=e.level||0;t._W(1,a);t._W(2,0);return t}function Nl(e,r){var t={};if(r<32)return t;e.l+=16;t.header=Dn(e,8);t.footer=Dn(e,8);e.l+=2;return t}function Fl(e,r,t){var a={area:false};if(t.biff!=5){e.l+=r;return a}var n=e._R(1);e.l+=3;if(n&16)a.area=true;return a}function Dl(e){var r=Ia(2*e);for(var t=0;t<e;++t)r._W(2,t+1);return r}var Pl=zs;var Ll=Ts;var Ml=xs;function Ul(e){var r=e._R(2);var t=e._R(2);var a=e._R(4);var n={fmt:r,env:t,len:a,data:e.slice(e.l,e.l+a)};e.l+=a;return n}function Bl(e,r,t,a,n){if(!e)e=Ia(7);e._W(2,r);e._W(2,t);e._W(1,a||0);e._W(1,n||0);e._W(1,0);return e}function Wl(e,r,t){if(t.biffguess&&t.biff==5)t.biff=2;var a=zs(e,7,t);var n=Os(e,r-7,t);a.t="str";a.val=n;return a}function zl(e,r,t){var a=zs(e,7,t);var n=Dn(e,8);a.t="n";a.val=n;return a}function Hl(e,r,t,a,n){vLine truncated
|
||||
n.Enum=$;if(r[2]==14){n.qpro=true;r.l=0}e(r,function(e,r,t){switch(t){case 204:s=e;break;case 22:if(e[1].v.charCodeAt(0)<48)e[1].v=e[1].v.slice(1);e[1].v=e[1].v.replace(/\x0F./g,function(e){return String.fromCharCode(e.charCodeAt(1)-32)}).replace(/\r\n/g,"\n");case 23:;case 24:;case 25:;case 37:;case 39:;case 40:if(e[3]>l){i["!ref"]=Za(d);o[s]=i;c.push(s);i={};if(n.dense)u=i["!data"]=[];d={s:{r:0,c:0},e:{r:0,c:0}};l=e[3];s="Sheet"+(l+1)}if(v>0&&e[0].r>=v)break;if(n.dense){if(!u[e[0].r])u[e[0].r]=[];u[e[0].r][e[0].c]=e[1]}else i[Ka(e[0])]=e[1];if(d.e.c<e[0].c)d.e.c=e[0].c;if(d.e.r<e[0].r)d.e.r=e[0].r;break;case 27:if(e[14e3])h[e[14e3][0]]=e[14e3][1];break;case 1537:h[e[0]]=e[1];if(e[0]==l)s=e[1];break;default:break;}},n)}else throw new Error("Unrecognized LOTUS BOF "+r[2]);i["!ref"]=Za(d);o[f||s]=i;c.push(f||s);if(!h.length)return{SheetNames:c,Sheets:o};var m={},g=[];for(var w=0;w<h.length;++w)if(o[c[w]]){g.push(h[w]||c[w]);m[h[w]]=o[h[w]]||o[c[w]]}else{g.push(h[w]);m[h[w]]={"!ref":"A1"}}return{SheetNames:g,Sheets:m}}function n(e,r){var t=r||{};if(+t.codepage>=0)l(+t.codepage);if(t.type=="string")throw new Error("Cannot write WK1 to JS string");var a=Na();if(!e["!ref"])throw new Error("Cannot export empty sheet to WK1");var n=Qa(e["!ref"]);var i=e["!data"]!=null;var f=[];Jg(a,0,s(1030));Jg(a,6,c(n));var o=Math.min(n.e.r,8191);for(var h=n.s.c;h<=n.e.c;++h)f[h]=Va(h);for(var u=n.s.r;u<=o;++u){var d=Ba(u);for(h=n.s.c;h<=n.e.c;++h){var p=i?(e["!data"][u]||[])[h]:e[f[h]+d];if(!p||p.t=="z")continue;switch(p.t){case"n":if((p.v|0)==p.v&&p.v>=-32768&&p.v<=32767)Jg(a,13,g(u,h,p));else Jg(a,14,k(u,h,p));break;case"d":var m=dr(p.v);if((m|0)==m&&m>=-32768&&m<=32767)Jg(a,13,g(u,h,{t:"n",v:m,z:p.z||q[14]}));else Jg(a,14,k(u,h,{t:"n",v:m,z:p.z||q[14]}));break;default:var b=rn(p);Jg(a,15,v(u,h,b.slice(0,239)));}}}Jg(a,1);return a.end()}function i(e,r){var t=r||{};if(+t.codepage>=0)l(+t.codepage);if(t.type=="string")throw new Error("Cannot write WK3 to JS string");var a=Na();Jg(a,0,f(e));for(var n=0,i=0;n<e.SheetNames.length;++n)if((e.Sheets[e.SheetNames[n]]||{})["!ref"])Jg(a,27,H(e.SheetNames[n],i++));var s=0;for(n=0;n<e.SheetNames.length;++n){var o=e.Sheets[e.SheetNames[n]];if(!o||!o["!ref"])continue;var c=Qa(o["!ref"]);var h=o["!data"]!=null;var u=[];var d=Math.min(c.e.r,8191);for(var v=c.s.r;v<=d;++v){var p=Ba(v);for(var m=c.s.c;m<=c.e.c;++m){if(v===c.s.r)u[m]=Va(m);var g=u[m]+p;var b=h?(o["!data"][v]||[])[m]:o[g];if(!b||b.t=="z")continue;if(b.t=="n"){Jg(a,23,F(v,m,s,b.v))}else{var w=rn(b);Jg(a,22,O(v,m,s,w.slice(0,239)))}}}++s}Jg(a,1);return a.end()}function s(e){var r=Ia(2);r._W(2,e);return r}function f(e){var r=Ia(26);r._W(2,4096);r._W(2,4);r._W(4,0);var t=0,a=0,n=0;for(var i=0;i<e.SheetNames.length;++i){var s=e.SheetNames[i];var f=e.Sheets[s];if(!f||!f["!ref"])continue;++n;var l=Ya(f["!ref"]);if(t<l.e.r)t=l.e.r;if(a<l.e.c)a=l.e.c}if(t>8191)t=8191;r._W(2,t);r._W(1,n);r._W(1,a);r._W(2,0);r._W(2,0);r._W(1,1);r._W(1,2);r._W(4,0);r._W(4,0);return r}function o(e,r,t){var a={s:{c:0,r:0},e:{c:0,r:0}};if(r==8&&t.qpro){a.s.c=e._R(1);e.l++;a.s.r=e._R(2);a.e.c=e._R(1);e.l++;a.e.r=e._R(2);return a}a.s.c=e._R(2);a.s.r=e._R(2);if(r==12&&t.qpro)e.l+=2;a.e.c=e._R(2);a.e.r=e._R(2);if(r==12&&t.qpro)e.l+=2;if(a.s.c==65535)a.s.c=a.e.c=a.s.r=a.e.r=0;return a}function c(e){var r=Ia(8);r._W(2,e.s.c);r._W(2,e.s.r);r._W(2,e.e.c);r._W(2,e.e.r);return r}function h(e,r,t){var a=[{c:0,r:0},{t:"n",v:0},0,0];if(t.qpro&&t.vers!=20768){a[0].c=e._R(1);a[3]=e._R(1);a[0].r=e._R(2);e.l+=2}else if(t.works){a[0].c=e._R(2);a[0].r=e._R(2);a[2]=e._R(2)}else{a[2]=e._R(1);a[0].c=e._R(2);a[0].r=e._R(2)}return a}function u(e){if(e.z&&Le(e.z)){return 240|(t.indexOf(e.z)+1||2)}return 255}function d(e,r,t){var a=e.l+r;var n=h(e,r,t);n[1].t="s";if((t.vers&65534)==20768){e.l++;var i=e._R(1);n[1].v=e._R(i,"utf8");return n}if(t.qpro)e.l++;n[1].v=e._R(a-e.l,"cstr");return n}function v(e,r,t){var a=Ia(7+t.length);a._W(1,255);a._W(2,r);a._W(2,e);a._W(1,39);for(var n=0;n<a.length;++n){var i=t.charCodeAt(n);a._W(1,i>=128?95:i)}a._W(1,0);return a}function p(e,r,t){var a=e.l+r;var n=h(e,r,t);n[1].t="s";if(t.vers==20768){var i=e._R(1);n[1].v=e._R(i,"utf8");return n}n[1].v=e._R(a-e.l,"cstr");return n}function m(e,r,t){var a=h(e,r,t);a[1].v=e._R(2,"i");return a}function g(e,r,t){var a=Ia(7);a._W(1,u(t));a._W(2,r);a._W(2,e);a._W(2,t.v,"i");return a}function w(e,r,t){var a=h(e,r,t);a[1].v=e._R(8,"f");return a}function k(e,r,t){var a=Ia(13);a._W(1,u(t));a._W(2,r);a._W(2,e);a._W(8,t.v,"f");return a}function T(e,r,t){var a=e.l+r;var n=h(e,r,t);n[1].v=e._R(8,"f");if(t.qpro)e.l=a;else{var i=e._R(2);_(e.slice(e.l,e.l+i),n);e.l+=i}return n}function A(e,r,t){var a=r&32768;r&=~32768;r=(a?e:0)+(r>=8192?r-16384:r);return(a?"":"$")+(t?Va(r):Ba(r))}var y={31:["NA",0],33:["ABS",1],34:["TRUNC",1],35:["SQRT",1],36:["LOG",1],37:["LN",1],38:["PI",0],39:["SIN",1],40:["COS",1],41:["TAN",1],42:["ATAN2",2],43:["ATAN",1],44:["ASIN",1],45:["ACOS",1],46:["EXP",1],47:["MOD",2],49:["ISNA",1],50:["ISERR",1],5Line truncated
|
||||
var t=ct(e);switch(ht(t[0])){case"<fills":;case"<fills>":;case"</fills>":break;case"<fill>":;case"<fill":;case"<fill/>":n={};r.Fills.push(n);break;case"</fill>":break;case"<gradientFill>":break;case"<gradientFill":;case"</gradientFill>":r.Fills.push(n);n={};break;case"<patternFill":;case"<patternFill>":if(t.patternType)n.patternType=t.patternType;break;case"<patternFill/>":;case"</patternFill>":break;case"<bgColor":if(!n.bgColor)n.bgColor={};if(t.indexed)n.bgColor.indexed=parseInt(t.indexed,10);if(t.theme)n.bgColor.theme=parseInt(t.theme,10);if(t.tint)n.bgColor.tint=parseFloat(t.tint);if(t.rgb)n.bgColor.rgb=t.rgb.slice(-6);break;case"<bgColor/>":;case"</bgColor>":break;case"<fgColor":if(!n.fgColor)n.fgColor={};if(t.theme)n.fgColor.theme=parseInt(t.theme,10);if(t.tint)n.fgColor.tint=parseFloat(t.tint);if(t.rgb!=null)n.fgColor.rgb=t.rgb.slice(-6);break;case"<fgColor/>":;case"</fgColor>":break;case"<stop":;case"<stop/>":break;case"</stop>":break;case"<color":;case"<color/>":break;case"</color>":break;case"<extLst":;case"<extLst>":;case"</extLst>":break;case"<ext":i=true;break;case"</ext>":i=false;break;default:if(a&&a.WTF){if(!i)throw new Error("unrecognized "+t[0]+" in fills")};}})}function mc(e,r,t,a){r.Fonts=[];var n={};var s=false;(e.match(ft)||[]).forEach(function(e){var f=ct(e);switch(ht(f[0])){case"<fonts":;case"<fonts>":;case"</fonts>":break;case"<font":;case"<font>":break;case"</font>":;case"<font/>":r.Fonts.push(n);n={};break;case"<name":if(f.val)n.name=Ot(f.val);break;case"<name/>":;case"</name>":break;case"<b":n.bold=f.val?Et(f.val):1;break;case"<b/>":n.bold=1;break;case"<i":n.italic=f.val?Et(f.val):1;break;case"<i/>":n.italic=1;break;case"<u":switch(f.val){case"none":n.underline=0;break;case"single":n.underline=1;break;case"double":n.underline=2;break;case"singleAccounting":n.underline=33;break;case"doubleAccounting":n.underline=34;break;}break;case"<u/>":n.underline=1;break;case"<strike":n.strike=f.val?Et(f.val):1;break;case"<strike/>":n.strike=1;break;case"<outline":n.outline=f.val?Et(f.val):1;break;case"<outline/>":n.outline=1;break;case"<shadow":n.shadow=f.val?Et(f.val):1;break;case"<shadow/>":n.shadow=1;break;case"<condense":n.condense=f.val?Et(f.val):1;break;case"<condense/>":n.condense=1;break;case"<extend":n.extend=f.val?Et(f.val):1;break;case"<extend/>":n.extend=1;break;case"<sz":if(f.val)n.sz=+f.val;break;case"<sz/>":;case"</sz>":break;case"<vertAlign":if(f.val)n.vertAlign=f.val;break;case"<vertAlign/>":;case"</vertAlign>":break;case"<family":if(f.val)n.family=parseInt(f.val,10);break;case"<family/>":;case"</family>":break;case"<scheme":if(f.val)n.scheme=f.val;break;case"<scheme/>":;case"</scheme>":break;case"<charset":if(f.val=="1")break;f.codepage=i[parseInt(f.val,10)];break;case"<color":if(!n.color)n.color={};if(f.auto)n.color.auto=Et(f.auto);if(f.rgb)n.color.rgb=f.rgb.slice(-6);else if(f.indexed){n.color.index=parseInt(f.indexed,10);var l=li[n.color.index];if(n.color.index==81)l=li[1];if(!l)l=li[1];n.color.rgb=l[0].toString(16)+l[1].toString(16)+l[2].toString(16)}else if(f.theme){n.color.theme=parseInt(f.theme,10);if(f.tint)n.color.tint=parseFloat(f.tint);if(f.theme&&t.themeElements&&t.themeElements.clrScheme){n.color.rgb=qo(t.themeElements.clrScheme[n.color.theme].rgb,n.color.tint||0)}}break;case"<color/>":;case"</color>":break;case"<AlternateContent":s=true;break;case"</AlternateContent>":s=false;break;case"<extLst":;case"<extLst>":;case"</extLst>":break;case"<ext":s=true;break;case"</ext>":s=false;break;default:if(a&&a.WTF){if(!s)throw new Error("unrecognized "+f[0]+" in fonts")};}})}function gc(e,r,t){r.NumberFmt=[];var a=ir(q);for(var n=0;n<a.length;++n)r.NumberFmt[a[n]]=q[a[n]];var i=e.match(ft);if(!i)return;for(n=0;n<i.length;++n){var s=ct(i[n]);switch(ht(s[0])){case"<numFmts":;case"</numFmts>":;case"<numFmts/>":;case"<numFmts>":break;case"<numFmt":{var f=vt(Ot(s.formatCode)),l=parseInt(s.numFmtId,10);r.NumberFmt[l]=f;if(l>0){if(l>392){for(l=392;l>60;--l)if(r.NumberFmt[l]==null)break;r.NumberFmt[l]=f}Je(f,l)}}break;case"</numFmt>":break;default:if(t.WTF)throw new Error("unrecognized "+s[0]+" in numFmts");}}}function bc(e){var r=["<numFmts>"];[[5,8],[23,26],[41,44],[50,392]].forEach(function(t){for(var a=t[0];a<=t[1];++a)if(e[a]!=null)r[r.length]=Ut("numFmt",null,{numFmtId:a,formatCode:gt(e[a])})});if(r.length===1)return"";r[r.length]="</numFmts>";r[0]=Ut("numFmts",null,{count:r.length-2}).replace("/>",">");return r.join("")}var wc=["numFmtId","fillId","fontId","borderId","xfId"];var kc=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"];function Tc(e,r,t){r.CellXf=[];var a;var n=false;(e.match(ft)||[]).forEach(function(e){var i=ct(e),s=0;switch(ht(i[0])){case"<cellXfs":;case"<cellXfs>":;case"<cellXfs/>":;case"</cellXfs>":break;case"<xf":;case"<xf/>":;case"<xf>":a=i;delete a[0];for(s=0;s<wc.length;++s)if(a[wc[s]])a[wc[s]]=parseInt(a[wc[s]],10);for(s=0;s<kc.length;++s)if(a[kc[s]])a[kc[s]]=Et(a[kc[s]]);if(r.NLine truncated
|
||||
}function Fh(e,r,t,a){var n=e["!data"]!=null;var i;r.forEach(function(r){var s=ja(r.ref);if(s.r<0||s.c<0)return;if(n){if(!e["!data"][s.r])e["!data"][s.r]=[];i=e["!data"][s.r][s.c]}else i=e[r.ref];if(!i){i={t:"z"};if(n)e["!data"][s.r][s.c]=i;else e[r.ref]=i;var f=Qa(e["!ref"]||"BDWGO1000001:A1");if(f.s.r>s.r)f.s.r=s.r;if(f.e.r<s.r)f.e.r=s.r;if(f.s.c>s.c)f.s.c=s.c;if(f.e.c<s.c)f.e.c=s.c;var l=Za(f);e["!ref"]=l}if(!i.c)i.c=[];var o={a:r.author,t:r.t,r:r.r,T:t};if(r.h)o.h=r.h;for(var c=i.c.length-1;c>=0;--c){if(!t&&i.c[c].T)return;if(t&&!i.c[c].T)i.c.splice(c,1)}if(t&&a)for(c=0;c<a.length;++c){if(o.a==a[c].id){o.a=a[c].name||o.a;break}}i.c.push(o)})}function Dh(e,r){if(e.match(/<(?:\w+:)?comments *\/>/))return[];var t=[];var a=[];var n=Wr(e,"authors");if(n&&n[1])n[1].split(/<\/\w*:?author>/).forEach(function(e){if(e===""||e.trim()==="")return;var r=e.match(/<(?:\w+:)?author[^<>]*>(.*)/);if(r)t.push(r[1])});var i=Wr(e,"commentList");if(i&&i[1])i[1].split(/<\/\w*:?comment>/).forEach(function(e){if(e===""||e.trim()==="")return;var n=e.match(/<(?:\w+:)?comment[^<>]*>/);if(!n)return;var i=ct(n[0]);var s={author:i.authorId&&t[i.authorId]||"sheetjsghost",ref:i.ref,guid:i.guid};var f=ja(i.ref);if(r.sheetRows&&r.sheetRows<=f.r)return;var l=Wr(e,"text");var o=!!l&&!!l[1]&&oo(l[1])||{r:"",t:"",h:""};s.r=o.r;if(o.r=="<t></t>")o.t=o.h="";s.t=(o.t||"").replace(/\r\n/g,"\n").replace(/\r/g,"\n");if(r.cellHTML)s.h=o.h;a.push(s)});return a}function Ph(e){var r=[at,Ut("comments",null,{xmlns:$t[0]})];var t=[];r.push("<authors>");e.forEach(function(e){e[1].forEach(function(e){var a=gt(e.a);if(t.indexOf(a)==-1){t.push(a);r.push("<author>"+a+"</author>")}if(e.T&&e.ID&&t.indexOf("tc="+e.ID)==-1){t.push("tc="+e.ID);r.push("<author>"+"tc="+e.ID+"</author>")}})});if(t.length==0){t.push("SheetJ5");r.push("<author>SheetJ5</author>")}r.push("</authors>");r.push("<commentList>");e.forEach(function(e){var a=0,n=[],i=0;if(e[1][0]&&e[1][0].T&&e[1][0].ID)a=t.indexOf("tc="+e[1][0].ID);e[1].forEach(function(e){if(e.a)a=t.indexOf(gt(e.a));if(e.T)++i;n.push(e.t==null?"":gt(e.t))});if(i===0){e[1].forEach(function(a){r.push('<comment ref="'+e[0]+'" authorId="'+t.indexOf(gt(a.a))+'"><text>');r.push(Lt("t",a.t==null?"":gt(a.t)));r.push("</text></comment>")})}else{if(e[1][0]&&e[1][0].T&&e[1][0].ID)a=t.indexOf("tc="+e[1][0].ID);r.push('<comment ref="'+e[0]+'" authorId="'+a+'"><text>');var s="Comment:\n "+n[0]+"\n";for(var f=1;f<n.length;++f)s+="Reply:\n "+n[f]+"\n";r.push(Lt("t",gt(s)));r.push("</text></comment>")}});r.push("</commentList>");if(r.length>2){r[r.length]="</comments>";r[1]=r[1].replace("/>",">")}return r.join("")}function Lh(e,r){var t=[];var a=false,n={},i=0;e.replace(ft,function s(f,l){var o=ct(f);switch(ht(o[0])){case"<?xml":break;case"<ThreadedComments":break;case"</ThreadedComments>":break;case"<threadedComment":n={author:o.personId,guid:o.id,ref:o.ref,T:1};break;case"</threadedComment>":if(n.t!=null)t.push(n);break;case"<text>":;case"<text":i=l+f.length;break;case"</text>":n.t=e.slice(i,l).replace(/\r\n/g,"\n").replace(/\r/g,"\n");break;case"<mentions":;case"<mentions>":a=true;break;case"</mentions>":a=false;break;case"<extLst":;case"<extLst>":;case"</extLst>":;case"<extLst/>":break;case"<ext":a=true;break;case"</ext>":a=false;break;default:if(!a&&r.WTF)throw new Error("unrecognized "+o[0]+" in threaded comments");}return f});return t}function Mh(e,r,t){var a=[at,Ut("ThreadedComments",null,{xmlns:Vt.TCMNT}).replace(/[\/]>/,">")];e.forEach(function(e){var n="";(e[1]||[]).forEach(function(i,s){if(!i.T){delete i.ID;return}if(i.a&&r.indexOf(i.a)==-1)r.push(i.a);var f={ref:e[0],id:"{54EE7951-7262-4200-6969-"+("000000000000"+t.tcid++).slice(-12)+"}"};if(s==0)n=f.id;else f.parentId=n;i.ID=f.id;if(i.a)f.personId="{54EE7950-7262-4200-6969-"+("000000000000"+r.indexOf(i.a)).slice(-12)+"}";a.push(Ut("threadedComment",Lt("text",i.t||""),f))})});a.push("</ThreadedComments>");return a.join("")}function Uh(e,r){var t=[];var a=false;e.replace(ft,function n(e){var n=ct(e);switch(ht(n[0])){case"<?xml":break;case"<personList":break;case"</personList>":break;case"<person":t.push({name:n.displayname,id:n.id});break;case"</person>":break;case"<extLst":;case"<extLst>":;case"</extLst>":;case"<extLst/>":break;case"<ext":a=true;break;case"</ext>":a=false;break;default:if(!a&&r.WTF)throw new Error("unrecognized "+n[0]+" in threaded comments");}return e});return t}function Bh(e){var r=[at,Ut("personList",null,{xmlns:Vt.TCMNT,"xmlns:x":$t[0]}).replace(/[\/]>/,">")];e.forEach(function(e,t){r.push(Ut("person",null,{displayName:e,id:"{54EE7950-7262-4200-6969-"+("000000000000"+t).slice(-12)+"}",userId:e,providerId:"None"}))});r.push("</personList>");return r.join("")}function Wh(e){var r={};r.iauthor=e._R(4);var t=Nn(e,16);r.rfx=t.s;r.ref=Ka(t.s);e.l+=16;return r}function zh(e,r){if(r==null)r=Ia(36);r._W(4,e[1].iauthor);Fn(e[0],r);r._W(4,0);r._W(4,0);r._W(4,0);r._W(4,0);return r}var Hh=on;function Vh(e){return cn(e.slice(0,54))}function $h(e,r){var t=[];var a=[]Line truncated
|
||||
116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",47Line truncated
|
||||
Mn({auto:1},t);t._W(-4,-1);t._W(-4,-1);An(e,t);return t.slice(0,t.l)}function lp(e){var r=gn(e);return[r]}function op(e,r,t){if(t==null)t=Ia(8);return bn(r,t)}function cp(e){var r=wn(e);return[r]}function hp(e,r,t){if(t==null)t=Ia(4);return kn(r,t)}function up(e){var r=gn(e);var t=e._R(1);return[r,t,"b"]}function dp(e,r,t){if(t==null)t=Ia(9);bn(r,t);t._W(1,e.v?1:0);return t}function vp(e){var r=wn(e);var t=e._R(1);return[r,t,"b"]}function pp(e,r,t){if(t==null)t=Ia(5);kn(r,t);t._W(1,e.v?1:0);return t}function mp(e){var r=gn(e);var t=e._R(1);return[r,t,"e"]}function gp(e,r,t){if(t==null)t=Ia(9);bn(r,t);t._W(1,e.v);return t}function bp(e){var r=wn(e);var t=e._R(1);return[r,t,"e"]}function wp(e,r,t){if(t==null)t=Ia(8);kn(r,t);t._W(1,e.v);t._W(2,0);t._W(1,0);return t}function kp(e){var r=gn(e);var t=e._R(4);return[r,t,"s"]}function Tp(e,r,t){if(t==null)t=Ia(12);bn(r,t);t._W(4,r.v);return t}function Ap(e){var r=wn(e);var t=e._R(4);return[r,t,"s"]}function yp(e,r,t){if(t==null)t=Ia(8);kn(r,t);t._W(4,r.v);return t}function Ep(e){var r=gn(e);var t=Dn(e);return[r,t,"n"]}function Cp(e,r,t){if(t==null)t=Ia(16);bn(r,t);Pn(e.v,t);return t}function _p(e){var r=wn(e);var t=Dn(e);return[r,t,"n"]}function Sp(e,r,t){if(t==null)t=Ia(12);kn(r,t);Pn(e.v,t);return t}function xp(e){var r=gn(e);var t=xn(e);return[r,t,"n"]}function Op(e,r,t){if(t==null)t=Ia(12);bn(r,t);On(e.v,t);return t}function Ip(e){var r=wn(e);var t=xn(e);return[r,t,"n"]}function Rp(e,r,t){if(t==null)t=Ia(8);kn(r,t);On(e.v,t);return t}function Np(e){var r=gn(e);var t=dn(e);return[r,t,"is"]}function Fp(e){var r=gn(e);var t=on(e);return[r,t,"str"]}function Dp(e,r,t){var a=e.v==null?"":String(e.v);if(t==null)t=Ia(12+4*e.v.length);bn(r,t);cn(a,t);return t.length>t.l?t.slice(0,t.l):t}function Pp(e){var r=wn(e);var t=on(e);return[r,t,"str"]}function Lp(e,r,t){var a=e.v==null?"":String(e.v);if(t==null)t=Ia(8+4*a.length);kn(r,t);cn(a,t);return t.length>t.l?t.slice(0,t.l):t}function Mp(e,r,t){var a=e.l+r;var n=gn(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"b"];if(t.cellFormula){e.l+=2;var f=jd(e,a-e.l,t);s[3]=Ld(f,null,n,t.supbooks,t)}else e.l=a;return s}function Up(e,r,t){var a=e.l+r;var n=gn(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"e"];if(t.cellFormula){e.l+=2;var f=jd(e,a-e.l,t);s[3]=Ld(f,null,n,t.supbooks,t)}else e.l=a;return s}function Bp(e,r,t){var a=e.l+r;var n=gn(e);n.r=t["!row"];var i=Dn(e);var s=[n,i,"n"];if(t.cellFormula){e.l+=2;var f=jd(e,a-e.l,t);s[3]=Ld(f,null,n,t.supbooks,t)}else e.l=a;return s}function Wp(e,r,t){var a=e.l+r;var n=gn(e);n.r=t["!row"];var i=on(e);var s=[n,i,"str"];if(t.cellFormula){e.l+=2;var f=jd(e,a-e.l,t);s[3]=Ld(f,null,n,t.supbooks,t)}else e.l=a;return s}var zp=Nn;var Hp=Fn;function Vp(e,r){if(r==null)r=Ia(4);r._W(4,e);return r}function $p(e,r){var t=e.l+r;var a=Nn(e,16);var n=yn(e);var i=on(e);var s=on(e);var f=on(e);e.l=t;var l={rfx:a,relId:n,loc:i,display:f};if(s)l.Tooltip=s;return l}function Xp(e,r){var t=Ia(50+4*(e[1].Target.length+(e[1].Tooltip||"").length));Fn({s:ja(e[0]),e:ja(e[0])},t);Sn("rId"+r,t);var a=e[1].Target.indexOf("#");var n=a==-1?"":e[1].Target.slice(a+1);cn(n||"",t);cn(e[1].Tooltip||"",t);cn("",t);return t.slice(0,t.l)}function Gp(){}function jp(e,r,t){var a=e.l+r;var n=In(e,16);var i=e._R(1);var s=[n];s[2]=i;if(t.cellFormula){var f=Gd(e,a-e.l,t);s[1]=f}else e.l=a;return s}function Kp(e,r,t){var a=e.l+r;var n=Nn(e,16);var i=[n];if(t.cellFormula){var s=Yd(e,a-e.l,t);i[1]=s;e.l=a}else e.l=a;return i}function Yp(e,r,t){if(t==null)t=Ia(18);var a=wv(e,r);t._W(-4,e);t._W(-4,e);t._W(4,(a.width||10)*256);t._W(4,0);var n=0;if(r.hidden)n|=1;if(typeof a.width=="number")n|=2;if(r.level)n|=r.level<<8;t._W(2,n);return t}var Zp=["left","right","top","bottom","header","footer"];function Jp(e){var r={};Zp.forEach(function(t){r[t]=Dn(e,8)});return r}function qp(e,r){if(r==null)r=Ia(6*8);kv(e);Zp.forEach(function(t){Pn(e[t],r)});return r}function Qp(e){var r=e._R(2);e.l+=28;return{RTL:r&32}}function em(e,r,t){if(t==null)t=Ia(30);var a=924;if((((r||{}).Views||[])[0]||{}).RTL)a|=32;t._W(2,a);t._W(4,0);t._W(4,0);t._W(4,0);t._W(1,0);t._W(1,0);t._W(2,0);t._W(2,100);t._W(2,0);t._W(2,0);t._W(2,0);t._W(4,0);return t}function rm(e){var r=Ia(24);r._W(4,4);r._W(4,1);Fn(e,r);return r}function tm(e,r){if(r==null)r=Ia(16*4+2);r._W(2,e.password?Mo(e.password):0);r._W(4,1);[["objects",false],["scenarios",false],["formatCells",true],["formatColumns",true],["formatRows",true],["insertColumns",true],["insertRows",true],["insertHyperlinks",true],["deleteColumns",true],["deleteRows",true],["selectLockedCells",false],["sort",true],["autoFilter",true],["pivotTables",true],["selectUnlockedCells",false]].forEach(function(t){if(t[1])r._W(4,e[t[0]]!=null&&!e[t[0]]?1:0);else r._W(4,e[t[0]]!=null&&e[t[0]]?0:1)});return r}function am(){}function nm(){}function im(e,r,t,a,n,i,s){if(!e)return e;var f=r||{};if(!a)a={"!id":{}};if(b!=null&&f.dense==null)f.dense=b;var l={};if(f.dense)l["!data"]=[];var o;var c={s:{r:2e6,c:2e6},e:{r:0,c:0}};var h=[];var u=false,d=false;Line truncated
|
||||
});a.s=d}if(a.StyleID!==undefined)a.ixfe=a.StyleID}function Tg(e){return hi.indexOf("_xlnm."+e)>-1?"_xlnm."+e:e}function Ag(e){e.t=e.v||"";e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");e.v=e.w=e.ixfe=undefined}function yg(e,r){var t=r||{};$e();var n=v(zt(e));if(t.type=="binary"||t.type=="array"||t.type=="base64"){if(typeof a!=="undefined")n=a.utils.decode(65001,c(n));else n=Ot(n)}var i=n.slice(0,1024).toLowerCase(),s=false;i=i.replace(/".*?"/g,"");if((i.indexOf(">")&1023)>Math.min(i.indexOf(",")&1023,i.indexOf(";")&1023)){var f=Tr(t);f.type="string";return ro.to_workbook(n,f)}if(i.indexOf("<?xml")==-1)["html","table","head","meta","script","style","div"].forEach(function(e){if(i.indexOf("<"+e)>=0)s=true});if(s)return Eb(n,t);pg={"General Number":"General","General Date":q[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":q[15],"Short Date":q[14],"Long Time":q[19],"Medium Time":q[18],"Short Time":q[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:q[2],Standard:q[4],Percent:q[10],Scientific:q[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var l;var o=[],h;if(b!=null&&t.dense==null)t.dense=b;var u={},d=[],p={},m="";if(t.dense)p["!data"]=[];var g={},w={};var k=dg('<Data ss:Type="String">'),T=0;var A=0,y=0;var E={s:{r:2e6,c:2e6},e:{r:0,c:0}};var C={},_={};var S="",x=0;var O=[];var I={},R={},N=0,F=[];var D=[],P={};var L=[],M,U=false;var B=[];var W=[],z={},H=0,V=0;var $={Sheets:[],WBProps:{date1904:false}},X={};Ht.lastIndex=0;n=Mr(n,"<!--","-->");var G="";while(l=Ht.exec(n))switch(l[3]=(G=l[3]).toLowerCase()){case"data":if(G=="data"){if(l[1]==="/"){if((h=o.pop())[0]!==l[3])throw new Error("Bad state: "+h.join("|"))}else if(l[0].charAt(l[0].length-2)!=="/")o.push([l[3],true]);break}if(o[o.length-1][1])break;if(l[1]==="/")kg(n.slice(T,l.index),S,k,o[o.length-1][0]=="comment"?P:g,{c:A,r:y},C,L[A],w,B,t,$.WBProps.date1904);else{S="";k=dg(l[0]);T=l.index+l[0].length}break;case"cell":if(l[1]==="/"){if(D.length>0)g.c=D;if((!t.sheetRows||t.sheetRows>y)&&g.v!==void 0){if(t.dense){if(!p["!data"][y])p["!data"][y]=[];p["!data"][y][A]=g}else p[Va(A)+Ba(y)]=g}if(g.HRef){g.l={Target:vt(g.HRef)};if(g.HRefScreenTip)g.l.Tooltip=g.HRefScreenTip;delete g.HRef;delete g.HRefScreenTip}if(g.MergeAcross||g.MergeDown){H=A+(parseInt(g.MergeAcross,10)|0);V=y+(parseInt(g.MergeDown,10)|0);if(H>A||V>y)O.push({s:{c:A,r:y},e:{c:H,r:V}})}if(!t.sheetStubs){if(g.MergeAcross)A=H+1;else++A}else if(g.MergeAcross||g.MergeDown){for(var j=A;j<=H;++j){for(var K=y;K<=V;++K){if(j>A||K>y){if(t.dense){if(!p["!data"][K])p["!data"][K]=[];p["!data"][K][j]={t:"z"}}else p[Va(j)+Ba(K)]={t:"z"}}}}A=H+1}else++A}else{g=vg(l[0]);if(g.Index)A=+g.Index-1;if(A<E.s.c)E.s.c=A;if(A>E.e.c)E.e.c=A;if(l[0].slice(-2)==="/>")++A;D=[]}break;case"row":if(l[1]==="/"||l[0].slice(-2)==="/>"){if(y<E.s.r)E.s.r=y;if(y>E.e.r)E.e.r=y;if(l[0].slice(-2)==="/>"){w=dg(l[0]);if(w.Index)y=+w.Index-1}A=0;++y}else{w=dg(l[0]);if(w.Index)y=+w.Index-1;z={};if(w.AutoFitHeight=="0"||w.Height){z.hpx=parseInt(w.Height,10);z.hpt=hc(z.hpx);W[y]=z}if(w.Hidden=="1"){z.hidden=true;W[y]=z}}break;case"worksheet":if(l[1]==="/"){if((h=o.pop())[0]!==l[3])throw new Error("Bad state: "+h.join("|"));d.push(m);if(E.s.r<=E.e.r&&E.s.c<=E.e.c){p["!ref"]=Za(E);if(t.sheetRows&&t.sheetRows<=E.e.r){p["!fullref"]=p["!ref"];E.e.r=t.sheetRows-1;p["!ref"]=Za(E)}}if(O.length)p["!merges"]=O;if(L.length>0)p["!cols"]=L;if(W.length>0)p["!rows"]=W;u[m]=p}else{E={s:{r:2e6,c:2e6},e:{r:0,c:0}};y=A=0;o.push([l[3],false]);h=dg(l[0]);m=vt(h.Name);p={};if(t.dense)p["!data"]=[];O=[];B=[];W=[];X={name:m,Hidden:0};$.Sheets.push(X)}break;case"table":if(l[1]==="/"){if((h=o.pop())[0]!==l[3])throw new Error("Bad state: "+h.join("|"))}else if(l[0].slice(-2)=="/>")break;else{o.push([l[3],false]);L=[];U=false}break;case"style":if(l[1]==="/")wg(C,_,t);else _=dg(l[0]);break;case"numberformat":_.nf=vt(dg(l[0]).Format||"General");if(pg[_.nf])_.nf=pg[_.nf];for(var Y=0;Y!=392;++Y)if(q[Y]==_.nf)break;if(Y==392)for(Y=57;Y!=392;++Y)if(q[Y]==null){Je(_.nf,Y);break}break;case"column":if(o[o.length-1][0]!=="table")break;if(l[1]==="/")break;M=dg(l[0]);if(M.Hidden){M.hidden=true;delete M.Hidden}if(M.Width)M.wpx=parseInt(M.Width,10);if(!U&&M.wpx>10){U=true;tc=Qo;for(var Z=0;Z<L.length;++Z)if(L[Z])lc(L[Z])}if(U)lc(M);L[M.Index-1||L.length]=M;for(var J=0;J<+M.Span;++J)L[L.length]=Tr(M);break;case"namedrange":if(l[1]==="/")break;if(!$.Names)$.Names=[];var Q=ct(l[0]);var ee={Name:Tg(Q.Name),Ref:eu(Q.RefersTo.slice(1),{r:0,c:0})};if($.Sheets.length>0)ee.Sheet=$.Sheets.length-1;$.Names.push(ee);break;case"namedcell":break;case"b":break;case"i":break;case"u":break;case"s":break;case"em":break;case"h2":break;case"h3":break;case"sub":break;case"sup":break;case"span":break;case"alignment":break;case"borders":break;case"border":break;case"font":if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")S+=n.slice(x,l.index);else x=l.index+l[0].length;break;case"interior":if(!t.cellStyles)break;_.Interior=dg(l[0]);bLine truncated
|
||||
zg(T,r,t.opts.Date1904);I({c:oe,r:J.r},T,r)}}break;case 214:;case 516:;case 4:T=Hg(J.val,J.ixfe,"s");T.XF=y[T.ixfe];if(z>0)T.z=T.XF&&T.XF.numFmtId&&H[T.XF.numFmtId]||H[T.ixfe>>8&63];zg(T,r,t.opts.Date1904);I({c:J.c,r:J.r},T,r);break;case 0:;case 512:{if(W===1)s=J}break;case 252:{o=J}break;case 1054:{if(R.biff>=3&&R.biff<=4){H[z++]=J[1];for(var he=0;he<z+163;++he)if(q[he]==J[1])break;if(he>=163)Je(J[1],z+163)}else Je(J[1],J[0])}break;case 30:{H[z++]=J;for(var ue=0;ue<z+163;++ue)if(q[ue]==J)break;if(ue>=163)Je(J,z+163)}break;case 229:F=F.concat(J);break;case 93:D[J.cmo[0]]=R.lastobj=J;break;case 438:R.lastobj.TxO=J;break;case 127:R.lastobj.ImData=J;break;case 440:{for(g=J[0].s.r;g<=J[0].e.r;++g)for(m=J[0].s.c;m<=J[0].e.c;++m){v=r.dense?(n["!data"][g]||[])[m]:n[Ka({c:m,r:g})];if(v)v.l=J[1]}}break;case 2048:{for(g=J[0].s.r;g<=J[0].e.r;++g)for(m=J[0].s.c;m<=J[0].e.c;++m){v=r.dense?(n["!data"][g]||[])[m]:n[Ka({c:m,r:g})];if(v&&v.l)v.l.Tooltip=J[1]}}break;case 28:{v=r.dense?(n["!data"][J[0].r]||[])[J[0].c]:n[Ka(J[0])];if(!v){if(r.dense){if(!n["!data"][J[0].r])n["!data"][J[0].r]=[];v=n["!data"][J[0].r][J[0].c]={t:"z"}}else{v=n[Ka(J[0])]={t:"z"}}s.e.r=Math.max(s.e.r,J[0].r);s.s.r=Math.min(s.s.r,J[0].r);s.e.c=Math.max(s.e.c,J[0].c);s.s.c=Math.min(s.s.c,J[0].c)}if(!v.c)v.c=[];if(R.biff<=5&&R.biff>=2)p={a:"SheetJ5",t:J[1]};else{var de=D[J[2]];p={a:J[1],t:de.TxO.t};if(J[3]!=null&&!(J[3]&2))v.c.hidden=true}v.c.push(p)}break;case 2173:uh(y[J.ixfe],J.ext);break;case 125:{if(!R.cellStyles)break;while(J.e>=J.s){P[J.e--]={width:J.w/256,level:J.level||0,hidden:!!(J.flags&1)};if(!M){M=true;fc(J.w/256)}lc(P[J.e+1])}}break;case 520:{var ve={};if(J.level!=null){L[J.r]=ve;ve.level=J.level}if(J.hidden){L[J.r]=ve;ve.hidden=true}if(J.hpt){L[J.r]=ve;ve.hpt=J.hpt;ve.hpx=uc(J.hpt)}}break;case 38:;case 39:;case 40:;case 41:if(!n["!margins"])kv(n["!margins"]={});n["!margins"][{38:"left",39:"right",40:"top",41:"bottom"}[j]]=J;break;case 161:if(!n["!margins"])kv(n["!margins"]={});n["!margins"].header=J.header;n["!margins"].footer=J.footer;break;case 574:if(J.RTL)C.Views[0].RTL=true;break;case 146:E=J;break;case 2198:N=J;break;case 140:A=J;break;case 442:{if(!c)C.WBProps.CodeName=J||"ThisWorkbook";else _.CodeName=J||_.name}break;}}else{if(!Y)console.error("Missing Info for XLS Record 0x"+j.toString(16));e.l+=K}}t.SheetNames=ir(i).sort(function(e,r){return Number(e)-Number(r)}).map(function(e){return i[e].name});if(!r.bookSheets)t.Sheets=a;if(!t.SheetNames.length&&h["!ref"]){t.SheetNames.push("Sheet1");if(t.Sheets)t.Sheets["Sheet1"]=h}else t.Preamble=h;if(t.Sheets)V.forEach(function(e,r){t.Sheets[t.SheetNames[r]]["!autofilter"]=e});t.Strings=o;t.SSF=Tr(q);if(R.enc)t.Encryption=R.enc;if(N)t.Themes=N;t.Metadata={};if(A!==undefined)t.Metadata.Country=A;if(U.names.length>0)C.Names=U.names;t.Workbook=C;return t}var $g={SI:"e0859ff2f94f6810ab9108002b27b3d9",DSI:"02d5cdd59c2e1b10939708002b2cf9ae",UDI:"05d5cdd59c2e1b10939708002b2cf9ae"};function Xg(e,r,t){var a=Qe.find(e,"/!DocumentSummaryInformation");if(a&&a.size>0)try{var n=us(a,ti,$g.DSI);for(var i in n)r[i]=n[i]}catch(s){if(t.WTF)throw s}var f=Qe.find(e,"/!SummaryInformation");if(f&&f.size>0)try{var l=us(f,ai,$g.SI);for(var o in l)if(r[o]==null)r[o]=l[o]}catch(s){if(t.WTF)throw s}if(r.HeadingPairs&&r.TitlesOfParts){Pi(r.HeadingPairs,r.TitlesOfParts,r,t);delete r.HeadingPairs;delete r.TitlesOfParts}}function Gg(e,r){var t=[],a=[],n=[];var i=0,s;var f=sr(ti,"n");var l=sr(ai,"n");if(e.Props){s=ir(e.Props);for(i=0;i<s.length;++i)(Object.prototype.hasOwnProperty.call(f,s[i])?t:Object.prototype.hasOwnProperty.call(l,s[i])?a:n).push([s[i],e.Props[s[i]]])}if(e.Custprops){s=ir(e.Custprops);for(i=0;i<s.length;++i)if(!Object.prototype.hasOwnProperty.call(e.Props||{},s[i]))(Object.prototype.hasOwnProperty.call(f,s[i])?t:Object.prototype.hasOwnProperty.call(l,s[i])?a:n).push([s[i],e.Custprops[s[i]]])}var o=[];for(i=0;i<n.length;++i){if(os.indexOf(n[i][0])>-1||Di.indexOf(n[i][0])>-1)continue;if(n[i][1]==null)continue;o.push(n[i])}if(a.length)Qe.utils.cfb_add(r,"/SummaryInformation",ds(a,$g.SI,l,ai));if(t.length||o.length)Qe.utils.cfb_add(r,"/DocumentSummaryInformation",ds(t,$g.DSI,f,ti,o.length?o:null,$g.UDI))}function jg(e,r){if(!r)r={};Zw(r);o();if(r.codepage)s(r.codepage);var t,a;if(e.FullPaths){if(Qe.find(e,"/encryption"))throw new Error("File is password-protected");t=Qe.find(e,"!CompObj");a=Qe.find(e,"/Workbook")||Qe.find(e,"/Book")}else{switch(r.type){case"base64":e=I(E(e));break;case"binary":e=I(e);break;case"buffer":break;case"array":if(!Array.isArray(e))e=Array.prototype.slice.call(e);break;}xa(e,0);a={content:e}}var n;var i;if(t)Ug(t);if(r.bookProps&&!r.bookSheets)n={};else{var f=C?"buffer":"array";if(a&&a.content)n=Vg(a.content,r);else if((i=Qe.find(e,"PerfectOffice_MAIN"))&&i.content)n=ao.to_workbook(i.content,(r.type=f,r));else if((i=Qe.find(e,"NativeContent_MAIN"))&&i.content)n=ao.to_workbook(i.content,(r.type=f,r));else if((i=Qe.find(e,"MN0"))&&i.content)throw new Error("Unsupported Works 4
Line truncated
|
||||
i.push(Ut("td",v,s))}var p="<tr>";return p+i.join("")+"</tr>"}var Ab='<html><head><meta charset="utf-8"/><title>SheetJS Table Export</title></head><body>';var yb="</body></html>";function Eb(e,r){var t=Vr(e,"table");if(!t||t.length==0)throw new Error("Invalid HTML: could not find <table>");if(t.length==1){var a=tn(kb(t[0],r),r);a.bookType="html";return a}var n=Vk();t.forEach(function(e,t){$k(n,kb(e,r),"Sheet"+(t+1))});n.bookType="html";return n}function Cb(e,r,t){var a=[];return a.join("")+"<table"+(t&&t.id?' id="'+t.id+'"':"")+">"}function _b(e,r){var t=r||{};var a=t.header!=null?t.header:Ab;var n=t.footer!=null?t.footer:yb;var i=[a];var s=Ya(e["!ref"]||"A1");i.push(Cb(e,s,t));if(e["!ref"])for(var f=s.s.r;f<=s.e.r;++f)i.push(Tb(e,s,f,t));i.push("</table>"+n);return i.join("")}function Sb(e,r,t){var a=r.rows;if(!a){throw"Unsupported origin when "+r.tagName+" is not a TABLE"}var n=t||{};var i=e["!data"]!=null;var s=0,f=0;if(n.origin!=null){if(typeof n.origin=="number")s=n.origin;else{var l=typeof n.origin=="string"?ja(n.origin):n.origin;s=l.r;f=l.c}}var o=Math.min(n.sheetRows||1e7,a.length);var c={s:{r:0,c:0},e:{r:s,c:f}};if(e["!ref"]){var h=Ya(e["!ref"]);c.s.r=Math.min(c.s.r,h.s.r);c.s.c=Math.min(c.s.c,h.s.c);c.e.r=Math.max(c.e.r,h.e.r);c.e.c=Math.max(c.e.c,h.e.c);if(s==-1)c.e.r=s=h.e.r+1}var u=[],d=0;var v=e["!rows"]||(e["!rows"]=[]);var p=0,m=0,g=0,b=0,w=0,k=0;if(!e["!cols"])e["!cols"]=[];for(;p<a.length&&m<o;++p){var T=a[p];if(Ib(T)){if(n.display)continue;v[m]={hidden:true}}var A=T.cells;for(g=b=0;g<A.length;++g){var y=A[g];if(n.display&&Ib(y))continue;var E=y.hasAttribute("data-v")?y.getAttribute("data-v"):y.hasAttribute("v")?y.getAttribute("v"):Rt(y.innerHTML);var C=y.getAttribute("data-z")||y.getAttribute("z");for(d=0;d<u.length;++d){var _=u[d];if(_.s.c==b+f&&_.s.r<m+s&&m+s<=_.e.r){b=_.e.c+1-f;d=-1}}k=+y.getAttribute("colspan")||1;if((w=+y.getAttribute("rowspan")||1)>1||k>1)u.push({s:{r:m+s,c:b+f},e:{r:m+s+(w||1)-1,c:b+f+(k||1)-1}});var S={t:"s",v:E};var x=y.getAttribute("data-t")||y.getAttribute("t")||"";if(E!=null){if(E.length==0)S.t=x||"z";else if(n.raw||E.trim().length==0||x=="s"){}else if(E==="TRUE")S={t:"b",v:true};else if(E==="FALSE")S={t:"b",v:false};else if(!isNaN(yr(E)))S={t:"n",v:yr(E)};else if(!isNaN(Rr(E).getDate())){S={t:"d",v:wr(E)};if(n.UTC)S.v=Dr(S.v);if(!n.cellDates)S={t:"n",v:dr(S.v)};S.z=n.dateNF||q[14]}}if(S.z===undefined&&C!=null)S.z=C;var O="",I=y.getElementsByTagName("A");if(I&&I.length)for(var R=0;R<I.length;++R)if(I[R].hasAttribute("href")){O=I[R].getAttribute("href");if(O.charAt(0)!="#")break}if(O&&O.charAt(0)!="#"&&O.slice(0,11).toLowerCase()!="javascript:")S.l={Target:O};if(i){if(!e["!data"][m+s])e["!data"][m+s]=[];e["!data"][m+s][b+f]=S}else e[Ka({c:b+f,r:m+s})]=S;if(c.e.c<b+f)c.e.c=b+f;b+=k}++m}if(u.length)e["!merges"]=(e["!merges"]||[]).concat(u);c.e.r=Math.max(c.e.r,m-1+s);e["!ref"]=Za(c);if(m>=o)e["!fullref"]=Za((c.e.r=a.length-p+m-1+s,c));return e}function xb(e,r){var t=r||{};var a={};if(t.dense)a["!data"]=[];return Sb(a,e,r)}function Ob(e,r){var t=tn(xb(e,r),r);return t}function Ib(e){var r="";var t=Rb(e);if(t)r=t(e).getPropertyValue("display");if(!r)r=e.style&&e.style.display;return r==="none"}function Rb(e){if(e.ownerDocument.defaultView&&typeof e.ownerDocument.defaultView.getComputedStyle==="function")return e.ownerDocument.defaultView.getComputedStyle;if(typeof getComputedStyle==="function")return getComputedStyle;return null}function Nb(e){var r=e.replace(/[\t\r\n]/g," ").trim().replace(/ +/g," ").replace(/<text:s\/>/g," ").replace(/<text:s text:c="(\d+)"\/>/g,function(e,r){return Array(parseInt(r,10)+1).join(" ")}).replace(/<text:tab[^<>]*\/>/g,"\t").replace(/<text:line-break\/>/g,"\n");var t=vt(r.replace(/<[^<>]*>/g,""));return[t]}function Fb(e,r,t){var a=t||{};var n=zt(e);Ht.lastIndex=0;n=Pr(Mr(n,"<!--","-->"));var i,s,f="",l="",o,c=0,h=-1,u=false,d="";while(i=Ht.exec(n)){switch(i[3]=i[3].replace(/_[\s\S]*$/,"")){case"number-style":;case"currency-style":;case"percentage-style":;case"date-style":;case"time-style":;case"text-style":if(i[1]==="/"){u=false;if(s["truncate-on-overflow"]=="false"){if(f.match(/h/))f=f.replace(/h+/,"[$&]");else if(f.match(/m/))f=f.replace(/m+/,"[$&]");else if(f.match(/s/))f=f.replace(/s+/,"[$&]")}a[s.name]=f;f=""}else if(i[0].charAt(i[0].length-2)!=="/"){u=true;f="";s=ct(i[0],false)}break;case"boolean-style":if(i[1]==="/"){u=false;a[s.name]="General";f=""}else if(i[0].charAt(i[0].length-2)!=="/"){u=true;f="";s=ct(i[0],false)}break;case"boolean":f+="General";break;case"text":if(i[1]==="/"){d=n.slice(h,Ht.lastIndex-i[0].length);if(d=="%"&&s[0]=="<number:percentage-style")f+="%";else f+='"'+d.replace(/"/g,'""')+'"'}else if(i[0].charAt(i[0].length-2)!=="/"){h=Ht.lastIndex}break;case"day":{o=ct(i[0],false);switch(o["style"]){case"short":f+="d";break;case"long":f+="dd";break;default:f+="dd";break;}}break;case"day-of-week":{o=ct(i[0],false);switch(o["style"]){case"short":f+="ddd";break;case"long":f+="dddd";break;default:f+="ddd";break;}}brLine truncated
|
||||
"xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"});var s=Mt({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});if(r.bookType=="fods"){n.push("<office:document"+i+s+">\n");n.push(xi().replace(/<office:document-meta[^<>]*?>/,"").replace(/<\/office:document-meta>/,"")+"\n")}else n.push("<office:document-content"+i+">\n");var f=a(n,e);n.push(" <office:body>\n");n.push(" <office:spreadsheet>\n");if(((e.Workbook||{}).WBProps||{}).date1904)n.push(' <table:calculation-settings table:case-sensitive="false" table:search-criteria-must-apply-to-whole-cell="true" table:use-wildcards="true" table:use-regular-expressions="false" table:automatic-find-labels="false">\n <table:null-date table:date-value="1904-01-01"/>\n </table:calculation-settings>\n');for(var l=0;l!=e.SheetNames.length;++l)n.push(t(e.Sheets[e.SheetNames[l]],e,l,r,f,((e.Workbook||{}).WBProps||{}).date1904));if((e.Workbook||{}).Names)n.push(Bb(e.Workbook.Names,e.SheetNames,-1));n.push(" </office:spreadsheet>\n");n.push(" </office:body>\n");if(r.bookType=="fods")n.push("</office:document>");else n.push("</office:document-content>");return n.join("")}}();function zb(e,r){if(r.bookType=="fods")return Wb(e,r);var t=et();var a="";var n=[];var i=[];a="mimetype";Qr(t,a,"application/vnd.oasis.opendocument.spreadsheet");a="content.xml";Qr(t,a,Wb(e,r));n.push([a,"text/xml"]);i.push([a,"ContentFile"]);a="styles.xml";Qr(t,a,Mb(e,r));n.push([a,"text/xml"]);i.push([a,"StylesFile"]);a="meta.xml";Qr(t,a,at+xi());n.push([a,"text/xml"]);i.push([a,"MetadataFile"]);a="manifest.rdf";Qr(t,a,Si(i));n.push([a,"application/rdf+xml"]);a="META-INF/manifest.xml";Qr(t,a,Ei(n));return t}var Hb=function(){try{if(typeof Uint8Array=="undefined")return"slice";if(typeof Uint8Array.prototype.subarray=="undefined")return"slice";if(typeof Buffer!=="undefined"){if(typeof Buffer.prototype.subarray=="undefined")return"slice";if((typeof Buffer.from=="function"?Buffer.from([72,62]):new Buffer([72,62]))instanceof Uint8Array)return"subarray";return"slice"}return"subarray"}catch(e){return"slice"}}();function Vb(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function $b(e){return typeof TextDecoder!="undefined"?(new TextDecoder).decode(e):Ot(N(e))}function Xb(e){return typeof TextEncoder!="undefined"?(new TextEncoder).encode(e):I(It(e))}function Gb(e){var r=0;for(var t=0;t<e.length;++t)r+=e[t].length;var a=new Uint8Array(r);var n=0;for(t=0;t<e.length;++t){var i=e[t],s=i.length;if(s<250){for(var f=0;f<s;++f)a[n++]=i[f]}else{a.set(i,n);n+=s}}return a}function jb(e){e-=e>>1&1431655765;e=(e&858993459)+(e>>2&858993459);return(e+(e>>4)&252645135)*16843009>>>24}function Kb(e,r){var t=(e[r+15]&127)<<7|e[r+14]>>1;var a=e[r+14]&1;for(var n=r+13;n>=r;--n)a=a*256+e[n];return(e[r+15]&128?-a:a)*Math.pow(10,t-6176)}function Yb(e,r,t){var a=Math.floor(t==0?0:Math.LOG10E*Math.log(Math.abs(t)))+6176-16;var n=t/Math.pow(10,a-6176);e[r+15]|=a>>7;e[r+14]|=(a&127)<<1;for(var i=0;n>=1;++i,n/=256)e[r+i]=n&255;e[r+15]|=t>=0?0:128}function Zb(e,r){var t=r.l;var a=e[t]&127;e:if(e[t++]>=128){a|=(e[t]&127)<<7;if(e[t++]<128)break e;a|=(e[t]&127)<<14;if(e[t++]<128)break e;a|=(e[t]&127)<<21;if(e[t++]<128)break e;a+=(e[t]&127)*Math.pow(2,28);++t;if(e[t++]<128)break e;a+=(e[t]&127)*Math.pow(2,35);++t;if(e[t++]<128)break e;a+=(e[t]&127)*Math.pow(2,42);++t;if(e[t++]<128)break e}r.l=t;return a}function Jb(e){var r=new Uint8Array(7);r[0]=e&127;var t=1;e:if(e>127){r[t-1]|=128;r[t]=e>>7&127;++t;if(e<=16383)break e;r[t-1]|=128;r[t]=e>>14&127;++t;if(e<=2097151)break e;r[t-1]|=128;r[t]=e>>21&127;++t;if(e<=268435455)break e;r[t-1]|=128;r[t]=e/256>>>21&127;++t;if(e<=34359738367)break e;r[t-1]|=128;r[t]=e/65536>>>21&127;++t;if(e<=4398046511103)break e;r[t-1]|=128;r[t]=e/16777216>>>21&127;++t}return r[Hb](0,t)}function qb(e){var r={l:0};var t=[];while(r.l<e.length)t.push(Zb(e,r));return t}function Qb(e){return Gb(e.map(function(e){return Jb(e)}))}function ew(e){var r=0,t=e[r]&127;if(e[r++]<128)return t;t|=(e[r]&127)<<7;if(e[r++]<128)return t;t|=(e[r]&127)<<14;if(e[r++]<128)return t;t|=(e[r]&127)<<21;if(e[r++]<128)return t;t|=(e[r]&15)<<28;return t}function rw(e){var r=0,t=e[r]&127,a=0;e:if(e[r++]>=128){t|=(e[r]&127)<<7;if(e[r++]<128)break e;t|=(e[r]&127)<<14;if(e[r++]<128)break e;t|=(e[r]&127)<<21;if(e[r++]<128)break e;t|=(e[rLine truncated
|
||||
}],[{type:2,data:new Uint8Array([2,0,0])}],[{type:2,data:new Uint8Array([2,0,0])}],[],[],[],[],[{type:0,data:Jb(0)}],[],[{type:0,data:Jb(0)}]])});t[1]=[{type:0,data:Jb(Math.max(l+1,ew(t[1][0].data)))}];Vw(t,r,f,l);e.messages[0].data=aw(t)})}n[2][0].data=bw(l);t.data=aw(n)})}p[3][0].data=aw(g)}o[4][0].data=aw(p);a.messages[0].data=aw(o)})}function Gw(e,r,t,a,n,i){var s=[];Bw(e,r,i,function(e){var r=tw(e.messages[0].data);{r[1]=[{type:2,data:Xb(a)}];s=nw(r[2],gw)}e.messages[0].data=aw(r)});var f=Ww(e,r,s[0]);var l=gw(tw(f.messages[0].data)[2][0].data);Bw(e,r,l,function(a,n){return Kw(e,r,t,a,n,l)})}var jw=true;function Kw(e,r,t,a,n,i){if(!t["!ref"])throw new Error("Cannot export empty sheet to NUMBERS");var s=Ya(t["!ref"]);s.s.r=s.s.c=0;var f=false;if(s.e.c>999){f=true;s.e.c=999}if(s.e.r>999999){f=true;s.e.r=999999}if(f)console.error("Truncating to ".concat(Za(s)));var l=[];if(t["!data"])l=t["!data"];else{var o=[];for(var c=0;c<=s.e.c;++c)o[c]=Va(c);for(var h=0;h<=s.e.r;++h){l[h]=[];var u=""+(h+1);for(c=0;c<=s.e.c;++c){var d=t[o[c]+u];if(!d)continue;l[h][c]=d}}}var v={cmnt:[{a:"~54ee77S~",t:"... the people who are crazy enough to think they can change the world, are the ones who do."}],ferr:[],fmla:[],nfmt:[],ofmt:[],rsst:[{v:"~54ee77S~",l:"https://sheetjs.com/"}],sst:["~Sh33tJ5~"]};var p=tw(a.messages[0].data);{p[6][0].data=Jb(s.e.r+1);p[7][0].data=Jb(s.e.c+1);delete p[46];var m=tw(p[4][0].data);{var g=gw(tw(m[1][0].data)[2][0].data);Bw(e,r,g,function(e,r){var t;var a=tw(e.messages[0].data);if((t=a==null?void 0:a[2])==null?void 0:t[0])for(var n=0;n<l.length;++n){var i=tw(a[2][0].data);i[1][0].data=Jb(n);i[4][0].data=Jb(l[n].length);a[2][n]={type:a[2][0].type,data:aw(i)}}e.messages[0].data=aw(a)});var b=gw(m[2][0].data);Bw(e,r,b,function(e,r){var t=tw(e.messages[0].data);for(var a=0;a<=s.e.c;++a){var n=tw(t[2][0].data);n[1][0].data=Jb(a);n[4][0].data=Jb(s.e.r+1);t[2][a]={type:t[2][0].type,data:aw(n)}}e.messages[0].data=aw(t)});var w=tw(m[9][0].data);w[1]=[];var k=tw(m[3][0].data);{var T=256;k[2]=[{type:0,data:Jb(T)}];var A=gw(tw(k[1][0].data)[2][0].data);var y=function(){var t=Ww(e,r,2);var a=tw(t.messages[0].data);var n=a[3].filter(function(e){return ew(tw(e.data)[1][0].data)==A});return(n==null?void 0:n.length)?ew(tw(n[0].data)[12][0].data):0}();{Qe.utils.cfb_del(e,r[A].location);Bw(e,r,2,function(e){var t=tw(e.messages[0].data);t[3]=t[3].filter(function(e){return ew(tw(e.data)[1][0].data)!=A});$w(t,r,i,A);e.messages[0].data=aw(t)});kw(a,A)}k[1]=[];var E=Math.ceil((s.e.r+1)/T);for(var C=0;C<E;++C){var _=Dw({deps:[],location:"",type:6002},r);r[_].location="Root Entry/Index/Tables/Tile-".concat(_,".iwa");var S=[[],[{type:0,data:Jb(0)}],[{type:0,data:Jb(Math.min(s.e.r+1,(C+1)*T))}],[{type:0,data:Jb(0)}],[{type:0,data:Jb(Math.min((C+1)*T,s.e.r+1)-C*T)}],[],[{type:0,data:Jb(5)}],[{type:0,data:Jb(1)}],[{type:0,data:Jb(jw?1:0)}]];for(var x=C*T;x<=Math.min(s.e.r,(C+1)*T-1);++x){var O=Nw(l[x],v,jw);O[1][0].data=Jb(x-C*T);S[5].push({data:aw(O),type:2})}k[1].push({type:2,data:aw([[],[{type:0,data:Jb(C)}],[{type:2,data:bw(_)}]])});var I={id:_,messages:[Fw(6002,aw(S))]};var R=ow(sw([I]));Qe.utils.cfb_add(e,"/Index/Tables/Tile-".concat(_,".iwa"),R);Bw(e,r,2,function(e){var t=tw(e.messages[0].data);t[3].push({type:2,data:aw([[],[{type:0,data:Jb(_)}],[{type:2,data:Xb("Tables/Tile")}],[{type:2,data:Xb("Tables/Tile-".concat(_))}],[{type:2,data:new Uint8Array([2,0,0])}],[{type:2,data:new Uint8Array([2,0,0])}],[],[],[],[],[{type:0,data:Jb(0)}],[],[{type:0,data:Jb(y)}]])});t[1]=[{type:0,data:Jb(Math.max(_+1,ew(t[1][0].data)))}];Vw(t,r,i,_);e.messages[0].data=aw(t)});ww(a,_);w[1].push({type:2,data:aw([[],[{type:0,data:Jb(C*T)}],[{type:0,data:Jb(C)}]])})}}m[3][0].data=aw(k);m[9][0].data=aw(w);m[10]=[{type:2,data:new Uint8Array([])}];if(t["!merges"]){var N=Dw({type:6144,deps:[i],location:r[i].location},r);n.push({id:N,messages:[Fw(6144,aw([[],t["!merges"].map(function(e){return{type:2,data:aw([[],[{type:2,data:aw([[],[{type:5,data:new Uint8Array(new Uint16Array([e.s.r,e.s.c]).buffer)}]])}],[{type:2,data:aw([[],[{type:5,data:new Uint8Array(new Uint16Array([e.e.r-e.s.r+1,e.e.c-e.s.c+1]).buffer)}]])}]])}})]))]});m[13]=[{type:2,data:bw(N)}];Bw(e,r,2,function(e){var t=tw(e.messages[0].data);Vw(t,r,i,N);e.messages[0].data=aw(t)});ww(a,N)}else delete m[13];var F=gw(m[4][0].data);Bw(e,r,F,function(e){var r=tw(e.messages[0].data);{r[3]=[];v.sst.forEach(function(e,t){if(t==0)return;r[3].push({type:2,data:aw([[],[{type:0,data:Jb(t)}],[{type:0,data:Jb(1)}],[{type:2,data:Xb(e)}]])})})}e.messages[0].data=aw(r)});var D=gw(m[17][0].data);Bw(e,r,D,function(t){var a=tw(t.messages[0].data);a[3]=[];var n=[904980,903835,903815,903845];v.rsst.forEach(function(i,s){if(s==0)return;var f=[[],[{type:0,data:new Uint8Array([5])}],[],[{type:2,data:Xb(i.v)}]];f[10]=[{type:0,data:new Uint8Array([1])}];f[19]=[{type:2,data:new Uint8Array([10,6,8,0,18,2,101,110])}];f[5]=[{type:2,data:new Uint8Array([10,8,8,0,18,4,8,155,149,55])}];f[2]=[{type:2,data:new Uint8ArrayLine truncated
|
||||
w[f]=1}i[b]=f;}}for(g=l.s.r+n;g<=l.e.r;++g){if((T[g]||{}).hidden)continue;var A=Nk(e,l,g,u,a,i,o);if(A.isempty===false||(a===1?o.blankrows!==false:!!o.blankrows))d[v++]=A.row}d.length=v;return d}var Dk=/"/g;function Pk(e,r,t,a,n,i,s,f){var l=true;var o=[],c="",h=Ba(t);var u=e["!data"]!=null;var d=u&&e["!data"][t]||[];for(var v=r.s.c;v<=r.e.c;++v){if(!a[v])continue;var p=u?d[v]:e[a[v]+h];if(p==null)c="";else if(p.v!=null){l=false;c=""+(f.rawNumbers&&p.t=="n"?p.v:rn(p,null,f));for(var m=0,g=0;m!==c.length;++m)if((g=c.charCodeAt(m))===n||g===i||g===34||f.forceQuotes){c='"'+c.replace(Dk,'""')+'"';break}if(c=="ID")c='"ID"'}else if(p.f!=null&&!p.F){l=false;c="="+p.f;if(c.indexOf(",")>=0)c='"'+c.replace(Dk,'""')+'"'}else c="";o.push(c)}if(f.strip)while(o[o.length-1]==="")--o.length;if(f.blankrows===false&&l)return null;return o.join(s)}function Lk(e,r){var t=[];var a=r==null?{}:r;if(e==null||e["!ref"]==null)return"";var n=Qa(e["!ref"]);var i=a.FS!==undefined?a.FS:",",s=i.charCodeAt(0);var f=a.RS!==undefined?a.RS:"\n",l=f.charCodeAt(0);var o="",c=[];var h=a.skipHidden&&e["!cols"]||[];var u=a.skipHidden&&e["!rows"]||[];for(var d=n.s.c;d<=n.e.c;++d)if(!(h[d]||{}).hidden)c[d]=Va(d);var v=0;for(var p=n.s.r;p<=n.e.r;++p){if((u[p]||{}).hidden)continue;o=Pk(e,n,p,c,s,l,i,a);if(o==null){continue}if(o||a.blankrows!==false)t.push((v++?f:"")+o)}return t.join("")}function Mk(e,r){if(!r)r={};r.FS="\t";r.RS="\n";var t=Lk(e,r);if(typeof a=="undefined"||r.type=="string")return t;var n=a.utils.encode(1200,t,"str");return String.fromCharCode(255)+String.fromCharCode(254)+n}function Uk(e){var r="",t,a="";if(e==null||e["!ref"]==null)return[];var n=Qa(e["!ref"]),i="",s=[],f;var l=[];var o=e["!data"]!=null;for(f=n.s.c;f<=n.e.c;++f)s[f]=Va(f);for(var c=n.s.r;c<=n.e.r;++c){i=Ba(c);for(f=n.s.c;f<=n.e.c;++f){r=s[f]+i;t=o?(e["!data"][c]||[])[f]:e[r];a="";if(t===undefined)continue;else if(t.F!=null){r=t.F;if(!t.f)continue;a=t.f;if(r.indexOf(":")==-1)r=r+":"+r}if(t.f!=null)a=t.f;else if(t.t=="z")continue;else if(t.t=="n"&&t.v!=null)a=""+t.v;else if(t.t=="b")a=t.v?"TRUE":"FALSE";else if(t.w!==undefined)a="'"+t.w;else if(t.v===undefined)continue;else if(t.t=="s")a="'"+t.v;else a=""+t.v;l[l.length]=r+"="+a}}return l}function Bk(e,r,t){var a=t||{};var n=e?e["!data"]!=null:a.dense;if(b!=null&&n==null)n=b;var i=+!a.skipHeader;var s=e||{};if(!e&&n)s["!data"]=[];var f=0,l=0;if(s&&a.origin!=null){if(typeof a.origin=="number")f=a.origin;else{var o=typeof a.origin=="string"?ja(a.origin):a.origin;f=o.r;l=o.c}}var c={s:{c:0,r:0},e:{c:l,r:f+r.length-1+i}};if(s["!ref"]){var h=Qa(s["!ref"]);c.e.c=Math.max(c.e.c,h.e.c);c.e.r=Math.max(c.e.r,h.e.r);if(f==-1){f=h.e.r+1;c.e.r=f+r.length-1+i}}else{if(f==-1){f=0;c.e.r=r.length-1+i}}var u=a.header||[],d=0;var v=[];r.forEach(function(e,r){if(n&&!s["!data"][f+r+i])s["!data"][f+r+i]=[];if(n)v=s["!data"][f+r+i];ir(e).forEach(function(t){if((d=u.indexOf(t))==-1)u[d=u.length]=t;var o=e[t];var c="z";var h="";var p=n?"":Va(l+d)+Ba(f+r+i);var m=n?v[l+d]:s[p];if(o&&typeof o==="object"&&!(o instanceof Date)){if(n)v[l+d]=o;else s[p]=o}else{if(typeof o=="number")c="n";else if(typeof o=="boolean")c="b";else if(typeof o=="string")c="s";else if(o instanceof Date){c="d";if(!a.UTC)o=Dr(o);if(!a.cellDates){c="n";o=dr(o)}h=m!=null&&m.z&&Le(m.z)?m.z:a.dateNF||q[14]}else if(o===null&&a.nullError){c="e";o=0}if(!m){if(!n)s[p]=m={t:c,v:o};else v[l+d]=m={t:c,v:o}}else{m.t=c;m.v=o;delete m.w;delete m.R;if(h)m.z=h}if(h)m.z=h}})});c.e.c=Math.max(c.e.c,l+u.length-1);var p=Ba(f);if(n&&!s["!data"][f])s["!data"][f]=[];if(i)for(d=0;d<u.length;++d){if(n)s["!data"][f][d+l]={t:"s",v:u[d]};else s[Va(d+l)+p]={t:"s",v:u[d]}}s["!ref"]=Za(c);return s}function Wk(e,r){return Bk(null,e,r)}function zk(e,r,t){if(typeof r=="string"){if(e["!data"]!=null){var a=ja(r);if(!e["!data"][a.r])e["!data"][a.r]=[];return e["!data"][a.r][a.c]||(e["!data"][a.r][a.c]={t:"z"})}return e[r]||(e[r]={t:"z"})}if(typeof r!="number")return zk(e,Ka(r));return zk(e,Va(t||0)+Ba(r))}function Hk(e,r){if(typeof r=="number"){if(r>=0&&e.SheetNames.length>r)return r;throw new Error("Cannot find sheet # "+r)}else if(typeof r=="string"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error("Cannot find sheet name |"+r+"|")}else throw new Error("Cannot find sheet |"+r+"|")}function Vk(e,r){var t={SheetNames:[],Sheets:{}};if(e)$k(t,e,r||"Sheet1");return t}function $k(e,r,t,a){var n=1;if(!t)for(;n<=65535;++n,t=undefined)if(e.SheetNames.indexOf(t="Sheet"+n)==-1)break;if(!t||e.SheetNames.length>=65535)throw new Error("Too many worksheets");if(a&&e.SheetNames.indexOf(t)>=0&&t.length<32){var i=t.match(/\d+$/);n=i&&+i[0]||0;var s=i&&t.slice(0,i.index)||t;for(++n;n<=65535;++n)if(e.SheetNames.indexOf(t=s+n)==-1)break}Nm(t);if(e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");e.SheetNames.push(t);e.Sheets[t]=r;return t}function Xk(e,r,t){if(!e.Workbook)e.Workbook={};if(!e.Workbook.Sheets)e.Workbook.Sheets=[];var a=Hk(e,r);if(!e.Workbook.Sheets[a])e.WorkbookLine truncated
|
||||
|
||||
if(typeof exports!=="undefined") {console.log('sheetjs0'); make_xlsx_lib(exports); }
|
||||
else if(typeof module!=="undefined"&&module.exports) {console.log('sheetjs1');make_xlsx_lib(module.exports);}
|
||||
else if(typeof define==="function"&&define.amd){
|
||||
console.log('sheetjs2');
|
||||
define("xlsx",function(){if(!XLSX.version)make_xlsx_lib(XLSX);return XLSX});
|
||||
}
|
||||
else {
|
||||
console.log('sheetjs2');
|
||||
make_xlsx_lib(XLSX);
|
||||
}
|
||||
if(typeof window!=="undefined"&&!window.XLSX){
|
||||
console.log('window...')
|
||||
try{window.XLSX=XLSX}catch(e){}
|
||||
}
|
||||
|
||||
return(XLSX)}
|
||||
@@ -1,24 +0,0 @@
|
||||
/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
||||
var DO_NOT_EXPORT_CODEPAGE=true;var cptable={version:"1.15.0"};cptable[437]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[620]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàąçêëèïîćÄĄĘęłôöĆûùŚÖܢ٥śƒŹŻóÓńŃźż¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[737]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[850]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´±‗¾¶§÷¸°¨·¹³²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[852]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´˝˛ˇ˘§÷¸°¨˙űŘř■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[857]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´±�¾¶§÷¸°¨·¹³²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[861]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[865]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ",r=[],t={};for(var a=0;a!=e.length;++a){if(e.charCodeAt(a)!==65533)t[e.charAt(a)]=a;r[a]=e.charAt(a)}return{enc:t,dec:r}}();cptable[866]=function(){var e="\0\b\t\n\x0B\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\Line truncated
|
||||
}t[153]="����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�".split("");for(a=0;a!=t[153].length;++a)if(t[153][a].charCodeAt(0)!==65533){r[t[153][a]]=39168+a;e[39168+a]=t[153][a]}t[154]="����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�".split("");for(a=0;a!=t[154].length;++a)if(t[154][a].charCodeAt(0)!==65533){r[t[154][a]]=39424+a;e[39424+a]=t[154][a]}t[155]="����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�".split("");for(a=0;a!=t[155].length;++a)if(t[155][a].charCodeAt(0)!==65533){r[t[155][a]]=39680+a;e[39680+a]=t[155][a]}t[156]="����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�".split("");for(a=0;a!=t[156].length;++a)if(t[156][a].charCodeAt(0)!==65533){r[t[156][a]]=39936+a;e[39936+a]=t[156][a]}t[157]="����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�".split("");for(a=0;a!=t[157].length;++a)if(t[157][a].charCodeAt(0)!==65533){r[t[157][a]]=40192+a;e[40192+a]=t[157][a]}t[158]="����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙Line truncated
|
||||
for(a=0;a!=t[236].length;++a)if(t[236][a].charCodeAt(0)!==65533){r[t[236][a]]=60416+a;e[60416+a]=t[236][a]}t[237]="����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split("");for(a=0;a!=t[237].length;++a)if(t[237][a].charCodeAt(0)!==65533){r[t[237][a]]=60672+a;e[60672+a]=t[237][a]}t[238]="����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split("");for(a=0;a!=t[238].length;++a)if(t[238][a].charCodeAt(0)!==65533){r[t[238][a]]=60928+a;e[60928+a]=t[238][a]}t[239]="����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split("");for(a=0;a!=t[239].length;++a)if(t[239][a].charCodeAt(0)!==65533){r[t[239][a]]=61184+a;e[61184+a]=t[239][a]}t[240]="����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split("");for(a=0;a!=t[240].length;++a)if(t[240][a].charCodeAt(0)!==65533){r[t[240][a]]=61440+a;e[61440+a]=t[240][a]}t[241]="����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split("");for(a=0;a!=t[241].length;++a)if(t[241][a].charCodeAt(0)!==65533){r[t[241][a]]=61696+a;e[61696+a]=t[241][a]}t[242]="����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀Line truncated
|
||||
for(a=0;a!=t[193].length;++a)if(t[193][a].charCodeAt(0)!==65533){r[t[193][a]]=49408+a;e[49408+a]=t[193][a]}t[194]="�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�".split("");for(a=0;a!=t[194].length;++a)if(t[194][a].charCodeAt(0)!==65533){r[t[194][a]]=49664+a;e[49664+a]=t[194][a]}t[195]="�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�".split("");for(a=0;a!=t[195].length;++a)if(t[195][a].charCodeAt(0)!==65533){r[t[195][a]]=49920+a;e[49920+a]=t[195][a]}t[196]="�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�".split("");for(a=0;a!=t[196].length;++a)if(t[196][a].charCodeAt(0)!==65533){r[t[196][a]]=50176+a;e[50176+a]=t[196][a]}t[197]="�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�".split("");for(a=0;a!=t[197].length;++a)if(t[197][a].charCodeAt(0)!==65533){r[t[197][a]]=50432+a;e[50432+a]=t[197][a]}t[198]="�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�".split("");for(a=0;a!=t[198].length;++a)if(t[198][a].charCodeAt(0)!==65533){r[t[198][a]]=50688+a;e[50688+a]=t[198][a]}t[199]="����������������������������������������������������������������������������������������������������������������������������������������Line truncated
|
||||
for(a=0;a!=t[184].length;++a)if(t[184][a].charCodeAt(0)!==65533){r[t[184][a]]=47104+a;e[47104+a]=t[184][a]}t[185]="����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�".split("");for(a=0;a!=t[185].length;++a)if(t[185][a].charCodeAt(0)!==65533){r[t[185][a]]=47360+a;e[47360+a]=t[185][a]}t[186]="����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�".split("");for(a=0;a!=t[186].length;++a)if(t[186][a].charCodeAt(0)!==65533){r[t[186][a]]=47616+a;e[47616+a]=t[186][a]}t[187]="����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�".split("");for(a=0;a!=t[187].length;++a)if(t[187][a].charCodeAt(0)!==65533){r[t[187][a]]=47872+a;e[47872+a]=t[187][a]}t[188]="����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�".split("");for(a=0;a!=t[188].length;++a)if(t[188][a].charCodeAt(0)!==65533){r[t[188][a]]=48128+a;e[48128+a]=t[188][a]}t[189]="����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�".split("");for(a=0;a!=t[189].length;++a)if(t[189][a].charCodeAt(0)!==65533){r[t[189][a]]=48384+a;e[48384+a]=t[189][a]}t[190]="����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉���������Line truncated
|
||||
r[t[166][a]]=42496+a;e[42496+a]=t[166][a]}t[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split("");for(a=0;a!=t[167].length;++a)if(t[167][a].charCodeAt(0)!==65533){r[t[167][a]]=42752+a;e[42752+a]=t[167][a]}t[168]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split("");for(a=0;a!=t[168].length;++a)if(t[168][a].charCodeAt(0)!==65533){r[t[168][a]]=43008+a;e[43008+a]=t[168][a]}t[169]="��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split("");for(a=0;a!=t[169].length;++a)if(t[169][a].charCodeAt(0)!==65533){r[t[169][a]]=43264+a;e[43264+a]=t[169][a]}t[176]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split("");for(a=0;a!=t[176].length;++a)if(t[176][a].charCodeAt(0)!==65533){r[t[176][a]]=45056+a;e[45056+a]=t[176][a]}t[177]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split("");for(a=0;a!=t[177].length;++a)if(t[177][a].charCodeAt(0)!==65533){r[t[177][a]]=45312+a;e[45312+a]=t[177][a]}t[178]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不Line truncated
|
||||
n=Buffer.allocUnsafe(2*a);s=0;for(i=0;i<a;++i){f=e[i];if(f<128)n[s++]=t[f];else if(f<224){n[s++]=t[((f&31)<<6)+(e[i+1]&63)];++i}else if(f<240){n[s++]=t[((f&15)<<12)+((e[i+1]&63)<<6)+(e[i+2]&63)];i+=2}else{l=((f&7)<<18)+((e[i+1]&63)<<12)+((e[i+2]&63)<<6)+(e[i+3]&63);i+=3;if(l<65536)n[s++]=t[l];else{l-=65536;n[s++]=t[55296+(l>>10&1023)];n[s++]=t[56320+(l&1023)]}}}n=n.slice(0,s)}else{n=Buffer.allocUnsafe(a);for(i=0;i<a;++i)n[i]=t[e[i].charCodeAt(0)]}if(!r||r==="buf")return n;if(r!=="arr")return n.toString("binary");return[].slice.call(n)}};var w=function U(r){var t=e[r].dec;var a=Buffer.allocUnsafe(131072),n=0,i="";for(n=0;n<t.length;++n){if(!(i=t[n]))continue;var s=i.charCodeAt(0);a[2*n]=s&255;a[2*n+1]=s>>8}return function f(e){var r=e.length,t=0,n=0;if(2*r>p){p=2*r;m=Buffer.allocUnsafe(p)}if(Buffer.isBuffer(e)){for(t=0;t<r;t++){n=2*e[t];m[2*t]=a[n];m[2*t+1]=a[n+1]}}else if(typeof e==="string"){for(t=0;t<r;t++){n=2*e.charCodeAt(t);m[2*t]=a[n];m[2*t+1]=a[n+1]}}else{for(t=0;t<r;t++){n=2*e[t];m[2*t]=a[n];m[2*t+1]=a[n+1]}}return m.slice(0,2*r).toString("ucs2")}};var k=function B(r){var t=e[r].enc;var a=Buffer.allocUnsafe(131072);for(var n=0;n<131072;++n)a[n]=0;var i=Object.keys(t);for(var s=0,f=i[s];s<i.length;++s){if(!(f=i[s]))continue;var l=f.charCodeAt(0);a[2*l]=t[f]&255;a[2*l+1]=t[f]>>8}return function o(e,r){var t=e.length,n=Buffer.allocUnsafe(2*t),i=0,s=0,f=0,l=0,o=0;if(typeof e==="string"){for(i=l=0;i<t;++i){s=e.charCodeAt(i)*2;n[l++]=a[s+1]||a[s];if(a[s+1]>0)n[l++]=a[s]}n=n.slice(0,l)}else if(Buffer.isBuffer(e)){for(i=l=0;i<t;++i){o=e[i];if(o<128)s=o;else if(o<224){s=((o&31)<<6)+(e[i+1]&63);++i}else if(o<240){s=((o&15)<<12)+((e[i+1]&63)<<6)+(e[i+2]&63);i+=2}else{s=((o&7)<<18)+((e[i+1]&63)<<12)+((e[i+2]&63)<<6)+(e[i+3]&63);i+=3}if(s<65536){s*=2;n[l++]=a[s+1]||a[s];if(a[s+1]>0)n[l++]=a[s]}else{f=s-65536;s=2*(55296+(f>>10&1023));n[l++]=a[s+1]||a[s];if(a[s+1]>0)n[l++]=a[s];s=2*(56320+(f&1023));n[l++]=a[s+1]||a[s];if(a[s+1]>0)n[l++]=a[s]}}n=n.slice(0,l)}else{for(i=l=0;i<t;i++){s=e[i].charCodeAt(0)*2;n[l++]=a[s+1]||a[s];if(a[s+1]>0)n[l++]=a[s]}}if(!r||r==="buf")return n;if(r!=="arr")return n.toString("binary");return[].slice.call(n)}};var T=function W(r){var t=e[r].dec;var a=Buffer.allocUnsafe(131072),n=0,i,s=0,f=0,l=0;for(l=0;l<65536;++l){a[2*l]=255;a[2*l+1]=253}for(n=0;n<t.length;++n){if(!(i=t[n]))continue;s=i.charCodeAt(0);f=2*n;a[f]=s&255;a[f+1]=s>>8}return function o(e){var r=e.length,t=Buffer.allocUnsafe(2*r),n=0,i=0,s=0;if(Buffer.isBuffer(e)){for(n=0;n<r;n++){i=2*e[n];if(a[i]===255&&a[i+1]===253){i=2*((e[n]<<8)+e[n+1]);++n}t[s++]=a[i];t[s++]=a[i+1]}}else if(typeof e==="string"){for(n=0;n<r;n++){i=2*e.charCodeAt(n);if(a[i]===255&&a[i+1]===253){i=2*((e.charCodeAt(n)<<8)+e.charCodeAt(n+1));++n}t[s++]=a[i];t[s++]=a[i+1]}}else{for(n=0;n<r;n++){i=2*e[n];if(a[i]===255&&a[i+1]===253){i=2*((e[n]<<8)+e[n+1]);++n}t[s++]=a[i];t[s++]=a[i+1]}}return t.slice(0,s).toString("ucs2")}};i[65001]=function z(e){if(typeof e==="string")return z(e.split("").map(c));var r=e.length,t=0,a=0;if(4*r>p){p=4*r;m=Buffer.allocUnsafe(p)}var n=0;if(r>=3&&e[0]==239)if(e[1]==187&&e[2]==191)n=3;for(var i=1,s=0,f=0;n<r;n+=i){i=1;f=e[n];if(f<128)t=f;else if(f<224){t=(f&31)*64+(e[n+1]&63);i=2}else if(f<240){t=((f&15)<<12)+(e[n+1]&63)*64+(e[n+2]&63);i=3}else{t=(f&7)*262144+((e[n+1]&63)<<12)+(e[n+2]&63)*64+(e[n+3]&63);i=4}if(t<65536){m[s++]=t&255;m[s++]=t>>8}else{t-=65536;a=55296+(t>>10&1023);t=56320+(t&1023);m[s++]=a&255;m[s++]=a>>>8;m[s++]=t&255;m[s++]=t>>>8&255}}return m.slice(0,s).toString("ucs2")};s[65001]=function H(e,r){if(h&&Buffer.isBuffer(e)){if(!r||r==="buf")return e;if(r!=="arr")return e.toString("binary");return[].slice.call(e)}var t=e.length,a=0,n=0,i=0;var s=typeof e==="string";if(4*t>p){p=4*t;m=Buffer.allocUnsafe(p)}for(var f=0;f<t;++f){a=s?e.charCodeAt(f):e[f].charCodeAt(0);if(a<=127)m[i++]=a;else if(a<=2047){m[i++]=192+(a>>6);m[i++]=128+(a&63)}else if(a>=55296&&a<=57343){a-=55296;++f;n=(s?e.charCodeAt(f):e[f].charCodeAt(0))-56320+(a<<10);m[i++]=240+(n>>>18&7);m[i++]=144+(n>>>12&63);m[i++]=128+(n>>>6&63);m[i++]=128+(n&63)}else{m[i++]=224+(a>>12);m[i++]=128+(a>>6&63);m[i++]=128+(a&63)}}if(!r||r==="buf")return m.slice(0,i);if(r!=="arr")return m.slice(0,i).toString("binary");return[].slice.call(m,0,i)}}var A=function V(){if(h){if(f[t[0]])return;var r=0,o=0;for(r=0;r<t.length;++r){o=t[r];if(e[o]){f[o]=w(o);l[o]=b(o)}}for(r=0;r<a.length;++r){o=a[r];if(e[o]){f[o]=T(o);l[o]=k(o)}}for(r=0;r<n.length;++r){o=n[r];if(i[o])f[o]=i[o];if(s[o])l[o]=s[o]}}};var y=function(e,r){void r;return""};var E=function $(e){delete f[e];delete l[e]};var C=function X(){if(h){if(!f[t[0]])return;t.forEach(E);a.forEach(E);n.forEach(E)}O=y;I=0};var _={encache:A,decache:C,sbcs:t,dbcs:a};A();var S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var x="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?";var O=y,I=0;var R=function G(t,a,n){if(t===I&&O){return O(a,n)}if(l[t]){O=l[I=t];return O(a,n)}if(h&&Buffer.isBuffer(a))a=a.Line truncated
|
||||
;case"M":;case"D":;case"Y":;case"H":;case"S":;case"E":;case"m":;case"d":;case"y":;case"h":;case"s":;case"e":;case"g":return true;case"A":;case"a":;case"上":if(e.substr(r,3).toUpperCase()==="A/P")return true;if(e.substr(r,5).toUpperCase()==="AM/PM")return true;if(e.substr(r,5).toUpperCase()==="上午/下午")return true;++r;break;case"[":a=t;while(e.charAt(r++)!=="]"&&r<e.length)a+=e.charAt(r);if(a.match(Pe))return true;break;case".":;case"0":;case"#":while(r<e.length&&("0#?.,E+-%".indexOf(t=e.charAt(++r))>-1||t=="\\"&&e.charAt(r+1)=="-"&&"0#".indexOf(e.charAt(r+2))>-1)){}break;case"?":while(e.charAt(++r)===t){}break;case"*":++r;if(e.charAt(r)==" "||e.charAt(r)=="*")++r;break;case"(":;case")":++r;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":while(r<e.length&&"0123456789".indexOf(e.charAt(++r))>-1){}break;case" ":++r;break;default:++r;break;}}return false}function Me(e,r,t,a){var n=[],i="",s=0,f="",l="t",o,c,h;var u="H";while(s<e.length){switch(f=e.charAt(s)){case"G":if(!K(e,s))throw new Error("unrecognized character "+f+" in "+e);n[n.length]={t:"G",v:"General"};s+=7;break;case'"':for(i="";(h=e.charCodeAt(++s))!==34&&s<e.length;)i+=String.fromCharCode(h);n[n.length]={t:"t",v:i};++s;break;case"\\":var d=e.charAt(++s),v=d==="("||d===")"?d:"t";n[n.length]={t:v,v:d};++s;break;case"_":n[n.length]={t:"t",v:" "};s+=2;break;case"@":n[n.length]={t:"T",v:r};++s;break;case"B":;case"b":if(e.charAt(s+1)==="1"||e.charAt(s+1)==="2"){if(o==null){o=ae(r,t,e.charAt(s+1)==="2");if(o==null)return""}n[n.length]={t:"X",v:e.substr(s,2)};l=f;s+=2;break};case"M":;case"D":;case"Y":;case"H":;case"S":;case"E":f=f.toLowerCase();case"m":;case"d":;case"y":;case"h":;case"s":;case"e":;case"g":if(r<0)return"";if(o==null){o=ae(r,t);if(o==null)return""}i=f;while(++s<e.length&&e.charAt(s).toLowerCase()===f)i+=f;if(f==="m"&&l.toLowerCase()==="h")f="M";if(f==="h")f=u;n[n.length]={t:f,v:i};l=f;break;case"A":;case"a":;case"上":var p={t:f,v:f};if(o==null)o=ae(r,t);if(e.substr(s,3).toUpperCase()==="A/P"){if(o!=null)p.v=o.H>=12?e.charAt(s+2):f;p.t="T";u="h";s+=3}else if(e.substr(s,5).toUpperCase()==="AM/PM"){if(o!=null)p.v=o.H>=12?"PM":"AM";p.t="T";s+=5;u="h"}else if(e.substr(s,5).toUpperCase()==="上午/下午"){if(o!=null)p.v=o.H>=12?"下午":"上午";p.t="T";s+=5;u="h"}else{p.t="t";++s}if(o==null&&p.t==="T")return"";n[n.length]=p;l=f;break;case"[":i=f;while(e.charAt(s++)!=="]"&&s<e.length)i+=e.charAt(s);if(i.slice(-1)!=="]")throw'unterminated "[" block: |'+i+"|";if(i.match(Pe)){if(o==null){o=ae(r,t);if(o==null)return""}n[n.length]={t:"Z",v:i.toLowerCase()};l=i.charAt(1)}else if(i.indexOf("$")>-1){i=(i.match(/\$([^-\[\]]*)/)||[])[1]||"$";if(!Le(e))n[n.length]={t:"t",v:i}}break;case".":if(o!=null){i=f;while(++s<e.length&&(f=e.charAt(s))==="0")i+=f;n[n.length]={t:"s",v:i};break};case"0":;case"#":i=f;while(++s<e.length&&"0#?.,E+-%".indexOf(f=e.charAt(s))>-1)i+=f;n[n.length]={t:"n",v:i};break;case"?":i=f;while(e.charAt(++s)===f)i+=f;n[n.length]={t:f,v:i};l=f;break;case"*":++s;if(e.charAt(s)==" "||e.charAt(s)=="*")++s;break;case"(":;case")":n[n.length]={t:a===1?"t":f,v:f};++s;break;case"1":;case"2":;case"3":;case"4":;case"5":;case"6":;case"7":;case"8":;case"9":i=f;while(s<e.length&&"0123456789".indexOf(e.charAt(++s))>-1)i+=e.charAt(s);n[n.length]={t:"D",v:i};break;case" ":n[n.length]={t:f,v:f};++s;break;case"$":n[n.length]={t:"t",v:"$"};++s;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(f)===-1)throw new Error("unrecognized character "+f+" in "+e);n[n.length]={t:"t",v:f};++s;break;}}var m=0,g=0,b;for(s=n.length-1,l="t";s>=0;--s){switch(n[s].t){case"h":;case"H":n[s].t=u;l="h";if(m<1)m=1;break;case"s":if(b=n[s].v.match(/\.0+$/)){g=Math.max(g,b[0].length-1);m=4}if(m<3)m=3;case"d":;case"y":;case"e":l=n[s].t;break;case"M":l=n[s].t;if(m<2)m=2;break;case"m":if(l==="s"){n[s].t="M";if(m<2)m=2}break;case"X":break;case"Z":if(m<1&&n[s].v.match(/[Hh]/))m=1;if(m<2&&n[s].v.match(/[Mm]/))m=2;if(m<3&&n[s].v.match(/[Ss]/))m=3;}}var w;switch(m){case 0:break;case 1:;case 2:;case 3:if(o.u>=.5){o.u=0;++o.S}if(o.S>=60){o.S=0;++o.M}if(o.M>=60){o.M=0;++o.H}if(o.H>=24){o.H=0;++o.D;w=ae(o.D);w.u=o.u;w.S=o.S;w.M=o.M;w.H=o.H;o=w}break;case 4:switch(g){case 1:o.u=Math.round(o.u*10)/10;break;case 2:o.u=Math.round(o.u*100)/100;break;case 3:o.u=Math.round(o.u*1e3)/1e3;break;}if(o.u>=1){o.u=0;++o.S}if(o.S>=60){o.S=0;++o.M}if(o.M>=60){o.M=0;++o.H}if(o.H>=24){o.H=0;++o.D;w=ae(o.D);w.u=o.u;w.S=o.S;w.M=o.M;w.H=o.H;o=w}break;}var k="",T;for(s=0;s<n.length;++s){switch(n[s].t){case"t":;case"T":;case" ":;case"D":break;case"X":n[s].v="";n[s].t=";";break;case"d":;case"m":;case"y":;case"h":;case"H":;case"M":;case"s":;case"e":;case"b":;case"Z":n[s].v=he(n[s].t.charCodeAt(0),n[s].v,o,g);n[s].t="t";break;case"n":;case"?":T=s+1;while(n[T]!=null&&((f=n[T].t)==="?"||f==="D"||(f===" "||f==="t")&&n[T+1]!=null&&(n[T+1].t==="?"||n[T+1].t==="t"&&n[T+1].v==="/")||n[s].t==="("&&(f===" "||f==="n"||f===")")||f==="t"&&(n[T].v==="/"||n[T].v===" "&&n[T+1Line truncated
|
||||
root:r.root});var f=t.length-4;while((t[f]!=80||t[f+1]!=75||t[f+2]!=5||t[f+3]!=6)&&f>=0)--f;t.l=f+4;t.l+=4;var l=t._R(2);t.l+=6;var o=t._R(4);t.l=o;for(f=0;f<l;++f){t.l+=20;var c=t._R(4);var h=t._R(4);var u=t._R(2);var d=t._R(2);var v=t._R(2);t.l+=8;var p=t._R(4);var m=s(t.slice(t.l+u,t.l+u+d));t.l+=u+d+v;var g=t.l;t.l=p+4;if(m&&m[1]){if((m[1]||{}).usz)h=m[1].usz;if((m[1]||{}).csz)c=m[1].csz}Ne(t,c,h,i,m);t.l=g}return i}function Ne(e,r,t,a,n){e.l+=2;var f=e._R(2);var l=e._R(2);var o=i(e);if(f&8257)throw new Error("Unsupported ZIP encryption");var c=e._R(4);var h=e._R(4);var u=e._R(4);var d=e._R(2);var v=e._R(2);var p="";for(var m=0;m<d;++m)p+=String.fromCharCode(e[e.l++]);if(v){var g=s(e.slice(e.l,e.l+v));if((g[21589]||{}).mt)o=g[21589].mt;if((g[1]||{}).usz)u=g[1].usz;if((g[1]||{}).csz)h=g[1].csz;if(n){if((n[21589]||{}).mt)o=n[21589].mt;if((n[1]||{}).usz)u=g[1].usz;if((n[1]||{}).csz)h=g[1].csz}}e.l+=v;var b=e.slice(e.l,e.l+h);switch(l){case 8:b=K(e,u);break;case 0:break;default:throw new Error("Unsupported ZIP Compression method "+l);}var w=false;if(f&8){c=e._R(4);if(c==134695760){c=e._R(4);w=true}h=e._R(4);u=e._R(4)}if(h!=r)Ie(w,"Bad compressed size: "+r+" != "+h);if(u!=t)Ie(w,"Bad uncompressed size: "+t+" != "+u);Ve(a,p,b,{unsafe:true,mt:o})}function Fe(e,r){var t=r||{};var a=[],i=[];var s=Ia(1);var f=t.compression?8:0,l=0;var o=false;if(o)l|=8;var c=0,h=0;var u=0,d=0;var v=e.FullPaths[0],p=v,m=e.FileIndex[0];var g=[];var b=0;for(c=1;c<e.FullPaths.length;++c){p=e.FullPaths[c].slice(v.length);m=e.FileIndex[c];if(!m.size||!m.content||p=="Sh33tJ5")continue;var w=u;var k=Ia(p.length);for(h=0;h<p.length;++h)k._W(1,p.charCodeAt(h)&127);k=k.slice(0,k.l);g[d]=typeof m.content=="string"?qe.bstr(m.content,0):qe.buf(m.content,0);var T=typeof m.content=="string"?I(m.content):m.content;if(f==8)T=Y(T);s=Ia(30);s._W(4,67324752);s._W(2,20);s._W(2,l);s._W(2,f);if(m.mt)n(s,m.mt);else s._W(4,0);s._W(-4,l&8?0:g[d]);s._W(4,l&8?0:T.length);s._W(4,l&8?0:m.content.length);s._W(2,k.length);s._W(2,0);u+=s.length;a.push(s);u+=k.length;a.push(k);u+=T.length;a.push(T);if(l&8){s=Ia(12);s._W(-4,g[d]);s._W(4,T.length);s._W(4,m.content.length);u+=s.l;a.push(s)}s=Ia(46);s._W(4,33639248);s._W(2,0);s._W(2,20);s._W(2,l);s._W(2,f);s._W(4,0);s._W(-4,g[d]);s._W(4,T.length);s._W(4,m.content.length);s._W(2,k.length);s._W(2,0);s._W(2,0);s._W(2,0);s._W(2,0);s._W(4,0);s._W(4,w);b+=s.l;i.push(s);b+=k.length;i.push(k);++d}s=Ia(22);s._W(4,101010256);s._W(2,0);s._W(2,0);s._W(2,d);s._W(2,d);s._W(4,b);s._W(4,u);s._W(2,0);return P([P(a),P(i),s])}var De={htm:"text/html",xml:"text/xml",gif:"image/gif",jpg:"image/jpeg",png:"image/png",mso:"application/x-mso",thmx:"application/vnd.ms-officetheme",sh33tj5:"application/octet-stream"};function Pe(e,r){if(e.ctype)return e.ctype;var t=e.name||"",a=t.match(/\.([^\.]+)$/);if(a&&De[a[1]])return De[a[1]];if(r){a=(t=r).match(/[\.\\]([^\.\\])+$/);if(a&&De[a[1]])return De[a[1]]}return"application/octet-stream"}function Le(e){var r=T(e);var t=[];for(var a=0;a<r.length;a+=76)t.push(r.slice(a,a+76));return t.join("\r\n")+"\r\n"}function Me(e){var r=e.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7E-\xFF=]/g,function(e){var r=e.charCodeAt(0).toString(16).toUpperCase();return"="+(r.length==1?"0"+r:r)});r=r.replace(/ $/gm,"=20").replace(/\t$/gm,"=09");if(r.charAt(0)=="\n")r="=0D"+r.slice(1);r=r.replace(/\r(?!\n)/gm,"=0D").replace(/\n\n/gm,"\n=0A").replace(/([^\r\n])\n/gm,"$1=0A");var t=[],a=r.split("\r\n");for(var n=0;n<a.length;++n){var i=a[n];if(i.length==0){t.push("");continue}for(var s=0;s<i.length;){var f=76;var l=i.slice(s,s+f);if(l.charAt(f-1)=="=")f--;else if(l.charAt(f-2)=="=")f-=2;else if(l.charAt(f-3)=="=")f-=3;l=i.slice(s,s+f);s+=f;if(s<i.length)l+="=";t.push(l)}}return t.join("\r\n")}function Ue(e){var r=[];for(var t=0;t<e.length;++t){var a=e[t];while(t<=e.length&&a.charAt(a.length-1)=="=")a=a.slice(0,a.length-1)+e[++t];r.push(a)}for(var n=0;n<r.length;++n)r[n]=r[n].replace(/[=][0-9A-Fa-f]{2}/g,function(e){return String.fromCharCode(parseInt(e.slice(1),16))});return I(r.join("\r\n"))}function Be(e,r,t){var a="",n="",i="",s;var f=0;for(;f<10;++f){var l=r[f];if(!l||l.match(/^\s*$/))break;var o=l.match(/^([^:]*?):\s*([^\s].*)$/);if(o)switch(o[1].toLowerCase()){case"content-location":a=o[2].trim();break;case"content-type":i=o[2].trim();break;case"content-transfer-encoding":n=o[2].trim();break;}}++f;switch(n.toLowerCase()){case"base64":s=I(E(r.slice(f).join("")));break;case"quoted-printable":s=Ue(r.slice(f));break;default:throw new Error("Unsupported Content-Transfer-Encoding "+n);}var c=Ve(e,a.slice(t.length),s,{unsafe:true});if(i)c.ctype=i}function We(e,r){if($(e.slice(0,13)).toLowerCase()!="mime-version:")throw new Error("Unsupported MAD header");var t=r&&r.root||"";var a=(C&&Buffer.isBuffer(e)?e.toString("binary"):$(e)).split("\r\n");var n=0,i="";for(n=0;n<a.length;++n){i=a[n];if(!/^Content-Location:/i.test(i))continue;i=i.slice(i.indexOf("file"));if(!t)t=i.slice(0,i.lastIndexOf("/")+1);if(i.slice(0,t.length)==t)continue;Line truncated
|
||||
};da=function bT(e,r){if(Buffer.isBuffer(e))return e.readDoubleLE(r);return ua(e,r)};va=function wT(e){return Buffer.isBuffer(e)||Array.isArray(e)||typeof Uint8Array!=="undefined"&&e instanceof Uint8Array}}function pa(){Jt=function(e,r,t){return a.utils.decode(1200,e.slice(r,t)).replace(M,"")};ra=function(e,r,t){return a.utils.decode(65001,e.slice(r,t))};aa=function(e,r){var n=wa(e,r);return n>0?a.utils.decode(t,e.slice(r+4,r+4+n-1)):""};ia=function(e,t){var n=wa(e,t);return n>0?a.utils.decode(r,e.slice(t+4,t+4+n-1)):""};fa=function(e,r){var t=2*wa(e,r);return t>0?a.utils.decode(1200,e.slice(r+4,r+4+t-1)):""};oa=function(e,r){var t=wa(e,r);return t>0?a.utils.decode(1200,e.slice(r+4,r+4+t)):""};ha=function(e,r){var t=wa(e,r);return t>0?a.utils.decode(65001,e.slice(r+4,r+4+t)):""}}if(typeof a!=="undefined")pa();var ma=function(e,r){return e[r]};var ga=function(e,r){return e[r+1]*(1<<8)+e[r]};var ba=function(e,r){var t=e[r+1]*(1<<8)+e[r];return t<32768?t:(65535-t+1)*-1};var wa=function(e,r){return e[r+3]*(1<<24)+(e[r+2]<<16)+(e[r+1]<<8)+e[r]};var ka=function(e,r){return e[r+3]<<24|e[r+2]<<16|e[r+1]<<8|e[r]};var Ta=function(e,r){return e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]};function Aa(e,t){var n="",i,s,f=[],l,o,c,h;switch(t){case"dbcs":h=this.l;if(C&&Buffer.isBuffer(this)&&S)n=this.slice(this.l,this.l+2*e).toString("utf16le");else for(c=0;c<e;++c){n+=String.fromCharCode(ga(this,h));h+=2}e*=2;break;case"utf8":n=ra(this,this.l,this.l+e);break;case"utf16le":e*=2;n=Jt(this,this.l,this.l+e);break;case"wstr":if(typeof a!=="undefined")n=a.utils.decode(r,this.slice(this.l,this.l+2*e));else return Aa.call(this,e,"dbcs");e=2*e;break;case"lpstr-ansi":n=aa(this,this.l);e=4+wa(this,this.l);break;case"lpstr-cp":n=ia(this,this.l);e=4+wa(this,this.l);break;case"lpwstr":n=fa(this,this.l);e=4+2*wa(this,this.l);break;case"lpp4":e=4+wa(this,this.l);n=oa(this,this.l);if(e&2)e+=2;break;case"8lpp4":e=4+wa(this,this.l);n=ha(this,this.l);if(e&3)e+=4-(e&3);break;case"cstr":e=0;n="";while((l=ma(this,this.l+e++))!==0)f.push(p(l));n=f.join("");break;case"_wstr":e=0;n="";while((l=ga(this,this.l+e))!==0){f.push(p(l));e+=2}e+=2;n=f.join("");break;case"dbcs-cont":n="";h=this.l;for(c=0;c<e;++c){if(this.lens&&this.lens.indexOf(h)!==-1){l=ma(this,h);this.l=h+1;o=Aa.call(this,e-c,l?"dbcs-cont":"sbcs-cont");return f.join("")+o}f.push(p(ga(this,h)));h+=2}n=f.join("");e*=2;break;case"cpstr":if(typeof a!=="undefined"){n=a.utils.decode(r,this.slice(this.l,this.l+e));break};case"sbcs-cont":n="";h=this.l;for(c=0;c!=e;++c){if(this.lens&&this.lens.indexOf(h)!==-1){l=ma(this,h);this.l=h+1;o=Aa.call(this,e-c,l?"dbcs-cont":"sbcs-cont");return f.join("")+o}f.push(p(ma(this,h)));h+=1}n=f.join("");break;default:switch(e){case 1:i=ma(this,this.l);this.l++;return i;case 2:i=(t==="i"?ba:ga)(this,this.l);this.l+=2;return i;case 4:;case-4:if(t==="i"||(this[this.l+3]&128)===0){i=(e>0?ka:Ta)(this,this.l);this.l+=4;return i}else{s=wa(this,this.l);this.l+=4}return s;case 8:;case-8:if(t==="f"){if(e==8)s=da(this,this.l);else s=da([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0);this.l+=8;return s}else e=8;case 16:n=Qt(this,this.l,e);break;};}this.l+=e;return n}var ya=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255;e[t+2]=r>>>16&255;e[t+3]=r>>>24&255};var Ea=function(e,r,t){e[t]=r&255;e[t+1]=r>>8&255;e[t+2]=r>>16&255;e[t+3]=r>>24&255};var Ca=function(e,r,t){e[t]=r&255;e[t+1]=r>>>8&255};function _a(e,n,i){var s=0,f=0;if(i==="dbcs"){for(f=0;f!=n.length;++f)Ca(this,n.charCodeAt(f),this.l+2*f);s=2*n.length}else if(i==="sbcs"||i=="cpstr"){if(typeof a!=="undefined"&&t==874){for(f=0;f!=n.length;++f){var l=a.utils.encode(t,n.charAt(f));this[this.l+f]=l[0]}s=n.length}else if(typeof a!=="undefined"&&i=="cpstr"){l=a.utils.encode(r,n);if(l.length==n.length)for(f=0;f<n.length;++f)if(l[f]==0&&n.charCodeAt(f)!=0)l[f]=95;if(l.length==2*n.length)for(f=0;f<n.length;++f)if(l[2*f]==0&&l[2*f+1]==0&&n.charCodeAt(f)!=0)l[2*f]=95;for(f=0;f<l.length;++f)this[this.l+f]=l[f];s=l.length}else{n=n.replace(/[^\x00-\x7F]/g,"_");for(f=0;f!=n.length;++f)this[this.l+f]=n.charCodeAt(f)&255;s=n.length}}else if(i==="hex"){for(;f<e;++f){this[this.l++]=parseInt(n.slice(2*f,2*f+2),16)||0}return this}else if(i==="utf16le"){var o=Math.min(this.l+e,this.length);for(f=0;f<Math.min(n.length,e);++f){var c=n.charCodeAt(f);this[this.l++]=c&255;this[this.l++]=c>>8}while(this.l<o)this[this.l++]=0;return this}else switch(e){case 1:s=1;this[this.l]=n&255;break;case 2:s=2;this[this.l]=n&255;n>>>=8;this[this.l+1]=n&255;break;case 3:s=3;this[this.l]=n&255;n>>>=8;this[this.l+1]=n&255;n>>>=8;this[this.l+2]=n&255;break;case 4:s=4;ya(this,n,this.l);break;case 8:s=8;if(i==="f"){jt(this,n,this.l);break};case 16:break;case-4:s=4;Ea(this,n,this.l);break;}this.l+=s;return this}function Sa(e,r){var t=Qt(this,this.l,e.length>>1);if(t!==e)throw new Error(r+"Expected "+e+" saw "+t);this.l+=e.length>>1}function xa(e,r){e.l=r;e._R=Aa;e.chk=Sa;e._W=_a}function Oa(e,r){e.l+Line truncated
|
||||
function yi(e,r){var t=zt(e);var a;var n;while(a=Ht.exec(t))switch(a[3]){case"manifest":break;case"file-entry":n=ct(a[0],false);if(n.path=="/"&&n.type!==Ai)throw new Error("This OpenDocument is not a spreadsheet");break;case"encryption-data":;case"algorithm":;case"start-key-generation":;case"key-derivation":throw new Error("Unsupported ODS Encryption");default:if(r&&r.WTF)throw a;}}function Ei(e){var r=[at];r.push('<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2">\n');r.push(' <manifest:file-entry manifest:full-path="/" manifest:version="1.2" manifest:media-type="application/vnd.oasis.opendocument.spreadsheet"/>\n');for(var t=0;t<e.length;++t)r.push(' <manifest:file-entry manifest:full-path="'+e[t][0]+'" manifest:media-type="'+e[t][1]+'"/>\n');r.push("</manifest:manifest>");return r.join("")}function Ci(e,r,t){return[' <rdf:Description rdf:about="'+e+'">\n',' <rdf:type rdf:resource="http://docs.oasis-open.org/ns/office/1.2/meta/'+(t||"odf")+"#"+r+'"/>\n'," </rdf:Description>\n"].join("")}function _i(e,r){return[' <rdf:Description rdf:about="'+e+'">\n',' <ns0:hasPart xmlns:ns0="http://docs.oasis-open.org/ns/office/1.2/meta/pkg#" rdf:resource="'+r+'"/>\n'," </rdf:Description>\n"].join("")}function Si(e){var r=[at];r.push('<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n');for(var t=0;t!=e.length;++t){r.push(Ci(e[t][0],e[t][1]));r.push(_i("",e[t][0]))}r.push(Ci("","Document","pkg"));r.push("</rdf:RDF>");return r.join("")}function xi(r,t){return'<office:document-meta xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xlink="http://www.w3.org/1999/xlink" office:version="1.2"><office:meta><meta:generator>SheetJS '+e.version+"</meta:generator></office:meta></office:document-meta>"}var Oi=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];function Ii(e){var r={};e=Ot(e);for(var t=0;t<Oi.length;++t){var a=Oi[t],n=Br(e,a[0]);if(n!=null&&n.length>0)r[a[1]]=vt(n[1]);if(a[2]==="date"&&r[a[1]])r[a[1]]=wr(r[a[1]])}return r}function Ri(e,r,t,a,n){if(n[e]!=null||r==null||r==="")return;n[e]=r;r=gt(r);a[a.length]=t?Ut(e,r,t):Lt(e,r)}function Ni(e,r){var t=r||{};var a=[at,Ut("cp:coreProperties",null,{"xmlns:cp":Vt.CORE_PROPS,"xmlns:dc":Vt.dc,"xmlns:dcterms":Vt.dcterms,"xmlns:dcmitype":Vt.dcmitype,"xmlns:xsi":Vt.xsi})],n={};if(!e&&!t.Props)return a.join("");if(e){if(e.CreatedDate!=null)Ri("dcterms:created",typeof e.CreatedDate==="string"?e.CreatedDate:Bt(e.CreatedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n);if(e.ModifiedDate!=null)Ri("dcterms:modified",typeof e.ModifiedDate==="string"?e.ModifiedDate:Bt(e.ModifiedDate,t.WTF),{"xsi:type":"dcterms:W3CDTF"},a,n)}for(var i=0;i!=Oi.length;++i){var s=Oi[i];var f=t.Props&&t.Props[s[1]]!=null?t.Props[s[1]]:e?e[s[1]]:null;if(f===true)f="1";else if(f===false)f="0";else if(typeof f=="number")f=String(f);if(f!=null)Ri(s[0],f,null,a,n)}if(a.length>2){a[a.length]="</cp:coreProperties>";a[1]=a[1].replace("/>",">")}return a.join("")}var Fi=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];var Di=["Worksheets","SheetNames","NamedRanges","DefinedNames","Chartsheets","ChartNames"];function Pi(e,r,t,a){var n=[];if(typeof e=="string")n=Dt(e,a);else for(var i=0;i<e.length;++i)n=n.concat(e[i].map(function(e){return{v:e}}));var s=typeof r=="string"?Dt(r,a).map(function(e){return e.v}):r;var f=0,l=0;if(s.length>0)for(var o=0;o!==n.length;o+=2){l=+n[o+1].v;switch(n[o].v){case"Worksheets":;case"工作表":;case"Листы":;case"أوراق العمل":;case"ワークシート":;case"גליונות עבודה":;case"Arbeitsblätter":;case"Çalışma Sayfaları":;case"Feuilles de calcul":;case"Fogli di lavoro":;case"Folhas de cálculo":;case"Planilhas":;case"Regneark":;case"Hojas de cálculo":;case"Werkbladen":t.Worksheets=l;t.SheetNames=s.slice(f,f+l);break;case"Named Ranges":;case"Rangos con nombre":;case"名前付き一覧":;case"Benannte Bereiche":;case"Navngivne områder":t.NamedRanges=l;t.DefinedNames=s.slice(f,f+l);break;case"Charts":;case"Diagramme":t.Chartsheets=l;t.ChartNames=s.slice(f,f+l);break;}f+=l}}function Li(e,r,t){var a={}Line truncated
|
||||
fWantAdvise:a>>>1&1,fWantPict:a>>>2&1,fOle:a>>>3&1,fOleLink:a>>>4&1,cf:a>>>5&1023,fIcon:a>>>15&1};if(t.sbcch===14849)n=js(e,r-2,t);i.body=n||e._R(r-2);if(typeof n==="string")i.Name=n;return i}function il(e,r,t){var a=e.l+r;var n=e._R(2);var i=e._R(1);var s=e._R(1);var f=e._R(t&&t.biff==2?1:2);var l=0;if(!t||t.biff>=5){if(t.biff!=5)e.l+=2;l=e._R(2);if(t.biff==5)e.l+=2;e.l+=4}var o=Ss(e,s,t);if(n&32)o=hi[o.charCodeAt(0)];var c=a-e.l;if(t&&t.biff==2)--c;var h=a==e.l||f===0||!(c>0)?[]:Bd(e,c,t,f);return{chKey:i,Name:o,itab:l,rgce:h}}function sl(e,r,t){if(t.biff<8)return fl(e,r,t);if(!(t.biff>8)&&r==e[e.l]+(e[e.l+1]==3?1:0)+1)return fl(e,r,t);var a=[],n=e.l+r,i=e._R(t.biff>8?4:2);while(i--!==0)a.push(Xs(e,t.biff>8?12:6,t));if(e.l!=n)throw new Error("Bad ExternSheet: "+e.l+" != "+n);return a}function fl(e,r,t){if(e[e.l+1]==3)e[e.l]++;var a=Es(e,r,t);return a.charCodeAt(0)==3?a.slice(1):a}function ll(e,r,t){if(t.biff<8){e.l+=r;return}var a=e._R(2);var n=e._R(2);var i=Ss(e,a,t);var s=Ss(e,n,t);return[i,s]}function ol(e,r,t){var a=Zs(e,6);e.l++;var n=e._R(1);r-=8;return[Wd(e,r,t),n,a]}function cl(e,r,t){var a=Js(e,6);switch(t.biff){case 2:e.l++;r-=7;break;case 3:;case 4:e.l+=2;r-=8;break;default:e.l+=6;r-=12;}return[a,Md(e,r,t,a)]}function hl(e){var r=e._R(4)!==0;var t=e._R(4)!==0;var a=e._R(4);return[r,t,a]}function ul(e,r,t){var a=e._R(2),n=e._R(2);var i=e._R(2),s=e._R(2);var f=Os(e,0,t);return[{r:a,c:n},f,s,i]}function dl(e,r,t){if(t&&t.biff<8){var a=e._R(2),n=e._R(2);if(a==65535||a==-1)return;var i=e._R(2);var s=e._R(Math.min(i,2048),"cpstr");return[{r:a,c:n},s]}return ul(e,r,t)}function vl(e,r,t,a){var n=Ia(6+(a||e.length));n._W(2,r);n._W(2,t);n._W(2,a||e.length);n._W(e.length,e,"sbcs");return n}function pl(e,r){var t=[];var a=e._R(2);while(a--)t.push(Ks(e,r));return t}function ml(e){var r=Ia(2+e.length*8);r._W(2,e.length);for(var t=0;t<e.length;++t)Ys(e[t],r);return r}function gl(e,r,t){if(t&&t.biff<8)return wl(e,r,t);var a=qs(e,22);var n=af(e,r-22,a[1]);return{cmo:a,ft:n}}var bl={8:function(e,r){var t=e.l+r;e.l+=10;var a=e._R(2);e.l+=4;e.l+=2;e.l+=2;e.l+=2;e.l+=4;var n=e._R(1);e.l+=n;e.l=t;return{fmt:a}}};function wl(e,r,t){e.l+=4;var a=e._R(2);var n=e._R(2);var i=e._R(2);e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=2;e.l+=6;r-=36;var s=[];s.push((bl[a]||Oa)(e,r,t));return{cmo:[n,a,i],ft:s}}function kl(e,r,t){var a=e.l;var n="";try{e.l+=4;var i=(t.lastobj||{cmo:[0,0]}).cmo[1];var s;if([0,5,7,11,12,14].indexOf(i)==-1)e.l+=6;else s=Rs(e,6,t);var f=e._R(2);e._R(2);ws(e,2);var l=e._R(2);e.l+=l;for(var o=1;o<e.lens.length-1;++o){if(e.l-a!=e.lens[o])throw new Error("TxO: bad continue record");var c=e[e.l];var h=Ss(e,e.lens[o+1]-e.lens[o]-1);n+=h;if(n.length>=(c?f:2*f))break}if(n.length!==f&&n.length!==f*2){throw new Error("cchText: "+f+" != "+n.length)}e.l=a+r;return{t:n}}catch(u){e.l=a+r;return{t:n}}}function Tl(e,r){var t=Ks(e,8);e.l+=16;var a=Ms(e,r-24);return[t,a]}function Al(e){var r=Ia(24);var t=ja(e[0]);r._W(2,t.r);r._W(2,t.r);r._W(2,t.c);r._W(2,t.c);var a="d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b".split(" ");for(var n=0;n<16;++n)r._W(1,parseInt(a[n],16));return P([r,Us(e[1])])}function yl(e,r){e._R(2);var t=Ks(e,8);var a=e._R((r-10)/2,"dbcs-cont");a=a.replace(M,"");return[t,a]}function El(e){var r=e[1].Tooltip;var t=Ia(10+2*(r.length+1));t._W(2,2048);var a=ja(e[0]);t._W(2,a.r);t._W(2,a.r);t._W(2,a.c);t._W(2,a.c);for(var n=0;n<r.length;++n)t._W(2,r.charCodeAt(n));t._W(2,0);return t}function Cl(e){var r=[0,0],t;t=e._R(2);r[0]=ni[t]||t;t=e._R(2);r[1]=ni[t]||t;return r}function _l(e){if(!e)e=Ia(4);e._W(2,1);e._W(2,1);return e}function Sl(e){var r=e._R(2);var t=[];while(r-- >0)t.push(Ws(e,8));return t}function xl(e){var r=e._R(2);var t=[];while(r-- >0)t.push(Ws(e,8));return t}function Ol(e){e.l+=2;var r={cxfs:0,crc:0};r.cxfs=e._R(2);r.crc=e._R(4);return r}function Il(e,r,t){if(!t.cellStyles)return Oa(e,r);var a=t&&t.biff>=12?4:2;var n=e._R(a);var i=e._R(a);var s=e._R(a);var f=e._R(a);var l=e._R(2);if(a==2)e.l+=2;var o={s:n,e:i,w:s,ixfe:f,flags:l};if(t.biff>=5||!t.biff)o.level=l>>8&7;return o}function Rl(e,r){var t=Ia(12);t._W(2,r);t._W(2,r);t._W(2,e.width*256);t._W(2,0);var a=0;if(e.hidden)a|=1;t._W(1,a);a=e.level||0;t._W(1,a);t._W(2,0);return t}function Nl(e,r){var t={};if(r<32)return t;e.l+=16;t.header=Dn(e,8);t.footer=Dn(e,8);e.l+=2;return t}function Fl(e,r,t){var a={area:false};if(t.biff!=5){e.l+=r;return a}var n=e._R(1);e.l+=3;if(n&16)a.area=true;return a}function Dl(e){var r=Ia(2*e);for(var t=0;t<e;++t)r._W(2,t+1);return r}var Pl=zs;var Ll=Ts;var Ml=xs;function Ul(e){var r=e._R(2);var t=e._R(2);var a=e._R(4);var n={fmt:r,env:t,len:a,data:e.slice(e.l,e.l+a)};e.l+=a;return n}function Bl(e,r,t,a,n){if(!e)e=Ia(7);e._W(2,r);e._W(2,t);e._W(1,a||0);e._W(1,n||0);e._W(1,0);return e}function Wl(e,r,t){if(t.biffguess&&t.biff==5)t.biff=2;var a=zs(e,7,t);var n=Os(e,r-7,t);a.t="str";a.val=n;return a}function zl(e,r,t){var a=zs(e,7,t);var n=Dn(e,8);a.t="n";a.val=n;return a}function Hl(e,r,t,a,n){vLine truncated
|
||||
n.Enum=$;if(r[2]==14){n.qpro=true;r.l=0}e(r,function(e,r,t){switch(t){case 204:s=e;break;case 22:if(e[1].v.charCodeAt(0)<48)e[1].v=e[1].v.slice(1);e[1].v=e[1].v.replace(/\x0F./g,function(e){return String.fromCharCode(e.charCodeAt(1)-32)}).replace(/\r\n/g,"\n");case 23:;case 24:;case 25:;case 37:;case 39:;case 40:if(e[3]>l){i["!ref"]=Za(d);o[s]=i;c.push(s);i={};if(n.dense)u=i["!data"]=[];d={s:{r:0,c:0},e:{r:0,c:0}};l=e[3];s="Sheet"+(l+1)}if(v>0&&e[0].r>=v)break;if(n.dense){if(!u[e[0].r])u[e[0].r]=[];u[e[0].r][e[0].c]=e[1]}else i[Ka(e[0])]=e[1];if(d.e.c<e[0].c)d.e.c=e[0].c;if(d.e.r<e[0].r)d.e.r=e[0].r;break;case 27:if(e[14e3])h[e[14e3][0]]=e[14e3][1];break;case 1537:h[e[0]]=e[1];if(e[0]==l)s=e[1];break;default:break;}},n)}else throw new Error("Unrecognized LOTUS BOF "+r[2]);i["!ref"]=Za(d);o[f||s]=i;c.push(f||s);if(!h.length)return{SheetNames:c,Sheets:o};var m={},g=[];for(var w=0;w<h.length;++w)if(o[c[w]]){g.push(h[w]||c[w]);m[h[w]]=o[h[w]]||o[c[w]]}else{g.push(h[w]);m[h[w]]={"!ref":"A1"}}return{SheetNames:g,Sheets:m}}function n(e,r){var t=r||{};if(+t.codepage>=0)l(+t.codepage);if(t.type=="string")throw new Error("Cannot write WK1 to JS string");var a=Na();if(!e["!ref"])throw new Error("Cannot export empty sheet to WK1");var n=Qa(e["!ref"]);var i=e["!data"]!=null;var f=[];Jg(a,0,s(1030));Jg(a,6,c(n));var o=Math.min(n.e.r,8191);for(var h=n.s.c;h<=n.e.c;++h)f[h]=Va(h);for(var u=n.s.r;u<=o;++u){var d=Ba(u);for(h=n.s.c;h<=n.e.c;++h){var p=i?(e["!data"][u]||[])[h]:e[f[h]+d];if(!p||p.t=="z")continue;switch(p.t){case"n":if((p.v|0)==p.v&&p.v>=-32768&&p.v<=32767)Jg(a,13,g(u,h,p));else Jg(a,14,k(u,h,p));break;case"d":var m=dr(p.v);if((m|0)==m&&m>=-32768&&m<=32767)Jg(a,13,g(u,h,{t:"n",v:m,z:p.z||q[14]}));else Jg(a,14,k(u,h,{t:"n",v:m,z:p.z||q[14]}));break;default:var b=rn(p);Jg(a,15,v(u,h,b.slice(0,239)));}}}Jg(a,1);return a.end()}function i(e,r){var t=r||{};if(+t.codepage>=0)l(+t.codepage);if(t.type=="string")throw new Error("Cannot write WK3 to JS string");var a=Na();Jg(a,0,f(e));for(var n=0,i=0;n<e.SheetNames.length;++n)if((e.Sheets[e.SheetNames[n]]||{})["!ref"])Jg(a,27,H(e.SheetNames[n],i++));var s=0;for(n=0;n<e.SheetNames.length;++n){var o=e.Sheets[e.SheetNames[n]];if(!o||!o["!ref"])continue;var c=Qa(o["!ref"]);var h=o["!data"]!=null;var u=[];var d=Math.min(c.e.r,8191);for(var v=c.s.r;v<=d;++v){var p=Ba(v);for(var m=c.s.c;m<=c.e.c;++m){if(v===c.s.r)u[m]=Va(m);var g=u[m]+p;var b=h?(o["!data"][v]||[])[m]:o[g];if(!b||b.t=="z")continue;if(b.t=="n"){Jg(a,23,F(v,m,s,b.v))}else{var w=rn(b);Jg(a,22,O(v,m,s,w.slice(0,239)))}}}++s}Jg(a,1);return a.end()}function s(e){var r=Ia(2);r._W(2,e);return r}function f(e){var r=Ia(26);r._W(2,4096);r._W(2,4);r._W(4,0);var t=0,a=0,n=0;for(var i=0;i<e.SheetNames.length;++i){var s=e.SheetNames[i];var f=e.Sheets[s];if(!f||!f["!ref"])continue;++n;var l=Ya(f["!ref"]);if(t<l.e.r)t=l.e.r;if(a<l.e.c)a=l.e.c}if(t>8191)t=8191;r._W(2,t);r._W(1,n);r._W(1,a);r._W(2,0);r._W(2,0);r._W(1,1);r._W(1,2);r._W(4,0);r._W(4,0);return r}function o(e,r,t){var a={s:{c:0,r:0},e:{c:0,r:0}};if(r==8&&t.qpro){a.s.c=e._R(1);e.l++;a.s.r=e._R(2);a.e.c=e._R(1);e.l++;a.e.r=e._R(2);return a}a.s.c=e._R(2);a.s.r=e._R(2);if(r==12&&t.qpro)e.l+=2;a.e.c=e._R(2);a.e.r=e._R(2);if(r==12&&t.qpro)e.l+=2;if(a.s.c==65535)a.s.c=a.e.c=a.s.r=a.e.r=0;return a}function c(e){var r=Ia(8);r._W(2,e.s.c);r._W(2,e.s.r);r._W(2,e.e.c);r._W(2,e.e.r);return r}function h(e,r,t){var a=[{c:0,r:0},{t:"n",v:0},0,0];if(t.qpro&&t.vers!=20768){a[0].c=e._R(1);a[3]=e._R(1);a[0].r=e._R(2);e.l+=2}else if(t.works){a[0].c=e._R(2);a[0].r=e._R(2);a[2]=e._R(2)}else{a[2]=e._R(1);a[0].c=e._R(2);a[0].r=e._R(2)}return a}function u(e){if(e.z&&Le(e.z)){return 240|(t.indexOf(e.z)+1||2)}return 255}function d(e,r,t){var a=e.l+r;var n=h(e,r,t);n[1].t="s";if((t.vers&65534)==20768){e.l++;var i=e._R(1);n[1].v=e._R(i,"utf8");return n}if(t.qpro)e.l++;n[1].v=e._R(a-e.l,"cstr");return n}function v(e,r,t){var a=Ia(7+t.length);a._W(1,255);a._W(2,r);a._W(2,e);a._W(1,39);for(var n=0;n<a.length;++n){var i=t.charCodeAt(n);a._W(1,i>=128?95:i)}a._W(1,0);return a}function p(e,r,t){var a=e.l+r;var n=h(e,r,t);n[1].t="s";if(t.vers==20768){var i=e._R(1);n[1].v=e._R(i,"utf8");return n}n[1].v=e._R(a-e.l,"cstr");return n}function m(e,r,t){var a=h(e,r,t);a[1].v=e._R(2,"i");return a}function g(e,r,t){var a=Ia(7);a._W(1,u(t));a._W(2,r);a._W(2,e);a._W(2,t.v,"i");return a}function w(e,r,t){var a=h(e,r,t);a[1].v=e._R(8,"f");return a}function k(e,r,t){var a=Ia(13);a._W(1,u(t));a._W(2,r);a._W(2,e);a._W(8,t.v,"f");return a}function T(e,r,t){var a=e.l+r;var n=h(e,r,t);n[1].v=e._R(8,"f");if(t.qpro)e.l=a;else{var i=e._R(2);_(e.slice(e.l,e.l+i),n);e.l+=i}return n}function A(e,r,t){var a=r&32768;r&=~32768;r=(a?e:0)+(r>=8192?r-16384:r);return(a?"":"$")+(t?Va(r):Ba(r))}var y={31:["NA",0],33:["ABS",1],34:["TRUNC",1],35:["SQRT",1],36:["LOG",1],37:["LN",1],38:["PI",0],39:["SIN",1],40:["COS",1],41:["TAN",1],42:["ATAN2",2],43:["ATAN",1],44:["ASIN",1],45:["ACOS",1],46:["EXP",1],47:["MOD",2],49:["ISNA",1],50:["ISERR",1],5Line truncated
|
||||
var t=ct(e);switch(ht(t[0])){case"<fills":;case"<fills>":;case"</fills>":break;case"<fill>":;case"<fill":;case"<fill/>":n={};r.Fills.push(n);break;case"</fill>":break;case"<gradientFill>":break;case"<gradientFill":;case"</gradientFill>":r.Fills.push(n);n={};break;case"<patternFill":;case"<patternFill>":if(t.patternType)n.patternType=t.patternType;break;case"<patternFill/>":;case"</patternFill>":break;case"<bgColor":if(!n.bgColor)n.bgColor={};if(t.indexed)n.bgColor.indexed=parseInt(t.indexed,10);if(t.theme)n.bgColor.theme=parseInt(t.theme,10);if(t.tint)n.bgColor.tint=parseFloat(t.tint);if(t.rgb)n.bgColor.rgb=t.rgb.slice(-6);break;case"<bgColor/>":;case"</bgColor>":break;case"<fgColor":if(!n.fgColor)n.fgColor={};if(t.theme)n.fgColor.theme=parseInt(t.theme,10);if(t.tint)n.fgColor.tint=parseFloat(t.tint);if(t.rgb!=null)n.fgColor.rgb=t.rgb.slice(-6);break;case"<fgColor/>":;case"</fgColor>":break;case"<stop":;case"<stop/>":break;case"</stop>":break;case"<color":;case"<color/>":break;case"</color>":break;case"<extLst":;case"<extLst>":;case"</extLst>":break;case"<ext":i=true;break;case"</ext>":i=false;break;default:if(a&&a.WTF){if(!i)throw new Error("unrecognized "+t[0]+" in fills")};}})}function mc(e,r,t,a){r.Fonts=[];var n={};var s=false;(e.match(ft)||[]).forEach(function(e){var f=ct(e);switch(ht(f[0])){case"<fonts":;case"<fonts>":;case"</fonts>":break;case"<font":;case"<font>":break;case"</font>":;case"<font/>":r.Fonts.push(n);n={};break;case"<name":if(f.val)n.name=Ot(f.val);break;case"<name/>":;case"</name>":break;case"<b":n.bold=f.val?Et(f.val):1;break;case"<b/>":n.bold=1;break;case"<i":n.italic=f.val?Et(f.val):1;break;case"<i/>":n.italic=1;break;case"<u":switch(f.val){case"none":n.underline=0;break;case"single":n.underline=1;break;case"double":n.underline=2;break;case"singleAccounting":n.underline=33;break;case"doubleAccounting":n.underline=34;break;}break;case"<u/>":n.underline=1;break;case"<strike":n.strike=f.val?Et(f.val):1;break;case"<strike/>":n.strike=1;break;case"<outline":n.outline=f.val?Et(f.val):1;break;case"<outline/>":n.outline=1;break;case"<shadow":n.shadow=f.val?Et(f.val):1;break;case"<shadow/>":n.shadow=1;break;case"<condense":n.condense=f.val?Et(f.val):1;break;case"<condense/>":n.condense=1;break;case"<extend":n.extend=f.val?Et(f.val):1;break;case"<extend/>":n.extend=1;break;case"<sz":if(f.val)n.sz=+f.val;break;case"<sz/>":;case"</sz>":break;case"<vertAlign":if(f.val)n.vertAlign=f.val;break;case"<vertAlign/>":;case"</vertAlign>":break;case"<family":if(f.val)n.family=parseInt(f.val,10);break;case"<family/>":;case"</family>":break;case"<scheme":if(f.val)n.scheme=f.val;break;case"<scheme/>":;case"</scheme>":break;case"<charset":if(f.val=="1")break;f.codepage=i[parseInt(f.val,10)];break;case"<color":if(!n.color)n.color={};if(f.auto)n.color.auto=Et(f.auto);if(f.rgb)n.color.rgb=f.rgb.slice(-6);else if(f.indexed){n.color.index=parseInt(f.indexed,10);var l=li[n.color.index];if(n.color.index==81)l=li[1];if(!l)l=li[1];n.color.rgb=l[0].toString(16)+l[1].toString(16)+l[2].toString(16)}else if(f.theme){n.color.theme=parseInt(f.theme,10);if(f.tint)n.color.tint=parseFloat(f.tint);if(f.theme&&t.themeElements&&t.themeElements.clrScheme){n.color.rgb=qo(t.themeElements.clrScheme[n.color.theme].rgb,n.color.tint||0)}}break;case"<color/>":;case"</color>":break;case"<AlternateContent":s=true;break;case"</AlternateContent>":s=false;break;case"<extLst":;case"<extLst>":;case"</extLst>":break;case"<ext":s=true;break;case"</ext>":s=false;break;default:if(a&&a.WTF){if(!s)throw new Error("unrecognized "+f[0]+" in fonts")};}})}function gc(e,r,t){r.NumberFmt=[];var a=ir(q);for(var n=0;n<a.length;++n)r.NumberFmt[a[n]]=q[a[n]];var i=e.match(ft);if(!i)return;for(n=0;n<i.length;++n){var s=ct(i[n]);switch(ht(s[0])){case"<numFmts":;case"</numFmts>":;case"<numFmts/>":;case"<numFmts>":break;case"<numFmt":{var f=vt(Ot(s.formatCode)),l=parseInt(s.numFmtId,10);r.NumberFmt[l]=f;if(l>0){if(l>392){for(l=392;l>60;--l)if(r.NumberFmt[l]==null)break;r.NumberFmt[l]=f}Je(f,l)}}break;case"</numFmt>":break;default:if(t.WTF)throw new Error("unrecognized "+s[0]+" in numFmts");}}}function bc(e){var r=["<numFmts>"];[[5,8],[23,26],[41,44],[50,392]].forEach(function(t){for(var a=t[0];a<=t[1];++a)if(e[a]!=null)r[r.length]=Ut("numFmt",null,{numFmtId:a,formatCode:gt(e[a])})});if(r.length===1)return"";r[r.length]="</numFmts>";r[0]=Ut("numFmts",null,{count:r.length-2}).replace("/>",">");return r.join("")}var wc=["numFmtId","fillId","fontId","borderId","xfId"];var kc=["applyAlignment","applyBorder","applyFill","applyFont","applyNumberFormat","applyProtection","pivotButton","quotePrefix"];function Tc(e,r,t){r.CellXf=[];var a;var n=false;(e.match(ft)||[]).forEach(function(e){var i=ct(e),s=0;switch(ht(i[0])){case"<cellXfs":;case"<cellXfs>":;case"<cellXfs/>":;case"</cellXfs>":break;case"<xf":;case"<xf/>":;case"<xf>":a=i;delete a[0];for(s=0;s<wc.length;++s)if(a[wc[s]])a[wc[s]]=parseInt(a[wc[s]],10);for(s=0;s<kc.length;++s)if(a[kc[s]])a[kc[s]]=Et(a[kc[s]]);if(r.NLine truncated
|
||||
}function Fh(e,r,t,a){var n=e["!data"]!=null;var i;r.forEach(function(r){var s=ja(r.ref);if(s.r<0||s.c<0)return;if(n){if(!e["!data"][s.r])e["!data"][s.r]=[];i=e["!data"][s.r][s.c]}else i=e[r.ref];if(!i){i={t:"z"};if(n)e["!data"][s.r][s.c]=i;else e[r.ref]=i;var f=Qa(e["!ref"]||"BDWGO1000001:A1");if(f.s.r>s.r)f.s.r=s.r;if(f.e.r<s.r)f.e.r=s.r;if(f.s.c>s.c)f.s.c=s.c;if(f.e.c<s.c)f.e.c=s.c;var l=Za(f);e["!ref"]=l}if(!i.c)i.c=[];var o={a:r.author,t:r.t,r:r.r,T:t};if(r.h)o.h=r.h;for(var c=i.c.length-1;c>=0;--c){if(!t&&i.c[c].T)return;if(t&&!i.c[c].T)i.c.splice(c,1)}if(t&&a)for(c=0;c<a.length;++c){if(o.a==a[c].id){o.a=a[c].name||o.a;break}}i.c.push(o)})}function Dh(e,r){if(e.match(/<(?:\w+:)?comments *\/>/))return[];var t=[];var a=[];var n=Wr(e,"authors");if(n&&n[1])n[1].split(/<\/\w*:?author>/).forEach(function(e){if(e===""||e.trim()==="")return;var r=e.match(/<(?:\w+:)?author[^<>]*>(.*)/);if(r)t.push(r[1])});var i=Wr(e,"commentList");if(i&&i[1])i[1].split(/<\/\w*:?comment>/).forEach(function(e){if(e===""||e.trim()==="")return;var n=e.match(/<(?:\w+:)?comment[^<>]*>/);if(!n)return;var i=ct(n[0]);var s={author:i.authorId&&t[i.authorId]||"sheetjsghost",ref:i.ref,guid:i.guid};var f=ja(i.ref);if(r.sheetRows&&r.sheetRows<=f.r)return;var l=Wr(e,"text");var o=!!l&&!!l[1]&&oo(l[1])||{r:"",t:"",h:""};s.r=o.r;if(o.r=="<t></t>")o.t=o.h="";s.t=(o.t||"").replace(/\r\n/g,"\n").replace(/\r/g,"\n");if(r.cellHTML)s.h=o.h;a.push(s)});return a}function Ph(e){var r=[at,Ut("comments",null,{xmlns:$t[0]})];var t=[];r.push("<authors>");e.forEach(function(e){e[1].forEach(function(e){var a=gt(e.a);if(t.indexOf(a)==-1){t.push(a);r.push("<author>"+a+"</author>")}if(e.T&&e.ID&&t.indexOf("tc="+e.ID)==-1){t.push("tc="+e.ID);r.push("<author>"+"tc="+e.ID+"</author>")}})});if(t.length==0){t.push("SheetJ5");r.push("<author>SheetJ5</author>")}r.push("</authors>");r.push("<commentList>");e.forEach(function(e){var a=0,n=[],i=0;if(e[1][0]&&e[1][0].T&&e[1][0].ID)a=t.indexOf("tc="+e[1][0].ID);e[1].forEach(function(e){if(e.a)a=t.indexOf(gt(e.a));if(e.T)++i;n.push(e.t==null?"":gt(e.t))});if(i===0){e[1].forEach(function(a){r.push('<comment ref="'+e[0]+'" authorId="'+t.indexOf(gt(a.a))+'"><text>');r.push(Lt("t",a.t==null?"":gt(a.t)));r.push("</text></comment>")})}else{if(e[1][0]&&e[1][0].T&&e[1][0].ID)a=t.indexOf("tc="+e[1][0].ID);r.push('<comment ref="'+e[0]+'" authorId="'+a+'"><text>');var s="Comment:\n "+n[0]+"\n";for(var f=1;f<n.length;++f)s+="Reply:\n "+n[f]+"\n";r.push(Lt("t",gt(s)));r.push("</text></comment>")}});r.push("</commentList>");if(r.length>2){r[r.length]="</comments>";r[1]=r[1].replace("/>",">")}return r.join("")}function Lh(e,r){var t=[];var a=false,n={},i=0;e.replace(ft,function s(f,l){var o=ct(f);switch(ht(o[0])){case"<?xml":break;case"<ThreadedComments":break;case"</ThreadedComments>":break;case"<threadedComment":n={author:o.personId,guid:o.id,ref:o.ref,T:1};break;case"</threadedComment>":if(n.t!=null)t.push(n);break;case"<text>":;case"<text":i=l+f.length;break;case"</text>":n.t=e.slice(i,l).replace(/\r\n/g,"\n").replace(/\r/g,"\n");break;case"<mentions":;case"<mentions>":a=true;break;case"</mentions>":a=false;break;case"<extLst":;case"<extLst>":;case"</extLst>":;case"<extLst/>":break;case"<ext":a=true;break;case"</ext>":a=false;break;default:if(!a&&r.WTF)throw new Error("unrecognized "+o[0]+" in threaded comments");}return f});return t}function Mh(e,r,t){var a=[at,Ut("ThreadedComments",null,{xmlns:Vt.TCMNT}).replace(/[\/]>/,">")];e.forEach(function(e){var n="";(e[1]||[]).forEach(function(i,s){if(!i.T){delete i.ID;return}if(i.a&&r.indexOf(i.a)==-1)r.push(i.a);var f={ref:e[0],id:"{54EE7951-7262-4200-6969-"+("000000000000"+t.tcid++).slice(-12)+"}"};if(s==0)n=f.id;else f.parentId=n;i.ID=f.id;if(i.a)f.personId="{54EE7950-7262-4200-6969-"+("000000000000"+r.indexOf(i.a)).slice(-12)+"}";a.push(Ut("threadedComment",Lt("text",i.t||""),f))})});a.push("</ThreadedComments>");return a.join("")}function Uh(e,r){var t=[];var a=false;e.replace(ft,function n(e){var n=ct(e);switch(ht(n[0])){case"<?xml":break;case"<personList":break;case"</personList>":break;case"<person":t.push({name:n.displayname,id:n.id});break;case"</person>":break;case"<extLst":;case"<extLst>":;case"</extLst>":;case"<extLst/>":break;case"<ext":a=true;break;case"</ext>":a=false;break;default:if(!a&&r.WTF)throw new Error("unrecognized "+n[0]+" in threaded comments");}return e});return t}function Bh(e){var r=[at,Ut("personList",null,{xmlns:Vt.TCMNT,"xmlns:x":$t[0]}).replace(/[\/]>/,">")];e.forEach(function(e,t){r.push(Ut("person",null,{displayName:e,id:"{54EE7950-7262-4200-6969-"+("000000000000"+t).slice(-12)+"}",userId:e,providerId:"None"}))});r.push("</personList>");return r.join("")}function Wh(e){var r={};r.iauthor=e._R(4);var t=Nn(e,16);r.rfx=t.s;r.ref=Ka(t.s);e.l+=16;return r}function zh(e,r){if(r==null)r=Ia(36);r._W(4,e[1].iauthor);Fn(e[0],r);r._W(4,0);r._W(4,0);r._W(4,0);r._W(4,0);return r}var Hh=on;function Vh(e){return cn(e.slice(0,54))}function $h(e,r){var t=[];var a=[]Line truncated
|
||||
116:"VSCROLL",117:"HSCROLL",118:"ALERT",119:"NEW",120:"CANCEL.COPY",121:"SHOW.CLIPBOARD",122:"MESSAGE",124:"PASTE.LINK",125:"APP.ACTIVATE",126:"DELETE.ARROW",127:"ROW.HEIGHT",128:"FORMAT.MOVE",129:"FORMAT.SIZE",130:"FORMULA.REPLACE",131:"SEND.KEYS",132:"SELECT.SPECIAL",133:"APPLY.NAMES",134:"REPLACE.FONT",135:"FREEZE.PANES",136:"SHOW.INFO",137:"SPLIT",138:"ON.WINDOW",139:"ON.DATA",140:"DISABLE.INPUT",142:"OUTLINE",143:"LIST.NAMES",144:"FILE.CLOSE",145:"SAVE.WORKBOOK",146:"DATA.FORM",147:"COPY.CHART",148:"ON.TIME",149:"WAIT",150:"FORMAT.FONT",151:"FILL.UP",152:"FILL.LEFT",153:"DELETE.OVERLAY",155:"SHORT.MENUS",159:"SET.UPDATE.STATUS",161:"COLOR.PALETTE",162:"DELETE.STYLE",163:"WINDOW.RESTORE",164:"WINDOW.MAXIMIZE",166:"CHANGE.LINK",167:"CALCULATE.DOCUMENT",168:"ON.KEY",169:"APP.RESTORE",170:"APP.MOVE",171:"APP.SIZE",172:"APP.MINIMIZE",173:"APP.MAXIMIZE",174:"BRING.TO.FRONT",175:"SEND.TO.BACK",185:"MAIN.CHART.TYPE",186:"OVERLAY.CHART.TYPE",187:"SELECT.END",188:"OPEN.MAIL",189:"SEND.MAIL",190:"STANDARD.FONT",191:"CONSOLIDATE",192:"SORT.SPECIAL",193:"GALLERY.3D.AREA",194:"GALLERY.3D.COLUMN",195:"GALLERY.3D.LINE",196:"GALLERY.3D.PIE",197:"VIEW.3D",198:"GOAL.SEEK",199:"WORKGROUP",200:"FILL.GROUP",201:"UPDATE.LINK",202:"PROMOTE",203:"DEMOTE",204:"SHOW.DETAIL",206:"UNGROUP",207:"OBJECT.PROPERTIES",208:"SAVE.NEW.OBJECT",209:"SHARE",210:"SHARE.NAME",211:"DUPLICATE",212:"APPLY.STYLE",213:"ASSIGN.TO.OBJECT",214:"OBJECT.PROTECTION",215:"HIDE.OBJECT",216:"SET.EXTRACT",217:"CREATE.PUBLISHER",218:"SUBSCRIBE.TO",219:"ATTRIBUTES",220:"SHOW.TOOLBAR",222:"PRINT.PREVIEW",223:"EDIT.COLOR",224:"SHOW.LEVELS",225:"FORMAT.MAIN",226:"FORMAT.OVERLAY",227:"ON.RECALC",228:"EDIT.SERIES",229:"DEFINE.STYLE",240:"LINE.PRINT",243:"ENTER.DATA",249:"GALLERY.RADAR",250:"MERGE.STYLES",251:"EDITION.OPTIONS",252:"PASTE.PICTURE",253:"PASTE.PICTURE.LINK",254:"SPELLING",256:"ZOOM",259:"INSERT.OBJECT",260:"WINDOW.MINIMIZE",265:"SOUND.NOTE",266:"SOUND.PLAY",267:"FORMAT.SHAPE",268:"EXTEND.POLYGON",269:"FORMAT.AUTO",272:"GALLERY.3D.BAR",273:"GALLERY.3D.SURFACE",274:"FILL.AUTO",276:"CUSTOMIZE.TOOLBAR",277:"ADD.TOOL",278:"EDIT.OBJECT",279:"ON.DOUBLECLICK",280:"ON.ENTRY",281:"WORKBOOK.ADD",282:"WORKBOOK.MOVE",283:"WORKBOOK.COPY",284:"WORKBOOK.OPTIONS",285:"SAVE.WORKSPACE",288:"CHART.WIZARD",289:"DELETE.TOOL",290:"MOVE.TOOL",291:"WORKBOOK.SELECT",292:"WORKBOOK.ACTIVATE",293:"ASSIGN.TO.TOOL",295:"COPY.TOOL",296:"RESET.TOOL",297:"CONSTRAIN.NUMERIC",298:"PASTE.TOOL",302:"WORKBOOK.NEW",305:"SCENARIO.CELLS",306:"SCENARIO.DELETE",307:"SCENARIO.ADD",308:"SCENARIO.EDIT",309:"SCENARIO.SHOW",310:"SCENARIO.SHOW.NEXT",311:"SCENARIO.SUMMARY",312:"PIVOT.TABLE.WIZARD",313:"PIVOT.FIELD.PROPERTIES",314:"PIVOT.FIELD",315:"PIVOT.ITEM",316:"PIVOT.ADD.FIELDS",318:"OPTIONS.CALCULATION",319:"OPTIONS.EDIT",320:"OPTIONS.VIEW",321:"ADDIN.MANAGER",322:"MENU.EDITOR",323:"ATTACH.TOOLBARS",324:"VBAActivate",325:"OPTIONS.CHART",328:"VBA.INSERT.FILE",330:"VBA.PROCEDURE.DEFINITION",336:"ROUTING.SLIP",338:"ROUTE.DOCUMENT",339:"MAIL.LOGON",342:"INSERT.PICTURE",343:"EDIT.TOOL",344:"GALLERY.DOUGHNUT",350:"CHART.TREND",352:"PIVOT.ITEM.PROPERTIES",354:"WORKBOOK.INSERT",355:"OPTIONS.TRANSITION",356:"OPTIONS.GENERAL",370:"FILTER.ADVANCED",373:"MAIL.ADD.MAILER",374:"MAIL.DELETE.MAILER",375:"MAIL.REPLY",376:"MAIL.REPLY.ALL",377:"MAIL.FORWARD",378:"MAIL.NEXT.LETTER",379:"DATA.LABEL",380:"INSERT.TITLE",381:"FONT.PROPERTIES",382:"MACRO.OPTIONS",383:"WORKBOOK.HIDE",384:"WORKBOOK.UNHIDE",385:"WORKBOOK.DELETE",386:"WORKBOOK.NAME",388:"GALLERY.CUSTOM",390:"ADD.CHART.AUTOFORMAT",391:"DELETE.CHART.AUTOFORMAT",392:"CHART.ADD.DATA",393:"AUTO.OUTLINE",394:"TAB.ORDER",395:"SHOW.DIALOG",396:"SELECT.ALL",397:"UNGROUP.SHEETS",398:"SUBTOTAL.CREATE",399:"SUBTOTAL.REMOVE",400:"RENAME.OBJECT",412:"WORKBOOK.SCROLL",413:"WORKBOOK.NEXT",414:"WORKBOOK.PREV",415:"WORKBOOK.TAB.SPLIT",416:"FULL.SCREEN",417:"WORKBOOK.PROTECT",420:"SCROLLBAR.PROPERTIES",421:"PIVOT.SHOW.PAGES",422:"TEXT.TO.COLUMNS",423:"FORMAT.CHARTTYPE",424:"LINK.FORMAT",425:"TRACER.DISPLAY",430:"TRACER.NAVIGATE",431:"TRACER.CLEAR",432:"TRACER.ERROR",433:"PIVOT.FIELD.GROUP",434:"PIVOT.FIELD.UNGROUP",435:"CHECKBOX.PROPERTIES",436:"LABEL.PROPERTIES",437:"LISTBOX.PROPERTIES",438:"EDITBOX.PROPERTIES",439:"PIVOT.REFRESH",440:"LINK.COMBO",441:"OPEN.TEXT",442:"HIDE.DIALOG",443:"SET.DIALOG.FOCUS",444:"ENABLE.OBJECT",445:"PUSHBUTTON.PROPERTIES",446:"SET.DIALOG.DEFAULT",447:"FILTER",448:"FILTER.SHOW.ALL",449:"CLEAR.OUTLINE",450:"FUNCTION.WIZARD",451:"ADD.LIST.ITEM",452:"SET.LIST.ITEM",453:"REMOVE.LIST.ITEM",454:"SELECT.LIST.ITEM",455:"SET.CONTROL.VALUE",456:"SAVE.COPY.AS",458:"OPTIONS.LISTS.ADD",459:"OPTIONS.LISTS.DELETE",460:"SERIES.AXES",461:"SERIES.X",462:"SERIES.Y",463:"ERRORBAR.X",464:"ERRORBAR.Y",465:"FORMAT.CHART",466:"SERIES.ORDER",467:"MAIL.LOGOFF",468:"CLEAR.ROUTING.SLIP",469:"APP.ACTIVATE.MICROSOFT",470:"MAIL.EDIT.MAILER",471:"ON.SHEET",472:"STANDARD.WIDTH",473:"SCENARIO.MERGE",474:"SUMMARY.INFO",475:"FIND.FILE",476:"ACTIVE.CELL.FONT",477:"ENABLE.TIPWIZARD",47Line truncated
|
||||
Mn({auto:1},t);t._W(-4,-1);t._W(-4,-1);An(e,t);return t.slice(0,t.l)}function lp(e){var r=gn(e);return[r]}function op(e,r,t){if(t==null)t=Ia(8);return bn(r,t)}function cp(e){var r=wn(e);return[r]}function hp(e,r,t){if(t==null)t=Ia(4);return kn(r,t)}function up(e){var r=gn(e);var t=e._R(1);return[r,t,"b"]}function dp(e,r,t){if(t==null)t=Ia(9);bn(r,t);t._W(1,e.v?1:0);return t}function vp(e){var r=wn(e);var t=e._R(1);return[r,t,"b"]}function pp(e,r,t){if(t==null)t=Ia(5);kn(r,t);t._W(1,e.v?1:0);return t}function mp(e){var r=gn(e);var t=e._R(1);return[r,t,"e"]}function gp(e,r,t){if(t==null)t=Ia(9);bn(r,t);t._W(1,e.v);return t}function bp(e){var r=wn(e);var t=e._R(1);return[r,t,"e"]}function wp(e,r,t){if(t==null)t=Ia(8);kn(r,t);t._W(1,e.v);t._W(2,0);t._W(1,0);return t}function kp(e){var r=gn(e);var t=e._R(4);return[r,t,"s"]}function Tp(e,r,t){if(t==null)t=Ia(12);bn(r,t);t._W(4,r.v);return t}function Ap(e){var r=wn(e);var t=e._R(4);return[r,t,"s"]}function yp(e,r,t){if(t==null)t=Ia(8);kn(r,t);t._W(4,r.v);return t}function Ep(e){var r=gn(e);var t=Dn(e);return[r,t,"n"]}function Cp(e,r,t){if(t==null)t=Ia(16);bn(r,t);Pn(e.v,t);return t}function _p(e){var r=wn(e);var t=Dn(e);return[r,t,"n"]}function Sp(e,r,t){if(t==null)t=Ia(12);kn(r,t);Pn(e.v,t);return t}function xp(e){var r=gn(e);var t=xn(e);return[r,t,"n"]}function Op(e,r,t){if(t==null)t=Ia(12);bn(r,t);On(e.v,t);return t}function Ip(e){var r=wn(e);var t=xn(e);return[r,t,"n"]}function Rp(e,r,t){if(t==null)t=Ia(8);kn(r,t);On(e.v,t);return t}function Np(e){var r=gn(e);var t=dn(e);return[r,t,"is"]}function Fp(e){var r=gn(e);var t=on(e);return[r,t,"str"]}function Dp(e,r,t){var a=e.v==null?"":String(e.v);if(t==null)t=Ia(12+4*e.v.length);bn(r,t);cn(a,t);return t.length>t.l?t.slice(0,t.l):t}function Pp(e){var r=wn(e);var t=on(e);return[r,t,"str"]}function Lp(e,r,t){var a=e.v==null?"":String(e.v);if(t==null)t=Ia(8+4*a.length);kn(r,t);cn(a,t);return t.length>t.l?t.slice(0,t.l):t}function Mp(e,r,t){var a=e.l+r;var n=gn(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"b"];if(t.cellFormula){e.l+=2;var f=jd(e,a-e.l,t);s[3]=Ld(f,null,n,t.supbooks,t)}else e.l=a;return s}function Up(e,r,t){var a=e.l+r;var n=gn(e);n.r=t["!row"];var i=e._R(1);var s=[n,i,"e"];if(t.cellFormula){e.l+=2;var f=jd(e,a-e.l,t);s[3]=Ld(f,null,n,t.supbooks,t)}else e.l=a;return s}function Bp(e,r,t){var a=e.l+r;var n=gn(e);n.r=t["!row"];var i=Dn(e);var s=[n,i,"n"];if(t.cellFormula){e.l+=2;var f=jd(e,a-e.l,t);s[3]=Ld(f,null,n,t.supbooks,t)}else e.l=a;return s}function Wp(e,r,t){var a=e.l+r;var n=gn(e);n.r=t["!row"];var i=on(e);var s=[n,i,"str"];if(t.cellFormula){e.l+=2;var f=jd(e,a-e.l,t);s[3]=Ld(f,null,n,t.supbooks,t)}else e.l=a;return s}var zp=Nn;var Hp=Fn;function Vp(e,r){if(r==null)r=Ia(4);r._W(4,e);return r}function $p(e,r){var t=e.l+r;var a=Nn(e,16);var n=yn(e);var i=on(e);var s=on(e);var f=on(e);e.l=t;var l={rfx:a,relId:n,loc:i,display:f};if(s)l.Tooltip=s;return l}function Xp(e,r){var t=Ia(50+4*(e[1].Target.length+(e[1].Tooltip||"").length));Fn({s:ja(e[0]),e:ja(e[0])},t);Sn("rId"+r,t);var a=e[1].Target.indexOf("#");var n=a==-1?"":e[1].Target.slice(a+1);cn(n||"",t);cn(e[1].Tooltip||"",t);cn("",t);return t.slice(0,t.l)}function Gp(){}function jp(e,r,t){var a=e.l+r;var n=In(e,16);var i=e._R(1);var s=[n];s[2]=i;if(t.cellFormula){var f=Gd(e,a-e.l,t);s[1]=f}else e.l=a;return s}function Kp(e,r,t){var a=e.l+r;var n=Nn(e,16);var i=[n];if(t.cellFormula){var s=Yd(e,a-e.l,t);i[1]=s;e.l=a}else e.l=a;return i}function Yp(e,r,t){if(t==null)t=Ia(18);var a=wv(e,r);t._W(-4,e);t._W(-4,e);t._W(4,(a.width||10)*256);t._W(4,0);var n=0;if(r.hidden)n|=1;if(typeof a.width=="number")n|=2;if(r.level)n|=r.level<<8;t._W(2,n);return t}var Zp=["left","right","top","bottom","header","footer"];function Jp(e){var r={};Zp.forEach(function(t){r[t]=Dn(e,8)});return r}function qp(e,r){if(r==null)r=Ia(6*8);kv(e);Zp.forEach(function(t){Pn(e[t],r)});return r}function Qp(e){var r=e._R(2);e.l+=28;return{RTL:r&32}}function em(e,r,t){if(t==null)t=Ia(30);var a=924;if((((r||{}).Views||[])[0]||{}).RTL)a|=32;t._W(2,a);t._W(4,0);t._W(4,0);t._W(4,0);t._W(1,0);t._W(1,0);t._W(2,0);t._W(2,100);t._W(2,0);t._W(2,0);t._W(2,0);t._W(4,0);return t}function rm(e){var r=Ia(24);r._W(4,4);r._W(4,1);Fn(e,r);return r}function tm(e,r){if(r==null)r=Ia(16*4+2);r._W(2,e.password?Mo(e.password):0);r._W(4,1);[["objects",false],["scenarios",false],["formatCells",true],["formatColumns",true],["formatRows",true],["insertColumns",true],["insertRows",true],["insertHyperlinks",true],["deleteColumns",true],["deleteRows",true],["selectLockedCells",false],["sort",true],["autoFilter",true],["pivotTables",true],["selectUnlockedCells",false]].forEach(function(t){if(t[1])r._W(4,e[t[0]]!=null&&!e[t[0]]?1:0);else r._W(4,e[t[0]]!=null&&e[t[0]]?0:1)});return r}function am(){}function nm(){}function im(e,r,t,a,n,i,s){if(!e)return e;var f=r||{};if(!a)a={"!id":{}};if(b!=null&&f.dense==null)f.dense=b;var l={};if(f.dense)l["!data"]=[];var o;var c={s:{r:2e6,c:2e6},e:{r:0,c:0}};var h=[];var u=false,d=false;Line truncated
|
||||
});a.s=d}if(a.StyleID!==undefined)a.ixfe=a.StyleID}function Tg(e){return hi.indexOf("_xlnm."+e)>-1?"_xlnm."+e:e}function Ag(e){e.t=e.v||"";e.t=e.t.replace(/\r\n/g,"\n").replace(/\r/g,"\n");e.v=e.w=e.ixfe=undefined}function yg(e,r){var t=r||{};$e();var n=v(zt(e));if(t.type=="binary"||t.type=="array"||t.type=="base64"){if(typeof a!=="undefined")n=a.utils.decode(65001,c(n));else n=Ot(n)}var i=n.slice(0,1024).toLowerCase(),s=false;i=i.replace(/".*?"/g,"");if((i.indexOf(">")&1023)>Math.min(i.indexOf(",")&1023,i.indexOf(";")&1023)){var f=Tr(t);f.type="string";return ro.to_workbook(n,f)}if(i.indexOf("<?xml")==-1)["html","table","head","meta","script","style","div"].forEach(function(e){if(i.indexOf("<"+e)>=0)s=true});if(s)return Eb(n,t);pg={"General Number":"General","General Date":q[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":q[15],"Short Date":q[14],"Long Time":q[19],"Medium Time":q[18],"Short Time":q[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:q[2],Standard:q[4],Percent:q[10],Scientific:q[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var l;var o=[],h;if(b!=null&&t.dense==null)t.dense=b;var u={},d=[],p={},m="";if(t.dense)p["!data"]=[];var g={},w={};var k=dg('<Data ss:Type="String">'),T=0;var A=0,y=0;var E={s:{r:2e6,c:2e6},e:{r:0,c:0}};var C={},_={};var S="",x=0;var O=[];var I={},R={},N=0,F=[];var D=[],P={};var L=[],M,U=false;var B=[];var W=[],z={},H=0,V=0;var $={Sheets:[],WBProps:{date1904:false}},X={};Ht.lastIndex=0;n=Mr(n,"<!--","-->");var G="";while(l=Ht.exec(n))switch(l[3]=(G=l[3]).toLowerCase()){case"data":if(G=="data"){if(l[1]==="/"){if((h=o.pop())[0]!==l[3])throw new Error("Bad state: "+h.join("|"))}else if(l[0].charAt(l[0].length-2)!=="/")o.push([l[3],true]);break}if(o[o.length-1][1])break;if(l[1]==="/")kg(n.slice(T,l.index),S,k,o[o.length-1][0]=="comment"?P:g,{c:A,r:y},C,L[A],w,B,t,$.WBProps.date1904);else{S="";k=dg(l[0]);T=l.index+l[0].length}break;case"cell":if(l[1]==="/"){if(D.length>0)g.c=D;if((!t.sheetRows||t.sheetRows>y)&&g.v!==void 0){if(t.dense){if(!p["!data"][y])p["!data"][y]=[];p["!data"][y][A]=g}else p[Va(A)+Ba(y)]=g}if(g.HRef){g.l={Target:vt(g.HRef)};if(g.HRefScreenTip)g.l.Tooltip=g.HRefScreenTip;delete g.HRef;delete g.HRefScreenTip}if(g.MergeAcross||g.MergeDown){H=A+(parseInt(g.MergeAcross,10)|0);V=y+(parseInt(g.MergeDown,10)|0);if(H>A||V>y)O.push({s:{c:A,r:y},e:{c:H,r:V}})}if(!t.sheetStubs){if(g.MergeAcross)A=H+1;else++A}else if(g.MergeAcross||g.MergeDown){for(var j=A;j<=H;++j){for(var K=y;K<=V;++K){if(j>A||K>y){if(t.dense){if(!p["!data"][K])p["!data"][K]=[];p["!data"][K][j]={t:"z"}}else p[Va(j)+Ba(K)]={t:"z"}}}}A=H+1}else++A}else{g=vg(l[0]);if(g.Index)A=+g.Index-1;if(A<E.s.c)E.s.c=A;if(A>E.e.c)E.e.c=A;if(l[0].slice(-2)==="/>")++A;D=[]}break;case"row":if(l[1]==="/"||l[0].slice(-2)==="/>"){if(y<E.s.r)E.s.r=y;if(y>E.e.r)E.e.r=y;if(l[0].slice(-2)==="/>"){w=dg(l[0]);if(w.Index)y=+w.Index-1}A=0;++y}else{w=dg(l[0]);if(w.Index)y=+w.Index-1;z={};if(w.AutoFitHeight=="0"||w.Height){z.hpx=parseInt(w.Height,10);z.hpt=hc(z.hpx);W[y]=z}if(w.Hidden=="1"){z.hidden=true;W[y]=z}}break;case"worksheet":if(l[1]==="/"){if((h=o.pop())[0]!==l[3])throw new Error("Bad state: "+h.join("|"));d.push(m);if(E.s.r<=E.e.r&&E.s.c<=E.e.c){p["!ref"]=Za(E);if(t.sheetRows&&t.sheetRows<=E.e.r){p["!fullref"]=p["!ref"];E.e.r=t.sheetRows-1;p["!ref"]=Za(E)}}if(O.length)p["!merges"]=O;if(L.length>0)p["!cols"]=L;if(W.length>0)p["!rows"]=W;u[m]=p}else{E={s:{r:2e6,c:2e6},e:{r:0,c:0}};y=A=0;o.push([l[3],false]);h=dg(l[0]);m=vt(h.Name);p={};if(t.dense)p["!data"]=[];O=[];B=[];W=[];X={name:m,Hidden:0};$.Sheets.push(X)}break;case"table":if(l[1]==="/"){if((h=o.pop())[0]!==l[3])throw new Error("Bad state: "+h.join("|"))}else if(l[0].slice(-2)=="/>")break;else{o.push([l[3],false]);L=[];U=false}break;case"style":if(l[1]==="/")wg(C,_,t);else _=dg(l[0]);break;case"numberformat":_.nf=vt(dg(l[0]).Format||"General");if(pg[_.nf])_.nf=pg[_.nf];for(var Y=0;Y!=392;++Y)if(q[Y]==_.nf)break;if(Y==392)for(Y=57;Y!=392;++Y)if(q[Y]==null){Je(_.nf,Y);break}break;case"column":if(o[o.length-1][0]!=="table")break;if(l[1]==="/")break;M=dg(l[0]);if(M.Hidden){M.hidden=true;delete M.Hidden}if(M.Width)M.wpx=parseInt(M.Width,10);if(!U&&M.wpx>10){U=true;tc=Qo;for(var Z=0;Z<L.length;++Z)if(L[Z])lc(L[Z])}if(U)lc(M);L[M.Index-1||L.length]=M;for(var J=0;J<+M.Span;++J)L[L.length]=Tr(M);break;case"namedrange":if(l[1]==="/")break;if(!$.Names)$.Names=[];var Q=ct(l[0]);var ee={Name:Tg(Q.Name),Ref:eu(Q.RefersTo.slice(1),{r:0,c:0})};if($.Sheets.length>0)ee.Sheet=$.Sheets.length-1;$.Names.push(ee);break;case"namedcell":break;case"b":break;case"i":break;case"u":break;case"s":break;case"em":break;case"h2":break;case"h3":break;case"sub":break;case"sup":break;case"span":break;case"alignment":break;case"borders":break;case"border":break;case"font":if(l[0].slice(-2)==="/>")break;else if(l[1]==="/")S+=n.slice(x,l.index);else x=l.index+l[0].length;break;case"interior":if(!t.cellStyles)break;_.Interior=dg(l[0]);bLine truncated
|
||||
zg(T,r,t.opts.Date1904);I({c:oe,r:J.r},T,r)}}break;case 214:;case 516:;case 4:T=Hg(J.val,J.ixfe,"s");T.XF=y[T.ixfe];if(z>0)T.z=T.XF&&T.XF.numFmtId&&H[T.XF.numFmtId]||H[T.ixfe>>8&63];zg(T,r,t.opts.Date1904);I({c:J.c,r:J.r},T,r);break;case 0:;case 512:{if(W===1)s=J}break;case 252:{o=J}break;case 1054:{if(R.biff>=3&&R.biff<=4){H[z++]=J[1];for(var he=0;he<z+163;++he)if(q[he]==J[1])break;if(he>=163)Je(J[1],z+163)}else Je(J[1],J[0])}break;case 30:{H[z++]=J;for(var ue=0;ue<z+163;++ue)if(q[ue]==J)break;if(ue>=163)Je(J,z+163)}break;case 229:F=F.concat(J);break;case 93:D[J.cmo[0]]=R.lastobj=J;break;case 438:R.lastobj.TxO=J;break;case 127:R.lastobj.ImData=J;break;case 440:{for(g=J[0].s.r;g<=J[0].e.r;++g)for(m=J[0].s.c;m<=J[0].e.c;++m){v=r.dense?(n["!data"][g]||[])[m]:n[Ka({c:m,r:g})];if(v)v.l=J[1]}}break;case 2048:{for(g=J[0].s.r;g<=J[0].e.r;++g)for(m=J[0].s.c;m<=J[0].e.c;++m){v=r.dense?(n["!data"][g]||[])[m]:n[Ka({c:m,r:g})];if(v&&v.l)v.l.Tooltip=J[1]}}break;case 28:{v=r.dense?(n["!data"][J[0].r]||[])[J[0].c]:n[Ka(J[0])];if(!v){if(r.dense){if(!n["!data"][J[0].r])n["!data"][J[0].r]=[];v=n["!data"][J[0].r][J[0].c]={t:"z"}}else{v=n[Ka(J[0])]={t:"z"}}s.e.r=Math.max(s.e.r,J[0].r);s.s.r=Math.min(s.s.r,J[0].r);s.e.c=Math.max(s.e.c,J[0].c);s.s.c=Math.min(s.s.c,J[0].c)}if(!v.c)v.c=[];if(R.biff<=5&&R.biff>=2)p={a:"SheetJ5",t:J[1]};else{var de=D[J[2]];p={a:J[1],t:de.TxO.t};if(J[3]!=null&&!(J[3]&2))v.c.hidden=true}v.c.push(p)}break;case 2173:uh(y[J.ixfe],J.ext);break;case 125:{if(!R.cellStyles)break;while(J.e>=J.s){P[J.e--]={width:J.w/256,level:J.level||0,hidden:!!(J.flags&1)};if(!M){M=true;fc(J.w/256)}lc(P[J.e+1])}}break;case 520:{var ve={};if(J.level!=null){L[J.r]=ve;ve.level=J.level}if(J.hidden){L[J.r]=ve;ve.hidden=true}if(J.hpt){L[J.r]=ve;ve.hpt=J.hpt;ve.hpx=uc(J.hpt)}}break;case 38:;case 39:;case 40:;case 41:if(!n["!margins"])kv(n["!margins"]={});n["!margins"][{38:"left",39:"right",40:"top",41:"bottom"}[j]]=J;break;case 161:if(!n["!margins"])kv(n["!margins"]={});n["!margins"].header=J.header;n["!margins"].footer=J.footer;break;case 574:if(J.RTL)C.Views[0].RTL=true;break;case 146:E=J;break;case 2198:N=J;break;case 140:A=J;break;case 442:{if(!c)C.WBProps.CodeName=J||"ThisWorkbook";else _.CodeName=J||_.name}break;}}else{if(!Y)console.error("Missing Info for XLS Record 0x"+j.toString(16));e.l+=K}}t.SheetNames=ir(i).sort(function(e,r){return Number(e)-Number(r)}).map(function(e){return i[e].name});if(!r.bookSheets)t.Sheets=a;if(!t.SheetNames.length&&h["!ref"]){t.SheetNames.push("Sheet1");if(t.Sheets)t.Sheets["Sheet1"]=h}else t.Preamble=h;if(t.Sheets)V.forEach(function(e,r){t.Sheets[t.SheetNames[r]]["!autofilter"]=e});t.Strings=o;t.SSF=Tr(q);if(R.enc)t.Encryption=R.enc;if(N)t.Themes=N;t.Metadata={};if(A!==undefined)t.Metadata.Country=A;if(U.names.length>0)C.Names=U.names;t.Workbook=C;return t}var $g={SI:"e0859ff2f94f6810ab9108002b27b3d9",DSI:"02d5cdd59c2e1b10939708002b2cf9ae",UDI:"05d5cdd59c2e1b10939708002b2cf9ae"};function Xg(e,r,t){var a=Qe.find(e,"/!DocumentSummaryInformation");if(a&&a.size>0)try{var n=us(a,ti,$g.DSI);for(var i in n)r[i]=n[i]}catch(s){if(t.WTF)throw s}var f=Qe.find(e,"/!SummaryInformation");if(f&&f.size>0)try{var l=us(f,ai,$g.SI);for(var o in l)if(r[o]==null)r[o]=l[o]}catch(s){if(t.WTF)throw s}if(r.HeadingPairs&&r.TitlesOfParts){Pi(r.HeadingPairs,r.TitlesOfParts,r,t);delete r.HeadingPairs;delete r.TitlesOfParts}}function Gg(e,r){var t=[],a=[],n=[];var i=0,s;var f=sr(ti,"n");var l=sr(ai,"n");if(e.Props){s=ir(e.Props);for(i=0;i<s.length;++i)(Object.prototype.hasOwnProperty.call(f,s[i])?t:Object.prototype.hasOwnProperty.call(l,s[i])?a:n).push([s[i],e.Props[s[i]]])}if(e.Custprops){s=ir(e.Custprops);for(i=0;i<s.length;++i)if(!Object.prototype.hasOwnProperty.call(e.Props||{},s[i]))(Object.prototype.hasOwnProperty.call(f,s[i])?t:Object.prototype.hasOwnProperty.call(l,s[i])?a:n).push([s[i],e.Custprops[s[i]]])}var o=[];for(i=0;i<n.length;++i){if(os.indexOf(n[i][0])>-1||Di.indexOf(n[i][0])>-1)continue;if(n[i][1]==null)continue;o.push(n[i])}if(a.length)Qe.utils.cfb_add(r,"/SummaryInformation",ds(a,$g.SI,l,ai));if(t.length||o.length)Qe.utils.cfb_add(r,"/DocumentSummaryInformation",ds(t,$g.DSI,f,ti,o.length?o:null,$g.UDI))}function jg(e,r){if(!r)r={};Zw(r);o();if(r.codepage)s(r.codepage);var t,a;if(e.FullPaths){if(Qe.find(e,"/encryption"))throw new Error("File is password-protected");t=Qe.find(e,"!CompObj");a=Qe.find(e,"/Workbook")||Qe.find(e,"/Book")}else{switch(r.type){case"base64":e=I(E(e));break;case"binary":e=I(e);break;case"buffer":break;case"array":if(!Array.isArray(e))e=Array.prototype.slice.call(e);break;}xa(e,0);a={content:e}}var n;var i;if(t)Ug(t);if(r.bookProps&&!r.bookSheets)n={};else{var f=C?"buffer":"array";if(a&&a.content)n=Vg(a.content,r);else if((i=Qe.find(e,"PerfectOffice_MAIN"))&&i.content)n=ao.to_workbook(i.content,(r.type=f,r));else if((i=Qe.find(e,"NativeContent_MAIN"))&&i.content)n=ao.to_workbook(i.content,(r.type=f,r));else if((i=Qe.find(e,"MN0"))&&i.content)throw new Error("Unsupported Works 4
Line truncated
|
||||
i.push(Ut("td",v,s))}var p="<tr>";return p+i.join("")+"</tr>"}var Ab='<html><head><meta charset="utf-8"/><title>SheetJS Table Export</title></head><body>';var yb="</body></html>";function Eb(e,r){var t=Vr(e,"table");if(!t||t.length==0)throw new Error("Invalid HTML: could not find <table>");if(t.length==1){var a=tn(kb(t[0],r),r);a.bookType="html";return a}var n=Vk();t.forEach(function(e,t){$k(n,kb(e,r),"Sheet"+(t+1))});n.bookType="html";return n}function Cb(e,r,t){var a=[];return a.join("")+"<table"+(t&&t.id?' id="'+t.id+'"':"")+">"}function _b(e,r){var t=r||{};var a=t.header!=null?t.header:Ab;var n=t.footer!=null?t.footer:yb;var i=[a];var s=Ya(e["!ref"]||"A1");i.push(Cb(e,s,t));if(e["!ref"])for(var f=s.s.r;f<=s.e.r;++f)i.push(Tb(e,s,f,t));i.push("</table>"+n);return i.join("")}function Sb(e,r,t){var a=r.rows;if(!a){throw"Unsupported origin when "+r.tagName+" is not a TABLE"}var n=t||{};var i=e["!data"]!=null;var s=0,f=0;if(n.origin!=null){if(typeof n.origin=="number")s=n.origin;else{var l=typeof n.origin=="string"?ja(n.origin):n.origin;s=l.r;f=l.c}}var o=Math.min(n.sheetRows||1e7,a.length);var c={s:{r:0,c:0},e:{r:s,c:f}};if(e["!ref"]){var h=Ya(e["!ref"]);c.s.r=Math.min(c.s.r,h.s.r);c.s.c=Math.min(c.s.c,h.s.c);c.e.r=Math.max(c.e.r,h.e.r);c.e.c=Math.max(c.e.c,h.e.c);if(s==-1)c.e.r=s=h.e.r+1}var u=[],d=0;var v=e["!rows"]||(e["!rows"]=[]);var p=0,m=0,g=0,b=0,w=0,k=0;if(!e["!cols"])e["!cols"]=[];for(;p<a.length&&m<o;++p){var T=a[p];if(Ib(T)){if(n.display)continue;v[m]={hidden:true}}var A=T.cells;for(g=b=0;g<A.length;++g){var y=A[g];if(n.display&&Ib(y))continue;var E=y.hasAttribute("data-v")?y.getAttribute("data-v"):y.hasAttribute("v")?y.getAttribute("v"):Rt(y.innerHTML);var C=y.getAttribute("data-z")||y.getAttribute("z");for(d=0;d<u.length;++d){var _=u[d];if(_.s.c==b+f&&_.s.r<m+s&&m+s<=_.e.r){b=_.e.c+1-f;d=-1}}k=+y.getAttribute("colspan")||1;if((w=+y.getAttribute("rowspan")||1)>1||k>1)u.push({s:{r:m+s,c:b+f},e:{r:m+s+(w||1)-1,c:b+f+(k||1)-1}});var S={t:"s",v:E};var x=y.getAttribute("data-t")||y.getAttribute("t")||"";if(E!=null){if(E.length==0)S.t=x||"z";else if(n.raw||E.trim().length==0||x=="s"){}else if(E==="TRUE")S={t:"b",v:true};else if(E==="FALSE")S={t:"b",v:false};else if(!isNaN(yr(E)))S={t:"n",v:yr(E)};else if(!isNaN(Rr(E).getDate())){S={t:"d",v:wr(E)};if(n.UTC)S.v=Dr(S.v);if(!n.cellDates)S={t:"n",v:dr(S.v)};S.z=n.dateNF||q[14]}}if(S.z===undefined&&C!=null)S.z=C;var O="",I=y.getElementsByTagName("A");if(I&&I.length)for(var R=0;R<I.length;++R)if(I[R].hasAttribute("href")){O=I[R].getAttribute("href");if(O.charAt(0)!="#")break}if(O&&O.charAt(0)!="#"&&O.slice(0,11).toLowerCase()!="javascript:")S.l={Target:O};if(i){if(!e["!data"][m+s])e["!data"][m+s]=[];e["!data"][m+s][b+f]=S}else e[Ka({c:b+f,r:m+s})]=S;if(c.e.c<b+f)c.e.c=b+f;b+=k}++m}if(u.length)e["!merges"]=(e["!merges"]||[]).concat(u);c.e.r=Math.max(c.e.r,m-1+s);e["!ref"]=Za(c);if(m>=o)e["!fullref"]=Za((c.e.r=a.length-p+m-1+s,c));return e}function xb(e,r){var t=r||{};var a={};if(t.dense)a["!data"]=[];return Sb(a,e,r)}function Ob(e,r){var t=tn(xb(e,r),r);return t}function Ib(e){var r="";var t=Rb(e);if(t)r=t(e).getPropertyValue("display");if(!r)r=e.style&&e.style.display;return r==="none"}function Rb(e){if(e.ownerDocument.defaultView&&typeof e.ownerDocument.defaultView.getComputedStyle==="function")return e.ownerDocument.defaultView.getComputedStyle;if(typeof getComputedStyle==="function")return getComputedStyle;return null}function Nb(e){var r=e.replace(/[\t\r\n]/g," ").trim().replace(/ +/g," ").replace(/<text:s\/>/g," ").replace(/<text:s text:c="(\d+)"\/>/g,function(e,r){return Array(parseInt(r,10)+1).join(" ")}).replace(/<text:tab[^<>]*\/>/g,"\t").replace(/<text:line-break\/>/g,"\n");var t=vt(r.replace(/<[^<>]*>/g,""));return[t]}function Fb(e,r,t){var a=t||{};var n=zt(e);Ht.lastIndex=0;n=Pr(Mr(n,"<!--","-->"));var i,s,f="",l="",o,c=0,h=-1,u=false,d="";while(i=Ht.exec(n)){switch(i[3]=i[3].replace(/_[\s\S]*$/,"")){case"number-style":;case"currency-style":;case"percentage-style":;case"date-style":;case"time-style":;case"text-style":if(i[1]==="/"){u=false;if(s["truncate-on-overflow"]=="false"){if(f.match(/h/))f=f.replace(/h+/,"[$&]");else if(f.match(/m/))f=f.replace(/m+/,"[$&]");else if(f.match(/s/))f=f.replace(/s+/,"[$&]")}a[s.name]=f;f=""}else if(i[0].charAt(i[0].length-2)!=="/"){u=true;f="";s=ct(i[0],false)}break;case"boolean-style":if(i[1]==="/"){u=false;a[s.name]="General";f=""}else if(i[0].charAt(i[0].length-2)!=="/"){u=true;f="";s=ct(i[0],false)}break;case"boolean":f+="General";break;case"text":if(i[1]==="/"){d=n.slice(h,Ht.lastIndex-i[0].length);if(d=="%"&&s[0]=="<number:percentage-style")f+="%";else f+='"'+d.replace(/"/g,'""')+'"'}else if(i[0].charAt(i[0].length-2)!=="/"){h=Ht.lastIndex}break;case"day":{o=ct(i[0],false);switch(o["style"]){case"short":f+="d";break;case"long":f+="dd";break;default:f+="dd";break;}}break;case"day-of-week":{o=ct(i[0],false);switch(o["style"]){case"short":f+="ddd";break;case"long":f+="dddd";break;default:f+="ddd";break;}}brLine truncated
|
||||
"xmlns:of":"urn:oasis:names:tc:opendocument:xmlns:of:1.2","xmlns:xhtml":"http://www.w3.org/1999/xhtml","xmlns:grddl":"http://www.w3.org/2003/g/data-view#","xmlns:tableooo":"http://openoffice.org/2009/table","xmlns:drawooo":"http://openoffice.org/2010/draw","xmlns:calcext":"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0","xmlns:loext":"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0","xmlns:field":"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0","xmlns:formx":"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0","xmlns:css3t":"http://www.w3.org/TR/css3-text/","office:version":"1.2"});var s=Mt({"xmlns:config":"urn:oasis:names:tc:opendocument:xmlns:config:1.0","office:mimetype":"application/vnd.oasis.opendocument.spreadsheet"});if(r.bookType=="fods"){n.push("<office:document"+i+s+">\n");n.push(xi().replace(/<office:document-meta[^<>]*?>/,"").replace(/<\/office:document-meta>/,"")+"\n")}else n.push("<office:document-content"+i+">\n");var f=a(n,e);n.push(" <office:body>\n");n.push(" <office:spreadsheet>\n");if(((e.Workbook||{}).WBProps||{}).date1904)n.push(' <table:calculation-settings table:case-sensitive="false" table:search-criteria-must-apply-to-whole-cell="true" table:use-wildcards="true" table:use-regular-expressions="false" table:automatic-find-labels="false">\n <table:null-date table:date-value="1904-01-01"/>\n </table:calculation-settings>\n');for(var l=0;l!=e.SheetNames.length;++l)n.push(t(e.Sheets[e.SheetNames[l]],e,l,r,f,((e.Workbook||{}).WBProps||{}).date1904));if((e.Workbook||{}).Names)n.push(Bb(e.Workbook.Names,e.SheetNames,-1));n.push(" </office:spreadsheet>\n");n.push(" </office:body>\n");if(r.bookType=="fods")n.push("</office:document>");else n.push("</office:document-content>");return n.join("")}}();function zb(e,r){if(r.bookType=="fods")return Wb(e,r);var t=et();var a="";var n=[];var i=[];a="mimetype";Qr(t,a,"application/vnd.oasis.opendocument.spreadsheet");a="content.xml";Qr(t,a,Wb(e,r));n.push([a,"text/xml"]);i.push([a,"ContentFile"]);a="styles.xml";Qr(t,a,Mb(e,r));n.push([a,"text/xml"]);i.push([a,"StylesFile"]);a="meta.xml";Qr(t,a,at+xi());n.push([a,"text/xml"]);i.push([a,"MetadataFile"]);a="manifest.rdf";Qr(t,a,Si(i));n.push([a,"application/rdf+xml"]);a="META-INF/manifest.xml";Qr(t,a,Ei(n));return t}var Hb=function(){try{if(typeof Uint8Array=="undefined")return"slice";if(typeof Uint8Array.prototype.subarray=="undefined")return"slice";if(typeof Buffer!=="undefined"){if(typeof Buffer.prototype.subarray=="undefined")return"slice";if((typeof Buffer.from=="function"?Buffer.from([72,62]):new Buffer([72,62]))instanceof Uint8Array)return"subarray";return"slice"}return"subarray"}catch(e){return"slice"}}();function Vb(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function $b(e){return typeof TextDecoder!="undefined"?(new TextDecoder).decode(e):Ot(N(e))}function Xb(e){return typeof TextEncoder!="undefined"?(new TextEncoder).encode(e):I(It(e))}function Gb(e){var r=0;for(var t=0;t<e.length;++t)r+=e[t].length;var a=new Uint8Array(r);var n=0;for(t=0;t<e.length;++t){var i=e[t],s=i.length;if(s<250){for(var f=0;f<s;++f)a[n++]=i[f]}else{a.set(i,n);n+=s}}return a}function jb(e){e-=e>>1&1431655765;e=(e&858993459)+(e>>2&858993459);return(e+(e>>4)&252645135)*16843009>>>24}function Kb(e,r){var t=(e[r+15]&127)<<7|e[r+14]>>1;var a=e[r+14]&1;for(var n=r+13;n>=r;--n)a=a*256+e[n];return(e[r+15]&128?-a:a)*Math.pow(10,t-6176)}function Yb(e,r,t){var a=Math.floor(t==0?0:Math.LOG10E*Math.log(Math.abs(t)))+6176-16;var n=t/Math.pow(10,a-6176);e[r+15]|=a>>7;e[r+14]|=(a&127)<<1;for(var i=0;n>=1;++i,n/=256)e[r+i]=n&255;e[r+15]|=t>=0?0:128}function Zb(e,r){var t=r.l;var a=e[t]&127;e:if(e[t++]>=128){a|=(e[t]&127)<<7;if(e[t++]<128)break e;a|=(e[t]&127)<<14;if(e[t++]<128)break e;a|=(e[t]&127)<<21;if(e[t++]<128)break e;a+=(e[t]&127)*Math.pow(2,28);++t;if(e[t++]<128)break e;a+=(e[t]&127)*Math.pow(2,35);++t;if(e[t++]<128)break e;a+=(e[t]&127)*Math.pow(2,42);++t;if(e[t++]<128)break e}r.l=t;return a}function Jb(e){var r=new Uint8Array(7);r[0]=e&127;var t=1;e:if(e>127){r[t-1]|=128;r[t]=e>>7&127;++t;if(e<=16383)break e;r[t-1]|=128;r[t]=e>>14&127;++t;if(e<=2097151)break e;r[t-1]|=128;r[t]=e>>21&127;++t;if(e<=268435455)break e;r[t-1]|=128;r[t]=e/256>>>21&127;++t;if(e<=34359738367)break e;r[t-1]|=128;r[t]=e/65536>>>21&127;++t;if(e<=4398046511103)break e;r[t-1]|=128;r[t]=e/16777216>>>21&127;++t}return r[Hb](0,t)}function qb(e){var r={l:0};var t=[];while(r.l<e.length)t.push(Zb(e,r));return t}function Qb(e){return Gb(e.map(function(e){return Jb(e)}))}function ew(e){var r=0,t=e[r]&127;if(e[r++]<128)return t;t|=(e[r]&127)<<7;if(e[r++]<128)return t;t|=(e[r]&127)<<14;if(e[r++]<128)return t;t|=(e[r]&127)<<21;if(e[r++]<128)return t;t|=(e[r]&15)<<28;return t}function rw(e){var r=0,t=e[r]&127,a=0;e:if(e[r++]>=128){t|=(e[r]&127)<<7;if(e[r++]<128)break e;t|=(e[r]&127)<<14;if(e[r++]<128)break e;t|=(e[r]&127)<<21;if(e[r++]<128)break e;t|=(e[rLine truncated
|
||||
}],[{type:2,data:new Uint8Array([2,0,0])}],[{type:2,data:new Uint8Array([2,0,0])}],[],[],[],[],[{type:0,data:Jb(0)}],[],[{type:0,data:Jb(0)}]])});t[1]=[{type:0,data:Jb(Math.max(l+1,ew(t[1][0].data)))}];Vw(t,r,f,l);e.messages[0].data=aw(t)})}n[2][0].data=bw(l);t.data=aw(n)})}p[3][0].data=aw(g)}o[4][0].data=aw(p);a.messages[0].data=aw(o)})}function Gw(e,r,t,a,n,i){var s=[];Bw(e,r,i,function(e){var r=tw(e.messages[0].data);{r[1]=[{type:2,data:Xb(a)}];s=nw(r[2],gw)}e.messages[0].data=aw(r)});var f=Ww(e,r,s[0]);var l=gw(tw(f.messages[0].data)[2][0].data);Bw(e,r,l,function(a,n){return Kw(e,r,t,a,n,l)})}var jw=true;function Kw(e,r,t,a,n,i){if(!t["!ref"])throw new Error("Cannot export empty sheet to NUMBERS");var s=Ya(t["!ref"]);s.s.r=s.s.c=0;var f=false;if(s.e.c>999){f=true;s.e.c=999}if(s.e.r>999999){f=true;s.e.r=999999}if(f)console.error("Truncating to ".concat(Za(s)));var l=[];if(t["!data"])l=t["!data"];else{var o=[];for(var c=0;c<=s.e.c;++c)o[c]=Va(c);for(var h=0;h<=s.e.r;++h){l[h]=[];var u=""+(h+1);for(c=0;c<=s.e.c;++c){var d=t[o[c]+u];if(!d)continue;l[h][c]=d}}}var v={cmnt:[{a:"~54ee77S~",t:"... the people who are crazy enough to think they can change the world, are the ones who do."}],ferr:[],fmla:[],nfmt:[],ofmt:[],rsst:[{v:"~54ee77S~",l:"https://sheetjs.com/"}],sst:["~Sh33tJ5~"]};var p=tw(a.messages[0].data);{p[6][0].data=Jb(s.e.r+1);p[7][0].data=Jb(s.e.c+1);delete p[46];var m=tw(p[4][0].data);{var g=gw(tw(m[1][0].data)[2][0].data);Bw(e,r,g,function(e,r){var t;var a=tw(e.messages[0].data);if((t=a==null?void 0:a[2])==null?void 0:t[0])for(var n=0;n<l.length;++n){var i=tw(a[2][0].data);i[1][0].data=Jb(n);i[4][0].data=Jb(l[n].length);a[2][n]={type:a[2][0].type,data:aw(i)}}e.messages[0].data=aw(a)});var b=gw(m[2][0].data);Bw(e,r,b,function(e,r){var t=tw(e.messages[0].data);for(var a=0;a<=s.e.c;++a){var n=tw(t[2][0].data);n[1][0].data=Jb(a);n[4][0].data=Jb(s.e.r+1);t[2][a]={type:t[2][0].type,data:aw(n)}}e.messages[0].data=aw(t)});var w=tw(m[9][0].data);w[1]=[];var k=tw(m[3][0].data);{var T=256;k[2]=[{type:0,data:Jb(T)}];var A=gw(tw(k[1][0].data)[2][0].data);var y=function(){var t=Ww(e,r,2);var a=tw(t.messages[0].data);var n=a[3].filter(function(e){return ew(tw(e.data)[1][0].data)==A});return(n==null?void 0:n.length)?ew(tw(n[0].data)[12][0].data):0}();{Qe.utils.cfb_del(e,r[A].location);Bw(e,r,2,function(e){var t=tw(e.messages[0].data);t[3]=t[3].filter(function(e){return ew(tw(e.data)[1][0].data)!=A});$w(t,r,i,A);e.messages[0].data=aw(t)});kw(a,A)}k[1]=[];var E=Math.ceil((s.e.r+1)/T);for(var C=0;C<E;++C){var _=Dw({deps:[],location:"",type:6002},r);r[_].location="Root Entry/Index/Tables/Tile-".concat(_,".iwa");var S=[[],[{type:0,data:Jb(0)}],[{type:0,data:Jb(Math.min(s.e.r+1,(C+1)*T))}],[{type:0,data:Jb(0)}],[{type:0,data:Jb(Math.min((C+1)*T,s.e.r+1)-C*T)}],[],[{type:0,data:Jb(5)}],[{type:0,data:Jb(1)}],[{type:0,data:Jb(jw?1:0)}]];for(var x=C*T;x<=Math.min(s.e.r,(C+1)*T-1);++x){var O=Nw(l[x],v,jw);O[1][0].data=Jb(x-C*T);S[5].push({data:aw(O),type:2})}k[1].push({type:2,data:aw([[],[{type:0,data:Jb(C)}],[{type:2,data:bw(_)}]])});var I={id:_,messages:[Fw(6002,aw(S))]};var R=ow(sw([I]));Qe.utils.cfb_add(e,"/Index/Tables/Tile-".concat(_,".iwa"),R);Bw(e,r,2,function(e){var t=tw(e.messages[0].data);t[3].push({type:2,data:aw([[],[{type:0,data:Jb(_)}],[{type:2,data:Xb("Tables/Tile")}],[{type:2,data:Xb("Tables/Tile-".concat(_))}],[{type:2,data:new Uint8Array([2,0,0])}],[{type:2,data:new Uint8Array([2,0,0])}],[],[],[],[],[{type:0,data:Jb(0)}],[],[{type:0,data:Jb(y)}]])});t[1]=[{type:0,data:Jb(Math.max(_+1,ew(t[1][0].data)))}];Vw(t,r,i,_);e.messages[0].data=aw(t)});ww(a,_);w[1].push({type:2,data:aw([[],[{type:0,data:Jb(C*T)}],[{type:0,data:Jb(C)}]])})}}m[3][0].data=aw(k);m[9][0].data=aw(w);m[10]=[{type:2,data:new Uint8Array([])}];if(t["!merges"]){var N=Dw({type:6144,deps:[i],location:r[i].location},r);n.push({id:N,messages:[Fw(6144,aw([[],t["!merges"].map(function(e){return{type:2,data:aw([[],[{type:2,data:aw([[],[{type:5,data:new Uint8Array(new Uint16Array([e.s.r,e.s.c]).buffer)}]])}],[{type:2,data:aw([[],[{type:5,data:new Uint8Array(new Uint16Array([e.e.r-e.s.r+1,e.e.c-e.s.c+1]).buffer)}]])}]])}})]))]});m[13]=[{type:2,data:bw(N)}];Bw(e,r,2,function(e){var t=tw(e.messages[0].data);Vw(t,r,i,N);e.messages[0].data=aw(t)});ww(a,N)}else delete m[13];var F=gw(m[4][0].data);Bw(e,r,F,function(e){var r=tw(e.messages[0].data);{r[3]=[];v.sst.forEach(function(e,t){if(t==0)return;r[3].push({type:2,data:aw([[],[{type:0,data:Jb(t)}],[{type:0,data:Jb(1)}],[{type:2,data:Xb(e)}]])})})}e.messages[0].data=aw(r)});var D=gw(m[17][0].data);Bw(e,r,D,function(t){var a=tw(t.messages[0].data);a[3]=[];var n=[904980,903835,903815,903845];v.rsst.forEach(function(i,s){if(s==0)return;var f=[[],[{type:0,data:new Uint8Array([5])}],[],[{type:2,data:Xb(i.v)}]];f[10]=[{type:0,data:new Uint8Array([1])}];f[19]=[{type:2,data:new Uint8Array([10,6,8,0,18,2,101,110])}];f[5]=[{type:2,data:new Uint8Array([10,8,8,0,18,4,8,155,149,55])}];f[2]=[{type:2,data:new Uint8ArrayLine truncated
|
||||
w[f]=1}i[b]=f;}}for(g=l.s.r+n;g<=l.e.r;++g){if((T[g]||{}).hidden)continue;var A=Nk(e,l,g,u,a,i,o);if(A.isempty===false||(a===1?o.blankrows!==false:!!o.blankrows))d[v++]=A.row}d.length=v;return d}var Dk=/"/g;function Pk(e,r,t,a,n,i,s,f){var l=true;var o=[],c="",h=Ba(t);var u=e["!data"]!=null;var d=u&&e["!data"][t]||[];for(var v=r.s.c;v<=r.e.c;++v){if(!a[v])continue;var p=u?d[v]:e[a[v]+h];if(p==null)c="";else if(p.v!=null){l=false;c=""+(f.rawNumbers&&p.t=="n"?p.v:rn(p,null,f));for(var m=0,g=0;m!==c.length;++m)if((g=c.charCodeAt(m))===n||g===i||g===34||f.forceQuotes){c='"'+c.replace(Dk,'""')+'"';break}if(c=="ID")c='"ID"'}else if(p.f!=null&&!p.F){l=false;c="="+p.f;if(c.indexOf(",")>=0)c='"'+c.replace(Dk,'""')+'"'}else c="";o.push(c)}if(f.strip)while(o[o.length-1]==="")--o.length;if(f.blankrows===false&&l)return null;return o.join(s)}function Lk(e,r){var t=[];var a=r==null?{}:r;if(e==null||e["!ref"]==null)return"";var n=Qa(e["!ref"]);var i=a.FS!==undefined?a.FS:",",s=i.charCodeAt(0);var f=a.RS!==undefined?a.RS:"\n",l=f.charCodeAt(0);var o="",c=[];var h=a.skipHidden&&e["!cols"]||[];var u=a.skipHidden&&e["!rows"]||[];for(var d=n.s.c;d<=n.e.c;++d)if(!(h[d]||{}).hidden)c[d]=Va(d);var v=0;for(var p=n.s.r;p<=n.e.r;++p){if((u[p]||{}).hidden)continue;o=Pk(e,n,p,c,s,l,i,a);if(o==null){continue}if(o||a.blankrows!==false)t.push((v++?f:"")+o)}return t.join("")}function Mk(e,r){if(!r)r={};r.FS="\t";r.RS="\n";var t=Lk(e,r);if(typeof a=="undefined"||r.type=="string")return t;var n=a.utils.encode(1200,t,"str");return String.fromCharCode(255)+String.fromCharCode(254)+n}function Uk(e){var r="",t,a="";if(e==null||e["!ref"]==null)return[];var n=Qa(e["!ref"]),i="",s=[],f;var l=[];var o=e["!data"]!=null;for(f=n.s.c;f<=n.e.c;++f)s[f]=Va(f);for(var c=n.s.r;c<=n.e.r;++c){i=Ba(c);for(f=n.s.c;f<=n.e.c;++f){r=s[f]+i;t=o?(e["!data"][c]||[])[f]:e[r];a="";if(t===undefined)continue;else if(t.F!=null){r=t.F;if(!t.f)continue;a=t.f;if(r.indexOf(":")==-1)r=r+":"+r}if(t.f!=null)a=t.f;else if(t.t=="z")continue;else if(t.t=="n"&&t.v!=null)a=""+t.v;else if(t.t=="b")a=t.v?"TRUE":"FALSE";else if(t.w!==undefined)a="'"+t.w;else if(t.v===undefined)continue;else if(t.t=="s")a="'"+t.v;else a=""+t.v;l[l.length]=r+"="+a}}return l}function Bk(e,r,t){var a=t||{};var n=e?e["!data"]!=null:a.dense;if(b!=null&&n==null)n=b;var i=+!a.skipHeader;var s=e||{};if(!e&&n)s["!data"]=[];var f=0,l=0;if(s&&a.origin!=null){if(typeof a.origin=="number")f=a.origin;else{var o=typeof a.origin=="string"?ja(a.origin):a.origin;f=o.r;l=o.c}}var c={s:{c:0,r:0},e:{c:l,r:f+r.length-1+i}};if(s["!ref"]){var h=Qa(s["!ref"]);c.e.c=Math.max(c.e.c,h.e.c);c.e.r=Math.max(c.e.r,h.e.r);if(f==-1){f=h.e.r+1;c.e.r=f+r.length-1+i}}else{if(f==-1){f=0;c.e.r=r.length-1+i}}var u=a.header||[],d=0;var v=[];r.forEach(function(e,r){if(n&&!s["!data"][f+r+i])s["!data"][f+r+i]=[];if(n)v=s["!data"][f+r+i];ir(e).forEach(function(t){if((d=u.indexOf(t))==-1)u[d=u.length]=t;var o=e[t];var c="z";var h="";var p=n?"":Va(l+d)+Ba(f+r+i);var m=n?v[l+d]:s[p];if(o&&typeof o==="object"&&!(o instanceof Date)){if(n)v[l+d]=o;else s[p]=o}else{if(typeof o=="number")c="n";else if(typeof o=="boolean")c="b";else if(typeof o=="string")c="s";else if(o instanceof Date){c="d";if(!a.UTC)o=Dr(o);if(!a.cellDates){c="n";o=dr(o)}h=m!=null&&m.z&&Le(m.z)?m.z:a.dateNF||q[14]}else if(o===null&&a.nullError){c="e";o=0}if(!m){if(!n)s[p]=m={t:c,v:o};else v[l+d]=m={t:c,v:o}}else{m.t=c;m.v=o;delete m.w;delete m.R;if(h)m.z=h}if(h)m.z=h}})});c.e.c=Math.max(c.e.c,l+u.length-1);var p=Ba(f);if(n&&!s["!data"][f])s["!data"][f]=[];if(i)for(d=0;d<u.length;++d){if(n)s["!data"][f][d+l]={t:"s",v:u[d]};else s[Va(d+l)+p]={t:"s",v:u[d]}}s["!ref"]=Za(c);return s}function Wk(e,r){return Bk(null,e,r)}function zk(e,r,t){if(typeof r=="string"){if(e["!data"]!=null){var a=ja(r);if(!e["!data"][a.r])e["!data"][a.r]=[];return e["!data"][a.r][a.c]||(e["!data"][a.r][a.c]={t:"z"})}return e[r]||(e[r]={t:"z"})}if(typeof r!="number")return zk(e,Ka(r));return zk(e,Va(t||0)+Ba(r))}function Hk(e,r){if(typeof r=="number"){if(r>=0&&e.SheetNames.length>r)return r;throw new Error("Cannot find sheet # "+r)}else if(typeof r=="string"){var t=e.SheetNames.indexOf(r);if(t>-1)return t;throw new Error("Cannot find sheet name |"+r+"|")}else throw new Error("Cannot find sheet |"+r+"|")}function Vk(e,r){var t={SheetNames:[],Sheets:{}};if(e)$k(t,e,r||"Sheet1");return t}function $k(e,r,t,a){var n=1;if(!t)for(;n<=65535;++n,t=undefined)if(e.SheetNames.indexOf(t="Sheet"+n)==-1)break;if(!t||e.SheetNames.length>=65535)throw new Error("Too many worksheets");if(a&&e.SheetNames.indexOf(t)>=0&&t.length<32){var i=t.match(/\d+$/);n=i&&+i[0]||0;var s=i&&t.slice(0,i.index)||t;for(++n;n<=65535;++n)if(e.SheetNames.indexOf(t=s+n)==-1)break}Nm(t);if(e.SheetNames.indexOf(t)>=0)throw new Error("Worksheet with name |"+t+"| already exists!");e.SheetNames.push(t);e.Sheets[t]=r;return t}function Xk(e,r,t){if(!e.Workbook)e.Workbook={};if(!e.Workbook.Sheets)e.Workbook.Sheets=[];var a=Hk(e,r);if(!e.Workbook.Sheets[a])e.WorkbookLine truncated
|
||||
@@ -1,129 +0,0 @@
|
||||
<style>
|
||||
.applicant-dashboard > header {
|
||||
background: url('/app/assets/images/cards/applicant-dashboard.jpg');
|
||||
background-position: center;
|
||||
background-size: cover !important;
|
||||
background-repeat: no-repeat;
|
||||
border-bottom: 4px solid white !important;
|
||||
}
|
||||
.applicant-dashboard .metrics {
|
||||
min-width: 320px;
|
||||
overflow: visible !important;
|
||||
padding: 0 var(--eicui-base-spacing-m) 0 0;
|
||||
margin: 0 var(--eicui-base-spacing-s) var(--eicui-base-spacing-s) 0;
|
||||
}
|
||||
.applicant-dashboard .list {
|
||||
display: grid;
|
||||
grid-gap: var(--eicui-base-spacing-m);
|
||||
grid-template-columns: repeat(auto-fill, 240px);
|
||||
}
|
||||
.applicant-dashboard .members .props {
|
||||
display: grid;
|
||||
}
|
||||
|
||||
.applicant-dashboard .company menu {
|
||||
max-height: 280px;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.applicant-dashboard .company menu label span.pic {
|
||||
font-size: .75em;
|
||||
color: var(--eicui-base-color-grey-50);
|
||||
}
|
||||
|
||||
</style>
|
||||
<article eiccard media class="applicant-dashboard">
|
||||
<header>
|
||||
<h1>My EIC</h1>
|
||||
<h2>Innovation First</h2>
|
||||
</header>
|
||||
<section>
|
||||
<div class="cols-2 left">
|
||||
<article class="metrics">
|
||||
<div>
|
||||
<div class="cols-2 right middle center noflex">
|
||||
<label>My organisation profile</label>
|
||||
|
||||
<div eicdropdown class="company">
|
||||
<button eicbutton primary xsmall rounded icon="icon-exchange"></button>
|
||||
<menu eicmenu></menu>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div xlarge class="company-name"><b></b></div>
|
||||
<div small class="company-pic"></div>
|
||||
</div>
|
||||
<hr />
|
||||
</div>
|
||||
<article eiccard class="members" collapsable>
|
||||
<header>
|
||||
<h1>Members</h1>
|
||||
<h2></h2>
|
||||
</header>
|
||||
<section>
|
||||
<ul nonbulleted></ul>
|
||||
</section>
|
||||
<footer><div class="cols-1 right"><button eicbutton xsmall primary class="member-add">add member</button></div></footer>
|
||||
</article>
|
||||
<article eiccard danger class="activities">
|
||||
<header>
|
||||
<h1>TODO List</h1>
|
||||
</header>
|
||||
<section>
|
||||
<ul bulleted></ul>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard primary>
|
||||
<header>
|
||||
<h1>Upcoming events</h1>
|
||||
</header>
|
||||
<section>
|
||||
<ul nonbulleted>
|
||||
<li class="cols-2 left center"><span class="icon-calendar-failed" danger></span><span>No events foreseen</span></li>
|
||||
</ul>
|
||||
</section>
|
||||
</article>
|
||||
</article>
|
||||
<div>
|
||||
<article eiccard class="fundings" collapsable>
|
||||
<header>
|
||||
<h1>My Fundings</h1>
|
||||
</header>
|
||||
<section>
|
||||
<div eicalert info closable>This list only contains projects you have access to. </div>
|
||||
<div class="list"></div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard class="coachings" collapsable collapsed>
|
||||
<header>
|
||||
<h1>My Coachings</h1>
|
||||
</header>
|
||||
<section>
|
||||
<div eicalert info closable>This list only contains coachings you have access to. </div>
|
||||
<div class="list"></div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard class="proposals" collapsable>
|
||||
<header>
|
||||
<h1>My Proposals</h1>
|
||||
<h2></h2>
|
||||
</header>
|
||||
<section>
|
||||
<div eicalert info closable>This list only contains proposals you have access to. </div>
|
||||
<div class="list">
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-1 right">
|
||||
<div class="cols-2">
|
||||
<button eicbutton small primary class="proposal-search">search existing proposals</button>
|
||||
<button eicbutton small primary class="proposal-create">create a new proposal</button>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
@@ -1,487 +0,0 @@
|
||||
class ApplicantDashboardView extends EICDomContent {
|
||||
|
||||
constructor() { super(); }
|
||||
|
||||
version = 'r2';
|
||||
|
||||
DOMContentLoaded(options) {
|
||||
|
||||
this.url = options.url;
|
||||
this.pic = options.pic;
|
||||
this.profile = options.profile || { admin: true };
|
||||
|
||||
for(let model in options.models) this[model] = options.models[model];
|
||||
|
||||
let components = ui.eicfy(this.el);
|
||||
|
||||
this.orgSelector = components.find(item => item.el.hasAttribute('eicdropdown'))
|
||||
|
||||
this.memberAdd = components.find(item => item.el.classList.contains('member-add'))
|
||||
this.memberAdd.addEventListener('click', this.onMemberAdd.bind(this))
|
||||
|
||||
this.proposalCreate = components.find(item => item.el.classList.contains('proposal-create'))
|
||||
this.proposalCreate.addEventListener('click', this.onProposalCreate.bind(this));
|
||||
this.proposalSearch = components.find(item => item.el.classList.contains('proposal-search'))
|
||||
this.proposalSearch.addEventListener('click', this.onProposalSearch.bind(this));
|
||||
|
||||
this.fillDashboard(this.pic);
|
||||
|
||||
// registering SP Form event triggering
|
||||
app.events.channel.addEventListener('proposal_updated', this.onProposalUpdate.bind(this))
|
||||
}
|
||||
|
||||
fillDashboard(pic) {
|
||||
|
||||
ui.lock();
|
||||
|
||||
this.pic = pic;
|
||||
this.todos = [];
|
||||
this.memberAdd.disabled = true;
|
||||
this.proposalCreate.disabled = true;
|
||||
|
||||
this.applicant.read(pic).then(this.fill.bind(this));
|
||||
this.myOrganisations.list().then(this.fillOrganisations.bind(this));
|
||||
this.members.list(pic).then(this.fillMembers.bind(this));
|
||||
this.proposals.list(pic).then(this.fillProposals.bind(this));
|
||||
this.coachings.list(pic).then(this.fillCoachings.bind(this));
|
||||
|
||||
ui.unlock();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the registered organisations menu
|
||||
* @param {*} results
|
||||
*/
|
||||
fillOrganisations(results) {
|
||||
let items = [];
|
||||
this.orgSelector.menu.clear();
|
||||
|
||||
results.sort((a,b) => a.legalName.toLowerCase() > b.legalName.toLowerCase() ? 1: -1)
|
||||
|
||||
for(let result of results) {
|
||||
items.push({
|
||||
id: result.pic,
|
||||
label: `${result.legalName} <span class="pic">(${result.pic})</span>`,
|
||||
icon: "icon-company",
|
||||
onclick: this.onCompanySwitch.bind(this,result.pic)
|
||||
});
|
||||
}
|
||||
|
||||
items.push({
|
||||
label: "Register another organisation",
|
||||
icon: "icon-plus",
|
||||
severity: "danger",
|
||||
onclick: this.onCompanyRegister.bind(this)
|
||||
});
|
||||
|
||||
this.orgSelector.menu.parse(items);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the organisation information
|
||||
* @param {*} data
|
||||
*/
|
||||
fill(data) {
|
||||
this.find('.company-name b').innerHTML = data.legalName;
|
||||
this.find('.company-pic').innerHTML = data.pic;
|
||||
ui.unlock();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the organisation members list
|
||||
* @param {*} data
|
||||
*/
|
||||
fillMembers(data) {
|
||||
let members = this.find('.members ul');
|
||||
members.innerHTML = '';
|
||||
this.find('.members header h2').innerHTML= "";
|
||||
this.memberAdd.disabled = !this.members.hasPrivilege('add');
|
||||
|
||||
let memberMetrics = { active: 0, pending: 0 }
|
||||
this.todos = this.todos.filter(item => item.scope != 'members');
|
||||
|
||||
for(let item of data) {
|
||||
let actions = [];
|
||||
switch(item.status) {
|
||||
case 'active':
|
||||
break;
|
||||
case 'pending':
|
||||
actions.push(new Chip(null, {label:'pending', severity: 'warning', size: 'xsmall'}))
|
||||
break;
|
||||
}
|
||||
|
||||
memberMetrics[item.status]++;
|
||||
|
||||
let li = ui.create(`<li class="cols-2 right middle">
|
||||
<div>
|
||||
<div><b>${item.firstname} ${item.lastname}</b></div>
|
||||
<div xsmall class="props">
|
||||
${item.position}
|
||||
${item.email ? `<a href="mailto:${item.email}">${item.email}</a>`:''}
|
||||
${item.phone ? `<a href="tel:${item.phone}">${item.phone}</a>`:''}
|
||||
</div>
|
||||
</div>
|
||||
<span class="actions"></span>
|
||||
</li>`);
|
||||
|
||||
for(let action of actions)
|
||||
li.querySelector('.actions').append(action.el);
|
||||
|
||||
li.addEventListener('click', this.onMemberDetail.bind(this, item.uid))
|
||||
members.append(li);
|
||||
}
|
||||
|
||||
this.find('.members header h2').innerHTML = '';
|
||||
|
||||
if(memberMetrics.active > 0) {
|
||||
this.find('.members header h2').append((new Chip(null,{ label: `${memberMetrics.active} active`, size: 'xsmall', severity: 'success'})).el)
|
||||
}
|
||||
|
||||
if(memberMetrics.pending > 0) {
|
||||
this.find('.members header h2').append((new Chip(null,{ label: `${memberMetrics.pending} pending`, size: 'xsmall', severity: 'warning'})).el)
|
||||
this.todos.push(
|
||||
{ scope: 'members', message: `${memberMetrics.pending} member${memberMetrics.pending > 1 ? 's':''} requesting access` }
|
||||
)
|
||||
}
|
||||
|
||||
this.fillTodos();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the proposals list
|
||||
* @param {*} data
|
||||
*/
|
||||
fillProposals(data) {
|
||||
/** Proposals list */
|
||||
|
||||
this.find('.proposals > header h2').innerHTML = "";
|
||||
let proposals = this.find('.proposals .list');
|
||||
proposals.innerHTML = '';
|
||||
let proposalMetrics = {submitted: 0, draft: 0, accessRequests: 0 };
|
||||
|
||||
this.todos = this.todos.filter(item => item.scope != 'proposals');
|
||||
|
||||
for(let item of data) {
|
||||
let card = ui.create(`<article eiccard>
|
||||
<header>
|
||||
<h1>${item.acronym || '(unnamed)'}</h1>
|
||||
<h2>
|
||||
${item.proposalNumber}
|
||||
${item.accessRequests > 0 ? `<span eicchip xsmall warning>${item.accessRequests} access request${item.accessRequests > 1 ? 's':''}</span>`:''}
|
||||
</h2>
|
||||
</header>
|
||||
<section>
|
||||
<span eicchip small primary>short ${item.version}</span>
|
||||
<span eicchip small info>${item.status}</span>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-2 center noflex"></div>
|
||||
</footer>
|
||||
</article>`);
|
||||
|
||||
let button = new Button(null, {label:'view', severity: 'primary', size: 'xsmall'});
|
||||
button.el.addEventListener('click', this.onProposalView.bind(this, item.proposalNumber, item.version))
|
||||
card.querySelector('footer div').append(button.el)
|
||||
|
||||
if(item.version != 'legacy' && item.status == 'draft') {
|
||||
button = new Button(null, {label:'edit', severity: 'primary', size: 'xsmall'});
|
||||
button.el.addEventListener('click', this.onProposalEdit.bind(this, item.proposalNumber, item.version))
|
||||
card.querySelector('footer div').append(button.el)
|
||||
}
|
||||
|
||||
proposalMetrics[item.status]++;
|
||||
proposalMetrics.accessRequests += item.accessRequests;
|
||||
proposals.append(card);
|
||||
}
|
||||
|
||||
if(proposalMetrics.draft > 0) {
|
||||
this.find('.proposals > header h2').append((new Chip(null,{ label: `${proposalMetrics.draft} draft`, size: 'xsmall', severity: 'warning'})).el)
|
||||
this.todos.push(
|
||||
{ scope: 'proposals', message: `${proposalMetrics.draft} draft proposal${proposalMetrics.draft > 1 ? 's':''} to be submitted` }
|
||||
)
|
||||
}
|
||||
|
||||
if(proposalMetrics.accessRequests > 0) {
|
||||
this.todos.push(
|
||||
{ scope: 'proposals', message: `${proposalMetrics.accessRequests} proposal access request${proposalMetrics.accessRequests > 1 ? 's':''} pending` }
|
||||
)
|
||||
}
|
||||
|
||||
this.proposalCreate.disabled = !this.proposals.hasPrivilege('create');
|
||||
|
||||
this.fillTodos();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the proposals list
|
||||
* @param {*} data
|
||||
*/
|
||||
fillCoachings(data) {
|
||||
/** Proposals list */
|
||||
|
||||
// this.find('.coachings > header h2').innerHTML = "";
|
||||
let coachings = this.find('.coachings .list');
|
||||
coachings.innerHTML = '';
|
||||
let coachingMetrics = { };
|
||||
|
||||
this.todos = this.todos.filter(item => item.scope != 'coachings');
|
||||
|
||||
for(let item of data) {
|
||||
let card = ui.create(`<article eiccard>
|
||||
<header>
|
||||
<h1>${item.acronym || '(unnamed)'}</h1>
|
||||
<h2>
|
||||
${item.proposalNumber}
|
||||
</h2>
|
||||
</header>
|
||||
<section>
|
||||
<span eicchip small primary>short ${item.version}</span>
|
||||
<span eicchip small info>${item.status}</span>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="cols-2 center noflex"></div>
|
||||
</footer>
|
||||
</article>`);
|
||||
|
||||
let button = new Button(null, {label:'view', severity: 'primary', size: 'xsmall'});
|
||||
button.el.addEventListener('click', this.onCoachingView.bind(this, item.proposalNumber, item.version))
|
||||
card.querySelector('footer div').append(button.el)
|
||||
|
||||
coachings.append(card);
|
||||
}
|
||||
|
||||
// unused for now
|
||||
//this.fillTodos();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the TODO list
|
||||
*/
|
||||
fillTodos() {
|
||||
let activities = this.find('.activities ul')
|
||||
activities.innerHTML = '';
|
||||
if(this.todos.length > 0) {
|
||||
ui.show(activities);
|
||||
for(let activity of this.todos) {
|
||||
activities.append(ui.create(`<li>${activity.message}</li>`))
|
||||
}
|
||||
} else {
|
||||
ui.hide(activities);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Event handler for adding an organisation memnber
|
||||
* @param {*} event
|
||||
*/
|
||||
async onMemberAdd(event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
let member = await this.openDialog(
|
||||
await this.loadContent(
|
||||
'applicants/dialogs/ApplicantMemberDialog',
|
||||
{ title: 'Add a member' },
|
||||
{
|
||||
model: this.members,
|
||||
mode: 'create',
|
||||
pic: this.pic
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
if(member) {
|
||||
ui.growl.append('member added', 'success');
|
||||
this.members.list(this.pic).then(this.fillMembers.bind(this));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Event handler for getting organisation member details
|
||||
* @param {*} event
|
||||
*/
|
||||
async onMemberDetail(uid, event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
let member = await this.openDialog(
|
||||
await this.loadContent(
|
||||
'applicants/dialogs/ApplicantMemberDialog',
|
||||
{ title: 'edit a member' },
|
||||
{
|
||||
model: this.members,
|
||||
mode: this.members.hasPrivilege('update') ? 'edit': 'read',
|
||||
pic: this.pic,
|
||||
uid: uid
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
if(member) {
|
||||
if(member.status == 'removed')
|
||||
ui.growl.append('member removed', 'danger');
|
||||
else
|
||||
ui.growl.append('member updated', 'success');
|
||||
|
||||
this.members.list(this.pic).then(this.fillMembers.bind(this));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Event handler for calling short proposal form on edit
|
||||
* @param {*} number
|
||||
* @param {*} version
|
||||
* @param {*} event
|
||||
*/
|
||||
onProposalEdit(number, version, event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
app.Router.route(`/organisations/${this.pic}/proposals/${number}`, { mode: 'edit', version: version});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} number
|
||||
* @param {*} version
|
||||
* @param {*} event
|
||||
*/
|
||||
onProposalView(number, version, event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
app.Router.route(`/organisations/${this.pic}/proposals/${number}`, { mode: 'read', version: version});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} number
|
||||
* @param {*} version
|
||||
* @param {*} event
|
||||
*/
|
||||
onProposalCreate(event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
this.proposalCreate.loading = true;
|
||||
|
||||
this.proposals.create(this.pic)
|
||||
.then( async payload => {
|
||||
let number = payload.proposalNumber;
|
||||
this.proposalCreate.loading = false;
|
||||
this.proposals.list(this.pic).then(this.fillProposals.bind(this));
|
||||
app.Router.route(`/organisations/${this.pic}/proposals/${number}`, { mode: 'edit'});
|
||||
},
|
||||
(err)=>{ this.proposalCreate.loading = false })
|
||||
}
|
||||
|
||||
/**
|
||||
* Event handler for getting organisation member details
|
||||
* @param {*} event
|
||||
*/
|
||||
async onProposalSearch(event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
await this.openDialog(
|
||||
await this.loadContent(
|
||||
'applicants/dialogs/ApplicantProposalSearchDialog',
|
||||
{ title: 'search for existing proposals' },
|
||||
{
|
||||
model: this.proposals,
|
||||
pic: this.pic
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
onProposalUpdate(event) {
|
||||
this.proposals.list(this.pic).then(this.fillProposals.bind(this));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {*} number
|
||||
* @param {*} version
|
||||
* @param {*} event
|
||||
*/
|
||||
onCoachingView(number, version, event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
this.coachings.read();
|
||||
}
|
||||
|
||||
/**
|
||||
* Event handler for changing organisation profile
|
||||
* @param {*} pic
|
||||
* @param {*} event
|
||||
*/
|
||||
onCompanySwitch(pic, event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
this.orgSelector.collapse();
|
||||
ui.lock();
|
||||
|
||||
app.User.getBusinessPermissions([
|
||||
'/organisations',
|
||||
'/organisations/' + pic,
|
||||
'/organisations/' + pic + '/members',
|
||||
'/organisations/' + pic + '/proposals'
|
||||
], 'Org_Member')
|
||||
.then(async payload => {
|
||||
ui.unlock();
|
||||
|
||||
if(payload['/organisations/' + pic].permissions.includes('read')) {
|
||||
|
||||
this.applicant.setPrivileges('/organisations/{pic}', payload['/organisations/' + pic].permissions);
|
||||
this.myOrganisations.setPrivileges('/organisations', payload['/organisations'].permissions);
|
||||
this.members.setPrivileges('/organisations/{pic}/members', payload['/organisations/' + pic + '/members'].permissions);
|
||||
this.proposals.setPrivileges('/organisations/{pic}/proposals', payload['/organisations/' + pic + '/proposals'].permissions);
|
||||
|
||||
this.fillDashboard(pic);
|
||||
this._controller.changeUrl(this, this.url.replace(':pic', pic))
|
||||
|
||||
} else {
|
||||
|
||||
ui.unlock();
|
||||
ui.growl.append('You don\'t have access to this organisation', 'danger' );
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Event handler for registering new organisation
|
||||
* Using the onboarding as applicant scenario
|
||||
* @param {*} event
|
||||
*/
|
||||
async onCompanyRegister(event) {
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
|
||||
this.orgSelector.collapse();
|
||||
|
||||
app.User.getBusinessPermissions(['/organisations'])
|
||||
.then(async payload => {
|
||||
let membership = await this.openDialog(
|
||||
await this.loadContent(
|
||||
'common/onboarding/dialogs/onboardingApplicantDialog',
|
||||
{ title: 'Register to an organisation' },
|
||||
{
|
||||
models: { user: new onboardingUserModel(payload['/organisations'].permissions) },
|
||||
cancelLabel: 'cancel'
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
if(membership) {
|
||||
ui.growl.append('membership request sent', 'success');
|
||||
}
|
||||
},
|
||||
() => {
|
||||
ui.growl.append('Sorry, you don\'t have access to this feature', 'danger');
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ApplicantDashboardView', ApplicantDashboardView);
|
||||
@@ -1,48 +0,0 @@
|
||||
<div class="applicant-member-dialog">
|
||||
<div eicalert class="status"></div>
|
||||
<div class="lookup">
|
||||
<label>Please identify your member</label>
|
||||
<input eicinput type="search" data-path="" name="search" value="" placeholder="Enter member's EU Login ID or email and press enter" />
|
||||
</div>
|
||||
<div class="member-form">
|
||||
<div class="cols-3">
|
||||
<input eicinput type="hidden" name="uid" data-type="ignore" value="" class="required" />
|
||||
<div>
|
||||
<label>Title</label>
|
||||
<select eicselect class="required" name="gender" data-path=""></select>
|
||||
</div>
|
||||
<div>
|
||||
<label>Firstname</label>
|
||||
<input eicinput disabled value="" class="required" data-path="" name="firstname" data-type="ignore" />
|
||||
</div>
|
||||
<div>
|
||||
<label>Lastname</label>
|
||||
<input eicinput disabled value="" class="required" data-path="" name="lastname" data-type="ignore" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="cols-2">
|
||||
<div>
|
||||
<label>Email</label>
|
||||
<input eicinput disabled type="email" value="" data-path="" name="email" data-type="ignore" />
|
||||
</div>
|
||||
<div>
|
||||
<label>Phone</label>
|
||||
<input eicinput type="tel" value="" class="" data-path="" name="phone"/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label>Position</label>
|
||||
<select eicselect lookup class="required" class="required" name="position" data-path=""></select>
|
||||
</div>
|
||||
<div>
|
||||
<label>Rights</label>
|
||||
<select eicselect data-path="" name="admin" data-type="boolean" class="required">
|
||||
<option value="false"><h5>User Level</h5> Can view organisation information, request access or be invited as contributor to proposal(s)</option>
|
||||
<option value="true"><h5>Admin Level</h5> Can manage organisation members (add, remove and update) and handle membership requests</option>
|
||||
</select>
|
||||
</div>
|
||||
<div eicalert danger class="confirmation">
|
||||
<input eiccheckbox type="checkbox" name="confirmDelete" data-type="ignore" label="Yes, I want to remove this member from my organisation" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,268 +0,0 @@
|
||||
class ApplicantMemberDialog extends EICDialogContent {
|
||||
|
||||
actions = [
|
||||
{
|
||||
label: 'cancel',
|
||||
onclick: this.cancel.bind(this),
|
||||
severity: 'secondary',
|
||||
role: 'cancel'
|
||||
},
|
||||
{
|
||||
label: 'remove',
|
||||
onclick: this.remove.bind(this),
|
||||
severity: 'danger',
|
||||
role: 'delete'
|
||||
},
|
||||
{
|
||||
label: 'add',
|
||||
onclick: this.create.bind(this),
|
||||
severity: 'primary',
|
||||
role: 'create'
|
||||
},
|
||||
{
|
||||
label: 'accept',
|
||||
onclick: this.accept.bind(this),
|
||||
severity: 'success',
|
||||
role: 'accept'
|
||||
},
|
||||
{
|
||||
label: 'reject',
|
||||
onclick: this.revoke.bind(this),
|
||||
severity: 'danger',
|
||||
role: 'reject'
|
||||
},
|
||||
{
|
||||
label: 'update',
|
||||
onclick: this.update.bind(this),
|
||||
severity: 'primary',
|
||||
role: 'update'
|
||||
},
|
||||
]
|
||||
|
||||
statuses = {
|
||||
active: {
|
||||
severity: 'success',
|
||||
label: 'This user is part of your organisation'
|
||||
},
|
||||
pending: {
|
||||
severity: 'warning',
|
||||
label: 'This user ask to be part of your organisation'
|
||||
}
|
||||
}
|
||||
async DOMContentLoaded(options) {
|
||||
|
||||
this.mode = options.mode ? options.mode: 'read';
|
||||
|
||||
app.meta.add('organisation-functions', app.Assets.Store.json['organisation-functions']);
|
||||
app.meta.add('organisation-genders', app.Assets.Store.json['organisation-genders']);
|
||||
|
||||
this.model = options.model;
|
||||
this.pic = options.pic;
|
||||
|
||||
let components = ui.eicfy(this.el);
|
||||
|
||||
this.uid = components.find(component => component.el.name == 'uid');
|
||||
this.uid.value = options.uid || '';
|
||||
this.firstname = components.find(component => component.el.name == 'firstname');
|
||||
this.lastname = components.find(component => component.el.name == 'lastname');
|
||||
this.email = components.find(component => component.el.name == 'email');
|
||||
this.phone = components.find(component => component.el.name == 'phone');
|
||||
this.gender = components.find(component => component.el.name == 'gender');
|
||||
this.position = components.find(component => component.el.name == 'position');
|
||||
this.admin = components.find(component => component.el.name == 'admin');
|
||||
this.confirmDelete = components.find(component => component.el.name == 'confirmDelete');
|
||||
this.confirmation = this.find('.confirmation');
|
||||
this.lookup = this.find('.lookup');
|
||||
this.status = this.find('.status');
|
||||
|
||||
ui.hide(this.status);
|
||||
ui.hide(this.lookup);
|
||||
ui.hide(this.confirmation);
|
||||
|
||||
app.meta.toOptions('organisation-genders', null, true).forEach(item => this.gender.el.append(item));
|
||||
app.meta.toOptions('organisation-functions', null, true).forEach(item => this.position.el.append(item));
|
||||
|
||||
this.form = new Form(this.find('.member-form'));
|
||||
|
||||
this.searchInput = components.find(component => component.el.name == 'search');
|
||||
this.searchInput.onQuery = this.onUserSearch.bind(this);
|
||||
}
|
||||
|
||||
DOMContentFocused() {
|
||||
this.actions.find(o => o.role == 'create').button.hide();
|
||||
this.actions.find(o => o.role == 'delete').button.hide();
|
||||
this.actions.find(o => o.role == 'update').button.hide();
|
||||
this.actions.find(o => o.role == 'reject').button.hide();
|
||||
this.actions.find(o => o.role == 'accept').button.hide();
|
||||
|
||||
if(this.mode != 'create') {
|
||||
this.model.read(this.pic, this.uid.value)
|
||||
.then( this.fill.bind(this));
|
||||
} else {
|
||||
this.setupMode(this.mode);
|
||||
}
|
||||
}
|
||||
|
||||
fill(data) {
|
||||
this.uid.value = data.uid;
|
||||
this.firstname.value = data.firstname;
|
||||
this.lastname.value = data.lastname;
|
||||
this.email.value = data.email;
|
||||
this.phone.value = data.phone;
|
||||
this.gender.value = data.gender;
|
||||
this.position.value = data.position;
|
||||
this.admin.value = data.admin.toString();
|
||||
|
||||
this.gender.disabled = false;
|
||||
this.phone.disabled = false;
|
||||
this.position.disabled = false;
|
||||
this.admin.disabled = false;
|
||||
|
||||
let status = this.statuses[data.status];
|
||||
this.status.setAttribute(status.severity, '');
|
||||
this.status.innerHTML = status.label;
|
||||
|
||||
// switch to review mode if user is pending
|
||||
if(this.mode == 'edit' && data.status == 'pending') this.mode = 'review';
|
||||
|
||||
this.setupMode(this.mode)
|
||||
}
|
||||
|
||||
setupMode(mode) {
|
||||
|
||||
switch(this.mode) {
|
||||
case 'read':
|
||||
ui.show(this.status);
|
||||
this.gender.disabled = true;
|
||||
this.phone.disabled = true;
|
||||
this.position.disabled = true;
|
||||
this.admin.disabled = true;
|
||||
|
||||
break;
|
||||
case 'edit':
|
||||
ui.show(this.status);
|
||||
if(this.uid.value != app.User.identity.uuid) this.actions.find(o => o.role == 'delete').button.show();
|
||||
this.actions.find(o => o.role == 'update').button.show();
|
||||
break;
|
||||
case 'review':
|
||||
ui.show(this.status);
|
||||
this.actions.find(o => o.role == 'reject').button.show();
|
||||
this.actions.find(o => o.role == 'accept').button.show();
|
||||
break;
|
||||
case 'create':
|
||||
ui.show(this.lookup);
|
||||
ui.hide(this.confirmation);
|
||||
ui.hide(this.status);
|
||||
this.actions.find(o => o.role == 'create').button.show();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onUserSearch() {
|
||||
this.searchInput.loading = true;
|
||||
|
||||
this.uid.value = '';
|
||||
this.firstname.value = '';
|
||||
this.lastname.value = '';
|
||||
this.email.value = '';
|
||||
this.phone.value = '';
|
||||
this.position.clear();
|
||||
this.gender.clear();
|
||||
|
||||
this.model.search(this.searchInput.value).then(
|
||||
(userList => {
|
||||
this.searchInput.loading = false;
|
||||
if(userList.length == 0) return
|
||||
// TODO better manage if several (take most complete?)
|
||||
|
||||
let user = userList[0];
|
||||
this.uid.value = user.uid;
|
||||
this.firstname.value = user.given_name;
|
||||
this.lastname.value = user.family_name;
|
||||
this.email.value = user.email;
|
||||
}),
|
||||
(err) => {
|
||||
if(err.code!=404) { // 404 is just unknown user, the display message as warning (via EIC-model) is enough then.
|
||||
ui.growl.append('User lookup service is unavailable', 'danger')
|
||||
}
|
||||
this.searchInput.loading = false;
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
create(event) {
|
||||
if(this.form.validate()) {
|
||||
this.actions.find(o => o.role == 'create').button.loading = true;
|
||||
this.actions.find(o => o.role == 'cancel').button.disabled = true;
|
||||
this.model.add(this.pic, this.uid.value, this.form.value)
|
||||
.then( this.onSuccess.bind(this), this.onFailed.bind(this))
|
||||
}
|
||||
}
|
||||
|
||||
update(event) {
|
||||
if(this.form.validate()) {
|
||||
this.actions.find(o => o.role == 'update').button.loading = true;
|
||||
this.actions.find(o => o.role == 'delete').button.disabled = true;
|
||||
this.actions.find(o => o.role == 'cancel').button.disabled = true;
|
||||
this.model.update( this.pic, this.uid.value, this.form.value )
|
||||
.then( this.onSuccess.bind(this), this.onFailed.bind(this))
|
||||
}
|
||||
}
|
||||
|
||||
remove(event) {
|
||||
|
||||
ui.show(this.confirmation);
|
||||
|
||||
if(this.confirmDelete.el.checked) {
|
||||
this.actions.find(o => o.role == 'update').button.disabled = true;
|
||||
this.actions.find(o => o.role == 'delete').button.loading = true;
|
||||
this.actions.find(o => o.role == 'cancel').button.disabled = true;
|
||||
console.log(this.pic, this.uid.value)
|
||||
this.model.revoke( this.pic, this.uid.value)
|
||||
.then( this.onSuccess.bind(this), this.onFailed.bind(this))
|
||||
}
|
||||
}
|
||||
|
||||
revoke(event) {
|
||||
|
||||
ui.hide(this.confirmation);
|
||||
|
||||
this.actions.find(o => o.role == 'accept').button.disabled = true;
|
||||
this.actions.find(o => o.role == 'reject').button.loading = true;
|
||||
this.actions.find(o => o.role == 'cancel').button.disabled = true;
|
||||
this.model.revoke( this.pic, this.uid.value)
|
||||
.then( this.onSuccess.bind(this), this.onFailed.bind(this))
|
||||
}
|
||||
|
||||
accept(event) {
|
||||
this.actions.find(o => o.role == 'reject').button.disabled = true;
|
||||
this.actions.find(o => o.role == 'accept').button.loading = true;
|
||||
this.actions.find(o => o.role == 'cancel').button.disabled = true;
|
||||
this.model.grant( this.pic, this.uid.value, this.form.value)
|
||||
.then( this.onSuccess.bind(this), this.onFailed.bind(this))
|
||||
}
|
||||
|
||||
onSuccess() {
|
||||
this.actions.find(o => o.role == 'create').button.loading = false;
|
||||
this.actions.find(o => o.role == 'update').button.loading = false;
|
||||
this.actions.find(o => o.role == 'delete').button.loading = false;
|
||||
this.actions.find(o => o.role == 'accept').button.loading = false;
|
||||
this.actions.find(o => o.role == 'reject').button.loading = false;
|
||||
this.actions.find(o => o.role == 'cancel').button.disabled = false;
|
||||
this.commit(true);
|
||||
}
|
||||
|
||||
onFailed() {
|
||||
this.actions.find(o => o.role == 'create').button.loading = false;
|
||||
this.actions.find(o => o.role == 'update').button.loading = false;
|
||||
this.actions.find(o => o.role == 'delete').button.loading = false;
|
||||
this.actions.find(o => o.role == 'accept').button.loading = false;
|
||||
this.actions.find(o => o.role == 'reject').button.loading = false;
|
||||
this.actions.find(o => o.role == 'cancel').button.disabled = false;
|
||||
this.abort();
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ApplicantMemberDialog', ApplicantMemberDialog);
|
||||
@@ -1,22 +0,0 @@
|
||||
<style>
|
||||
.applicant-proposal-search {
|
||||
min-width: 40vw;
|
||||
}
|
||||
.applicant-proposal-search .list .row {
|
||||
grid-template-columns: 120px auto 120px 120px 200px;
|
||||
}
|
||||
.applicant-proposal-search .list .cell:nth-child(2),
|
||||
.applicant-proposal-search .list .cell:nth-child(4),
|
||||
.applicant-proposal-search .list .cell:nth-child(5),
|
||||
.applicant-proposal-search .list .cell:nth-child(6) {
|
||||
text-align:center
|
||||
}
|
||||
</style>
|
||||
<div class="applicant-proposal-search">
|
||||
<div class="search-form">
|
||||
<input eicinput type="search" name="search" placeholder="search on proposal number or acronym" />
|
||||
</div>
|
||||
<div class="search-results">
|
||||
<div eicdatagrid class="list"></div>
|
||||
</div>
|
||||
</div>
|
||||