Compare commits

...

172 Commits

Author SHA1 Message Date
Skylar Ittner b631561620 Remove URL handler 4 months ago
Skylar Ittner 8dea193917 Don't throw errors in console if Matomo isn't loaded 4 months ago
Skylar Ittner 4c68c14293 Remove money stuff (bloat--) 4 months ago
Skylar Ittner 25c27cb405 Bump app version to 2.1.0 4 months ago
Skylar Ittner 2031639623 Add locations map, add kiosks, remove crypto/money orders, text tweaks 4 months ago
Skylar Ittner ee42e8aeb3 Bump version to 2.0.5 and fix iOS App Store nonsense 9 months ago
Skylar Ittner 06c691aef2 Adjustments 10 months ago
Skylar Ittner 3e87c8f9b5 Don't require camera autofocus or flash or gps 10 months ago
Skylar Ittner e7512b73e4 Don't require camera autofocus or flash or gps 10 months ago
Skylar Ittner ef73d0b0c2 Don't require camera autofocus or flash or gps 10 months ago
Skylar Ittner 7238a86898 Don't require camera autofocus or flash 10 months ago
Skylar Ittner f23fc2417d Change Drop and Send time warning to 3PM since Helena PO critical entry moved an hour earlier 10 months ago
Skylar Ittner e0a2e91b85 Remove labelmaker.js reference 10 months ago
Skylar Ittner 2f54dbe032 Hide PostalPoint from menu 10 months ago
Skylar Ittner 0244e9e333 Fix two Quick Send bugs 11 months ago
Skylar Ittner e9950a222d Add PostalPoint page 11 months ago
Skylar Ittner c5923625c3 Organize and update link handler code 11 months ago
Skylar Ittner f2463d021d Handle Helena Express deep links with the home page barcode scanner 11 months ago
Skylar Ittner ed1f4dddcf Handle opening tracking URLs in receipts 11 months ago
Skylar Ittner 8e64fdfe62 Text and URL adjustments, handle more website URLs 11 months ago
Skylar Ittner 89df54c1fe Add account number to quick send 11 months ago
Skylar Ittner 35fbcca41b New more better quick send 11 months ago
Skylar Ittner f25a2a07db Cache dynamic content for eight hours, not one 11 months ago
Skylar Ittner 78f4c4992f Remove loyalty info since nobody's ever cashed it in anyways 11 months ago
Skylar Ittner f5d9bef01a Add note that prepaid pickups may cost extra 11 months ago
Skylar Ittner 8034957b31 Update API endpoints to use apis.helena.express 1 year ago
Skylar Ittner 9b77b8e8a0 Remove regional rate options 1 year ago
Skylar Ittner 7c2ca1d16c Bump version to 2.0.4 1 year ago
Skylar Ittner d5e270ecfa Set country zoom level to 3 1 year ago
Skylar Ittner db909f5a27 Update copyright year 1 year ago
Skylar Ittner 5285f6445f Support country-level map zoom on tracking page 1 year ago
Skylar Ittner 148f38d9d9 Add "quick send" for customers to present address info at trailer 1 year ago
Skylar Ittner b56c8dbe3f Fetch dynamically-updating text from server, add FAQ to money order page 1 year ago
Skylar Ittner 03515d5ac4 Make splash background darker 2 years ago
Skylar Ittner 400bc22362 Improve splashscreen 2 years ago
Skylar Ittner a92593dd7a Improve splashscreen 2 years ago
Skylar Ittner 046ba92611 Improve splash 2 years ago
Skylar Ittner 950ea1fb0d Try something for the new splashscreen 2 years ago
Skylar Ittner b897c11241 Use numeric keyboard for money order serial 2 years ago
Skylar Ittner 7cafca1319 Fix sharing plugin not working on Android 12 2 years ago
Skylar Ittner 3a802beca5 Fix barcodescanner plugin not compiling for Android 12 2 years ago
Skylar Ittner 5f855f2095 Cordova update stuff (Android and splashscreen mostly) 2 years ago
Skylar Ittner 318fcfa929 Trim bloat 2 years ago
Skylar Ittner 6809cde65a Bump version: 2.0.2 -> 2.0.3 2 years ago
Skylar Ittner 325099841a Add money order verification 2 years ago
Skylar Ittner a1c176986d Add trailer info 2 years ago
Skylar Ittner 2211f74671 Fix not detecting empty package count 2 years ago
Skylar Ittner 10a8b3f23f Make prepaid checkbox work more better (text wraps, no hairline after) 2 years ago
Skylar Ittner ee8b225d7c Bump version to 2.0.2 2 years ago
Skylar Ittner 972025f808 Make address and ZIP boxes work better on mobile, improve text at bottom 2 years ago
Skylar Ittner 0ff5b13ec3 Add prepaid return label checkbox to package pickup form 2 years ago
Skylar Ittner adc8b1d07a Improve "Apple bad" dialog 2 years ago
Skylar Ittner e49e841543 Web: Allow navigating to a page on launch with URL argument 2 years ago
Skylar Ittner ebe76f23c0 Disable sending crypto on iOS per App Store review guideline 3.1.5 2 years ago
Skylar Ittner 70c100a8ac Bump version 2.0.0 -> 2.0.1 2 years ago
Skylar Ittner 8c17811c5f Add padding and background to crypto QR code, Fix #10 2 years ago
Skylar Ittner 13beaca4a3 Bump app to version 2.0.0 2 years ago
Skylar Ittner 944684f0b7 Remove mapbox-gl, which randomly installed after build server NPM upgrade 2 years ago
Skylar Ittner ef75a6376e Only fill street address from ZIP lookup if delivery point verified 2 years ago
Skylar Ittner 7e769d53f9 Add ZIP lookup tool to rate calculator 2 years ago
Skylar Ittner 905a465ecd Undo the rest of the statusbar stuff 2 years ago
Skylar Ittner 13e19f79bd Update Cordova plugins, undo statusbar stuff because an update should fix it 2 years ago
Skylar Ittner 45c9aaf8b6 Screw around with statusbar stuff 2 years ago
Skylar Ittner dbbd4aca27 Fix statusbar color mismatch on iOS 2 years ago
Skylar Ittner e4377564d6 Stop duplicate context menus on tracking history long-press 2 years ago
Skylar Ittner 2167d7c206 Support crypto payment request URIs, add request crypto QR generator 2 years ago
Skylar Ittner 771bb9edeb Fix CSS 2 years ago
Skylar Ittner a9d6e39b13 FontAwesome v6 class migration, remove unused files, optimize images+icons 2 years ago
Skylar Ittner cb5ad77254 Bump app version to 1.9.3 2 years ago
Skylar Ittner 17bffcf6b2 Update Framework7 from v6 to v7 2 years ago
Skylar Ittner 3b2efe1f1d Bump version 1.9.1 to 1.9.2 2 years ago
Skylar Ittner cfff796926 Add illustrations to tracking tabs 2 years ago
Skylar Ittner d8f58a0a7e Fix swiper bullets invisible in dark mode 2 years ago
Skylar Ittner 85681b0f8a Adjust images and buttons 2 years ago
Skylar Ittner e4b1f8a8d5 Adjust image size 2 years ago
Skylar Ittner 333ab79574 Add illustration to Drop and Send page, adjust wording 2 years ago
Skylar Ittner dc0e846ad9 Add more drawings, break up walls of text 2 years ago
Skylar Ittner a93d6876f8 Add slide to crypto page 2 years ago
Skylar Ittner 1e06e7c62b Add filler image/text when no receipts to show 2 years ago
Skylar Ittner ab037d08d7 Add slideshow for crypto page 2 years ago
Skylar Ittner 68c3a0abca Fix history glitch with crypto pages 2 years ago
Skylar Ittner 10c0e406cb Get service area GeoJSON from server, show preloader spinner 2 years ago
Skylar Ittner 35436dec09 Fix service area map legend being too small on iPhone SE 2 years ago
Skylar Ittner df6a3e38e0 Bump version: 1.9.0 -> 1.9.1 2 years ago
Skylar Ittner b62e1eb7a2 Fix notary page layout on wide screens 2 years ago
Skylar Ittner 058f381796 Remove not implemented error 2 years ago
Skylar Ittner 7dfd76438d Add some UX design to crypto UI 2 years ago
Skylar Ittner c68aa1eacf Add notary info page and service area map 2 years ago
Skylar Ittner 853289dd4b Adjust toolbar transparency and page background image on dark theme 2 years ago
Skylar Ittner f25a5ca9eb Add toolbar to home page with call/text buttons and app logo 2 years ago
Skylar Ittner e6312c82ff Update Public Address to Wallet Address to match paper wallet design 2 years ago
Skylar Ittner aba3c871ba Get tx fees from API instead of using bitcore's too-expensive fees 2 years ago
Skylar Ittner 334fb85c51 Add some error handling to sending crypto 2 years ago
Skylar Ittner ff87f00f71 Allow setting amount in crypto or USD 2 years ago
Skylar Ittner 004285e67f Fix typos 2 years ago
Skylar Ittner 9ddda9b565 Support spending wallets with multiple UTXOs 2 years ago
Skylar Ittner 0ec764142c Erase priv key box after transaction, truncate address in confirmation dialog 2 years ago
Skylar Ittner 0d0e68cdec Fix mistake 2 years ago
Skylar Ittner f44a3c8479 Add Bitcoin/Dogecoin paper wallet spending (#9) 2 years ago
Skylar Ittner c173912190 Add FAB to home screen for quickly scanning any recognized barcode (tracking, drop box, crypto wallet) 2 years ago
Skylar Ittner 0d168c3420 Bump v1.8.1 to v1.9 2 years ago
Skylar Ittner 943dcd1206 Add nicknames to multi list packages (close #7) 2 years ago
Skylar Ittner 0468b19b6d Add context menu to track search button (close #8) 2 years ago
Skylar Ittner aa3a602a2b Start moving inline CSS to a file, make tracking search button blue 2 years ago
Skylar Ittner 3d70dc2289 Add wallet balance check (#9) 2 years ago
Skylar Ittner c199f00c29 Upgrade to FontAwesome6, start adding crypto (#9) 2 years ago
Skylar Ittner 90495b4190 Fix #6 2 years ago
Skylar Ittner fe5a15d566 Improve browser/Cordova compatibility 2 years ago
Skylar Ittner c68fc954a3 Fix Multi tab filler text being in columns 2 years ago
Skylar Ittner bd94dd8663 Bump version to 1.8.1 2 years ago
Skylar Ittner 4db6d64a54 Redesign tracking page and navbar color 2 years ago
Skylar Ittner 26918f3970 Fix long-press on multi list 2 years ago
Skylar Ittner ed66b6aa52 Fix long-press on iOS and mobile browsers, hopefully 2 years ago
Skylar Ittner e19c28e5e8 Fix long-press/right-click instructions 2 years ago
Skylar Ittner 24c608b4d2 Prevent text selection 2 years ago
Skylar Ittner b53145ad53 Add some margin below tab bar icons 2 years ago
Skylar Ittner bf1dbe5157 Bump version: 1.7.2 -> 1.8.0 2 years ago
Skylar Ittner 306d4c864e ? 2 years ago
Skylar Ittner 25c42f3a91 Add multi tracking tab to see status of several packages at once 2 years ago
Skylar Ittner 058ef54793 Remove splashscreen from browser 2 years ago
Skylar Ittner 431b444807 Fix loading receipts 2 years ago
Skylar Ittner ff80f7e840 Bump version: 1.7.1 => 1.7.2 2 years ago
Skylar Ittner e078cd216e Add weekend and time of day warnings for pickups 2 years ago
Skylar Ittner 6aef803ba4 Add receipt viewer to account page 2 years ago
Skylar Ittner 25f28edd8e Allow turning off analytics on welcome screen 2 years ago
Skylar Ittner 6dc846b3ab Fix duplicate context menu 2 years ago
Skylar Ittner df4d0e487c Update credits 2 years ago
Skylar Ittner 1e4133cb2d Add right-click menu for tracking history list 2 years ago
Skylar Ittner bf6a4de24b Change history tab labels 2 years ago
Skylar Ittner 50fcacfcc9 Custom color theme 2 years ago
Skylar Ittner 747e20b52a Make tracking history filler text gray 2 years ago
Skylar Ittner 1e0ba9dcdf Show message when tracking history is empty 2 years ago
Skylar Ittner 78c64662a6 Suggest recently shipped tracking numbers tied to account 2 years ago
Skylar Ittner ff44ce5eb8 Make from ZIP input numeric 2 years ago
Skylar Ittner 83f581de5d Report error and success events to Matomo 2 years ago
Skylar Ittner a84c923fed idk 2 years ago
Skylar Ittner 81ac1e0724 Bump version to 1.7.1 2 years ago
Skylar Ittner bd4ba6cc55 Fix bug when opening external link 2 years ago
Skylar Ittner 1344064d34 Add Matomo analytics for page views 2 years ago
Skylar Ittner ac6ac13ec7 Fix blank page/error when using hardware back button, add 404 page just in case 2 years ago
Skylar Ittner a7a4aee301 Add keyboard type hints 2 years ago
Skylar Ittner 3de413c01a Keep IAB from being fullscreen 2 years ago
Skylar Ittner 290c1a2396 Handle deeplink to home page 2 years ago
Skylar Ittner 559ee9fb9b Remove .WOFF font files 2 years ago
Skylar Ittner 94bb3710c8 Make telegram message monospace all-caps, add "replace periods" option 2 years ago
Skylar Ittner 69fb7326cd Adjust pickup wording 2 years ago
Skylar Ittner 89f70e1a5b Adjust Drop and Send wording 2 years ago
Skylar Ittner 96702b6f90 Update terms URL 2 years ago
Skylar Ittner 969a6d3ed3 Update terms URL 2 years ago
Skylar Ittner 08b7d81e7e Bump version to 1.7.0, update copyright year 2 years ago
Skylar Ittner 9f54a3f91f Open all helena.express URLs, defaulting to in app browser if there isn't an app page to open 2 years ago
Skylar Ittner b794a0bd99 Customize appointment page title 2 years ago
Skylar Ittner 44c929c531 Make home page cards same height 2 years ago
Skylar Ittner c35de6ff64 Add shop 2 years ago
Skylar Ittner d4309871e3 Make Drop and Send page more consistent with rest of app 2 years ago
Skylar Ittner a697b5fd0c Reorganize menus 2 years ago
Skylar Ittner 4d7fa5388b Add ITSAppUsesNonExemptEncryption so Apple stops asking 2 years ago
Skylar Ittner 71c4ebefdb Update credits files (done automatically in builds but yeah) 2 years ago
Skylar Ittner b174428f3f Update menu label 2 years ago
Skylar Ittner a4e7b1156c Bump version to 1.6.0 2 years ago
Skylar Ittner 7a16b722cd Add telegram sending feature 2 years ago
Skylar Ittner 29003326b3 Bump version to 1.5.2 2 years ago
Skylar Ittner 868bba883b Fix incorrect type on input box 2 years ago
Skylar Ittner 90867a96b3 Fix visual glitch 2 years ago
Skylar Ittner 09827c99ae Words blah 2 years ago
Skylar Ittner f9267542c0 Bump to 1.5.1 2 years ago
Skylar Ittner 5a6e32778a Update welcome page text 2 years ago
Skylar Ittner 91c44bd1e4 Bump version: 1.4.1 to 1.5.0 2 years ago
Skylar Ittner 8a327701b7 Add package pickup request form 2 years ago
Skylar Ittner 358c961f91 Use localhost API server 2 years ago
Skylar Ittner 8fc4879410 Separate account number from phone number 2 years ago
Skylar Ittner 04e4811437 Hopefully fix bug where add card prompt stay after adding card 2 years ago

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.netsyms.helenaexpress.app" version="1.4.1" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget id="com.netsyms.helenaexpress.app" version="2.1.0" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name short="Helena Express">Helena Express</name>
<description>
</description>
@ -12,6 +12,7 @@
<allow-navigation href="https://helena.express/*" />
<allow-navigation href="https://*.stripe.com/*" />
<allow-navigation href="https://*.stripe.network/*" />
<allow-navigation href="data:*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
@ -19,19 +20,29 @@
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<access launch-external="yes" origin="geo:*" />
<access launch-external="yes" origin="tel:*" />
<access launch-external="yes" origin="sms:*" />
<icon src="res/logo.png" />
<preference name="HeaderColor" value="#82b1ff" />
<preference name="StatusBarBackgroundColor" value="#d0f2fc" />
<preference name="StatusBarBackgroundColor" value="#e8f9fe" />
<preference name="StatusBarStyle" value="default" />
<preference name="SplashScreenDelay" value="3000" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="FadeSplashScreen" value="true" />
<preference name="ShowSplashScreenSpinner" value="false" />
<platform name="browser">
<preference name="ShowSplashScreen" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
</platform>
<platform name="android">
<preference name="StatusBarOverlaysWebView" value="false" />
<allow-intent href="market:*" />
<preference name="AndroidLaunchMode" value="singleTask" />
<resource-file src="/res/android/drawable/ic_launcher_background.xml" target="/app/src/main/res/drawable/ic_launcher_background.xml" />
<resource-file src="/res/android/drawable/ic_launcher_foreground.xml" target="/app/src/main/res/drawable/ic_launcher_foreground.xml" />
<preference name="AndroidWindowSplashScreenAnimatedIcon" value="res/android/drawable/ic_splash_logo.xml" />
<preference name="AndroidWindowSplashScreenBackground" value="#82b1ff" />
<resource-file src="res/android/drawable/ic_launcher_background.xml" target="app/src/main/res/drawable/ic_launcher_background.xml" />
<resource-file src="res/android/drawable/ic_launcher_foreground.xml" target="app/src/main/res/drawable/ic_launcher_foreground.xml" />
<resource-file src="res/android/drawable/ic_splash_logo.xml" target="app/src/main/res/drawable/ic_splash_logo.xml" />
<resource-file src="res/android/mipmap-anydpi-v26/ic_launcher.xml" target="app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" />
<icon background="res/android/drawable/ic_launcher_background.xml" density="mdpi" foreground="res/android/drawable/ic_launcher_foreground.xml" src="res/android/mipmap-mdpi/ic_launcher.png" />
<icon background="res/android/drawable/ic_launcher_background.xml" density="hdpi" foreground="res/android/drawable/ic_launcher_foreground.xml" src="res/android/mipmap-hdpi/ic_launcher.png" />
@ -39,30 +50,13 @@
<icon background="res/android/drawable/ic_launcher_background.xml" density="xxhdpi" foreground="res/android/drawable/ic_launcher_foreground.xml" src="res/android/mipmap-xxhdpi/ic_launcher.png" />
<icon background="res/android/drawable/ic_launcher_background.xml" density="xxxhdpi" foreground="res/android/drawable/ic_launcher_foreground.xml" src="res/android/mipmap-xxxhdpi/ic_launcher.png" />
<preference name="SplashMaintainAspectRatio" value="true" />
<splash density="land-hdpi" src="res/android/splash/splash-land-hdpi.png" />
<splash density="land-ldpi" src="res/android/splash/splash-land-ldpi.png" />
<splash density="land-mdpi" src="res/android/splash/splash-land-mdpi.png" />
<splash density="land-xhdpi" src="res/android/splash/splash-land-xhdpi.png" />
<splash density="land-xxhdpi" src="res/android/splash/splash-land-xxhdpi.png" />
<splash density="land-xxxhdpi" src="res/android/splash/splash-land-xxxhdpi.png" />
<splash density="port-hdpi" src="res/android/splash/splash-port-hdpi.png" />
<splash density="port-ldpi" src="res/android/splash/splash-port-ldpi.png" />
<splash density="port-mdpi" src="res/android/splash/splash-port-mdpi.png" />
<splash density="port-xhdpi" src="res/android/splash/splash-port-xhdpi.png" />
<splash density="port-xxhdpi" src="res/android/splash/splash-port-xxhdpi.png" />
<splash density="port-xxxhdpi" src="res/android/splash/splash-port-xxxhdpi.png" />
<splash density="land-night-hdpi" src="res/android/splash-dark/splash-land-hdpi.png" />
<splash density="land-night-ldpi" src="res/android/splash-dark/splash-land-ldpi.png" />
<splash density="land-night-mdpi" src="res/android/splash-dark/splash-land-mdpi.png" />
<splash density="land-night-xhdpi" src="res/android/splash-dark/splash-land-xhdpi.png" />
<splash density="land-night-xxhdpi" src="res/android/splash-dark/splash-land-xxhdpi.png" />
<splash density="land-night-xxxhdpi" src="res/android/splash-dark/splash-land-xxxhdpi.png" />
<splash density="port-night-hdpi" src="res/android/splash-dark/splash-port-hdpi.png" />
<splash density="port-night-ldpi" src="res/android/splash-dark/splash-port-ldpi.png" />
<splash density="port-night-mdpi" src="res/android/splash-dark/splash-port-mdpi.png" />
<splash density="port-night-xhdpi" src="res/android/splash-dark/splash-port-xhdpi.png" />
<splash density="port-night-xxhdpi" src="res/android/splash-dark/splash-port-xxhdpi.png" />
<splash density="port-night-xxxhdpi" src="res/android/splash-dark/splash-port-xxxhdpi.png" />
<preference name="AndroidXEnabled" value="true" />
<!-- Don't exclude devices with very cheap cameras like Kindle Fire tablets -->
<config-file target="AndroidManifest.xml" parent="/manifest">
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.camera.flash" android:required="false"/>
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
</config-file>
</platform>
<platform name="ios">
<preference name="StatusBarOverlaysWebView" value="false" />
@ -73,11 +67,17 @@
<preference name="hostname" value="localhost" />
<preference name="PreferredContentMode" value="mobile" />
<edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
<string>Your camera is used to scan receipts and pickup codes.</string>
<string>Your camera is used to scan receipts and QR codes.</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
<string>Your location is used to show where you are on a map. It does not leave your device.</string>
<string>Your location is used to show your position on maps. It does not leave your device.</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationAlwaysAndWhenInUseUsageDescription">
<string>Your location is used to show your position on maps. It does not leave your device.</string>
</edit-config>
<config-file target="*-Info.plist" parent="ITSAppUsesNonExemptEncryption" mode="add">
<false/>
</config-file>
<config-file target="*-Debug.plist" parent="com.apple.developer.associated-domains">
<array>
<string>applinks:helena.express</string>

@ -319,7 +319,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
The following software may be included in this product: gl-matrix. A copy of the source code may be downloaded from https://github.com/toji/gl-matrix.git. This software contains the following license and notice below:
Copyright (c) 2015-2020, Brandon Jones, Colin MacKenzie IV.
Copyright (c) 2015-2021, Brandon Jones, Colin MacKenzie IV.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -1799,6 +1799,32 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: call-bind, get-intrinsic. A copy of the source code may be downloaded from git+https://github.com/ljharb/call-bind.git (call-bind), git+https://github.com/ljharb/get-intrinsic.git (get-intrinsic). This software contains the following license and notice below:
MIT License
Copyright (c) 2020 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-----
The following software may be included in this product: color-convert. A copy of the source code may be downloaded from https://github.com/Qix-/color-convert.git. This software contains the following license and notice below:
Copyright (c) 2011-2016 Heather Arthur <fayearthur@gmail.com>
@ -1889,7 +1915,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: content-disposition, depd, forwarded, vary. A copy of the source code may be downloaded from https://github.com/jshttp/content-disposition.git (content-disposition), https://github.com/dougwilson/nodejs-depd.git (depd), https://github.com/jshttp/forwarded.git (forwarded), https://github.com/jshttp/vary.git (vary). This software contains the following license and notice below:
The following software may be included in this product: content-disposition, forwarded, vary. A copy of the source code may be downloaded from https://github.com/jshttp/content-disposition.git (content-disposition), https://github.com/jshttp/forwarded.git (forwarded), https://github.com/jshttp/vary.git (vary). This software contains the following license and notice below:
(The MIT License)
@ -2984,7 +3010,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
-----
The following software may be included in this product: cordova-plugin-camera, cordova-plugin-device, cordova-plugin-geolocation, cordova-plugin-inappbrowser, cordova-plugin-splashscreen, cordova-plugin-statusbar. A copy of the source code may be downloaded from https://github.com/apache/cordova-plugin-camera.git (cordova-plugin-camera), https://github.com/apache/cordova-plugin-device (cordova-plugin-device), https://github.com/apache/cordova-plugin-geolocation.git (cordova-plugin-geolocation), https://github.com/apache/cordova-plugin-inappbrowser.git (cordova-plugin-inappbrowser), https://github.com/apache/cordova-plugin-splashscreen.git (cordova-plugin-splashscreen), https://github.com/apache/cordova-plugin-statusbar (cordova-plugin-statusbar). This software contains the following license and notice below:
The following software may be included in this product: cordova-plugin-camera, cordova-plugin-device, cordova-plugin-geolocation, cordova-plugin-inappbrowser, cordova-plugin-statusbar. A copy of the source code may be downloaded from https://github.com/apache/cordova-plugin-camera.git (cordova-plugin-camera), https://github.com/apache/cordova-plugin-device.git (cordova-plugin-device), https://github.com/apache/cordova-plugin-geolocation.git (cordova-plugin-geolocation), https://github.com/apache/cordova-plugin-inappbrowser.git (cordova-plugin-inappbrowser), https://github.com/apache/cordova-plugin-statusbar.git (cordova-plugin-statusbar). This software contains the following license and notice below:
Apache License
Version 2.0, January 2004
@ -3732,7 +3758,61 @@ THE SOFTWARE.
-----
The following software may be included in this product: destroy, ee-first, mime-db. A copy of the source code may be downloaded from https://github.com/stream-utils/destroy.git (destroy), https://github.com/jonathanong/ee-first.git (ee-first), https://github.com/jshttp/mime-db.git (mime-db). This software contains the following license and notice below:
The following software may be included in this product: depd. A copy of the source code may be downloaded from https://github.com/dougwilson/nodejs-depd.git. This software contains the following license and notice below:
(The MIT License)
Copyright (c) 2014-2018 Douglas Christopher Wilson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: destroy. A copy of the source code may be downloaded from https://github.com/stream-utils/destroy.git. This software contains the following license and notice below:
The MIT License (MIT)
Copyright (c) 2014 Jonathan Ong me@jongleberry.com
Copyright (c) 2015-2022 Douglas Christopher Wilson doug@somethingdoug.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-----
The following software may be included in this product: ee-first. A copy of the source code may be downloaded from https://github.com/jonathanong/ee-first.git. This software contains the following license and notice below:
The MIT License (MIT)
@ -4177,7 +4257,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: extsprintf. A copy of the source code may be downloaded from git://github.com/davepacheco/node-extsprintf.git. This software contains the following license and notice below:
The following software may be included in this product: extsprintf. A copy of the source code may be downloaded from https://github.com/davepacheco/node-extsprintf.git. This software contains the following license and notice below:
Copyright (c) 2012, Joyent, Inc. All rights reserved.
@ -4275,7 +4355,7 @@ The following software may be included in this product: finalhandler. A copy of
(The MIT License)
Copyright (c) 2014-2017 Douglas Christopher Wilson <doug@somethingdoug.com>
Copyright (c) 2014-2022 Douglas Christopher Wilson <doug@somethingdoug.com>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
@ -4394,6 +4474,30 @@ the licensed code:
-----
The following software may be included in this product: function-bind. A copy of the source code may be downloaded from git://github.com/Raynos/function-bind.git. This software contains the following license and notice below:
Copyright (c) 2013 Raynos.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-----
The following software may be included in this product: glob. A copy of the source code may be downloaded from git://github.com/isaacs/node-glob.git. This software contains the following license and notice below:
The ISC License
@ -4444,7 +4548,7 @@ The following software may be included in this product: graceful-fs. A copy of t
The ISC License
Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors
Copyright (c) 2011-2022 Isaac Z. Schlueter, Ben Noordhuis, and Contributors
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@ -4460,6 +4564,32 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-----
The following software may be included in this product: has-symbols. A copy of the source code may be downloaded from git://github.com/inspect-js/has-symbols.git. This software contains the following license and notice below:
MIT License
Copyright (c) 2016 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-----
The following software may be included in this product: http-errors. A copy of the source code may be downloaded from https://github.com/jshttp/http-errors.git. This software contains the following license and notice below:
The MIT License (MIT)
@ -4758,6 +4888,33 @@ PERFORMANCE OF THIS SOFTWARE.
-----
The following software may be included in this product: interpret. A copy of the source code may be downloaded from https://github.com/gulpjs/interpret.git. This software contains the following license and notice below:
Copyright (c) 2014-2018 Tyler Kellen <tyler@sleekcode.net>, Blaine Bublitz <blaine.bublitz@gmail.com>, and Eric Schoffstall <yo@contra.io>
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: ionic-plugin-deeplinks. A copy of the source code may be downloaded from https://github.com/ionic-team/ionic-plugin-deeplinks.git. This software contains the following license and notice below:
Copyright 2016-present Drifty Co.
@ -4836,6 +4993,31 @@ THE SOFTWARE.
-----
The following software may be included in this product: is-core-module. A copy of the source code may be downloaded from git+https://github.com/inspect-js/is-core-module.git. This software contains the following license and notice below:
The MIT License (MIT)
Copyright (c) 2014 Dave Justice
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: is-extglob. A copy of the source code may be downloaded from https://github.com/jonschlinkert/is-extglob.git. This software contains the following license and notice below:
The MIT License (MIT)
@ -5141,6 +5323,34 @@ THE SOFTWARE.
-----
The following software may be included in this product: mime-db. A copy of the source code may be downloaded from https://github.com/jshttp/mime-db.git. This software contains the following license and notice below:
(The MIT License)
Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>
Copyright (c) 2015-2022 Douglas Christopher Wilson <doug@somethingdoug.com>
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: mkpath. A copy of the source code may be downloaded from https://github.com/jrajav/mkpath. This software contains the following license and notice below:
Copyright (C) 2012 Jonathan Rajavuori
@ -5179,6 +5389,32 @@ SOFTWARE.
-----
The following software may be included in this product: ms. A copy of the source code may be downloaded from https://github.com/vercel/ms.git. This software contains the following license and notice below:
The MIT License (MIT)
Copyright (c) 2020 Vercel, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-----
The following software may be included in this product: negotiator. A copy of the source code may be downloaded from https://github.com/jshttp/negotiator.git. This software contains the following license and notice below:
(The MIT License)
@ -5262,6 +5498,32 @@ OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: object-inspect. A copy of the source code may be downloaded from git://github.com/inspect-js/object-inspect.git. This software contains the following license and notice below:
MIT License
Copyright (c) 2013 James Halliday
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-----
The following software may be included in this product: on-finished. A copy of the source code may be downloaded from https://github.com/jshttp/on-finished.git. This software contains the following license and notice below:
(The MIT License)
@ -5318,6 +5580,32 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: path-parse. A copy of the source code may be downloaded from https://github.com/jbgutierrez/path-parse.git. This software contains the following license and notice below:
The MIT License (MIT)
Copyright (c) 2015 Javier Blanco
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-----
The following software may be included in this product: picomatch. A copy of the source code may be downloaded from https://github.com/micromatch/picomatch.git. This software contains the following license and notice below:
The MIT License (MIT)
@ -5398,34 +5686,35 @@ IN THE SOFTWARE.
The following software may be included in this product: qs. A copy of the source code may be downloaded from https://github.com/ljharb/qs.git. This software contains the following license and notice below:
Copyright (c) 2014 Nathan LaFreniere and other contributors.
BSD 3-Clause License
Copyright (c) 2014, Nathan LaFreniere and other [contributors](https://github.com/ljharb/qs/graphs/contributors)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* The names of any contributors may not be used to endorse or promote
products derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* * *
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
The complete list of contributors can be found at: https://github.com/hapijs/qs/graphs/contributors
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-----
@ -5487,7 +5776,7 @@ The following software may be included in this product: raw-body. A copy of the
The MIT License (MIT)
Copyright (c) 2013-2014 Jonathan Ong <me@jongleberry.com>
Copyright (c) 2014-2015 Douglas Christopher Wilson <doug@somethingdoug.com>
Copyright (c) 2014-2022 Douglas Christopher Wilson <doug@somethingdoug.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -5509,6 +5798,33 @@ THE SOFTWARE.
-----
The following software may be included in this product: rechoir. A copy of the source code may be downloaded from git://github.com/tkellen/node-rechoir.git. This software contains the following license and notice below:
Copyright (c) 2015 Tyler Kellen
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: recursive-readdir. A copy of the source code may be downloaded from git://github.com/jergason/recursive-readdir.git. This software contains the following license and notice below:
The MIT License (MIT)
@ -5535,6 +5851,32 @@ THE SOFTWARE.
-----
The following software may be included in this product: resolve. A copy of the source code may be downloaded from git://github.com/browserify/resolve.git. This software contains the following license and notice below:
MIT License
Copyright (c) 2012 James Halliday
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-----
The following software may be included in this product: reusify. A copy of the source code may be downloaded from git+https://github.com/mcollina/reusify.git. This software contains the following license and notice below:
The MIT License (MIT)
@ -5664,7 +6006,7 @@ The following software may be included in this product: send. A copy of the sour
(The MIT License)
Copyright (c) 2012 TJ Holowaychuk
Copyright (c) 2014-2016 Douglas Christopher Wilson
Copyright (c) 2014-2022 Douglas Christopher Wilson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
@ -5806,6 +6148,63 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-----
The following software may be included in this product: shelljs. A copy of the source code may be downloaded from git://github.com/shelljs/shelljs.git. This software contains the following license and notice below:
Copyright (c) 2012, Artur Adib <arturadib@gmail.com>
All rights reserved.
You may use this project under the terms of the New BSD license as follows:
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Artur Adib nor the
names of the contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL ARTUR ADIB BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-----
The following software may be included in this product: side-channel. A copy of the source code may be downloaded from git+https://github.com/ljharb/side-channel.git. This software contains the following license and notice below:
MIT License
Copyright (c) 2019 Jordan Harband
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-----
The following software may be included in this product: signal-exit. A copy of the source code may be downloaded from https://github.com/tapjs/signal-exit.git. This software contains the following license and notice below:
The ISC License
@ -5853,7 +6252,7 @@ SOFTWARE.
-----
The following software may be included in this product: simple-plist. A copy of the source code may be downloaded from https://github.com/wollardj/node-simple-plist.git. This software contains the following license and notice below:
The following software may be included in this product: simple-plist. A copy of the source code may be downloaded from https://github.com/wollardj/simple-plist.git. This software contains the following license and notice below:
The MIT License (MIT)
@ -5934,6 +6333,32 @@ For more information, please refer to <http://unlicense.org/>
-----
The following software may be included in this product: supports-preserve-symlinks-flag. A copy of the source code may be downloaded from git+https://github.com/inspect-js/node-supports-preserve-symlinks-flag.git. This software contains the following license and notice below:
MIT License
Copyright (c) 2022 Inspect JS
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-----
The following software may be included in this product: to-regex-range. A copy of the source code may be downloaded from https://github.com/micromatch/to-regex-range.git. This software contains the following license and notice below:
The MIT License (MIT)
@ -5988,7 +6413,7 @@ SOFTWARE.
The following software may be included in this product: underscore. A copy of the source code may be downloaded from git://github.com/jashkenas/underscore.git. This software contains the following license and notice below:
Copyright (c) 2009-2021 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
Copyright (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation

@ -1,269 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!--
Generated file; DO NOT EDIT.
-->
<project name="PackageNotice" basedir="..">
<property file="nbproject/configs/${config}.properties" />
<scriptdef name="checkVersion" language="javascript">
<attribute name="first" />
<attribute name="property" />
<![CDATA[
var first = attributes.get("first");
if (first >= "3.0.0") {
project.setProperty(attributes.get("property"), true);
}
]]>
</scriptdef>
<scriptdef name="forDevice" language="javascript">
<![CDATA[
var dev = project.getProperty("device");
if (dev == "device") {
project.setProperty("build.for.device", true);
}
]]>
</scriptdef>
<target name="check-cordova-project">
<condition property="cordova.project">
<or>
<available file=".cordova"/>
<available file="hooks"/>
</or>
</condition>
</target>
<target name="upgrade-to-cordova-project" depends="check-cordova-project,check-cordova-version" unless="cordova.project">
<echo level="info" message="${cordova.command} -d create ${java.io.tmpdir}/nb_temp_project com.coolappz.${project.name} ${project.name}" />
<delete dir="${java.io.tmpdir}/nb_temp_project"/>
<exec executable="${cordova.command}" resolveexecutable="true" searchpath="true" failonerror="true" >
<env key="${cordova.path.key}" path="${cordova.path.value}:${android.sdk.home}/tools:${android.sdk.home}/platform-tools:${jdk.home}/bin:${ant.home}/bin:${jdk.home}/bin"/>
<env key="JAVA_HOME" path="${jdk.home}"/>
<arg value="-d"/>
<arg value="create"/>
<arg value="${java.io.tmpdir}/nb_temp_project"/>
<arg value="com.coolappz.${project.name}"/>
<arg value="${project.name}" />
</exec>
<copy todir="." overwrite="true" failonerror="false">
<fileset dir="${java.io.tmpdir}/nb_temp_project"/>
</copy>
<delete dir="${java.io.tmpdir}/nb_temp_project"/>
<delete dir="www"/>
<copy todir="www" failonerror="false" quiet="true" >
<fileset dir="${site.root}"/>
</copy>
</target>
<target name="create-hello-world" depends="check-cordova-version">
<echo level="info" message="${cordova.command} -d create www_nb_temp com.coolappz.${project.name} ${project.name}" />
<exec executable="${cordova.command}" resolveexecutable="true" searchpath="true" failonerror="true">
<env key="${cordova.path.key}" path="${cordova.path.value}:${android.sdk.home}/tools:${android.sdk.home}/platform-tools:${jdk.home}/bin:${ant.home}/bin:${jdk.home}/bin"/>
<env key="JAVA_HOME" path="${jdk.home}"/>
<arg value="-d"/>
<arg value="create"/>
<arg value="www_nb_temp"/>
<arg value="com.coolappz.${project.name}"/>
<arg value="${project.name}" />
</exec>
<delete dir="www"/>
<mkdir dir="www"/>
<move file="www_nb_temp/www" tofile="www"/>
<delete dir="www_nb_temp"/>
<delete file="www/config.xml"/>
</target>
<taskdef
classname="org.netbeans.modules.cordova.updatetask.ReadConfigTask"
classpath="${update.task.jar}"
name="readconfig"/>
<taskdef
classname="org.netbeans.modules.cordova.updatetask.PluginTask"
classpath="${update.task.jar}"
name="plugintask"/>
<target name="check-cordova-version">
<property environment="env"/>
<checkVersion first="${cordova.version}" property="cordova.ver.3"/>
<fail message="Cordova version 3 or greater required." unless="cordova.ver.3"/>
<readconfig/>
<forDevice/>
</target>
<target name="check-android-template">
<available file="platforms/android" property="android.generated.exists"/>
</target>
<target name="check-ios-template">
<available file="platforms/ios" property="ios.generated.exists"/>
</target>
<target name="create-android" depends="check-android-template,check-cordova-version,upgrade-to-cordova-project" unless="android.generated.exists">
<echo level="info" message="${cordova.command} -d platform add android"/>
<exec executable="${cordova.command}" resolveexecutable="true" searchpath="true" failonerror="true">
<env key="${cordova.path.key}" path="${cordova.path.value}:${android.sdk.home}/tools:${android.sdk.home}/platform-tools:${jdk.home}/bin:${ant.home}/bin:${jdk.home}/bin"/>
<env key="JAVA_HOME" path="${jdk.home}"/>
<arg value="-d"/>
<arg value="platform"/>
<arg value="add"/>
<arg value="android"/>
</exec>
</target>
<target name="create-ios" depends="check-ios-template,check-cordova-version,upgrade-to-cordova-project" unless="ios.generated.exists">
<echo level="info" message="${cordova.command} -d platform add ios"/>
<exec executable="${cordova.command}" resolveexecutable="true" searchpath="true" dir="." failonerror="true">
<env key="${cordova.path.key}" path="${cordova.path.value}:${android.sdk.home}/tools:${android.sdk.home}/platform-tools:${jdk.home}/bin:${ant.home}/bin:${jdk.home}/bin"/>
<env key="JAVA_HOME" path="${jdk.home}"/>
<arg value="-d"/>
<arg value="platform"/>
<arg value="add"/>
<arg value="ios"/>
</exec>
</target>
<target name="rebuild-ios" depends="clean-ios,build-ios"/>
<target name="build-ios" depends="create-ios,update-plugins,update-ios,build-ios-xcodebuild,build-ios-ipa"/>
<target name="build-ios-xcodebuild">
<property name="path" location="platforms/ios/build"/>
<exec executable="xcodebuild" dir="platforms/ios" failonerror="true">
<arg value="-project"/>
<arg value="${project.name}.xcodeproj"/>
<arg value="ARCHS=${ios.build.arch}"/>
<arg value="-target"/>
<arg value="${project.name}"/>
<arg value="-configuration"/>
<arg value="Release"/>
<arg value="-sdk"/>
<arg value="${ios.build.sdk}" />
<arg value="build"/>
<arg value="CONFIGURATION_BUILD_DIR=${path}"/>
</exec>
</target>
<target name="build-ios-ipa" if="build.for.device">
<exec executable="xcrun" dir="platforms/ios/build" failonerror="true">
<env key="CODESIGN_ALLOCATE" value="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate" />
<arg value="-sdk"/>
<arg value="${ios.build.sdk}" />
<arg value="PackageApplication"/>
<arg value="-v"/>
<arg value="${project.name}.app"/>
<arg value="-o"/>
<arg value="${basedir}/platforms/ios/build/${project.name}.ipa"/>
<arg value="--sign"/>
<arg value="${ios.certificate.name}"/>
<arg value="--embed"/>
<arg value="${ios.provisioning.profile}"/>
</exec>
<available file="${basedir}/platforms/ios/build/${project.name}.ipa" property="ipa.found"/>
<fail unless="ipa.found" message="PackageApplication failed."/>
</target>
<target name="sim-ios" depends="build-ios,ios-run-device,ios-run-simulator">
</target>
<target name="ios-run-device" if="build.for.device">
<echo>
Install "${basedir}/platforms/ios/build/${project.name}.ipa" through iTunes and run it.
</echo>
<exec executable="open" failonerror="true">
<arg value="${basedir}/platforms/ios/build/${project.name}.ipa"/>
</exec>
</target>
<target name="ios-run-simulator" unless="build.for.device">
<exec executable="killall" dir="platforms/ios/build">
<arg value="launchd_sim"/>
</exec>
<exec executable="${ios.sim.exec}" dir="platforms/ios/build">
<arg line="launch ${project.name}.app ${ios.device.args} --exit"/>
</exec>
</target>
<target name="update-plugins">
<plugintask/>
</target>
<target name="update-android">
<echo level="info" message="${cordova.command} prepare android"/>
<exec executable="${cordova.command}" resolveexecutable="true" searchpath="true" failonerror="true">
<env key="${cordova.path.key}" path="${cordova.path.value}:${android.sdk.home}/tools:${android.sdk.home}/platform-tools:${jdk.home}/bin:${ant.home}/bin:${jdk.home}/bin"/>
<env key="JAVA_HOME" path="${jdk.home}"/>
<arg value="prepare"/>
<arg value="android"/>
</exec>
</target>
<target name="update-ios">
<echo level="info" message="${cordova.command} prepare ios"/>
<exec executable="${cordova.command}" resolveexecutable="true" searchpath="true" failonerror="true">
<env key="${cordova.path.key}" path="${cordova.path.value}:${android.sdk.home}/tools:${android.sdk.home}/platform-tools:${jdk.home}/bin:${ant.home}/bin:${jdk.home}/bin"/>
<env key="JAVA_HOME" path="${jdk.home}"/>
<arg value="prepare"/>
<arg value="ios"/>
</exec>
</target>
<target name="rebuild-android" depends="clean-android,build-android"/>
<target name="build-android" depends="create-android,update-plugins">
<echo level="info" message="${cordova.command} -d build android"/>
<exec executable="${cordova.command}" resolveexecutable="true" searchpath="true" failonerror="true">
<env key="${cordova.path.key}" path="${cordova.path.value}:${android.sdk.home}/tools:${android.sdk.home}/platform-tools:${jdk.home}/bin:${ant.home}/bin:${jdk.home}/bin"/>
<env key="JAVA_HOME" path="${jdk.home}"/>
<arg value="-d"/>
<arg value="build"/>
<arg value="android"/>
</exec>
</target>
<target name="sim-android" depends="create-android,update-plugins">
<echo level="info" message="${cordova.command} -d ${android.target.device.arg} android"/>
<exec executable="${cordova.command}" resolveexecutable="true" searchpath="true" failonerror="true">
<env key="${cordova.path.key}" path="${cordova.path.value}:${android.sdk.home}/tools:${android.sdk.home}/platform-tools:${jdk.home}/bin:${ant.home}/bin:${jdk.home}/bin"/>
<env key="JAVA_HOME" path="${jdk.home}"/>
<arg value="-d"/>
<arg value="${android.target.device.arg}"/>
<arg value="android"/>
</exec>
</target>
<target name="clean-android" depends="check-android-template" if="android.generated.exists">
<exec executable="./gradlew" dir="platforms/android">
<arg value="clean" />
</exec>
</target>
<target name="clean-ios" depends="check-ios-template" if="ios.generated.exists">
<exec executable="platforms/ios/cordova/clean" />
</target>
</project>

@ -1,3 +0,0 @@
device=emulator
display.name=Android Emulator
type=android

@ -1,3 +0,0 @@
device=device
display.name=Android Device
type=android

@ -1,5 +0,0 @@
device=emulator
display.name=iPhone Simulator
ios.build.arch=i386
ios.build.sdk=
type=ios

@ -1,5 +0,0 @@
device=device
display.name=iPhone Device
ios.build.arch=armv7 armv7s
ios.build.sdk=
type=ios

@ -1,9 +0,0 @@
<#if licenseFirst??>
${licenseFirst}
</#if>
${licensePrefix}This Source Code Form is subject to the terms of the Mozilla Public
${licensePrefix}License, v. 2.0. If a copy of the MPL was not distributed with this
${licensePrefix}file, You can obtain one at http://mozilla.org/MPL/2.0/.
<#if licenseLast??>
${licenseLast}
</#if>

@ -1,48 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# This is a list of plugins installed in your project
# You can delete or add new plugins
#
# Format is following:
# id.of.plugin=url_of_repository
#
# Corresponding "id.of.plugin" can be found in the plugin's plugin.xml file:
# <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" id="foo.bar.plugin" version="0.0.1">
#
# This list contains all core cordova plugins.
#
# For more information about plugins see http://cordova.apache.org/blog/releases/2013/07/23/cordova-3.html
#
cordova-plugin-device=https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
cordova-plugin-network-information=https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git
cordova-plugin-battery-status=https://git-wip-us.apache.org/repos/asf/cordova-plugin-battery-status.git
cordova-plugin-device-motion=https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-motion.git
cordova-plugin-device-orientation=https://git-wip-us.apache.org/repos/asf/cordova-plugin-device-orientation.git
cordova-plugin-geolocation=https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git
cordova-plugin-camera=https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git
cordova-plugin-media-capture=https://git-wip-us.apache.org/repos/asf/cordova-plugin-media-capture.git
cordova-plugin-media=https://git-wip-us.apache.org/repos/asf/cordova-plugin-media.git
cordova-plugin-file=https://git-wip-us.apache.org/repos/asf/cordova-plugin-file.git
cordova-plugin-file-transfer=https://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer.git
cordova-plugin-dialogs=https://git-wip-us.apache.org/repos/asf/cordova-plugin-dialogs.git
cordova-plugin-vibration=https://git-wip-us.apache.org/repos/asf/cordova-plugin-vibration.git
cordova-plugin-contacts=https://git-wip-us.apache.org/repos/asf/cordova-plugin-contacts.git
cordova-plugin-globalization=https://git-wip-us.apache.org/repos/asf/cordova-plugin-globalization.git
cordova-plugin-splashscreen=https://git-wip-us.apache.org/repos/asf/cordova-plugin-splashscreen.git
cordova-plugin-console=https://git-wip-us.apache.org/repos/asf/cordova-plugin-console.git

@ -1,9 +1,4 @@
auxiliary.org-netbeans-modules-cordova.cordova_5f_build_5f_script_5f_version=52
auxiliary.org-netbeans-modules-cordova.phonegap=true
auxiliary.org-netbeans-modules-javascript-nodejs.run_2e_enabled=false
browser.run=true
file.reference.HelenaExpress-www=www
files.encoding=UTF-8
project.licensePath=./nbproject/license-mpl.txt
site.root.folder=${file.reference.HelenaExpress-www}
start.file=index.html
source.folder=

@ -3,7 +3,7 @@
<type>org.netbeans.modules.web.clientproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/clientside-project/1">
<name>Helena Express App</name>
<name>com.netsyms.helenaexpress.app</name>
</data>
</configuration>
</project>

692
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -1,8 +1,8 @@
{
"name": "com.netsyms.helenaexpress.app",
"displayName": "Helena Express",
"version": "1.4.1",
"description": "App to schedule and track package pickup and courier services",
"version": "2.1.0",
"description": "App to request and track shipping services",
"product_string": "Helena Express",
"main": "www/index.html",
"window": {
@ -21,29 +21,24 @@
"license": "MPL-2.0",
"cordova": {
"plugins": {
"phonegap-plugin-barcodescanner": {},
"cordova-plugin-device": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-headercolor": {},
"cordova-plugin-theme-detection": {},
"cordova-plugin-nativestorage": {},
"cordova-plugin-androidx": {},
"cordova-plugin-androidx-adapter": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-camera": {
"ANDROID_SUPPORT_V4_VERSION": "27.+"
},
"cordova-plugin-x-socialsharing": {},
"cordova-plugin-velda-devicefeedback": {},
"cordova-plugin-inappbrowser": {},
"ionic-plugin-deeplinks": {
"URL_SCHEME": "helenaexpress",
"DEEPLINK_SCHEME": "https",
"DEEPLINK_HOST": "helena.express",
"ANDROID_PATH_PREFIX": "/track",
"ANDROID_PATH_PREFIX": "",
"ANDROID_2_PATH_PREFIX": "/rates",
"ANDROID_3_PATH_PREFIX": "/das/pickup",
"ANDROID_4_PATH_PREFIX": "/schedule",
"ANDROID_4_PATH_PREFIX": "/shop",
"ANDROID_5_PATH_PREFIX": "/app",
"DEEPLINK_2_SCHEME": "https",
"DEEPLINK_2_HOST": "helena.express",
@ -56,6 +51,13 @@
},
"cordova-plugin-geolocation": {
"GPS_REQUIRED": "false"
},
"phonegap-plugin-barcodescanner-android12": {
"ANDROID_SUPPORT_V4_VERSION": "27.+"
},
"cordova-plugin-x-socialsharing-android12": {
"PHOTO_LIBRARY_ADD_USAGE_DESCRIPTION": "This app requires photo library access to function properly.",
"PHOTO_LIBRARY_USAGE_DESCRIPTION": "This app requires photo library access to function properly."
}
},
"platforms": [
@ -65,27 +67,25 @@
]
},
"dependencies": {
"cordova-plugin-device": "^2.0.3",
"cordova-plugin-device": "^2.1.0",
"cordova-plugin-headercolor": "^1.0.0",
"cordova-plugin-statusbar": "^2.4.3",
"cordova-plugin-statusbar": "^3.0.0",
"cordova-plugin-theme-detection": "^1.3.0"
},
"devDependencies": {
"cordova-android": "^10.1.1",
"cordova-android": "^11.0.0",
"cordova-browser": "^6.0.0",
"cordova-ios": "^6.1.1",
"cordova-ios": "^6.2.0",
"cordova-plugin-add-swift-support": "^2.0.2",
"cordova-plugin-androidx": "^3.0.0",
"cordova-plugin-androidx-adapter": "^1.1.3",
"cordova-plugin-camera": "^5.0.1",
"cordova-plugin-camera": "^6.0.0",
"cordova-plugin-geolocation": "^4.1.0",
"cordova-plugin-inappbrowser": "^5.0.0",
"cordova-plugin-nativestorage": "^2.3.2",
"cordova-plugin-splashscreen": "^6.0.0",
"cordova-plugin-velda-devicefeedback": "0.0.2",
"cordova-plugin-x-socialsharing": "^6.0.3",
"cordova-plugin-x-socialsharing-android12": "^6.0.5",
"cordova-webintent": "github:cordova-misc/cordova-webintent",
"es6-promise-plugin": "^4.2.2",
"ionic-plugin-deeplinks": "^1.0.23"
"ionic-plugin-deeplinks": "^1.0.23",
"phonegap-plugin-barcodescanner-android12": "^8.1.2"
}
}

@ -0,0 +1,29 @@
<vector xmlns:ns0="http://schemas.android.com/apk/res/android" ns0:name="svg1604" ns0:width="280.0dp" ns0:height="280.0dp" ns0:viewportWidth="1000.0" ns0:viewportHeight="999.999946007">
<group ns0:name="layer1">
<group ns0:name="g3063">
<group ns0:name="g2213">
<path ns0:name="path2187" ns0:pathData="M243.774589184 499.999966847C243.774589184 499.999966847 756.225397373 499.999966847 756.225397373 499.999966847C756.225397373 499.999966847 714.803119535 646.34345085 714.803119535 646.34345085C714.803119535 646.34345085 202.352250993 646.34345085 202.352250993 646.34345085C202.352250993 646.34345085 243.774589184 499.999966847 243.774589184 499.999966847" ns0:fillColor="#a5d6a7" ns0:fillAlpha="1.0" ns0:strokeWidth="0.0872651051858" ns0:strokeAlpha="1.0" ns0:strokeLineCap="butt" ns0:strokeLineJoin="miter" ns0:strokeMiterLimit="4"/>
<group ns0:name="g2204">
<path ns0:name="path2185" ns0:pathData="M285.196854952 353.656494914C285.196854952 353.656494914 797.647675212 353.656494914 797.647675212 353.656494914C797.647675212 353.656494914 756.225397373 499.999966847 756.225397373 499.999966847C756.225397373 499.999966847 243.774516761 499.999966847 243.774516761 499.999966847C243.774516761 499.999966847 285.196854952 353.656494914 285.196854952 353.656494914" ns0:fillColor="#d0f2fc" ns0:fillAlpha="1.0" ns0:strokeWidth="0.0872651051858" ns0:strokeAlpha="1.0" ns0:strokeLineCap="butt" ns0:strokeLineJoin="miter" ns0:strokeMiterLimit="4"/>
<group ns0:name="text2151">
<path ns0:name="path1675" ns0:pathData="M293.772156548 522.327920228C293.772156548 522.327920228 343.899808269 522.327920228 343.899808269 522.327920228C343.899808269 522.327920228 341.586221093 533.234818264 341.586221093 533.234818264C341.586221093 533.234818264 303.907860871 533.234818264 303.907860871 533.234818264C303.907860871 533.234818264 299.170518576 555.489292149 299.170518576 555.489292149C299.170518576 555.489292149 331.781032672 555.489292149 331.781032672 555.489292149C331.781032672 555.489292149 329.687793455 565.735158381 329.687793455 565.735158381C329.687793455 565.735158381 296.96710538 565.735158381 296.96710538 565.735158381C296.96710538 565.735158381 291.899259254 589.642205742 291.899259254 589.642205742C291.899259254 589.642205742 330.569155113 589.642205742 330.569155113 589.642205742C330.569155113 589.642205742 328.255573973 600.549097744 328.255573973 600.549097744C328.255573973 600.549097744 277.136386615 600.549097744 277.136386615 600.549097744C277.136386615 600.549097744 293.772156548 522.327920228 293.772156548 522.327920228" ns0:fillColor="#1b5e20" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1677" ns0:pathData="M362.420974554 571.794546179C362.420974554 571.794546179 348.649643587 542.929832706 348.649643587 542.929832706C348.649643587 542.929832706 361.209096994 542.929832706 361.209096994 542.929832706C361.209096994 542.929832706 370.022749779 562.650383528 370.022749779 562.650383528C370.022749779 562.650383528 370.573589498 564.523286857 370.573589498 564.523286857C370.573589498 564.523286857 371.895635002 562.650383528 371.895635002 562.650383528C371.895635002 562.650383528 389.08226276 542.929832706 389.08226276 542.929832706C389.08226276 542.929832706 401.641716167 542.929832706 401.641716167 542.929832706C401.641716167 542.929832706 375.64144166 571.794546179 375.64144166 571.794546179C375.64144166 571.794546179 389.63311455 600.549097744 389.63311455 600.549097744C389.63311455 600.549097744 376.963487163 600.549097744 376.963487163 600.549097744C376.963487163 600.549097744 368.039666435 580.938714866 368.039666435 580.938714866C368.039666435 580.938714866 367.378640666 579.175979481 367.378640666 579.175979481C367.378640666 579.175979481 366.166763106 580.938714866 366.166763106 580.938714866C366.166763106 580.938714866 348.869967404 600.549097744 348.869967404 600.549097744C348.869967404 600.549097744 336.200346052 600.549097744 336.200346052 600.549097744C336.200346052 600.549097744 362.420974554 571.794546179 362.420974554 571.794546179" ns0:fillColor="#1b5e20" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1679" ns0:pathData="M413.093032389 542.929832706C413.093032389 542.929832706 423.779588503 542.929832706 423.779588503 542.929832706C423.779588503 542.929832706 421.576175307 553.285878953 421.576175307 553.285878953C424.440610249 549.833861525 427.745729037 547.079594527 431.491531672 545.023077958C435.237334306 542.966557366 439.203478864 541.93829707 443.389965345 541.93829707C446.548189518 541.93829707 449.375901812 542.562598179 451.873102227 543.811200399C454.370306666 545.059802618 456.463549906 546.78580932 458.152831949 548.989220504C459.91556331 551.119186393 461.237610826 553.653111468 462.118974495 556.590995729C463.073787483 559.455434695 463.551193977 562.540213572 463.551193977 565.84533236C463.551193977 570.472498664 462.706552956 574.952772364 461.017270914 579.28615346C459.327984848 583.619530533 457.014399685 587.43877444 454.076515423 590.743885181C451.212080481 594.04900397 447.870237033 596.693099 444.050985079 598.676170273C440.305186468 600.659241546 436.339043922 601.650777183 432.152557441 601.650777183C427.745731049 601.650777183 424.11009837 600.549077626 421.245659404 598.345678512C418.454669758 596.142279398 416.471598485 593.277836409 415.296445585 589.752349545C415.296445585 589.752349545 408.025180227 624.015461258 408.025180227 624.015461258C408.025180227 624.015461258 395.906410666 624.015461258 395.906410666 624.015461258C395.906410666 624.015461258 413.093032389 542.929832706 413.093032389 542.929832706M430.389828091 591.294724901C433.107368418 591.294724901 435.714740801 590.596986542 438.211945239 589.201509825C440.709145655 587.806033108 442.875834191 586.006579098 444.712010849 583.803147796C446.621636826 581.599736612 448.127303616 579.102536197 449.22901122 576.311546551C450.330714801 573.447107585 450.881566591 570.582670631 450.881566591 567.718235689C450.881566591 565.588269801 450.587779372 563.605196516 450.000204933 561.769015835C449.412626472 559.859393881 448.531260791 558.206834487 447.356107891 556.811337652C446.254400287 555.415840818 444.895628112 554.314135225 443.279791366 553.506220876C441.66395462 552.698302503 439.86450061 552.294343316 437.881429337 552.294343316C436.412487206 552.294343316 434.83337512 552.588130535 433.144093078 553.175704974C431.528256331 553.763283435 429.912419585 554.571201808 428.296582839 555.599460093C426.754195412 556.627718377 425.321977941 557.839595937 423.999930426 559.235092772C422.677878887 560.557140287 421.649618591 562.026082418 420.915149537 563.641919164C420.915149537 563.641919164 417.610032761 578.73530167 417.610032761 578.73530167C418.271056518 582.26076037 419.739996637 585.235371303 422.016853118 587.659134469C424.293713622 590.082861424 427.084705279 591.294724901 430.389828091 591.294724901C430.389828091 591.294724901 430.389828091 591.294724901 430.389828091 591.294724901" ns0:fillColor="#1b5e20" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1681" ns0:pathData="M483.101761226 542.929832706C483.101761226 542.929832706 494.339163094 542.929832706 494.339163094 542.929832706C494.339163094 542.929832706 491.474730164 555.819802016 491.474730164 555.819802016C494.26571981 551.85365947 497.423943983 548.658710637 500.949402683 546.234955518C504.474865406 543.811200399 507.96360347 542.599322839 511.415616873 542.599322839C512.150069833 542.599322839 512.70092967 542.63603744 513.068196385 542.709466642C513.508852067 542.709466642 513.912813265 542.746181243 514.28007998 542.819610445C514.28007998 542.819610445 511.966456593 553.395992579 511.966456593 553.395992579C507.559638248 553.542891218 503.44660511 554.644598822 499.627357179 556.701115391C495.808109249 558.684186664 492.723330372 561.548623618 490.373020548 565.294426252C490.373020548 565.294426252 482.881419303 600.549037391 482.881419303 600.549037391C482.881419303 600.549037391 470.762643706 600.549037391 470.762643706 600.549037391C470.762643706 600.549037391 483.101761226 542.929832706 483.101761226 542.929832706" ns0:fillColor="#1b5e20" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1683" ns0:pathData="M536.626175403 601.650777183C532.953830135 601.650777183 529.685446065 601.026488144 526.821023193 599.777910065C524.030029524 598.529291752 521.642997052 596.839997639 519.659925779 594.710027727C517.676854506 592.506628614 516.171193751 589.935982902 515.142943514 586.998090594C514.114653041 583.98676506 513.600507805 580.755095591 513.600507805 577.303082187C513.600507805 572.602466564 514.481879521 568.122192864 516.244622953 563.862261087C518.080795587 559.60232931 520.577991979 555.856526676 523.736212128 552.624853183C526.967901715 549.393179691 530.750431021 546.822529956 535.083800047 544.912903979C539.490638509 542.929832706 544.227988851 541.93829707 549.295851072 541.93829707C555.245064891 541.93829707 559.982395115 543.297069245 563.507841744 546.014613595C567.10675781 548.658708626 568.906215843 552.588128524 568.906215843 557.802873289C568.906215843 569.848199566 558.146202363 575.870862704 536.626175403 575.870862704C533.467955253 575.870862704 529.905773906 575.760698784 525.93963136 575.540370943C525.93963136 575.540370943 525.93963136 577.523442216 525.93963136 577.523442216C525.93963136 579.653408105 526.196693919 581.636479378 526.710819038 583.472656035C527.224944156 585.308832693 527.996151952 586.924653345 529.024442425 588.320117992C530.052692662 589.715634944 531.374740177 590.817354618 532.990584971 591.625277015C534.606389529 592.359729975 536.516011482 592.726956454 538.719450831 592.726956454C541.877670981 592.726956454 544.92572721 591.955768776 547.863619518 590.41339342C550.801511827 588.797548627 553.115094979 586.630864114 554.804368974 583.913339881C554.804368974 583.913339881 564.389173225 586.887946791 564.389173225 586.887946791C562.993696507 589.091345905 561.267707911 591.111131779 559.211207437 592.947304413C557.228136164 594.710047845 555.024716932 596.252443319 552.600949742 597.574490834C550.177182552 598.823068912 547.606536841 599.814604549 544.889012609 600.549097744C542.171448141 601.283550703 539.417169072 601.650777183 536.626175403 601.650777183C536.626175403 601.650777183 536.626175403 601.650777183 536.626175403 601.650777183M547.753415363 550.862123833C545.109320332 550.862123833 542.68557326 551.339530328 540.482174146 552.294343316C538.278775032 553.175706985 536.33241836 554.387582533 534.64310413 555.92996996C532.953830135 557.47236141 531.521618699 559.27181542 530.346469822 561.328331989C529.171320946 563.311407285 528.21649991 565.404650526 527.482006716 567.60806171C530.860594941 567.828389551 533.98210049 567.938553471 536.846523361 567.938553471C540.739236705 567.938553471 544.007640893 567.71821356 546.651735923 567.277533737C549.295830954 566.763404595 551.425800866 566.102380837 553.041645659 565.294462464C554.730919654 564.413094772 555.906068531 563.384834475 556.567092288 562.209681575C557.301545248 560.961079356 557.668771728 559.602307181 557.668771728 558.13336505C557.668771728 555.636164635 556.787420129 553.799987977 555.024716932 552.624835078C553.2619735 551.449682178 550.83820631 550.862105728 547.753415363 550.862105728C547.753415363 550.862105728 547.753415363 550.862123833 547.753415363 550.862123833" ns0:fillColor="#1b5e20" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1685" ns0:pathData="M594.566100735 601.650777183C590.085833071 601.650777183 585.825893247 600.916304106 581.786281264 599.447357951C577.746709516 597.904982595 574.441590727 595.738298082 571.870924899 592.947304413C571.870924899 592.947304413 578.370978437 585.235367279 578.370978437 585.235367279C583.879536575 590.3032295 589.792035793 592.83716061 596.108476091 592.83716061C599.854290797 592.83716061 602.865612307 591.992503495 605.142440623 590.303189265C607.419309174 588.613915269 608.557743449 586.373787472 608.557743449 583.582805873C608.557743449 581.5997346 607.602942531 580.094069822 605.693340695 579.065811537C603.857168061 578.037553253 600.956010471 576.972570308 596.989867925 575.870862704C594.198874255 575.062944331 591.775107066 574.291748606 589.718566356 573.557275529C587.662065881 572.749357156 585.972791886 571.867993487 584.65074437 570.913184522C583.328696855 569.884922214 582.337161218 568.746491962 581.676137461 567.497893766C581.015113703 566.249291547 580.684601824 564.780349416 580.684601824 563.091067374C580.684601824 559.859393881 581.382340183 556.958232268 582.7778169 554.387582533C584.173333852 551.743487503 586.046241205 549.503351658 588.396538958 547.667175001C590.746836711 545.83099432 593.464381061 544.435499497 596.549172008 543.480690532C599.633922721 542.452428224 602.90230679 541.93829707 606.354324218 541.93829707C610.467365403 541.93829707 614.139730788 542.599320827 617.371420375 543.921368343C620.603069726 545.243419882 623.394063396 547.153045859 625.744401384 549.650246274C625.744401384 549.650246274 619.023999887 556.921505596 619.023999887 556.921505596C616.894029975 554.791539708 614.580426705 553.212427622 612.083190078 552.184169337C609.585993687 551.082461733 606.978633374 550.531607931 604.261109142 550.531607931C601.029419555 550.531607931 598.275160604 551.302803656 595.998332289 552.845195106C593.721463738 554.387582533 592.583029462 556.737890345 592.583029462 559.896118541C592.583029462 561.732295199 593.35421714 563.127790022 594.896592497 564.08260301C596.438967853 564.963966679 599.009613564 565.882055008 602.60852963 566.836867997C605.693320578 567.64478637 608.374150327 568.489427391 610.651018878 569.37079106C612.927847193 570.252158752 614.800734428 571.243694389 616.269680583 572.345397969C617.812096174 573.373660277 618.950530449 574.585537837 619.684983409 575.981030648C620.419476604 577.376527483 620.786723201 578.992364229 620.786723201 580.828540887C620.786723201 583.913319764 620.125699443 586.741024011 618.803651928 589.311653628C617.555033615 591.808890255 615.755575582 593.975594885 613.405277829 595.811767519C611.128409278 597.647940154 608.374130209 599.080151589 605.142440623 600.108401827C601.910791271 601.136652064 598.385344642 601.650777183 594.566100735 601.650777183C594.566100735 601.650777183 594.566100735 601.650777183 594.566100735 601.650777183" ns0:fillColor="#1b5e20" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1687" ns0:pathData="M650.262955067 601.650777183C645.782687403 601.650777183 641.522747579 600.916304106 637.483135596 599.447357951C633.443563848 597.904982595 630.13844506 595.738298082 627.567779231 592.947304413C627.567779231 592.947304413 634.067893122 585.235367279 634.067893122 585.235367279C639.576411024 590.3032295 645.488890125 592.83716061 651.805330424 592.83716061C655.551145129 592.83716061 658.562486757 591.992503495 660.839355308 590.303189265C663.116223859 588.613915269 664.254658134 586.373787472 664.254658134 583.582805873C664.254658134 581.5997346 663.299837098 580.094069822 661.390195027 579.065811537C659.554022393 578.037553253 656.652864803 576.972570308 652.686722257 575.870862704C649.895728588 575.062944331 647.471981515 574.291748606 645.415481041 573.557275529C643.35894033 572.749357156 641.669646218 571.867993487 640.347598702 570.913184522C639.025551187 569.884922214 638.034015551 568.746491962 637.372991793 567.497893766C636.711968035 566.249291547 636.381456156 564.780349416 636.381456156 563.091067374C636.381456156 559.859393881 637.079214633 556.958232268 638.474731585 554.387582533C639.870208302 551.743487503 641.743095537 549.503351658 644.09339329 547.667175001C646.443691043 545.83099432 649.161235393 544.435499497 652.24602634 543.480690532C655.330817288 542.452428224 658.599221475 541.93829707 662.051238903 541.93829707C666.164280088 541.93829707 669.836625356 542.599320827 673.068274707 543.921368343C676.299964293 545.243419882 679.090957963 547.153045859 681.441255716 549.650246274C681.441255716 549.650246274 674.720854219 556.921505596 674.720854219 556.921505596C672.590884307 554.791539708 670.277301155 553.212427622 667.780104763 552.184169337C665.282908371 551.082461733 662.675527942 550.531607931 659.957963474 550.531607931C656.726314123 550.531607931 653.972055172 551.302803656 651.695186621 552.845195106C649.41831807 554.387582533 648.279883794 556.737890345 648.279883794 559.896118541C648.279883794 561.732295199 649.051071473 563.127790022 650.593446829 564.08260301C652.13586242 564.963966679 654.706528249 565.882055008 658.305444315 566.836867997C661.390195027 567.64478637 664.071004659 568.489427391 666.34787321 569.37079106C668.624741761 570.252158752 670.497649113 571.243694389 671.966595268 572.345397969C673.508970624 573.373660277 674.647404899 574.585537837 675.381898094 575.981030648C676.116351054 577.376527483 676.483577533 578.992364229 676.483577533 580.828540887C676.483577533 583.913319764 675.822553776 586.741024011 674.50050626 589.311653628C673.251887947 591.808890255 671.452429914 593.975594885 669.102132161 595.811767519C666.82526361 597.647940154 664.071004659 599.080151589 660.839355308 600.108401827C657.607665721 601.136652064 654.082198974 601.650777183 650.262955067 601.650777183C650.262955067 601.650777183 650.262955067 601.650777183 650.262955067 601.650777183" ns0:fillColor="#1b5e20" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
</group>
<group ns0:name="text2193">
<path ns0:name="path1690" ns0:pathData="M351.208130227 388.268493913C351.208130227 388.268493913 363.657409655 388.268493913 363.657409655 388.268493913C363.657409655 388.268493913 356.716660199 420.989181988 356.716660199 420.989181988C356.716660199 420.989181988 393.293316841 420.989181988 393.293316841 420.989181988C393.293316841 420.989181988 400.234072332 388.268493913 400.234072332 388.268493913C400.234072332 388.268493913 412.573183816 388.268493913 412.573183816 388.268493913C412.573183816 388.268493913 395.937413884 466.489665394 395.937413884 466.489665394C395.937413884 466.489665394 383.598302399 466.489665394 383.598302399 466.489665394C383.598302399 466.489665394 390.979735701 432.006247969 390.979735701 432.006247969C390.979735701 432.006247969 354.403079059 432.006247969 354.403079059 432.006247969C354.403079059 432.006247969 347.021639722 466.489665394 347.021639722 466.489665394C347.021639722 466.489665394 334.572360294 466.489665394 334.572360294 466.489665394C334.572360294 466.489665394 351.208130227 388.268493913 351.208130227 388.268493913" ns0:fillColor="#0d47a1" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1692" ns0:pathData="M439.236644722 467.591368974C435.564287384 467.591368974 432.295891243 466.967069876 429.431456301 465.71847168C426.640462632 464.469869461 424.25343016 462.780585407 422.270358887 460.650619519C420.287287614 458.447204311 418.781622835 455.876554576 417.753364551 452.938670314C416.725106267 449.927340757 416.210977124 446.695669276 416.210977124 443.243655873C416.210977124 438.543040249 417.092340793 434.062766549 418.855068131 429.802834773C420.691248813 425.542902996 423.18845124 421.797100361 426.346675412 418.565426869C429.578348905 415.333753376 433.360874187 412.763105653 437.69425126 410.8534837C442.101077653 408.870408403 446.838415924 407.878870755 451.906266074 407.878870755C457.855483916 407.878870755 462.592822187 409.23764293 466.118280887 411.95518728C469.717188906 414.599282311 471.516642916 418.528702209 471.516642916 423.743446974C471.516642916 435.788773251 460.756643518 441.81143639 439.236644722 441.81143639C436.078416526 441.81143639 432.516231155 441.701272469 428.550088609 441.480944629C428.550088609 441.480944629 428.550088609 443.464015902 428.550088609 443.464015902C428.550088609 445.59398179 428.80715318 447.577053063 429.321282322 449.413229721C429.835411464 451.249406378 430.606607189 452.865243124 431.634869497 454.260739959C432.663127782 455.65623277 433.985175297 456.757938363 435.601012043 457.565856736C437.21684879 458.300329813 439.126472755 458.667566351 441.329883939 458.667566351C444.488108112 458.667566351 447.536162329 457.896370626 450.474046591 456.353979176C453.411930852 454.73814243 455.725516016 452.571453893 457.414802082 449.853913567C457.414802082 449.853913567 466.99964858 452.828520476 466.99964858 452.828520476C465.604151745 455.031931661 463.878145043 457.051727593 461.821628474 458.887908275C459.838557201 460.650639636 457.635144005 462.193029075 455.211388885 463.51507659C452.787633766 464.763674786 450.216984031 465.755210422 447.499439681 466.489683499C444.781899355 467.224152553 442.027634368 467.59138708 439.236644722 467.59138708C439.236644722 467.59138708 439.236644722 467.591368974 439.236644722 467.591368974M450.363878647 416.802697519C447.719783616 416.802697519 445.296028497 417.280104013 443.092613289 418.234917002C440.889202105 419.116280671 438.94285348 420.32815823 437.253567414 421.870549681C435.564285372 423.412937107 434.132067901 425.212391117 432.956915001 427.268911709C431.781762101 429.251982982 430.826949112 431.345224211 430.092476035 433.548635395C433.471044143 433.768963236 436.592545668 433.879127157 439.45698061 433.879127157C443.34967786 433.879127157 446.618076012 433.658785234 449.262175066 433.218101387C451.906270097 432.703972245 454.036235986 432.042948487 455.652072732 431.235030114C457.341354774 430.353662422 458.516507674 429.325402125 459.177531431 428.150249226C459.912000485 426.90165103 460.279235012 425.542880866 460.279235012 424.073938736C460.279235012 421.576734297 459.397871343 419.740555628 457.635144005 418.565402728C455.872412643 417.390249828 453.448657524 416.802673378 450.363878647 416.802673378C450.363878647 416.802673378 450.363878647 416.802697519 450.363878647 416.802697519" ns0:fillColor="#0d47a1" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1694" ns0:pathData="M490.015424359 467.371027051C486.636860274 467.371027051 484.029487892 466.563108678 482.193307211 464.947271932C480.430579873 463.331439209 479.549216203 461.017856057 479.549216203 458.006522476C479.549216203 457.418948038 479.585930804 456.831371588 479.659360006 456.243793126C479.732789208 455.582769369 479.842953129 454.921745611 479.989851768 454.260721853C479.989851768 454.260721853 494.422208504 386.065080717 494.422208504 386.065080717C494.422208504 386.065080717 506.430810121 386.065080717 506.430810121 386.065080717C506.430810121 386.065080717 492.990037303 449.853895461 492.990037303 449.853895461C492.769709463 450.661813834 492.659545542 451.396284899 492.659545542 452.057308657C492.659545542 453.526250788 493.063504729 454.66468104 493.871423102 455.472599413C494.752790794 456.280517786 495.927945706 456.684476973 497.396887837 456.684476973C498.204802186 456.684476973 499.159613163 456.537578334 500.261320767 456.243781056C501.363028371 455.949983778 502.428011315 455.619471899 503.4562696 455.252245419C503.4562696 455.252245419 503.015573683 464.726923973 503.015573683 464.726923973C501.105951729 465.534842346 498.939263193 466.159141444 496.515508074 466.599821267C494.091752954 467.113950409 491.925062406 467.37101498 490.015436429 467.37101498C490.015436429 467.37101498 490.015424359 467.371027051 490.015424359 467.371027051" ns0:fillColor="#0d47a1" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1696" ns0:pathData="M537.504609951 467.591368974C533.832224447 467.591368974 530.56382026 466.967069876 527.699397388 465.71847168C524.908403719 464.469869461 522.521371248 462.780585407 520.538299975 460.650619519C518.555228702 458.447204311 517.049567946 455.876554576 516.021317709 452.938670314C514.993067471 449.927340757 514.478942353 446.695669276 514.478942353 443.243655873C514.478942353 438.543040249 515.360293951 434.062766549 517.122997148 429.802834773C518.959210017 425.542902996 521.456426527 421.797100361 524.614646676 418.565426869C527.846296027 415.333753376 531.628825334 412.763105653 535.962234595 410.8534837C540.369032822 408.870408403 545.106363046 407.878870755 550.174225267 407.878870755C556.123439086 407.878870755 560.86076931 409.23764293 564.386215939 411.95518728C567.985132005 414.599282311 569.784590038 418.528702209 569.784590038 423.743446974C569.784590038 435.788773251 559.024596676 441.81143639 537.504609951 441.81143639C534.346389801 441.81143639 530.784208454 441.701272469 526.818065908 441.480944629C526.818065908 441.480944629 526.818065908 443.464015902 526.818065908 443.464015902C526.818065908 445.59398179 527.075128467 447.577053063 527.589253586 449.413229721C528.103378704 451.249406378 528.874566382 452.865243124 529.90281662 454.260739959C530.931066857 455.65623277 532.253114373 456.757938363 533.868959166 457.565856736C535.484803959 458.300329813 537.394425913 458.667566351 539.597825027 458.667566351C542.756045176 458.667566351 545.804101405 457.896370626 548.741993713 456.353979176C551.679886022 454.73814243 553.993469174 452.571453893 555.682743169 449.853913567C555.682743169 449.853913567 565.267607773 452.828520476 565.267607773 452.828520476C563.87209082 455.031931661 562.146082107 457.051727593 560.089581632 458.887908275C558.106510359 460.650639636 555.903091127 462.193029075 553.479323938 463.51507659C551.055596983 464.763674786 548.484951272 465.755210422 545.767386804 466.489683499C543.049862571 467.224152553 540.29560362 467.59138708 537.504609951 467.59138708C537.504609951 467.59138708 537.504609951 467.591368974 537.504609951 467.591368974M548.631849911 416.802697519C545.98775488 416.802697519 543.56398769 417.280104013 541.360548341 418.234917002C539.157149227 419.116280671 537.210812673 420.32815823 535.521538678 421.870549681C533.832264683 423.412937107 532.400033129 425.212391117 531.224844018 427.268911709C530.049695141 429.251982982 529.094894223 431.345224211 528.360441264 433.548635395C531.738989254 433.768963236 534.860494802 433.879127157 537.724957909 433.879127157C541.617631018 433.879127157 544.886015088 433.658785234 547.530110119 433.218101387C550.174205149 432.703972245 552.304175061 432.042948487 553.920019854 431.235030114C555.609293849 430.353662422 556.784442726 429.325402125 557.445466484 428.150249226C558.179959678 426.90165103 558.547206276 425.542880866 558.547206276 424.073938736C558.547206276 421.576734297 557.66583456 419.740555628 555.903091127 418.565402728C554.140347695 417.390249828 551.716600623 416.802673378 548.631849911 416.802673378C548.631849911 416.802673378 548.631849911 416.802697519 548.631849911 416.802697519" ns0:fillColor="#0d47a1" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1698" ns0:pathData="M587.8426816 408.870406392C587.8426816 408.870406392 598.749573601 408.870406392 598.749573601 408.870406392C598.749573601 408.870406392 596.325866764 420.438330198 596.325866764 420.438330198C599.190289636 416.545632948 602.825920303 413.497576719 607.232758766 411.294161511C611.639556993 409.017301007 616.266723297 407.878870755 621.114257677 407.878870755C623.537984631 407.878870755 625.557770505 408.209382634 627.173615299 408.870406392C628.789460092 409.531434173 630.074793006 410.486247161 631.029614042 411.734845357C632.057864279 412.909998257 632.792337356 414.30549308 633.233033273 415.921329826C633.673688955 417.537166572 633.894016796 419.336620582 633.894016796 421.319691855C633.894016796 422.862083305 633.747158392 424.477920052 633.453441584 426.167202094C633.232952803 427.856484136 632.939175642 429.582490838 632.572110103 431.345222199C632.572110103 431.345222199 625.190664731 466.489665394 625.190664731 466.489665394C625.190664731 466.489665394 613.071889135 466.489665394 613.071889135 466.489665394C613.071889135 466.489665394 619.902494787 434.209661165 619.902494787 434.209661165C620.196211595 432.81416433 620.416539436 431.565564122 620.56347831 430.463860542C620.710336714 429.288703619 620.783765915 428.186996015 620.783765915 427.15873773C620.783765915 421.503313142 618.433468163 418.675600848 613.732872657 418.675600848C612.117027864 418.675600848 610.427733751 419.006112727 608.664990319 419.667136484C606.902287122 420.328160242 605.176278408 421.282971219 603.486964178 422.531569415C601.797690183 423.706722315 600.181865507 425.138941797 598.639490151 426.828227863C597.170543997 428.444064609 595.958660402 430.243518619 595.003839366 432.226589892C595.003839366 432.226589892 587.622393994 466.489665394 587.622393994 466.489665394C587.622393994 466.489665394 575.503618398 466.489665394 575.503618398 466.489665394C575.503618398 466.489665394 587.8426816 408.870406392 587.8426816 408.870406392" ns0:fillColor="#0d47a1" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
<path ns0:name="path1700" ns0:pathData="M664.544291071 467.591368974C661.31264172 467.591368974 658.41148413 466.967069876 655.840818301 465.71847168C653.343621909 464.469869461 651.213651997 462.780585407 649.450908565 460.650619519C647.688205368 458.52065363 646.329443252 456.023451203 645.374622216 453.159012238C644.493230382 450.221127976 644.052534466 447.099626451 644.052534466 443.794507663C644.052534466 439.09389204 644.897191581 434.576895692 646.586505811 430.243518619C648.349209008 425.910137523 650.699506761 422.09088758 653.637399069 418.785768792C656.575291378 415.480650004 659.953859486 412.836554973 663.773103393 410.8534837C667.5923473 408.870408403 671.595224564 407.878870755 675.781735186 407.878870755C679.968205573 407.878870755 683.456937601 409.017301007 686.247931271 411.294161511C689.112354143 413.497576719 691.132140017 416.325291025 692.307288893 419.777304428C692.307288893 419.777304428 694.62091228 408.980580371 694.62091228 408.980580371C694.62091228 408.980580371 706.849831679 408.980580371 706.849831679 408.980580371C706.849831679 408.980580371 697.595519189 452.167476601 697.595519189 452.167476601C697.521888812 452.534703081 697.44845961 452.86521496 697.375231584 453.159012238C697.375231584 453.379340078 697.375231584 453.599682002 697.375231584 453.820038007C697.375231584 455.288980138 698.219868581 456.060173851 699.909142576 456.133619147C699.909142576 456.133619147 697.705723345 466.489665394 697.705723345 466.489665394C696.677473108 466.636564033 695.72267219 466.746727953 694.841320591 466.820157155C694.033398195 466.967055794 693.335639718 467.040505113 692.748045163 467.040505113C687.97398022 467.040505113 685.586947749 465.130881148 685.586947749 461.311633217C685.586947749 460.136476294 685.844010308 458.373744932 686.358135427 456.023439133C683.567141757 459.769241767 680.188573649 462.633678721 676.222431103 464.616749994C672.256288557 466.599821267 668.363595331 467.591356904 664.544351424 467.591356904C664.544351424 467.591356904 664.544291071 467.591368974 664.544291071 467.591368974M669.832521367 457.235328763C671.301427287 457.235328763 672.843802643 456.941539532 674.459647436 456.35396107C676.148921431 455.766386632 677.764766224 454.958468259 679.307181816 453.930205951C680.923026609 452.901947666 682.391972763 451.690072119 683.714020278 450.294579307C685.036067794 448.899082472 686.101032632 447.393415682 686.908914794 445.777578936C686.908914794 445.777578936 689.993725859 430.684202465 689.993725859 430.684202465C689.773237077 428.921471104 689.259111958 427.305634357 688.451350503 425.836692227C687.716857308 424.294300776 686.762036272 422.972253261 685.586887396 421.870549681C684.411738519 420.695392757 683.126425723 419.814027076 681.730949005 419.226452638C680.335432053 418.56542888 678.866485899 418.234917002 677.324110543 418.234917002C674.533116873 418.234917002 671.889021842 418.932663407 669.391825451 420.328156219C666.968058261 421.723653053 664.80135363 423.523107063 662.891711559 425.726518247C661.055538925 427.929933455 659.586612888 430.46385853 658.484933449 433.328293472C657.383213775 436.119283118 656.832353937 438.946997424 656.832353937 441.81143639C656.832353937 444.014847574 657.126151215 446.071366155 657.713745771 447.980992132C658.301300092 449.81716879 659.145937089 451.433005536 660.247656764 452.828502371C661.42280564 454.150549886 662.818302475 455.21553283 664.434147268 456.023451203C666.049951826 456.831369576 667.849409859 457.235328763 669.832521367 457.235328763C669.832521367 457.235328763 669.832521367 457.235328763 669.832521367 457.235328763" ns0:fillColor="#0d47a1" ns0:fillAlpha="1.0" ns0:strokeWidth="0.301863950494" ns0:strokeAlpha="1.0"/>
</group>
</group>
</group>
</group>
</group>
</vector>

@ -9,8 +9,8 @@ set -e
DIR="$(pwd)/www/node_modules"
cd $DIR
rm -rf {buffer-from,concat-stream,csscolorparser,dom7,earcut,geojson-vt,gl-matrix}
rm -rf {grid-index,htm,ieee754,inherits,kdbush,@mapbox,minimist,murmurhash-js,path-to-regexp,pbf}
rm -rf {buffer-from,concat-stream,csscolorparser,dom7,earcut,geojson-vt,gl-matrix,get-stream}
rm -rf {grid-index,htm,ieee754,inherits,kdbush,@mapbox,mapbox-gl,minimist,murmurhash-js,path-to-regexp,pbf}
rm -rf {potpack,protocol-buffers-schema,quickselect,readable-stream,resolve-protobuf-schema,rw}
rm -rf {safe-buffer,skeleton-elements,ssr-window,string_decoder,supercluster,swiper,text-encoding,tinyqueue}
rm -rf {ts-custom-error,typedarray,util-deprecate,vt-pbf}
@ -23,17 +23,19 @@ cd @fortawesome/fontawesome-pro
rm -rf {js,less,metadata,scss,sprites,svgs}
find css -type f -not -name 'all.min.css' -delete
find webfonts -type f -not -name '*.woff2' -delete
find webfonts -type f -name "fa-brands-400.*" -delete
find . -type f -name '*.tgz' -delete # for some reason it's packaging an 18MB tarball sometimes
rm webfonts/fa-thin-100.woff2
rm webfonts/fa-light-300.woff2
rm webfonts/fa-brands-400.woff2
cd $DIR
cd @zxing/library
rm -rf {esm,esm5}
rm -rf {esm,esm5,CONTRIBUTING.md,README.md}
rm -f umd/index.min.js.map
cd $DIR
cd framework7
rm -rf {bundle,cjs,components,core,esm,less,lite,lite-bundle,modules,types}
rm -rf {bundle,cjs,components,core,esm,less,lite,lite-bundle,modules,types,shared}
find . -type f -not -name 'framework7-bundle.min.js' -not -name 'framework7-bundle.min.css' -not -name 'LICENSE' -not -name 'package.json' -delete
cd $DIR
@ -45,6 +47,7 @@ cd $DIR
cd jquery
rm -rf src
rm -rf external
rm {AUTHORS.txt,bower.json,README.md}
find dist -type f -not -name 'jquery.min.js' -delete
cd $DIR

@ -4,13 +4,30 @@ License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/*
Framework7 and FontAwesome both have a .fab class
*/
.fafab {
font-family: "Font Awesome 5 Brands";
:root {
--theme-background-color: #d0f2fc;
--translucent-color: rgba(255,255,255,0.8);
--solid-translucent-color: #e8f9fe; /* Halfway between the background color and white */
--background-image: url(../images/background.svg);
--swiper-bullet-background-color: #000;
}
.dark {
--theme-background-color: black;
--translucent-color: rgba(0,0,0,0.8);
--solid-translucent-color: black;
--background-image: url(../images/background-transparent.svg);
--swiper-bullet-background-color: #fff;
}
.swiper-pagination-bullet {
background-color: var(--swiper-bullet-background-color);
}
.swiper-pagination-bullet-active {
background-color: var(--swiper-pagination-color,var(--swiper-theme-color));
}
.fab {
-webkit-text-size-adjust: 100%;
-webkit-font-smoothing: antialiased;
@ -19,22 +36,13 @@ Framework7 and FontAwesome both have a .fab class
line-height: var(--f7-line-height);
}
.button .fas, .button .far, .button .fal, .button .fad {
.button .fa-solid, .button .fa-regular, .button .fa-duotone {
margin-right: 0.3rem;
}
.page {
background-color: #d0f2fc;
background-image: url(../images/background.svg);
background-repeat: no-repeat;
background-size: contain;
background-position: bottom;
background-attachment: fixed;
}
.theme-dark .page {
background-color: black;
background-image: url(../images/background-transparent.svg);
background-color: var(--theme-background-color);
background-image: var(--background-image);
background-repeat: no-repeat;
background-size: contain;
background-position: bottom;
@ -42,30 +50,37 @@ Framework7 and FontAwesome both have a .fab class
}
.list.transparent ul {
background-color: rgba(255,255,255,0.65);
background-color: var(--translucent-color);
}
.list.transparent ul li.item-divider {
background-color: rgba(255,255,255,0.5);
background-color: var(--translucent-color);
}
.popup {
overflow-y: auto;
}
.theme-dark .list.transparent ul {
background-color: rgba(0,0,0,0.65);
.dark .popup {
background-color: rgba(0,0,0,0.95);
}
.hidden-light {
display: none;
}
.theme-dark .list.transparent ul li.item-divider {
background-color: rgba(0,0,0,0.5);
.dark .hidden-dark {
display: none;
}
.theme-dark .popup {
background-color: rgba(0,0,0,0.95);
.dark .hidden-light {
display: initial;
}
.navbar, .navbar-bg {
background-color: #d0f2fc;
.navbar, .navbar-bg, .subnavbar, .subnavbar *, .subnavbar .searchbar-inner .searchbar-input-wrap * {
background-color: var(--solid-translucent-color);
}
.theme-dark .navbar, .theme-dark .navbar-bg {
background-color: black;
.background-color-transparent {
background-color: transparent;
}
.page-content-fab-pad {
@ -83,13 +98,6 @@ Framework7 and FontAwesome both have a .fab class
-webkit-app-region: no-drag;
}
.maplibregl-map .package-marker {
width: 32px;
height: 32px;
background-image: url(../images/package-icon.png);
background-size: contain;
}
/*
* Material icons are too big and disrupt the flow of text
*/
@ -105,6 +113,14 @@ Framework7 and FontAwesome both have a .fab class
font-size: var(--f7-block-font-size);
}
.searchbar-icon-button {
pointer-events: auto;
}
.searchbar-icon-button:after {
color: var(--f7-navbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)));
}
.card-header.no-hairlines:after {
display: none;
}
@ -137,81 +153,32 @@ Framework7 and FontAwesome both have a .fab class
}
}
.signature-wrapper {
background-color: white;
border-radius: 10px;
position: relative;
width: 400px;
max-width: 100%;
height: 200px;
margin: 0 auto;
border: 1px solid rgba(0,0,0,0.5);
/* fix bug on iOS where image sticks out right side and makes entire page scroll horiz. */
overflow: hidden;
}
.signature-wrapper img {
position: absolute;
bottom: 0;
left: 0;
.pointercursor {
cursor: pointer;
}
.signature-wrapper canvas {
position: absolute;
left: 0;
top: 0;
width: 400px;
max-width: 95vw;
height: 200px;
.card-expandable .card-closed-display-none {
display: none;
}
.signature-wrapper #signatureClearBtn {
display: block;
position: absolute;
right: 0;
top: 0;
padding: 10px;
.card-expandable.card-opened .card-opened-display-none {
display: none;
}
.signature-wrapper #signatureUndoBtn {
display: block;
position: absolute;
right: 40px;
top: 0;
padding: 10px;
.card-expandable.card-opening .card-opened-display-none {
display: none;
}
#noticeslip-pay-popup {
background: var(--f7-page-bg-color);
.card-expandable.card-opened .card-closed-display-none {
display: initial;
}
#noticeslip-pay-popup #noticeslip-stripe-elements {
background-color: white;
padding: 1em;
border-radius: 10px;
.card-expandable.card-opening .card-closed-display-none {
display: initial;
}
.card.pointercursor {
cursor: pointer;
.card-expandable.card-opened .card-content, .card-expandable.card-opening .card-content {
padding-top: calc(var(--f7-navbar-height) * 1.5);
}
.maplibregl-popup-content {
color: var(--f7-text-color);
background-color: var(--f7-page-bg-color);
}
.maplibregl-popup-anchor-top .maplibregl-popup-tip, .maplibregl-popup-anchor-top-left .maplibregl-popup-tip, .maplibregl-popup-anchor-top-right .maplibregl-popup-tip {
border-bottom-color: var(--f7-page-bg-color);
}
.maplibregl-popup-anchor-bottom .maplibregl-popup-tip, .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip, .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip {
border-top-color: var(--f7-page-bg-color);
}
.maplibregl-popup-anchor-left .maplibregl-popup-tip {
border-right-color: var(--f7-page-bg-color);
}
.maplibregl-popup-anchor-right .maplibregl-popup-tip {
border-left-color: var(--f7-page-bg-color);
}
.list.basic-list li {
padding-top: calc(var(--f7-list-item-min-height) / 4);
@ -240,22 +207,22 @@ Framework7 and FontAwesome both have a .fab class
transform: scaleY(calc(1 / var(--f7-device-pixel-ratio)));
}
#trackMapContainer {
margin: 0;
min-height: 200px;
max-height: 500px;
height: 30vh;
.fullwidth-filler-image {
max-height: 40vh;
max-width: 90%;
height: 50rem;
}
@media all and (min-width: 1024px) {
#trackMapContainer {
height: calc(calc(100vh - calc(var(--f7-list-margin-vertical) * 2)) - var(--f7-navbar-height));
min-height: none;
max-height: none;
margin: var(--f7-list-margin-vertical) 0;
}
#trackResultContainer ul {
height: calc(calc(100vh - calc(var(--f7-list-margin-vertical) * 2)) - var(--f7-navbar-height));
overflow-y: auto;
}
dl {
margin-left: 1rem;
margin-right: 1rem;
}
dt {
font-weight: 700;
}
dd {
margin-left: 1rem;
margin-bottom: .5rem;
}

@ -0,0 +1,235 @@
/*
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/*
Homepage
*/
.homepage-card {
height: calc(100% - calc(var(--f7-card-margin-vertical) * 2));
}
#scan-barcode-fab a svg {
height: calc(var(--f7-fab-size) / 2);
width: calc(var(--f7-fab-size) / 2);
fill: var(--f7-fab-text-color);
}
#home-page-tabbar {
background-color: var(--translucent-color);
}
#home-page-tabbar .toolbar-inner {
justify-content: start;
}
#home-page-tabbar-logo {
height: calc(var(--f7-toolbar-height) / 1.5);
margin-left: auto; /* make it go all the way to the right https://stackoverflow.com/a/36606694 */
}
.drop-shadow {
filter: drop-shadow(0 0 0.25rem rgba(0, 0, 0, .75));
}
/*
Receipt viewer
*/
#receiptvieweriframe {
width: 100%;
height: calc(100% - var(--f7-navbar-height));
border: 0;
padding: 0;
margin: 0;
}
/*
Service Area page
*/
:root {
--location-map-height: calc(100vh - calc(var(--f7-navbar-height) + var(--f7-toolbar-height)));
}
.md, .aurora {
--service-area-map-height: calc(100vh - calc(var(--f7-navbar-height) + var(--f7-toolbar-height)));
}
.ios {
--service-area-map-height: calc(100vh - calc(var(--f7-navbar-height) + calc(var(--f7-toolbar-height) * 2)));
}
#mapbox-servicearea {
width: 100%;
height: var(--service-area-map-height);
}
#mapbox-locations {
width: 100%;
height: var(--location-map-height);
}
#locationInfoModal .sheet-modal-inner {
overflow-y: auto;
}
#locationInfoModalContainer {
margin-top: 1em;
}
#mapbox-locations.sheet-open {
height: calc(var(--location-map-height) - var(--f7-sheet-height));
}
/*
Tracking page
*/
html.md #track-page-tabbar .tabbar-label {
margin-top: 0.2em;
}
#track-page-tabbar {
background-color: var(--translucent-color);
}
#trackMapContainer {
margin: 0;
min-height: 200px;
max-height: 500px;
height: 30vh;
}
@media all and (min-width: 1024px) {
#trackMapContainer {
height: calc(calc(100vh - calc(var(--f7-list-margin-vertical) * 2)) - var(--f7-navbar-height));
min-height: none;
max-height: none;
margin: var(--f7-list-margin-vertical) 0;
}
#trackResultContainer ul {
height: calc(calc(100vh - calc(var(--f7-list-margin-vertical) * 2)) - var(--f7-navbar-height));
overflow-y: auto;
}
}
/*
Crypto
*/
#paymentRequestQRCodeContainer img {
padding: 2em;
background-color: white;
max-width: 100%;
}
/*
Map
*/
.maplibregl-popup-content {
color: var(--f7-text-color);
background-color: var(--f7-page-bg-color);
}
.maplibregl-popup-anchor-top .maplibregl-popup-tip, .maplibregl-popup-anchor-top-left .maplibregl-popup-tip, .maplibregl-popup-anchor-top-right .maplibregl-popup-tip {
border-bottom-color: var(--f7-page-bg-color);
}
.maplibregl-popup-anchor-bottom .maplibregl-popup-tip, .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip, .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip {
border-top-color: var(--f7-page-bg-color);
}
.maplibregl-popup-anchor-left .maplibregl-popup-tip {
border-right-color: var(--f7-page-bg-color);
}
.maplibregl-popup-anchor-right .maplibregl-popup-tip {
border-left-color: var(--f7-page-bg-color);
}
.maplibregl-map .package-marker {
width: 32px;
height: 32px;
background-image: url(../images/package-icon.png);
background-size: contain;
}
/*
Request Pickup
*/
.item-inner.no-line-after:after {
height: 0px;
}
/*
Signature box
*/
.signature-wrapper {
background-color: white;
border-radius: 10px;
position: relative;
width: 400px;
max-width: 100%;
height: 200px;
margin: 0 auto;
border: 1px solid rgba(0,0,0,0.5);
/* fix bug on iOS where image sticks out right side and makes entire page scroll horiz. */
overflow: hidden;
}
.signature-wrapper img {
position: absolute;
bottom: 0;
left: 0;
}
.signature-wrapper canvas {
position: absolute;
left: 0;
top: 0;
width: 400px;
max-width: 95vw;
height: 200px;
}
.signature-wrapper #signatureClearBtn {
display: block;
position: absolute;
right: 0;
top: 0;
padding: 10px;
}
.signature-wrapper #signatureUndoBtn {
display: block;
position: absolute;
right: 40px;
top: 0;
padding: 10px;
}
#noticeslip-pay-popup {
background: var(--f7-page-bg-color);
}
#noticeslip-pay-popup #noticeslip-stripe-elements {
background-color: white;
padding: 1em;
border-radius: 10px;
}

@ -4,12 +4,12 @@ License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/*
Created on : Oct 4, 2020, 8:45:20 PM
Created on : Jan 26, 2022, 3:47:46 PM
Author : Skylar Ittner
*/
.widelogo {
max-width: 200px;
width: 50%;
:root {
--f7-theme-color: #0fb9eb;
--f7-theme-color-rgb: 15, 185, 235;
--f7-theme-color-shade: #0d9bc5;
--f7-theme-color-tint: #31c6f2;
}

@ -0,0 +1,9 @@
@font-face {
font-family: 'Roboto Mono';
font-style: normal;
font-weight: 400;
src:
local('Roboto Mono'),
local('RobotoMono-Regular'),
url('Roboto_Mono_400.woff2') format('woff2')
}

@ -5,7 +5,6 @@
src:
local('Roboto'),
local('Roboto-Regular'),
url('Roboto_400.woff') format('woff'),
url('Roboto_400.woff2') format('woff2');
}
@font-face {
@ -15,7 +14,6 @@
src:
local('Roboto Italic'),
local('Roboto-Italic'),
url('Roboto_400i.woff') format('woff'),
url('Roboto_400i.woff2') format('woff2');
}
@font-face {
@ -25,7 +23,6 @@
src:
local('Roboto Medium'),
local('Roboto-Medium'),
url('Roboto_500.woff') format('woff'),
url('Roboto_500.woff2') format('woff2');
}
@font-face {
@ -35,7 +32,6 @@
src:
local('Roboto Medium Italic'),
local('Roboto-MediumItalic'),
url('Roboto_500i.woff') format('woff'),
url('Roboto_500i.woff2') format('woff2');
}
@font-face {
@ -45,7 +41,6 @@
src:
local('Roboto Bold'),
local('Roboto-Bold'),
url('Roboto_700.woff') format('woff'),
url('Roboto_700.woff2') format('woff2');
}
@font-face {
@ -55,6 +50,5 @@
src:
local('Roboto Bold Italic'),
local('Roboto-BoldItalic'),
url('Roboto_700i.woff') format('woff'),
url('Roboto_700i.woff2') format('woff2');
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.8 KiB

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 788 788" style="enable-background:new 0 0 788 788;" xml:space="preserve">
<style type="text/css">
.st0{fill:#0AC18E;}
.st1{fill:#FFFFFF;}
</style>
<circle class="st0" cx="394" cy="394" r="394"/>
<path id="symbol_1_" class="st1" d="M516.9,261.7c-19.8-44.9-65.3-54.5-121-45.2L378,147.1L335.8,158l17.6,69.2
c-11.1,2.8-22.5,5.2-33.8,8.4L302,166.8l-42.2,10.9l17.9,69.4c-9.1,2.6-85.2,22.1-85.2,22.1l11.6,45.2c0,0,31-8.7,30.7-8
c17.2-4.5,25.3,4.1,29.1,12.2l49.2,190.2c0.6,5.5-0.4,14.9-12.2,18.1c0.7,0.4-30.7,7.9-30.7,7.9l4.6,52.7c0,0,75.4-19.3,85.3-21.8
l18.1,70.2l42.2-10.9l-18.1-70.7c11.6-2.7,22.9-5.5,33.9-8.4l18,70.3l42.2-10.9l-18.1-70.1c65-15.8,110.9-56.8,101.5-119.5
c-6-37.8-47.3-68.8-81.6-72.3C519.3,324.7,530,297.4,516.9,261.7L516.9,261.7z M496.6,427.2c8.4,62.1-77.9,69.7-106.4,77.2
l-24.8-92.9C394,404,482.4,372.5,496.6,427.2z M444.6,300.7c8.9,55.2-64.9,61.6-88.7,67.7l-22.6-84.3
C357.2,278.2,426.5,249.6,444.6,300.7z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW 2019 (64-Bit) -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="100%" height="100%" version="1.1" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd"
viewBox="0 0 4091.27 4091.73"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
<g id="Layer_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<g id="_1421344023328">
<path fill="#F7931A" fill-rule="nonzero" d="M4030.06 2540.77c-273.24,1096.01 -1383.32,1763.02 -2479.46,1489.71 -1095.68,-273.24 -1762.69,-1383.39 -1489.33,-2479.31 273.12,-1096.13 1383.2,-1763.19 2479,-1489.95 1096.06,273.24 1763.03,1383.51 1489.76,2479.57l0.02 -0.02z"/>
<path fill="white" fill-rule="nonzero" d="M2947.77 1754.38c40.72,-272.26 -166.56,-418.61 -450,-516.24l91.95 -368.8 -224.5 -55.94 -89.51 359.09c-59.02,-14.72 -119.63,-28.59 -179.87,-42.34l90.16 -361.46 -224.36 -55.94 -92 368.68c-48.84,-11.12 -96.81,-22.11 -143.35,-33.69l0.26 -1.16 -309.59 -77.31 -59.72 239.78c0,0 166.56,38.18 163.05,40.53 90.91,22.69 107.35,82.87 104.62,130.57l-104.74 420.15c6.26,1.59 14.38,3.89 23.34,7.49 -7.49,-1.86 -15.46,-3.89 -23.73,-5.87l-146.81 588.57c-11.11,27.62 -39.31,69.07 -102.87,53.33 2.25,3.26 -163.17,-40.72 -163.17,-40.72l-111.46 256.98 292.15 72.83c54.35,13.63 107.61,27.89 160.06,41.3l-92.9 373.03 224.24 55.94 92 -369.07c61.26,16.63 120.71,31.97 178.91,46.43l-91.69 367.33 224.51 55.94 92.89 -372.33c382.82,72.45 670.67,43.24 791.83,-303.02 97.63,-278.78 -4.86,-439.58 -206.26,-544.44 146.69,-33.83 257.18,-130.31 286.64,-329.61l-0.07 -0.05zm-512.93 719.26c-69.38,278.78 -538.76,128.08 -690.94,90.29l123.28 -494.2c152.17,37.99 640.17,113.17 567.67,403.91zm69.43 -723.3c-63.29,253.58 -453.96,124.75 -580.69,93.16l111.77 -448.21c126.73,31.59 534.85,90.55 468.94,355.05l-0.02 0z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 56 KiB

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW 2019 (64-Bit) -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="100%" height="100%" version="1.1" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd"
viewBox="0 0 784.37 1277.39"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
<g id="Layer_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<g id="_1421394342400">
<g>
<polygon fill="#343434" fill-rule="nonzero" points="392.07,0 383.5,29.11 383.5,873.74 392.07,882.29 784.13,650.54 "/>
<polygon fill="#8C8C8C" fill-rule="nonzero" points="392.07,0 -0,650.54 392.07,882.29 392.07,472.33 "/>
<polygon fill="#3C3C3B" fill-rule="nonzero" points="392.07,956.52 387.24,962.41 387.24,1263.28 392.07,1277.38 784.37,724.89 "/>
<polygon fill="#8C8C8C" fill-rule="nonzero" points="392.07,1277.38 392.07,956.52 -0,724.89 "/>
<polygon fill="#141414" fill-rule="nonzero" points="392.07,882.29 784.13,650.54 392.07,472.33 "/>
<polygon fill="#393939" fill-rule="nonzero" points="0,650.54 392.07,882.29 392.07,472.33 "/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1 @@
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 82.6 82.6"><title>litecoin-ltc-logo</title><circle cx="41.3" cy="41.3" r="36.83" style="fill:#fff"/><path d="M41.3,0A41.3,41.3,0,1,0,82.6,41.3h0A41.18,41.18,0,0,0,41.54,0ZM42,42.7,37.7,57.2h23a1.16,1.16,0,0,1,1.2,1.12v.38l-2,6.9a1.49,1.49,0,0,1-1.5,1.1H23.2l5.9-20.1-6.6,2L24,44l6.6-2,8.3-28.2a1.51,1.51,0,0,1,1.5-1.1h8.9a1.16,1.16,0,0,1,1.2,1.12v.38L43.5,38l6.6-2-1.4,4.8Z" style="fill:#345d9d"/></svg>

After

Width:  |  Height:  |  Size: 489 B

@ -0,0 +1,5 @@
<svg data-name="86977684-12db-4850-8f30-233a7c267d11" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 2000">
<path d="M1000 2000c554.17 0 1000-445.83 1000-1000S1554.17 0 1000 0 0 445.83 0 1000s445.83 1000 1000 1000z" fill="#2775ca"/>
<path d="M1275 1158.33c0-145.83-87.5-195.83-262.5-216.66-125-16.67-150-50-150-108.34s41.67-95.83 125-95.83c75 0 116.67 25 137.5 87.5 4.17 12.5 16.67 20.83 29.17 20.83h66.66c16.67 0 29.17-12.5 29.17-29.16v-4.17c-16.67-91.67-91.67-162.5-187.5-170.83v-100c0-16.67-12.5-29.17-33.33-33.34h-62.5c-16.67 0-29.17 12.5-33.34 33.34v95.83c-125 16.67-204.16 100-204.16 204.17 0 137.5 83.33 191.66 258.33 212.5 116.67 20.83 154.17 45.83 154.17 112.5s-58.34 112.5-137.5 112.5c-108.34 0-145.84-45.84-158.34-108.34-4.16-16.66-16.66-25-29.16-25h-70.84c-16.66 0-29.16 12.5-29.16 29.17v4.17c16.66 104.16 83.33 179.16 220.83 200v100c0 16.66 12.5 29.16 33.33 33.33h62.5c16.67 0 29.17-12.5 33.34-33.33v-100c125-20.84 208.33-108.34 208.33-220.84z" fill="#fff"/>
<path d="M787.5 1595.83c-325-116.66-491.67-479.16-370.83-800 62.5-175 200-308.33 370.83-370.83 16.67-8.33 25-20.83 25-41.67V325c0-16.67-8.33-29.17-25-33.33-4.17 0-12.5 0-16.67 4.16-395.83 125-612.5 545.84-487.5 941.67 75 233.33 254.17 412.5 487.5 487.5 16.67 8.33 33.34 0 37.5-16.67 4.17-4.16 4.17-8.33 4.17-16.66v-58.34c0-12.5-12.5-29.16-25-37.5zM1229.17 295.83c-16.67-8.33-33.34 0-37.5 16.67-4.17 4.17-4.17 8.33-4.17 16.67v58.33c0 16.67 12.5 33.33 25 41.67 325 116.66 491.67 479.16 370.83 800-62.5 175-200 308.33-370.83 370.83-16.67 8.33-25 20.83-25 41.67V1700c0 16.67 8.33 29.17 25 33.33 4.17 0 12.5 0 16.67-4.16 395.83-125 612.5-545.84 487.5-941.67-75-237.5-258.34-416.67-487.5-491.67z" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 65 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 24 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 31 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 76 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

@ -1,486 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--part of the matt icon theme by sixsixfive released under CC0 (https://creativecommons.org/publicdomain/zero/1.0/) on openclipart-->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 128 128"
version="1.1"
id="svg947"
sodipodi:docname="package-icon.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/Apps/Native/HelenaExpress/www/assets/images/package-icon.png"
inkscape:export-xdpi="48"
inkscape:export-ydpi="48">
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
id="namedview949"
showgrid="false"
inkscape:zoom="2.0826504"
inkscape:cx="-88.655531"
inkscape:cy="82.300913"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg947" />
<metadata
id="metadata951">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="0">
<linearGradient
id="D">
<stop
id="T" />
<stop
stop-opacity="0"
offset="1"
id="U" />
</linearGradient>
<linearGradient
id="E">
<stop
stop-color="#fff"
id="V" />
<stop
stop-color="#eddabc"
offset="1"
id="W" />
</linearGradient>
<linearGradient
id="F">
<stop
stop-color="#c29650"
id="X" />
<stop
stop-color="#cca86e"
offset="1"
id="Y" />
</linearGradient>
<linearGradient
id="G">
<stop
stop-color="#a37a39"
id="Z" />
<stop
stop-color="#c39854"
offset="1"
id="a" />
</linearGradient>
<linearGradient
id="H">
<stop
stop-color="#eddabc"
id="b" />
<stop
stop-color="#d8af6e"
offset="1"
id="c" />
</linearGradient>
<radialGradient
gradientTransform="matrix(0.13337487,-0.58579661,0.43334796,0.09866518,-140.53171,197.47031)"
gradientUnits="userSpaceOnUse"
xlink:href="#H"
id="I"
r="110.72"
cy="382.63"
cx="211.15" />
<radialGradient
gradientTransform="matrix(-0.37117278,0.14517548,-0.14805715,-0.37854038,312.3712,40.739168)"
gradientUnits="userSpaceOnUse"
xlink:href="#G"
id="J"
r="119.48"
cy="201.93"
cx="445.36" />
<radialGradient
gradientTransform="matrix(0.50693897,-0.129967,0.0262165,0.10225801,-39.663475,32.07396)"
gradientUnits="userSpaceOnUse"
xlink:href="#E"
id="K"
r="134.88"
cy="162.96"
cx="139.26" />
<radialGradient
gradientTransform="matrix(0.03919011,-0.09570432,0.16373591,0.06704846,-2.2215551,38.191936)"
gradientUnits="userSpaceOnUse"
xlink:href="#F"
id="L"
r="228.86"
cy="280.07"
cx="212.44" />
<filter
id="M"
color-interpolation-filters="sRGB">
<feGaussianBlur
id="d"
stdDeviation="1.84125" />
</filter>
<filter
id="N"
color-interpolation-filters="sRGB">
<feGaussianBlur
id="e"
stdDeviation="1.0013" />
</filter>
<linearGradient
gradientUnits="userSpaceOnUse"
xlink:href="#D"
id="O"
y2="131"
x2="72.26"
y1="135.17"
x1="48.3" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath1158">
<path
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:27.61475563;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="M -12.224537,16.342765 154.84386,1.7278173 V 13.664377 L -12.224537,28.279324 Z"
id="path1160"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</clipPath>
</defs>
<path
filter="url(#N)"
fill="url(#O)"
opacity="0.425"
id="1"
transform="matrix(0.85693077,-0.4706646,0.46259458,0.87188005,2.2336477,0.32237861)"
d="m 55.132413,114.01574 13.842394,0 1.476115,23.73867 -13.842394,0 -1.476115,-23.73867 z" />
<path
filter="url(#M)"
opacity="0.637"
id="2"
transform="matrix(0.48733016,0.40593889,-0.40593889,0.48733016,80.572751,-24.561254)"
d="M 96.675414,14.344852 C 67.689599,27.185172 40.560433,41.085059 11.680603,54.183529 -7.6075114,79.672109 -26.168705,102.04586 -45.214473,127.6876 c 0.151729,2.90509 3.743817,4.43623 5.153803,6.80723 23.015547,25.23201 45.5168287,50.39807 68.676681,75.4598 6.224828,-0.31571 11.138232,-0.98651 17.378335,-1.83048 25.938049,-4.60892 51.976105,-8.89435 77.851984,-13.70442 3.21252,-5.55585 5.23055,-11.94584 8.01672,-17.79829 10.53597,-24.6053 21.42572,-49.1107 31.74136,-73.77824 -2.53772,-4.898976 -7.63337,-7.674135 -10.69436,-12.340782 C 134.45608,65.22696 116.26812,39.698472 97.648395,14.58068 c -2.439828,2.765187 -2.727177,2.05986 -0.972981,-0.235828 z" />
<path
style="fill:#c09652;fill-opacity:1"
fill="#debd87"
id="3"
transform="matrix(0.48733016,0.40593889,-0.40593889,0.48733016,80.572751,-24.960797)"
d="m 97.75,12.875 a 1.6878972,1.6878972 0 0 0 -0.59375,0.15625 L 11.375,51.65625 a 1.6878972,1.6878972 0 0 0 -0.65625,0.5 L -46.5625,127.875 a 1.6878972,1.6878972 0 0 0 0.09375,2.15625 l 73.1875,80.65625 a 1.6878972,1.6878972 0 0 0 1.53125,0.53125 l 94.96875,-16.5625 a 1.6878972,1.6878972 0 0 0 1.28125,-1 L 163.46875,103.5 a 1.6878972,1.6878972 0 0 0 -0.1875,-1.65625 L 99.21875,13.5625 A 1.6878972,1.6878972 0 0 0 97.75,12.875 z" />
<path
style="fill:#c9a05d;fill-opacity:1"
fill="url(#J)"
id="5"
d="m 122.34471,21.870475 -59.789046,18.790616 -0.840425,78.096019 0.428141,0.24578 55.57899,-28.130421 4.62234,-69.001994 z" />
<path
sodipodi:nodetypes="ccccccccccccc"
inkscape:connector-curvature="0"
style="fill:#debd87;fill-opacity:1"
id="6"
d="M 64.175892,4.9132298 5.5735194,18.518957 l -0.3178712,0.454639 -0.1330708,0.348105 0.019362,0.303691 0.9560712,0.116738 56.4576536,20.918961 60.834596,-18.455439 0.027,-0.643479 -0.43445,-0.568068 -0.93518,-0.277419 L 64.812497,4.7434685 Z" />
<path
style="fill:none;stroke:#debc85;stroke-width:1.12781262"
inkscape:connector-curvature="0"
id="8"
d="m 62.562595,40.14536 -0.436863,79.31083" />
<path
stroke-width="0.381"
stroke="#000"
fill="#eddabc"
opacity="0.708"
id="B"
d="M 34.37719,29.724231 91.556048,13.211371" />
<path
fill="url(#K)"
opacity="0.708"
id="C"
d="m 88.344436,11.310762 -58.335387,16.529896 -0.412283,9.157452 1.339921,-0.451926 -1.062423,1.070351 0.0555,0.02377 1.974204,-0.745282 -0.261642,1.228922 1.220994,-0.523283 -0.420212,0.91971 0.03171,0.01586 1.355779,-0.80871 0.08721,1.268565 0.832496,-0.737354 0.475712,0.911781 0.792853,-0.436069 0.261641,1.054495 0.959352,-0.880067 c 0,0 0.119342,0.225878 0.150642,0.285427 l 0.467784,-7.524162 60.182279,-17.663351 -9.696137,-2.696025 z" />
<path
sodipodi:nodetypes="sssssssss"
inkscape:connector-curvature="0"
id="rect953"
d="m 68.741875,42.061661 16,-5.020334 c 1.057181,-0.331713 2,0.892 2,2 v 26 c 0,1.108 -0.942819,1.668287 -2,2 l -16,5.020334 c -1.057181,0.331713 -2,-0.892 -2,-2 v -26 c 0,-1.108 0.942819,-1.668287 2,-2 z"
style="opacity:1;fill:#d9d9d9;fill-opacity:1;stroke:none;stroke-width:4.2442503;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<g
transform="matrix(0.11971145,0,0,0.43376981,68.062795,56.560179)"
style="fill:#000000"
id="barcode"
clip-path="url(#clipPath1158)">
<rect
height="30"
width="2"
id="barcode_bar1"
y="0"
x="0" />
<rect
height="30"
width="1"
id="barcode_bar3"
y="0"
x="3" />
<rect
height="30"
width="1"
id="barcode_bar5"
y="0"
x="6" />
<rect
height="30"
width="1"
id="barcode_bar7"
y="0"
x="11" />
<rect
height="30"
width="2"
id="barcode_bar9"
y="0"
x="13" />
<rect
height="30"
width="1"
id="barcode_bar11"
y="0"
x="17" />
<rect
height="30"
width="1"
id="barcode_bar13"
y="0"
x="22" />
<rect
height="30"
width="1"
id="barcode_bar15"
y="0"
x="25" />
<rect
height="30"
width="2"
id="barcode_bar17"
y="0"
x="27" />
<rect
height="30"
width="1"
id="barcode_bar19"
y="0"
x="33" />
<rect
height="30"
width="4"
id="barcode_bar21"
y="0"
x="35" />
<rect
height="30"
width="1"
id="barcode_bar23"
y="0"
x="41" />
<rect
height="30"
width="1"
id="barcode_bar25"
y="0"
x="44" />
<rect
height="30"
width="4"
id="barcode_bar27"
y="0"
x="47" />
<rect
height="30"
width="1"
id="barcode_bar29"
y="0"
x="52" />
<rect
height="30"
width="1"
id="barcode_bar31"
y="0"
x="55" />
<rect
height="30"
width="2"
id="barcode_bar33"
y="0"
x="57" />
<rect
height="30"
width="1"
id="barcode_bar35"
y="0"
x="61" />
<rect
height="30"
width="1"
id="barcode_bar37"
y="0"
x="66" />
<rect
height="30"
width="1"
id="barcode_bar39"
y="0"
x="69" />
<rect
height="30"
width="4"
id="barcode_bar41"
y="0"
x="72" />
<rect
height="30"
width="2"
id="barcode_bar43"
y="0"
x="77" />
<rect
height="30"
width="2"
id="barcode_bar45"
y="0"
x="80" />
<rect
height="30"
width="2"
id="barcode_bar47"
y="0"
x="84" />
<rect
height="30"
width="1"
id="barcode_bar49"
y="0"
x="88" />
<rect
height="30"
width="2"
id="barcode_bar51"
y="0"
x="90" />
<rect
height="30"
width="1"
id="barcode_bar53"
y="0"
x="94" />
<rect
height="30"
width="1"
id="barcode_bar55"
y="0"
x="99" />
<rect
height="30"
width="2"
id="barcode_bar57"
y="0"
x="102" />
<rect
height="30"
width="1"
id="barcode_bar59"
y="0"
x="105" />
<rect
height="30"
width="1"
id="barcode_bar61"
y="0"
x="110" />
<rect
height="30"
width="2"
id="barcode_bar63"
y="0"
x="113" />
<rect
height="30"
width="1"
id="barcode_bar65"
y="0"
x="116" />
<rect
height="30"
width="2"
id="barcode_bar67"
y="0"
x="121" />
<rect
height="30"
width="3"
id="barcode_bar69"
y="0"
x="124" />
<rect
height="30"
width="1"
id="barcode_bar71"
y="0"
x="129" />
<rect
height="30"
width="2"
id="barcode_bar73"
y="0"
x="132" />
<rect
height="30"
width="3"
id="barcode_bar75"
y="0"
x="137" />
<rect
height="30"
width="1"
id="barcode_bar77"
y="0"
x="141" />
<rect
height="30"
width="2"
id="barcode_bar79"
y="0"
x="143" />
</g>
<path
style="opacity:1;fill:#909090;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 70.571074,49.426148 13.564447,-4.240079 v 1.200393 l -13.564447,4.240079 z"
id="rect1172"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
sodipodi:nodetypes="ccccc"
inkscape:connector-curvature="0"
id="path1175"
d="m 70.571074,52.426148 13.564447,-4.240079 v 1.200393 l -13.564447,4.240079 z"
style="opacity:1;fill:#909090;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="opacity:1;fill:#909090;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 70.571074,55.426148 13.564447,-4.240079 v 1.200393 l -13.564447,4.240079 z"
id="path1177"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
</svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><radialGradient id="K" cx="139.26" cy="162.96" r="134.88" gradientTransform="matrix(.50694 -.12997 .026216 .10226 -39.663 32.074)" gradientUnits="userSpaceOnUse"><stop id="V" stop-color="#fff" offset="0"/><stop id="W" stop-color="#eddabc" offset="1"/></radialGradient><filter id="M" color-interpolation-filters="sRGB"><feGaussianBlur id="d" stdDeviation="1.84125"/></filter><filter id="N" color-interpolation-filters="sRGB"><feGaussianBlur id="e" stdDeviation="1.0013"/></filter><linearGradient id="O" x1="48.3" x2="72.26" y1="135.17" y2="131" gradientUnits="userSpaceOnUse"><stop id="T" offset="0"/><stop id="U" stop-opacity="0" offset="1"/></linearGradient><clipPath id="a"><path d="m-12.225 16.343 167.07-14.615v11.937l-167.07 14.615z"/></clipPath></defs><path transform="matrix(.85693 -.47066 .46259 .87188 2.2336 .32238)" d="m55.132 114.02h13.842l1.4761 23.739h-13.842l-1.4761-23.739z" fill="url(#O)" filter="url(#N)" opacity=".425"/><path transform="matrix(.48733 .40594 -.40594 .48733 80.573 -24.561)" d="m96.675 14.345c-28.986 12.84-56.115 26.74-84.995 39.839-19.288 25.489-37.849 47.862-56.895 73.504 0.15173 2.9051 3.7438 4.4362 5.1538 6.8072 23.016 25.232 45.517 50.398 68.677 75.46 6.2248-0.31571 11.138-0.98651 17.378-1.8305 25.938-4.6089 51.976-8.8944 77.852-13.704 3.2125-5.5558 5.2306-11.946 8.0167-17.798 10.536-24.605 21.426-49.111 31.741-73.778-2.5377-4.899-7.6334-7.6741-10.694-12.341-18.454-25.275-36.642-50.804-55.262-75.922-2.4398 2.7652-2.7272 2.0599-0.97298-0.23583z" filter="url(#M)" opacity=".637"/><g><path transform="matrix(.48733 .40594 -.40594 .48733 80.573 -24.961)" d="m97.75 12.875a1.6879 1.6879 0 0 0-0.59375 0.15625l-85.781 38.625a1.6879 1.6879 0 0 0-0.65625 0.5l-57.281 75.719a1.6879 1.6879 0 0 0 0.09375 2.1562l73.188 80.656a1.6879 1.6879 0 0 0 1.5312 0.53125l94.969-16.562a1.6879 1.6879 0 0 0 1.2812-1l38.969-90.156a1.6879 1.6879 0 0 0-0.1875-1.6562l-64.062-88.281a1.6879 1.6879 0 0 0-1.4688-0.6875z" fill="#c09652"/><path d="m122.34 21.87-59.789 18.791-0.84042 78.096 0.42814 0.24578 55.579-28.13 4.6223-69.002z" fill="#c9a05d"/><path d="m64.176 4.9132-58.602 13.606-0.31787 0.45464-0.13307 0.3481 0.019362 0.30369 0.95607 0.11674 56.458 20.919 60.835-18.455 0.027-0.64348-0.43445-0.56807-0.93518-0.27742-57.235-15.973z" fill="#debd87"/></g><path d="m62.563 40.145-0.43686 79.311" fill="none" stroke="#debc85" stroke-width="1.1278"/><path id="B" d="m34.377 29.724 57.179-16.513" fill="#eddabc" opacity=".708" stroke="#000" stroke-width=".381"/><path id="C" d="m88.344 11.311-58.335 16.53-0.41228 9.1575 1.3399-0.45193-1.0624 1.0704 0.0555 0.02377 1.9742-0.74528-0.26164 1.2289 1.221-0.52328-0.42021 0.91971 0.03171 0.01586 1.3558-0.80871 0.08721 1.2686 0.8325-0.73735 0.47571 0.91178 0.79285-0.43607 0.26164 1.0545 0.95935-0.88007s0.11934 0.22588 0.15064 0.28543l0.46778-7.5242 60.182-17.663-9.6961-2.696z" fill="url(#K)" opacity=".708"/><path d="m68.742 42.062 16-5.0203c1.0572-0.33171 2 0.892 2 2v26c0 1.108-0.94282 1.6683-2 2l-16 5.0203c-1.0572 0.33171-2-0.892-2-2v-26c0-1.108 0.94282-1.6683 2-2z" fill="#d9d9d9"/><g id="barcode" transform="matrix(.11971 0 0 .43377 68.063 56.56)" clip-path="url(#a)"><rect width="2" height="30"/><rect x="3" width="1" height="30"/><rect x="6" width="1" height="30"/><rect x="11" width="1" height="30"/><rect x="13" width="2" height="30"/><rect x="17" width="1" height="30"/><rect x="22" width="1" height="30"/><rect x="25" width="1" height="30"/><rect x="27" width="2" height="30"/><rect x="33" width="1" height="30"/><rect x="35" width="4" height="30"/><rect x="41" width="1" height="30"/><rect x="44" width="1" height="30"/><rect x="47" width="4" height="30"/><rect x="52" width="1" height="30"/><rect x="55" width="1" height="30"/><rect x="57" width="2" height="30"/><rect x="61" width="1" height="30"/><rect x="66" width="1" height="30"/><rect x="69" width="1" height="30"/><rect x="72" width="4" height="30"/><rect x="77" width="2" height="30"/><rect x="80" width="2" height="30"/><rect x="84" width="2" height="30"/><rect x="88" width="1" height="30"/><rect x="90" width="2" height="30"/><rect x="94" width="1" height="30"/><rect x="99" width="1" height="30"/><rect x="102" width="2" height="30"/><rect x="105" width="1" height="30"/><rect x="110" width="1" height="30"/><rect x="113" width="2" height="30"/><rect x="116" width="1" height="30"/><rect x="121" width="2" height="30"/><rect x="124" width="3" height="30"/><rect x="129" width="1" height="30"/><rect x="132" width="2" height="30"/><rect x="137" width="3" height="30"/><rect x="141" width="1" height="30"/><rect x="143" width="2" height="30"/></g><g fill="#909090"><path d="m70.571 49.426 13.564-4.2401v1.2004l-13.564 4.2401z"/><path d="m70.571 52.426 13.564-4.2401v1.2004l-13.564 4.2401z"/><path d="m70.571 55.426 13.564-4.2401v1.2004l-13.564 4.2401z"/></g></svg>

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="81.953mm" height="17.496mm" version="1.1" viewBox="0 0 81.953 17.496" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<defs>
<clipPath id="clipPath965">
<rect x="73.099" y="121.75" width="66.791" height=".70158" fill="#2196f3" style="paint-order:normal"/>
</clipPath>
</defs>
<metadata>
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g transform="translate(-49.738 -106.82)">
<g transform="translate(-7.3027 -5.9991)">
<g stroke-width=".26458px">
<g aria-label="PostalPoint">
<path d="m78.763 117.96q0.71118 0 1.2756 0.15804 0.57572 0.14675 0.97082 0.44026 0.3951 0.28221 0.60958 0.69989 0.21448 0.41768 0.21448 0.93696 0 0.84664-0.32737 1.4336-0.32737 0.58701-0.90309 0.94824-0.57572 0.36124-1.3546 0.51928t-1.6933 0.15804h-0.44026l-0.63216 2.619h-1.7497l1.84-7.7101q0.60958-0.11289 1.1514-0.15804 0.55314-0.0452 1.0386-0.0452zm-0.14675 1.4788q-0.19191 0-0.32737 0.0113-0.13546 0.0113-0.27093 0.0226l-0.54185 2.3029h0.44026q0.47412 0 0.85794-0.0677 0.3951-0.079 0.66603-0.24835 0.28222-0.16933 0.42897-0.42897 0.15804-0.27092 0.15804-0.65474 0-0.50798-0.37252-0.72247-0.36124-0.21448-1.0386-0.21448z"/>
<path d="m84.728 126.03q-0.5983 0-1.0386-0.18062-0.44026-0.18062-0.73376-0.50799-0.28222-0.32737-0.42897-0.76762-0.14675-0.45155-0.14675-0.9934 0-0.67732 0.21448-1.3546 0.22577-0.67732 0.65474-1.2192 0.42897-0.54186 1.0498-0.88052 0.62087-0.34994 1.4224-0.34994 0.58701 0 1.0273 0.18062 0.45154 0.18061 0.73376 0.50798 0.2935 0.32737 0.44026 0.77892 0.14675 0.44025 0.14675 0.98211 0 0.67731-0.21448 1.3546-0.21448 0.67732-0.63216 1.2192-0.41768 0.54185-1.0498 0.8918-0.62087 0.33866-1.4449 0.33866zm0.83536-4.8315q-0.37252 0-0.65474 0.21449-0.28222 0.21448-0.47412 0.54185-0.19191 0.32737-0.2935 0.72247-0.09031 0.38381-0.09031 0.73376 0 0.57572 0.18062 0.8918 0.18062 0.30479 0.65474 0.30479 0.37252 0 0.65474-0.21448t0.47412-0.54185q0.19191-0.32737 0.28222-0.71119 0.1016-0.3951 0.1016-0.74504 0-0.57572-0.18062-0.88052-0.18062-0.31608-0.65474-0.31608z"/>
<path d="m90.718 124.67q0.57572 0 0.7902-0.15804 0.21448-0.16933 0.21448-0.36123 0-0.12418-0.04515-0.21449-0.03387-0.0903-0.12417-0.16932-0.09031-0.079-0.24835-0.15805-0.15804-0.0903-0.40639-0.20319-0.28222-0.12417-0.53056-0.25964-0.24835-0.14675-0.44026-0.33866-0.18062-0.20319-0.2935-0.45154-0.1016-0.25964-0.1016-0.60959 0-0.91437 0.66603-1.4449 0.67732-0.53056 1.9642-0.53056 0.60958 0 1.0837 0.13546 0.47412 0.13546 0.76762 0.29351l-0.57572 1.253q-0.23706-0.12417-0.60958-0.23706t-0.73376-0.11289q-0.15804 0-0.31608 0.0226-0.14675 0.0113-0.28222 0.0677-0.12418 0.0564-0.2032 0.15804-0.07902 0.1016-0.07902 0.27093 0 0.22577 0.16933 0.33866 0.18062 0.11288 0.4967 0.27092 0.44026 0.21449 0.73376 0.39511 0.2935 0.18061 0.46283 0.38381 0.18062 0.20319 0.25964 0.46283 0.07902 0.25964 0.07902 0.60959 0 0.36123-0.15804 0.71118-0.14675 0.34995-0.47412 0.62087-0.32737 0.27093-0.83536 0.44026-0.50799 0.16933-1.2192 0.16933-0.44026 0-0.80149-0.0564-0.34995-0.0564-0.62087-0.13546-0.27093-0.0903-0.46283-0.18062-0.18062-0.0903-0.28222-0.14675l0.57572-1.2869q0.19191 0.11289 0.5983 0.28221 0.40639 0.16933 0.98211 0.16933z"/>
<path d="m96.112 118.45 1.7497-0.27093-0.42897 1.7497h1.8739l-0.33866 1.3772h-1.8626l-0.4967 2.0771q-0.06773 0.25964-0.09031 0.48541-0.01129 0.22577 0.05644 0.3951 0.07902 0.15804 0.25964 0.24835 0.18062 0.0903 0.4967 0.0903 0.27093 0 0.51928-0.0451 0.25964-0.0564 0.51928-0.14675l0.12418 1.2869q-0.33866 0.12417-0.73376 0.21448-0.3951 0.0903-0.93696 0.0903-0.77891 0-1.2079-0.22577-0.42897-0.23706-0.60958-0.63216-0.18062-0.40639-0.15804-0.92567 0.02258-0.51928 0.15804-1.095z"/>
<path d="m104.8 123.31q-0.15804 0.64345-0.0903 1.2982 0.0677 0.64345 0.25963 1.1514l-1.5014 0.21448q-0.0677-0.13546-0.12418-0.25963-0.0564-0.12418-0.11288-0.28222-0.31608 0.25964-0.6999 0.42897-0.38381 0.16933-0.85793 0.16933-0.56443 0-0.97082-0.19191-0.3951-0.20319-0.65474-0.53056-0.24835-0.33866-0.36124-0.77892-0.11289-0.45154-0.11289-0.95953 0-0.77891 0.27093-1.4675 0.28222-0.6886 0.76762-1.1966 0.4967-0.51928 1.1627-0.81278t1.4449-0.2935q0.1016 0 0.34995 0.0113 0.25963 0.0113 0.587 0.0564 0.32737 0.0339 0.68861 0.12417 0.36123 0.0903 0.6886 0.24835zm-1.174-2.0771q-0.14675-0.0226-0.27093-0.0339-0.11288-0.0113-0.28221-0.0113-0.38382 0-0.72247 0.19191-0.32737 0.19191-0.57572 0.50799-0.24835 0.30479-0.3951 0.71118-0.13547 0.40639-0.13547 0.84665 0 0.54185 0.18062 0.85793t0.66603 0.31608q0.25964 0 0.46283-0.1016 0.21448-0.10159 0.45155-0.33865 0.0226-0.28222 0.0677-0.58701 0.0564-0.31608 0.11288-0.57572z"/>
<path d="m108.6 125.98q-0.80149 0-1.2643-0.20319-0.45155-0.21449-0.65474-0.57572-0.19191-0.36124-0.19191-0.82407 0.0113-0.47412 0.13546-1.0047l1.4337-5.9942 1.7497-0.27092-1.5691 6.5022q-0.0451 0.2032-0.0564 0.37253 0 0.16933 0.0677 0.30479 0.0677 0.12418 0.22578 0.2032 0.16932 0.079 0.46283 0.10159z"/>
<path d="m114.04 117.96q0.71119 0 1.2756 0.15804 0.57571 0.14675 0.97082 0.44026 0.3951 0.28221 0.60958 0.69989t0.21448 0.93696q0 0.84664-0.32737 1.4336-0.32736 0.58701-0.90308 0.94824-0.57572 0.36124-1.3546 0.51928-0.77891 0.15804-1.6933 0.15804h-0.44025l-0.63217 2.619h-1.7497l1.84-7.7101q0.60959-0.11289 1.1514-0.15804 0.55314-0.0452 1.0386-0.0452zm-0.14675 1.4788q-0.1919 0-0.32737 0.0113-0.13546 0.0113-0.27092 0.0226l-0.54186 2.3029h0.44026q0.47412 0 0.85793-0.0677 0.3951-0.079 0.66603-0.24835 0.28221-0.16933 0.42897-0.42897 0.15804-0.27092 0.15804-0.65474 0-0.50798-0.37253-0.72247-0.36123-0.21448-1.0386-0.21448z"/>
<path d="m120 126.03q-0.59829 0-1.0386-0.18062t-0.73376-0.50799q-0.28221-0.32737-0.42897-0.76762-0.14675-0.45155-0.14675-0.9934 0-0.67732 0.21448-1.3546 0.22578-0.67732 0.65474-1.2192 0.42897-0.54186 1.0498-0.88052 0.62088-0.34994 1.4224-0.34994 0.58701 0 1.0273 0.18062 0.45155 0.18061 0.73376 0.50798 0.29351 0.32737 0.44026 0.77892 0.14675 0.44025 0.14675 0.98211 0 0.67731-0.21448 1.3546-0.21449 0.67732-0.63217 1.2192-0.41767 0.54185-1.0498 0.8918-0.62087 0.33866-1.4449 0.33866zm0.83536-4.8315q-0.37253 0-0.65474 0.21449-0.28222 0.21448-0.47412 0.54185-0.19191 0.32737-0.29351 0.72247-0.0903 0.38381-0.0903 0.73376 0 0.57572 0.18061 0.8918 0.18062 0.30479 0.65474 0.30479 0.37253 0 0.65474-0.21448 0.28222-0.21448 0.47412-0.54185 0.19191-0.32737 0.28222-0.71119 0.1016-0.3951 0.1016-0.74504 0-0.57572-0.18062-0.88052-0.18062-0.31608-0.65474-0.31608z"/>
<path d="m125.74 125.87h-1.6707l1.4111-5.9378h1.682zm0.81278-6.6603q-0.34995 0-0.63216-0.2032-0.28222-0.21448-0.28222-0.64345 0-0.23706 0.0903-0.44025 0.1016-0.21449 0.25964-0.36124 0.15804-0.15804 0.36124-0.24835 0.21448-0.0903 0.45154-0.0903 0.34995 0 0.63216 0.21449 0.28222 0.20319 0.28222 0.63216 0 0.23706-0.1016 0.45154-0.0903 0.2032-0.24835 0.36124-0.15804 0.14675-0.37252 0.23706-0.2032 0.0903-0.44026 0.0903z"/>
<path d="m128.89 120.2q0.1919-0.0564 0.41767-0.12418 0.23707-0.079 0.51928-0.13546 0.2935-0.0677 0.64345-0.1016 0.36124-0.0451 0.81278-0.0451 1.3321 0 1.8288 0.76762 0.49669 0.76763 0.16932 2.0997l-0.76762 3.206h-1.682l0.74505-3.1382q0.0677-0.2935 0.10159-0.56443 0.0452-0.28221 0-0.48541-0.0451-0.21448-0.21448-0.33866-0.15804-0.13546-0.4967-0.13546-0.32737 0-0.66603 0.0677l-1.095 4.5945h-1.682z"/>
<path d="m135.8 118.45 1.7497-0.27093-0.42896 1.7497h1.8739l-0.33865 1.3772h-1.8626l-0.4967 2.0771q-0.0677 0.25964-0.0903 0.48541-0.0113 0.22577 0.0564 0.3951 0.079 0.15804 0.25964 0.24835 0.18062 0.0903 0.4967 0.0903 0.27092 0 0.51927-0.0451 0.25964-0.0564 0.51928-0.14675l0.12417 1.2869q-0.33865 0.12417-0.73376 0.21448-0.3951 0.0903-0.93695 0.0903-0.77891 0-1.2079-0.22577-0.42897-0.23706-0.60959-0.63216-0.18061-0.40639-0.15804-0.92567 0.0226-0.51928 0.15804-1.095z"/>
</g>
<g clip-path="url(#clipPath965)" fill="#fff" aria-label="PostalPoint">
<path d="m78.763 117.96q0.71118 0 1.2756 0.15804 0.57572 0.14675 0.97082 0.44026 0.3951 0.28221 0.60958 0.69989 0.21448 0.41768 0.21448 0.93696 0 0.84664-0.32737 1.4336-0.32737 0.58701-0.90309 0.94824-0.57572 0.36124-1.3546 0.51928t-1.6933 0.15804h-0.44026l-0.63216 2.619h-1.7497l1.84-7.7101q0.60958-0.11289 1.1514-0.15804 0.55314-0.0452 1.0386-0.0452zm-0.14675 1.4788q-0.19191 0-0.32737 0.0113-0.13546 0.0113-0.27093 0.0226l-0.54185 2.3029h0.44026q0.47412 0 0.85794-0.0677 0.3951-0.079 0.66603-0.24835 0.28222-0.16933 0.42897-0.42897 0.15804-0.27092 0.15804-0.65474 0-0.50798-0.37252-0.72247-0.36124-0.21448-1.0386-0.21448z"/>
<path d="m84.728 126.03q-0.5983 0-1.0386-0.18062-0.44026-0.18062-0.73376-0.50799-0.28222-0.32737-0.42897-0.76762-0.14675-0.45155-0.14675-0.9934 0-0.67732 0.21448-1.3546 0.22577-0.67732 0.65474-1.2192 0.42897-0.54186 1.0498-0.88052 0.62087-0.34994 1.4224-0.34994 0.58701 0 1.0273 0.18062 0.45154 0.18061 0.73376 0.50798 0.2935 0.32737 0.44026 0.77892 0.14675 0.44025 0.14675 0.98211 0 0.67731-0.21448 1.3546-0.21448 0.67732-0.63216 1.2192-0.41768 0.54185-1.0498 0.8918-0.62087 0.33866-1.4449 0.33866zm0.83536-4.8315q-0.37252 0-0.65474 0.21449-0.28222 0.21448-0.47412 0.54185-0.19191 0.32737-0.2935 0.72247-0.09031 0.38381-0.09031 0.73376 0 0.57572 0.18062 0.8918 0.18062 0.30479 0.65474 0.30479 0.37252 0 0.65474-0.21448t0.47412-0.54185q0.19191-0.32737 0.28222-0.71119 0.1016-0.3951 0.1016-0.74504 0-0.57572-0.18062-0.88052-0.18062-0.31608-0.65474-0.31608z"/>
<path d="m90.718 124.67q0.57572 0 0.7902-0.15804 0.21448-0.16933 0.21448-0.36123 0-0.12418-0.04515-0.21449-0.03387-0.0903-0.12417-0.16932-0.09031-0.079-0.24835-0.15805-0.15804-0.0903-0.40639-0.20319-0.28222-0.12417-0.53056-0.25964-0.24835-0.14675-0.44026-0.33866-0.18062-0.20319-0.2935-0.45154-0.1016-0.25964-0.1016-0.60959 0-0.91437 0.66603-1.4449 0.67732-0.53056 1.9642-0.53056 0.60958 0 1.0837 0.13546 0.47412 0.13546 0.76762 0.29351l-0.57572 1.253q-0.23706-0.12417-0.60958-0.23706t-0.73376-0.11289q-0.15804 0-0.31608 0.0226-0.14675 0.0113-0.28222 0.0677-0.12418 0.0564-0.2032 0.15804-0.07902 0.1016-0.07902 0.27093 0 0.22577 0.16933 0.33866 0.18062 0.11288 0.4967 0.27092 0.44026 0.21449 0.73376 0.39511 0.2935 0.18061 0.46283 0.38381 0.18062 0.20319 0.25964 0.46283 0.07902 0.25964 0.07902 0.60959 0 0.36123-0.15804 0.71118-0.14675 0.34995-0.47412 0.62087-0.32737 0.27093-0.83536 0.44026-0.50799 0.16933-1.2192 0.16933-0.44026 0-0.80149-0.0564-0.34995-0.0564-0.62087-0.13546-0.27093-0.0903-0.46283-0.18062-0.18062-0.0903-0.28222-0.14675l0.57572-1.2869q0.19191 0.11289 0.5983 0.28221 0.40639 0.16933 0.98211 0.16933z"/>
<path d="m96.112 118.45 1.7497-0.27093-0.42897 1.7497h1.8739l-0.33866 1.3772h-1.8626l-0.4967 2.0771q-0.06773 0.25964-0.09031 0.48541-0.01129 0.22577 0.05644 0.3951 0.07902 0.15804 0.25964 0.24835 0.18062 0.0903 0.4967 0.0903 0.27093 0 0.51928-0.0451 0.25964-0.0564 0.51928-0.14675l0.12418 1.2869q-0.33866 0.12417-0.73376 0.21448-0.3951 0.0903-0.93696 0.0903-0.77891 0-1.2079-0.22577-0.42897-0.23706-0.60958-0.63216-0.18062-0.40639-0.15804-0.92567 0.02258-0.51928 0.15804-1.095z"/>
<path d="m104.8 123.31q-0.15804 0.64345-0.0903 1.2982 0.0677 0.64345 0.25963 1.1514l-1.5014 0.21448q-0.0677-0.13546-0.12418-0.25963-0.0564-0.12418-0.11288-0.28222-0.31608 0.25964-0.6999 0.42897-0.38381 0.16933-0.85793 0.16933-0.56443 0-0.97082-0.19191-0.3951-0.20319-0.65474-0.53056-0.24835-0.33866-0.36124-0.77892-0.11288-0.45154-0.11288-0.95953 0-0.77891 0.27092-1.4675 0.28222-0.6886 0.76763-1.1966 0.4967-0.51928 1.1627-0.81278t1.4449-0.2935q0.1016 0 0.34995 0.0113 0.25963 0.0113 0.587 0.0564 0.32737 0.0339 0.68861 0.12417 0.36123 0.0903 0.6886 0.24835zm-1.174-2.0771q-0.14675-0.0226-0.27093-0.0339-0.11288-0.0113-0.28221-0.0113-0.38382 0-0.72247 0.19191-0.32737 0.19191-0.57572 0.50799-0.24835 0.30479-0.3951 0.71118-0.13547 0.40639-0.13547 0.84665 0 0.54185 0.18062 0.85793t0.66603 0.31608q0.25964 0 0.46283-0.1016 0.21448-0.10159 0.45155-0.33865 0.0226-0.28222 0.0677-0.58701 0.0564-0.31608 0.11288-0.57572z"/>
<path d="m108.6 125.98q-0.80149 0-1.2643-0.20319-0.45155-0.21449-0.65474-0.57572-0.19191-0.36124-0.19191-0.82407 0.0113-0.47412 0.13546-1.0047l1.4337-5.9942 1.7497-0.27092-1.5691 6.5022q-0.0451 0.2032-0.0564 0.37253 0 0.16933 0.0677 0.30479 0.0677 0.12418 0.22578 0.2032 0.16932 0.079 0.46283 0.10159z"/>
<path d="m114.04 117.96q0.71119 0 1.2756 0.15804 0.57571 0.14675 0.97082 0.44026 0.3951 0.28221 0.60958 0.69989t0.21448 0.93696q0 0.84664-0.32737 1.4336-0.32736 0.58701-0.90308 0.94824-0.57572 0.36124-1.3546 0.51928-0.77891 0.15804-1.6933 0.15804h-0.44025l-0.63217 2.619h-1.7497l1.84-7.7101q0.60959-0.11289 1.1514-0.15804 0.55314-0.0452 1.0386-0.0452zm-0.14675 1.4788q-0.1919 0-0.32737 0.0113-0.13546 0.0113-0.27092 0.0226l-0.54186 2.3029h0.44026q0.47412 0 0.85793-0.0677 0.3951-0.079 0.66603-0.24835 0.28221-0.16933 0.42897-0.42897 0.15804-0.27092 0.15804-0.65474 0-0.50798-0.37253-0.72247-0.36123-0.21448-1.0386-0.21448z"/>
<path d="m120 126.03q-0.59829 0-1.0386-0.18062t-0.73376-0.50799q-0.28221-0.32737-0.42897-0.76762-0.14675-0.45155-0.14675-0.9934 0-0.67732 0.21448-1.3546 0.22578-0.67732 0.65474-1.2192 0.42897-0.54186 1.0498-0.88052 0.62088-0.34994 1.4224-0.34994 0.58701 0 1.0273 0.18062 0.45155 0.18061 0.73376 0.50798 0.29351 0.32737 0.44026 0.77892 0.14675 0.44025 0.14675 0.98211 0 0.67731-0.21448 1.3546-0.21449 0.67732-0.63217 1.2192-0.41767 0.54185-1.0498 0.8918-0.62087 0.33866-1.4449 0.33866zm0.83536-4.8315q-0.37253 0-0.65474 0.21449-0.28222 0.21448-0.47412 0.54185-0.19191 0.32737-0.29351 0.72247-0.0903 0.38381-0.0903 0.73376 0 0.57572 0.18061 0.8918 0.18062 0.30479 0.65474 0.30479 0.37253 0 0.65474-0.21448 0.28222-0.21448 0.47412-0.54185 0.19191-0.32737 0.28222-0.71119 0.1016-0.3951 0.1016-0.74504 0-0.57572-0.18062-0.88052-0.18062-0.31608-0.65474-0.31608z"/>
<path d="m125.74 125.87h-1.6707l1.4111-5.9378h1.682zm0.81278-6.6603q-0.34995 0-0.63216-0.2032-0.28222-0.21448-0.28222-0.64345 0-0.23706 0.0903-0.44025 0.1016-0.21449 0.25964-0.36124 0.15804-0.15804 0.36124-0.24835 0.21448-0.0903 0.45154-0.0903 0.34995 0 0.63216 0.21449 0.28222 0.20319 0.28222 0.63216 0 0.23706-0.1016 0.45154-0.0903 0.2032-0.24835 0.36124-0.15804 0.14675-0.37252 0.23706-0.2032 0.0903-0.44026 0.0903z"/>
<path d="m128.89 120.2q0.1919-0.0564 0.41767-0.12418 0.23707-0.079 0.51928-0.13546 0.2935-0.0677 0.64345-0.1016 0.36124-0.0451 0.81278-0.0451 1.3321 0 1.8288 0.76762 0.49669 0.76763 0.16932 2.0997l-0.76762 3.206h-1.682l0.74505-3.1382q0.0677-0.2935 0.10159-0.56443 0.0452-0.28221 0-0.48541-0.0451-0.21448-0.21448-0.33866-0.15804-0.13546-0.4967-0.13546-0.32737 0-0.66603 0.0677l-1.095 4.5945h-1.682z"/>
<path d="m135.8 118.45 1.7497-0.27093-0.42896 1.7497h1.8739l-0.33865 1.3772h-1.8626l-0.4967 2.0771q-0.0677 0.25964-0.0903 0.48541-0.0113 0.22577 0.0564 0.3951 0.079 0.15804 0.25964 0.24835 0.18062 0.0903 0.4967 0.0903 0.27092 0 0.51927-0.0451 0.25964-0.0564 0.51928-0.14675l0.12417 1.2869q-0.33865 0.12417-0.73376 0.21448-0.3951 0.0903-0.93695 0.0903-0.77891 0-1.2079-0.22577-0.42897-0.23706-0.60959-0.63216-0.18061-0.40639-0.15804-0.92567 0.0226-0.51928 0.15804-1.095z"/>
</g>
</g>
<g transform="translate(1.3993 2.6002)">
<path d="m61.891 114.86 1.25 0.53541v1.5177l-1.25-0.53541z" fill="#00b0ff" style="paint-order:normal"/>
<path d="m64.391 114.86-1.25 0.53541v1.5177l1.25-0.53541z" fill="#00b0ff" style="paint-order:normal"/>
<path d="m64.391 114.86-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#fff" style="paint-order:normal"/>
<path d="m63.141 116.92 1.25 0.53541v1.5177l-1.25-0.53542z" fill="#00b0ff" style="paint-order:normal"/>
<path d="m65.641 116.92-1.25 0.53541v1.5177l1.25-0.53542z" fill="#bdbdbd" style="paint-order:normal"/>
<path d="m65.641 116.92-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#006e9f" style="paint-order:normal"/>
<path d="m60.641 116.92 1.25 0.53541v1.5177l-1.25-0.53541z" fill="#eee" style="paint-order:normal"/>
<path d="m63.141 116.92-1.25 0.53541v1.5177l1.25-0.53541z" fill="#00b0ff" style="paint-order:normal"/>
<path d="m63.141 116.92-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#006e9f" style="paint-order:normal"/>
<path d="m60.641 115.4 1.25 0.53541v1.5177l-1.25-0.53541z" fill="#eee" style="paint-order:normal"/>
<path d="m63.141 115.4-1.25 0.53541v1.5177l1.25-0.53541z" fill="#bdbdbd" style="paint-order:normal"/>
<path d="m63.141 115.4-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#fff" style="paint-order:normal"/>
<path d="m63.141 115.4 1.25 0.53541v1.5177l-1.25-0.53541z" fill="#eee" style="paint-order:normal"/>
<path d="m65.641 115.4-1.25 0.53541v1.5177l1.25-0.53541z" fill="#bdbdbd" style="paint-order:normal"/>
<path d="m65.641 115.4-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#fff" style="paint-order:normal"/>
<path d="m60.641 123.61 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m65.641 123.61-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m65.641 123.61-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m58.141 111.29 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m63.141 111.29-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m63.141 111.29-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m63.141 119.51 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m68.141 119.51-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m68.141 119.51-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m58.141 119.51 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m63.141 119.51-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m63.141 119.51-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m65.641 115.4 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m70.641 115.4-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m70.641 115.4-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m55.641 115.4 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m60.641 115.4-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m60.641 115.4-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m63.141 111.29 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m68.141 111.29-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m68.141 111.29-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m61.891 117.45 1.25 0.53541v1.5177l-1.25-0.53541z" fill="#eee" style="paint-order:normal"/>
<path d="m64.391 117.45-1.25 0.53541v1.5177l1.25-0.53541z" fill="#bdbdbd" style="paint-order:normal"/>
<path d="m64.391 117.45-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#fff" style="paint-order:normal"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="82.453mm" height="18.496mm" version="1.1" viewBox="0 0 82.453 18.496" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<defs>
<clipPath id="clipPath907">
<rect x="73.099" y="121.75" width="66.791" height=".70158" display="none" fill="#2196f3" style="paint-order:normal"/>
<path class="powerclip" d="m69.733 112.11h74.26v18.918h-74.26zm3.3652 9.6352v0.70159h66.791v-0.70159z" fill="#2196f3" style="paint-order:normal"/>
</clipPath>
</defs>
<metadata>
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g transform="translate(-49.238 -106.32)">
<g transform="translate(-27.882 -9.2062)" style="paint-order:normal">
<path d="m82.619 116.03-2.5001 1.0707v3.0355l-2.4996 1.0707v3.0355l2.4996 1.0713v3.035l2.5001 1.0713v3.035l2.5001 1.0713 2.5001-1.0713v-3.035l2.5001-1.0713v-3.035l2.4996-1.0713v-3.0355l-2.4996-1.0707v-3.0355l-2.5001-1.0707-2.5001 1.0707z" fill="#00b0ff" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" style="paint-order:normal"/>
</g>
<g transform="translate(-7.3027 -5.9991)">
<g transform="translate(1.3993 2.6002)">
<path d="m61.891 114.86 1.25 0.53541v1.5177l-1.25-0.53541z" fill="#00b0ff" style="paint-order:normal"/>
<path d="m64.391 114.86-1.25 0.53541v1.5177l1.25-0.53541z" fill="#00b0ff" style="paint-order:normal"/>
<path d="m64.391 114.86-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#fff" style="paint-order:normal"/>
<path d="m63.141 116.92 1.25 0.53541v1.5177l-1.25-0.53542z" fill="#00b0ff" style="paint-order:normal"/>
<path d="m65.641 116.92-1.25 0.53541v1.5177l1.25-0.53542z" fill="#bdbdbd" style="paint-order:normal"/>
<path d="m65.641 116.92-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#006e9f" style="paint-order:normal"/>
<path d="m60.641 116.92 1.25 0.53541v1.5177l-1.25-0.53541z" fill="#eee" style="paint-order:normal"/>
<path d="m63.141 116.92-1.25 0.53541v1.5177l1.25-0.53541z" fill="#00b0ff" style="paint-order:normal"/>
<path d="m63.141 116.92-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#006e9f" style="paint-order:normal"/>
<path d="m60.641 115.4 1.25 0.53541v1.5177l-1.25-0.53541z" fill="#eee" style="paint-order:normal"/>
<path d="m63.141 115.4-1.25 0.53541v1.5177l1.25-0.53541z" fill="#bdbdbd" style="paint-order:normal"/>
<path d="m63.141 115.4-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#fff" style="paint-order:normal"/>
<path d="m63.141 115.4 1.25 0.53541v1.5177l-1.25-0.53541z" fill="#eee" style="paint-order:normal"/>
<path d="m65.641 115.4-1.25 0.53541v1.5177l1.25-0.53541z" fill="#bdbdbd" style="paint-order:normal"/>
<path d="m65.641 115.4-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#fff" style="paint-order:normal"/>
<path d="m60.641 123.61 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m65.641 123.61-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m65.641 123.61-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m58.141 111.29 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m63.141 111.29-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m63.141 111.29-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m63.141 119.51 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m68.141 119.51-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m68.141 119.51-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m58.141 119.51 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m63.141 119.51-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m63.141 119.51-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m65.641 115.4 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m70.641 115.4-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m70.641 115.4-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m55.641 115.4 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m60.641 115.4-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m60.641 115.4-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m63.141 111.29 2.5 1.0708v3.0354l-2.5-1.0708z" fill="#40c4ff" style="paint-order:normal"/>
<path d="m68.141 111.29-2.5 1.0708v3.0354l2.5-1.0708z" fill="#0091ea" style="paint-order:normal"/>
<path d="m68.141 111.29-2.5 1.0708-2.5-1.0708 2.5-1.0708z" fill="#03a9f4" style="paint-order:normal"/>
<path d="m61.891 117.45 1.25 0.53541v1.5177l-1.25-0.53541z" fill="#eee" style="paint-order:normal"/>
<path d="m64.391 117.45-1.25 0.53541v1.5177l1.25-0.53541z" fill="#bdbdbd" style="paint-order:normal"/>
<path d="m64.391 117.45-1.25 0.53541-1.25-0.53541 1.25-0.53541z" fill="#fff" style="paint-order:normal"/>
</g>
<g clip-path="url(#clipPath907)" fill="#fff" stroke-width=".26458px" aria-label="PostalPoint">
<path d="m78.763 117.96q0.71118 0 1.2756 0.15804 0.57572 0.14675 0.97082 0.44026 0.3951 0.28221 0.60958 0.69989 0.21448 0.41768 0.21448 0.93696 0 0.84664-0.32737 1.4336-0.32737 0.58701-0.90309 0.94824-0.57572 0.36124-1.3546 0.51928t-1.6933 0.15804h-0.44026l-0.63216 2.619h-1.7497l1.84-7.7101q0.60958-0.11289 1.1514-0.15804 0.55314-0.0452 1.0386-0.0452zm-0.14675 1.4788q-0.19191 0-0.32737 0.0113-0.13546 0.0113-0.27093 0.0226l-0.54185 2.3029h0.44026q0.47412 0 0.85794-0.0677 0.3951-0.079 0.66603-0.24835 0.28222-0.16933 0.42897-0.42897 0.15804-0.27092 0.15804-0.65474 0-0.50798-0.37252-0.72247-0.36124-0.21448-1.0386-0.21448z"/>
<path d="m84.728 126.03q-0.5983 0-1.0386-0.18062-0.44026-0.18062-0.73376-0.50799-0.28222-0.32737-0.42897-0.76762-0.14675-0.45155-0.14675-0.9934 0-0.67732 0.21448-1.3546 0.22577-0.67732 0.65474-1.2192 0.42897-0.54186 1.0498-0.88052 0.62087-0.34994 1.4224-0.34994 0.58701 0 1.0273 0.18062 0.45154 0.18061 0.73376 0.50798 0.2935 0.32737 0.44026 0.77892 0.14675 0.44025 0.14675 0.98211 0 0.67731-0.21448 1.3546-0.21448 0.67732-0.63216 1.2192-0.41768 0.54185-1.0498 0.8918-0.62087 0.33866-1.4449 0.33866zm0.83536-4.8315q-0.37252 0-0.65474 0.21449-0.28222 0.21448-0.47412 0.54185-0.19191 0.32737-0.2935 0.72247-0.09031 0.38381-0.09031 0.73376 0 0.57572 0.18062 0.8918 0.18062 0.30479 0.65474 0.30479 0.37252 0 0.65474-0.21448t0.47412-0.54185q0.19191-0.32737 0.28222-0.71119 0.1016-0.3951 0.1016-0.74504 0-0.57572-0.18062-0.88052-0.18062-0.31608-0.65474-0.31608z"/>
<path d="m90.718 124.67q0.57572 0 0.7902-0.15804 0.21448-0.16933 0.21448-0.36123 0-0.12418-0.04515-0.21449-0.03387-0.0903-0.12417-0.16932-0.09031-0.079-0.24835-0.15805-0.15804-0.0903-0.40639-0.20319-0.28222-0.12417-0.53056-0.25964-0.24835-0.14675-0.44026-0.33866-0.18062-0.20319-0.2935-0.45154-0.1016-0.25964-0.1016-0.60959 0-0.91437 0.66603-1.4449 0.67732-0.53056 1.9642-0.53056 0.60958 0 1.0837 0.13546 0.47412 0.13546 0.76762 0.29351l-0.57572 1.253q-0.23706-0.12417-0.60958-0.23706t-0.73376-0.11289q-0.15804 0-0.31608 0.0226-0.14675 0.0113-0.28222 0.0677-0.12418 0.0564-0.2032 0.15804-0.07902 0.1016-0.07902 0.27093 0 0.22577 0.16933 0.33866 0.18062 0.11288 0.4967 0.27092 0.44026 0.21449 0.73376 0.39511 0.2935 0.18061 0.46283 0.38381 0.18062 0.20319 0.25964 0.46283 0.07902 0.25964 0.07902 0.60959 0 0.36123-0.15804 0.71118-0.14675 0.34995-0.47412 0.62087-0.32737 0.27093-0.83536 0.44026-0.50799 0.16933-1.2192 0.16933-0.44026 0-0.80149-0.0564-0.34995-0.0564-0.62087-0.13546-0.27093-0.0903-0.46283-0.18062-0.18062-0.0903-0.28222-0.14675l0.57572-1.2869q0.19191 0.11289 0.5983 0.28221 0.40639 0.16933 0.98211 0.16933z"/>
<path d="m96.112 118.45 1.7497-0.27093-0.42897 1.7497h1.8739l-0.33866 1.3772h-1.8626l-0.4967 2.0771q-0.06773 0.25964-0.09031 0.48541-0.01129 0.22577 0.05644 0.3951 0.07902 0.15804 0.25964 0.24835 0.18062 0.0903 0.4967 0.0903 0.27093 0 0.51928-0.0451 0.25964-0.0564 0.51928-0.14675l0.12418 1.2869q-0.33866 0.12417-0.73376 0.21448-0.3951 0.0903-0.93696 0.0903-0.77891 0-1.2079-0.22577-0.42897-0.23706-0.60958-0.63216-0.18062-0.40639-0.15804-0.92567 0.02258-0.51928 0.15804-1.095z"/>
<path d="m104.8 123.31q-0.15804 0.64345-0.0903 1.2982 0.0677 0.64345 0.25963 1.1514l-1.5014 0.21448q-0.0677-0.13546-0.12418-0.25963-0.0564-0.12418-0.11288-0.28222-0.31608 0.25964-0.6999 0.42897-0.38381 0.16933-0.85793 0.16933-0.56443 0-0.97082-0.19191-0.3951-0.20319-0.65474-0.53056-0.24835-0.33866-0.36124-0.77892-0.11288-0.45154-0.11288-0.95953 0-0.77891 0.27092-1.4675 0.28222-0.6886 0.76763-1.1966 0.4967-0.51928 1.1627-0.81278t1.4449-0.2935q0.1016 0 0.34995 0.0113 0.25963 0.0113 0.587 0.0564 0.32737 0.0339 0.68861 0.12417 0.36123 0.0903 0.6886 0.24835zm-1.174-2.0771q-0.14675-0.0226-0.27093-0.0339-0.11288-0.0113-0.28221-0.0113-0.38382 0-0.72247 0.19191-0.32737 0.19191-0.57572 0.50799-0.24835 0.30479-0.3951 0.71118-0.13547 0.40639-0.13547 0.84665 0 0.54185 0.18062 0.85793t0.66603 0.31608q0.25964 0 0.46283-0.1016 0.21448-0.10159 0.45155-0.33865 0.0226-0.28222 0.0677-0.58701 0.0564-0.31608 0.11288-0.57572z"/>
<path d="m108.6 125.98q-0.80149 0-1.2643-0.20319-0.45155-0.21449-0.65474-0.57572-0.19191-0.36124-0.19191-0.82407 0.0113-0.47412 0.13546-1.0047l1.4337-5.9942 1.7497-0.27092-1.5691 6.5022q-0.0451 0.2032-0.0564 0.37253 0 0.16933 0.0677 0.30479 0.0677 0.12418 0.22578 0.2032 0.16932 0.079 0.46283 0.10159z"/>
<path d="m114.04 117.96q0.71119 0 1.2756 0.15804 0.57571 0.14675 0.97082 0.44026 0.3951 0.28221 0.60958 0.69989t0.21448 0.93696q0 0.84664-0.32737 1.4336-0.32736 0.58701-0.90308 0.94824-0.57572 0.36124-1.3546 0.51928-0.77891 0.15804-1.6933 0.15804h-0.44025l-0.63217 2.619h-1.7497l1.84-7.7101q0.60959-0.11289 1.1514-0.15804 0.55314-0.0452 1.0386-0.0452zm-0.14675 1.4788q-0.1919 0-0.32737 0.0113-0.13546 0.0113-0.27092 0.0226l-0.54186 2.3029h0.44026q0.47412 0 0.85793-0.0677 0.3951-0.079 0.66603-0.24835 0.28221-0.16933 0.42897-0.42897 0.15804-0.27092 0.15804-0.65474 0-0.50798-0.37253-0.72247-0.36123-0.21448-1.0386-0.21448z"/>
<path d="m120 126.03q-0.59829 0-1.0386-0.18062t-0.73376-0.50799q-0.28221-0.32737-0.42897-0.76762-0.14675-0.45155-0.14675-0.9934 0-0.67732 0.21448-1.3546 0.22578-0.67732 0.65474-1.2192 0.42897-0.54186 1.0498-0.88052 0.62088-0.34994 1.4224-0.34994 0.58701 0 1.0273 0.18062 0.45155 0.18061 0.73376 0.50798 0.29351 0.32737 0.44026 0.77892 0.14675 0.44025 0.14675 0.98211 0 0.67731-0.21448 1.3546-0.21449 0.67732-0.63217 1.2192-0.41767 0.54185-1.0498 0.8918-0.62087 0.33866-1.4449 0.33866zm0.83536-4.8315q-0.37253 0-0.65474 0.21449-0.28222 0.21448-0.47412 0.54185-0.19191 0.32737-0.29351 0.72247-0.0903 0.38381-0.0903 0.73376 0 0.57572 0.18061 0.8918 0.18062 0.30479 0.65474 0.30479 0.37253 0 0.65474-0.21448 0.28222-0.21448 0.47412-0.54185 0.19191-0.32737 0.28222-0.71119 0.1016-0.3951 0.1016-0.74504 0-0.57572-0.18062-0.88052-0.18062-0.31608-0.65474-0.31608z"/>
<path d="m125.74 125.87h-1.6707l1.4111-5.9378h1.682zm0.81278-6.6603q-0.34995 0-0.63216-0.2032-0.28222-0.21448-0.28222-0.64345 0-0.23706 0.0903-0.44025 0.1016-0.21449 0.25964-0.36124 0.15804-0.15804 0.36124-0.24835 0.21448-0.0903 0.45154-0.0903 0.34995 0 0.63216 0.21449 0.28222 0.20319 0.28222 0.63216 0 0.23706-0.1016 0.45154-0.0903 0.2032-0.24835 0.36124-0.15804 0.14675-0.37252 0.23706-0.2032 0.0903-0.44026 0.0903z"/>
<path d="m128.89 120.2q0.1919-0.0564 0.41767-0.12418 0.23707-0.079 0.51928-0.13546 0.2935-0.0677 0.64345-0.1016 0.36124-0.0451 0.81278-0.0451 1.3321 0 1.8288 0.76762 0.49669 0.76763 0.16932 2.0997l-0.76762 3.206h-1.682l0.74505-3.1382q0.0677-0.2935 0.10159-0.56443 0.0452-0.28221 0-0.48541-0.0451-0.21448-0.21448-0.33866-0.15804-0.13546-0.4967-0.13546-0.32737 0-0.66603 0.0677l-1.095 4.5945h-1.682z"/>
<path d="m135.8 118.45 1.7497-0.27093-0.42896 1.7497h1.8739l-0.33865 1.3772h-1.8626l-0.4967 2.0771q-0.0677 0.25964-0.0903 0.48541-0.0113 0.22577 0.0564 0.3951 0.079 0.15804 0.25964 0.24835 0.18062 0.0903 0.4967 0.0903 0.27092 0 0.51927-0.0451 0.25964-0.0564 0.51928-0.14675l0.12417 1.2869q-0.33865 0.12417-0.73376 0.21448-0.3951 0.0903-0.93695 0.0903-0.77891 0-1.2079-0.22577-0.42897-0.23706-0.60959-0.63216-0.18061-0.40639-0.15804-0.92567 0.0226-0.51928 0.15804-1.095z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 135.47 135.47" xmlns="http://www.w3.org/2000/svg"><path d="m7.7889 1.5896c-3.4235 0-6.2013 2.7778-6.2013 6.2013v28.939c0 3.4365 2.7778 6.2008 6.2013 6.2008 3.4235 0 6.2008-2.7643 6.2008-6.2008v-22.738h22.738c3.4365 0 6.2008-2.7773 6.2008-6.2008 0-3.4235-2.7643-6.2013-6.2008-6.2013zm90.954 0c-3.4365 0-6.2008 2.7778-6.2008 6.2013 0 3.4235 2.7643 6.2008 6.2008 6.2008h22.738v22.738c0 3.4365 2.7643 6.2008 6.2008 6.2008s6.2013-2.7643 6.2013-6.2008v-28.939c0-3.4235-2.7648-6.2013-6.2013-6.2013zm-63.538 24.747c-4.8995-1e-6 -8.871 4.1383-8.871 8.8715v17.742c0 5.0641 3.9715 8.8715 8.871 8.8715h17.743c4.8977 0 8.871-3.8075 8.871-8.8715v-17.742c0-4.7332-3.9733-8.8715-8.871-8.8715zm47.314 0c-4.8977-1e-6 -8.871 4.1383-8.871 8.8715v17.742c0 5.0641 3.9733 8.8715 8.871 8.8715h17.743c4.8978 0 8.871-3.8075 8.871-8.8715v-17.742c0-4.7332-3.9734-8.8715-8.871-8.8715zm-47.314 8.8715h17.743v17.742h-17.743zm47.314 0h17.743v17.742h-17.743zm-39.922 4.4355c-1.6338 0-2.9568 1.4968-2.9568 2.9568v2.9573c0 1.7927 1.323 2.9568 2.9568 2.9568h2.9573c1.6265 0 2.9568-1.1641 2.9568-2.9568v-2.9573c0-1.4601-1.3305-2.9568-2.9568-2.9568zm47.314 0c-1.6265 0-2.9573 1.4968-2.9573 2.9568v2.9568c0 1.7927 1.331 2.9573 2.9573 2.9573h2.9568c1.6264 0 2.9568-1.1646 2.9568-2.9573v-2.9568c0-1.4601-1.3305-2.9568-2.9568-2.9568zm-16.264 34.005v35.486h11.828v-17.742h5.9142v5.9142h17.742v-23.658h-5.9142v5.9142h-11.828v-5.9142zm-38.442 0.0011c-4.8995 0-8.8715 4.1402-8.8715 8.8715v17.742c0 5.0641 3.972 8.8715 8.8715 8.8715h17.742c4.8977 0 8.8715-3.8074 8.8715-8.8715v-17.742c0-4.7313-3.9739-8.8715-8.8715-8.8715zm0 8.8715h17.742v17.742h-17.742zm7.3923 4.4355c-1.6338 0-2.9568 1.4968-2.9568 2.9568v2.9573c0 1.7927 1.323 2.9568 2.9568 2.9568h2.9573c1.6265 0 2.9568-1.1641 2.9568-2.9568v-2.9573c0-1.46-1.3305-2.9568-2.9568-2.9568zm-34.809 5.583c-3.4235 0-6.2013 2.7648-6.2013 6.2013v28.939c0 3.4365 2.7778 6.2008 6.2013 6.2008h28.939c3.4365-1e-5 6.2008-2.7643 6.2008-6.2008 0-3.4365-2.7643-6.2013-6.2008-6.2013h-22.738v-22.737c0-3.4365-2.7773-6.2013-6.2008-6.2013zm119.89 0c-3.4365 0-6.2013 2.7648-6.2013 6.2013v22.737h-22.737c-3.4365 0-6.2013 2.7648-6.2013 6.2013 0 3.4365 2.7648 6.2008 6.2013 6.2008h28.939c3.4365-1e-5 6.2008-2.7643 6.2008-6.2008v-28.939c0-3.4365-2.7643-6.2013-6.2008-6.2013zm-36.288 10.681v5.9142h5.9142v-5.9142zm11.828 0v5.9142h5.9142v-5.9142z" stroke-width=".26458"/></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.8 KiB

@ -1,73 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="400"
height="200"
viewBox="0 0 105.83333 52.916669"
version="1.1"
id="svg8"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
sodipodi:docname="signature-line.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="-82.70874"
inkscape:cy="65.096693"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
fit-margin-top="50"
fit-margin-left="30"
fit-margin-right="30"
fit-margin-bottom="50"
inkscape:window-width="1920"
inkscape:window-height="1015"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-25.421766,-74.750004)">
<g
aria-label="X"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333311px;line-height:100%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;letter-spacing:3.34962487px;word-spacing:0px;fill:#000000;fill-opacity:0.39303482;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text817"
transform="matrix(4.2854051,0,0,4.2854051,-189.27268,-367.87464)">
<path
d="m 53.529892,112.54762 q -0.0635,-0.127 -0.1524,-0.2794 -0.0889,-0.15663 -0.194734,-0.32173 -0.105833,-0.16933 -0.220133,-0.33443 -0.1143,-0.16934 -0.220133,-0.3175 -0.105834,0.14816 -0.220134,0.3175 -0.1143,0.1651 -0.220133,0.33443 -0.1016,0.1651 -0.194733,0.32173 -0.0889,0.1524 -0.1524,0.2794 h -0.452967 q 0.1905,-0.37253 0.440267,-0.75776 0.254,-0.38524 0.537633,-0.79164 l -0.9398,-1.3843 h 0.474133 l 0.7239,1.0922 0.715434,-1.0922 h 0.4699 l -0.922867,1.36737 q 0.287867,0.41063 0.541867,0.8001 0.254,0.38947 0.448733,0.76623 z"
style="stroke-width:0.26458332px;fill:#000000;fill-opacity:0.39303482"
id="path819"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8"?>
<svg width="400" height="200" version="1.1" viewBox="0 0 105.83 52.917" xmlns="http://www.w3.org/2000/svg"><g transform="translate(-25.422 -74.75)"><g transform="matrix(4.2854 0 0 4.2854 -189.27 -367.87)" fill-opacity=".39303" aria-label="X"><path d="m53.53 112.55q-0.0635-0.127-0.1524-0.2794-0.0889-0.15663-0.19473-0.32173-0.10583-0.16933-0.22013-0.33443-0.1143-0.16934-0.22013-0.3175-0.10583 0.14816-0.22013 0.3175-0.1143 0.1651-0.22013 0.33443-0.1016 0.1651-0.19473 0.32173-0.0889 0.1524-0.1524 0.2794h-0.45297q0.1905-0.37253 0.44027-0.75776 0.254-0.38524 0.53763-0.79164l-0.9398-1.3843h0.47413l0.7239 1.0922 0.71543-1.0922h0.4699l-0.92287 1.3674q0.28787 0.41063 0.54187 0.8001t0.44873 0.76623z" fill-opacity=".39303" stroke-width=".26458px"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 800 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 414 KiB

@ -31,12 +31,20 @@ class MapControl {
* @param {number} latitude
* @param {number} longitude
* @param {boolean} accurate set true to zoom to street level (z13), false to zoom to general area (z10).
* @param {boolean} countrylevel set true to override accurate and set zoom level to 3
* @returns {undefined}
*/
clearMarkersAndCenterMapOnNewMarker(classname, latitude, longitude, accurate) {
clearMarkersAndCenterMapOnNewMarker(classname, latitude, longitude, accurate, countrylevel) {
this.mapObj.removeMarkers();
this.mapObj.addMarker(latitude, longitude, classname);
this.mapObj.animateMapIn(latitude, longitude, (accurate ? 13 : 10));
var zoomlevel = 10;
if (accurate) {
zoomlevel = 13;
}
if (countrylevel) {
zoomlevel = 3;
}
this.mapObj.animateMapIn(latitude, longitude, zoomlevel);
}
loadMarkersFromGeoJson(geojson, iconname, name) {

@ -6,9 +6,9 @@
function checkAccountStatus(callback) {
if (inStorage("phonenumber")) {
if (inStorage("accountnumber")) {
apirequest(SETTINGS.apis.authorstartverify, {
phone: getStorage("phonenumber"),
accountnumber: getStorage("accountnumber"),
accountkey: (inStorage("accountkey") ? getStorage("accountkey") : "")
}, function (resp) {
if (resp.status == "OK") {
@ -27,12 +27,14 @@ function checkAccountStatus(callback) {
router.back();
// Server is saying something's wrong, let's clear the account number in case
// the user wants to try a different one.
removeFromStorage("phonenumber");
removeFromStorage("accountnumber");
app.dialog.alert(resp.msg, "Error");
sendErrorReport("Account", "Couldn't check account status", resp.msg);
}
}, function (err) {
}, function (xhr, status, error) {
router.back();
app.dialog.alert("Something went wrong. Try again later.", "Error");
sendErrorReport("Account", "Couldn't check account status", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
});
} else {
callback(false);
@ -40,12 +42,12 @@ function checkAccountStatus(callback) {
}
function checkIfAccountGoodWithPaymentMethod(successcb, errorcb) {
if (!inStorage("phonenumber") || !inStorage("accountkey")) {
if (!inStorage("accountnumber") || !inStorage("accountkey")) {
successcb(false);
return;
}
apirequest(SETTINGS.apis.getaccountinfo, {
phone: getStorage("phonenumber"),
accountnumber: getStorage("accountnumber"),
accountkey: getStorage("accountkey")
}, function (success) {
if (success.status == "OK") {
@ -79,55 +81,57 @@ function verifyCode(code) {
app.dialog.preloader("Verifying...");
apirequest(SETTINGS.apis.verifyauthcode, {
code: code,
phone: getStorage("phonenumber")
accountnumber: getStorage("accountnumber")
}, function (resp) {
app.dialog.close();
if (resp.status == "OK") {
setStorage("accountkey", resp.authkey);
app.dialog.alert("This device has been successfully linked to your Helena Express account.", "Account verified!");
sendActionReport("Account", "Device linked OK");
displayAccountInfo();
} else if (resp.status == "ERROR") {
app.dialog.alert(resp.msg, "Error");
sendErrorReport("Account", "Device linking", resp.msg);
}
}, function (error) {
}, function (xhr, status, error) {
app.dialog.close();
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Account", "Couldn't verify account code", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
});
}
function displayAccountInfo() {
$("#loyaltyBalanceBox").addClass("display-none");
$("#loyaltyErrorMessage").html("");
if (inStorage("accountkey") && inStorage("phonenumber")) {
if (inStorage("accountkey") && inStorage("accountnumber")) {
} else {
$("#loyaltyErrorMessage").text("Error: No account connected.");
$("#accountErrorMessage").text("Error: No account connected.");
return;
}
apirequest(SETTINGS.apis.getaccountinfo, {
phone: getStorage("phonenumber"),
accountnumber: getStorage("accountnumber"),
accountkey: getStorage("accountkey")
}, function (success) {
$("#hasaccountbox").css("display", "");
$("#loadingaccountbox").css("display", "none");
if (success.status == "OK") {
$("#loyaltyCreditBalanceHeading").text(success.credits + " points");
$("#loyaltyBalanceBox").removeClass("display-none")
$("#accountnumberspan").text(success.phone);
$("#accountnumberspan").text(success.accountnumber);
if (success.payments_setup === false) {
$("#addPaymentMethodBox").css("display", "");
} else {
$("#addPaymentMethodBox").css("display", "none");
}
$("#accountupdateform input#name").val(success.name);
$("#accountupdateform input#phone").val(success.phone);
$("#accountupdateform input#email").val(success.email);
$("#accountupdateform input#streetaddress").val(success.streetaddress);
$("#accountupdateform input#zipcode").val(success.zipcode);
} else {
$("#loyaltyBalanceBox").addClass("display-none");
$("#loyaltyErrorMessage").text("Error: " + success.msg);
$("#accountErrorMessage").text("Error: " + success.msg);
}
}, function (error) {
$("#loyaltyErrorMessage").text("Error: Couldn't get your account info. Try again later.");
}, function (xhr, status, error) {
$("#accountErrorMessage").text("Error: Couldn't get your account info. Try again later.");
sendErrorReport("Account", "Couldn't display account info", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}, "GET");
}
@ -164,14 +168,17 @@ $("body").on("click", "#setupAccountBtn", function () {
if (resp.status == "ERROR") {
app.dialog.alert(resp.msg, "Error");
sendErrorReport("Account", "Couldn't register account", resp.msg);
return;
} else {
setStorage("phonenumber", resp.phone);
setStorage("accountnumber", resp.accountnumber);
sendActionReport("Account", "Account created");
router.refreshPage();
}
}, function (error) {
}, function (xhr, status, error) {
app.dialog.close();
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Account", "Couldn't register account", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
});
});
@ -194,9 +201,10 @@ $("body").on("click", "#updateAccountBtn", function () {
}
app.dialog.preloader("Updating Account...");
apirequest(SETTINGS.apis.accountregister, {
phone: getStorage("phonenumber"),
accountnumber: getStorage("accountnumber"),
accountkey: getStorage("accountkey"),
name: $("#accountupdateform input#name").val(),
phone: $("#accountupdateform input#phone").val(),
email: $("#accountupdateform input#email").val(),
address: $("#accountupdateform input#streetaddress").val(),
zipcode: $("#accountupdateform input#zipcode").val()
@ -205,27 +213,26 @@ $("body").on("click", "#updateAccountBtn", function () {
if (resp.status == "ERROR") {
app.dialog.alert(resp.msg, "Error");
sendErrorReport("Account", "Couldn't update account", resp.msg);
return;
} else {
app.popup.close("#accountUpdatePopup", true);
setStorage("phonenumber", resp.phone);
setStorage("accountnumber", resp.accountnumber);
sendActionReport("Account", "Account updated");
router.refreshPage();
app.dialog.alert("Account details updated.", "Account Updated");
}
}, function (error) {
}, function (xhr, status, error) {
app.dialog.close();
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Account", "Couldn't update account", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
});
});
$("body").on("click", "#connectExistingAccountBtn", function () {
app.dialog.prompt("Enter your phone number or account number:", "Connect Your Account", function (val) {
var phone = val.replace(/\D/g, '');
if (phone.length < 10) {
app.dialog.alert("Please enter a full 10-digit phone number.", "Oops!");
return;
}
setStorage("phonenumber", phone);
app.dialog.prompt("Enter your account number:", "Connect Your Account", function (val) {
var accountnumber = val.replace(/\D/g, '');
setStorage("accountnumber", accountnumber);
router.refreshPage();
}, function (cancel) {
// shrug
@ -234,6 +241,7 @@ $("body").on("click", "#connectExistingAccountBtn", function () {
$("body").on("popup:open", "#accountUpdatePopup", function () {
app.input.checkEmptyState("#accountupdateform input#name");
app.input.checkEmptyState("#accountupdateform input#phone");
app.input.checkEmptyState("#accountupdateform input#email");
app.input.checkEmptyState("#accountupdateform input#streetaddress");
app.input.checkEmptyState("#accountupdateform input#zipcode");
@ -267,7 +275,7 @@ function openCheckoutWindowToSaveCard(onaccountpage) {
onaccountpage = true;
}
openBrowser(SETTINGS.apis.redirecttopaymentsetup
+ "?phone=" + getStorage("phonenumber")
+ "?accountnumber=" + getStorage("accountnumber")
+ "&accountkey=" + getStorage("accountkey"),
"location=yes,hidenavigationbuttons=yes,hideurlbar=yes,zoom=no,hardwareback=no,fullscreen=no,presentationstyle=pagesheet,toolbarposition=top,lefttoright=yes,toolbarcolor=#D0F2FC",
function () {
@ -278,9 +286,59 @@ function openCheckoutWindowToSaveCard(onaccountpage) {
// on get message from browser
// only message we should get is "kill me"
if (params.data.msg == "kill me") {
initAccountPage();
closeBrowser();
}
initAccountPage();
}
);
// refresh a bit while user adds card
setTimeout(initAccountPage, 1000 * 10);
setTimeout(initAccountPage, 1000 * 20);
setTimeout(initAccountPage, 1000 * 30);
setTimeout(initAccountPage, 1000 * 40);
setTimeout(initAccountPage, 1000 * 50);
setTimeout(initAccountPage, 1000 * 60);
setTimeout(initAccountPage, 1000 * 90);
setTimeout(initAccountPage, 1000 * 120);
}
function loadReceiptHTMLIntoPopup(receiptid) {
app.dialog.preloader("Loading...");
apirequest(SETTINGS.apis.getreceipt, {
accountnumber: getStorage("accountnumber"),
accountkey: getStorage("accountkey"),
receiptid: receiptid
}, function (success) {
if (success.status == "OK") {
$('#receiptvieweriframe').attr("src", "data:text/html;base64," + btoa(success.receipt.html));
app.popup.open("#receiptViewerPopup");
app.dialog.close();
} else {
app.dialog.close();
app.dialog.alert(success.msg, "Error");
sendErrorReport("Receipts", "Loading receipt", success.msg);
}
}, function (xhr, status, error) {
app.dialog.close();
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Receipts", "Couldn't load receipt", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}, "POST");
}
function receiptiframeloadevent() {
$("#receiptvieweriframe").contents().find("a").each(function () {
$(this).attr("data-href", $(this).attr("href"));
$(this).attr("href", "#");
$(this).on("click", function (evt) {
var href = evt.target.getAttribute("data-href");
window.parent.openReceiptIframeLink(href);
});
});
}
function openReceiptIframeLink(href) {
if (handleDeepLink(href)) {
app.popup.close();
}
}

@ -35,19 +35,22 @@ function captureAndSendPickupCode() {
function sendPickupCode(code) {
app.dialog.preloader("Loading...");
apirequest(SETTINGS.apis.dropandsendpickup, {
phone: getStorage("phonenumber"),
accountnumber: getStorage("accountnumber"),
accountkey: getStorage("accountkey"),
locationnumber: code
}, function (resp) {
app.dialog.close();
if (resp.status == "OK") {
app.dialog.alert("Thank you for using Helena Express! You'll get an emailed receipt after we pick up and process your package(s).", "Pickup Requested!");
sendActionReport("Pickup", "Drop and Send", "Pickup requested");
} else if (resp.status == "ERROR") {
app.dialog.alert(resp.msg, "Error");
sendErrorReport("Pickup", "Drop and Send", resp.msg);
}
}, function (error) {
}, function (xhr, status, error) {
app.dialog.close();
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Pickup", "Drop and Send", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
});
}
@ -75,7 +78,7 @@ $("body").on("popup:open", "#dasLocationMapPopup", function () {
dropboxMap.reloadMap();
dropboxMap.mapObj.on('load', function () {
dropboxMap.mapObj.jumpTo({center: [-112.005, 46.589], zoom: 8});
dropboxMap.loadIcon("./assets/images/dropbox-icon.png", "dropbox", function () {
dropboxMap.loadIcon("./assets/images/DAS_marker.png", "dropbox", function () {
apirequest(SETTINGS.apis.dropandsendlocations, {}, function (data) {
dropboxMap.loadMarkersFromGeoJson(data, "dropbox", "dropbox");
dropboxMap.mapObj.on('click', 'marker-layer-dropbox', function (e) {
@ -133,13 +136,17 @@ $("body").on("popup:open", "#dasLocationMapPopup", function () {
});
}
} else {
// Fall back to something
showWebGLErrorMessage();
}
trackPageView("/dropandsend/locations_popup", $("#dasLocationMapPopup .navbar .navbar-inner .title").first().text());
});
$("body").on("popup:open", "#dasHowItWorksPopup", function () {
// Put user's account number in the instructions
if (inStorage("phonenumber") && inStorage("accountkey")) {
$("#dasHowItWorksAccountNumber").text(" (yours is " + getStorage("phonenumber") + ")");
if (inStorage("accountnumber") && inStorage("accountkey")) {
$("#dasHowItWorksAccountNumber").text(" (" + getStorage("accountnumber") + ")");
}
trackPageView("/dropandsend/howitworks_popup", $("#dasHowItWorksPopup .navbar .navbar-inner .title").first().text());
});

@ -0,0 +1,64 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
function openGenericBarcodeScanner() {
scanBarcode(function (result) {
var code = "";
var action = "";
if (result.startsWith("https://helena.express/track#")) {
// tracking code from receipt
code = result.split("#")[1];
action = "track";
} else if (result.startsWith("https://helena.express/dropandsend#")) {
code = result.split("#")[1];
action = "pickupcode";
} else if (result.startsWith("https://helena.express/das/pickup#")) {
code = result.split("#")[1];
action = "pickupcode";
} else if (result.startsWith("http") && result.includes("#")) {
if (trackingcoderegex.test(result.split("#")[1])) {
code = result.split("#")[1];
action = "track";
}
} else if (paymentRequestRegex.test(result)) {
code = encodeURIComponent(result);
action = "sendcrypto";
} else if (walletPubKeyRegex.test(result)) {
code = result;
action = "cryptowallet";
} else if (trackingcoderegex.test(result)) {
code = result;
action = "track";
} else if (result.startsWith("https://helena.express/")) {
action = "hlnexurl";
}
switch (action) {
case "track":
openTrackingInfoPage(code);
break;
case "pickupcode":
sendPickupCode(code);
break;
case "cryptowallet":
router.navigate("/crypto/" + code);
break;
case "sendcrypto":
router.navigate("/crypto?paymenturi=" + code);
//app.dialog.alert("Not implemented.");
break;
case "hlnexurl":
handleDeepLink(result);
break;
default:
app.dialog.alert("This app can't understand what's in that barcode.", "Error");
return;
}
}, function () {
app.dialog.alert("Something went wrong and we can't scan right now.", "Error");
});
}

@ -0,0 +1,128 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/**
* Open a location on the map.
* @param {type} e
* @returns {undefined}
*/
var openMapLocationInfo = function (e) {
var coordinates = e.geometry.coordinates.slice();
showLocationDetails(e);
locationMap.mapObj.resize();
locationMap.mapObj.easeTo({
center: [coordinates[0], coordinates[1]],
zoom: 15,
bearing: 0,
pitch: 0
});
};
var showLocationDetails = function (e) {
var coordinates = e.geometry.coordinates.slice();
var name = e.properties.name;
var info = e.properties.info;
var hours = e.properties.hours;
var geolink = "geo:" + (Math.round(coordinates[1] * 1000000) / 1000000) + "," + (Math.round(coordinates[0] * 1000000) / 1000000);
var typeinfo = "";
if (e.properties.branding == "DAS") {
typeinfo = "<b>Drop and Send&#8480; Drop Box</b><br />Use this app to send packages from this box, no postage necessary. Just put your package inside and scan the QR code with this app.";
} else if (e.properties.branding == "PP") {
typeinfo = "<b>PostalPoint&trade; Kiosk</b><br />Purchase postage, send USPS packages, and get free boxes here.";
}
$("#locationInfoName").text(name);
$("#locationInfoModalContainer").html(
"<div class='row'><div class='col-50'>"
+ "<a class=\"button button-small\" href=\"" + geolink + "\"><i class=\"fas fa-location-circle\"></i>&nbsp; Directions</a>"
+ "</div>"
+ "<div class='col-50'>"
+ (e.properties.branding == "DAS" ? "<a class=\"button button-small sheet-close\" href=\"\" onclick=\"router.navigate('/das');\"><i class=\"fas fa-info-circle\"></i>&nbsp; More Info</a>" : "")
+ (e.properties.branding == "PP" ? "<a class=\"button button-small sheet-close\" href=\"\" onclick=\"router.navigate('/kiosk');\"><i class=\"fas fa-info-circle\"></i>&nbsp; More info</a>" : "")
+ "</div></div>"
+ typeinfo + "<br />"
+ (hours == "" ? "" : "<b>Hours:</b> " + hours)
+ "<br /><b>Info:</b> " + info
);
app.sheet.open("#locationInfoModal");
};
function loadLocationMap() {
if (MapControl.supported()) {
if (locationMap == null) {
app.preloader.show();
var mapboxel = document.getElementById("mapbox-locations");
locationMap = new MapControl(mapboxel, true);
locationMap.reloadMap();
var locationMapLoaded = false;
locationMap.mapObj.on('load', function () {
locationMapLoaded = true;
});
apirequest(SETTINGS.apis.locations, {}, function (resp) {
var loadWhenMapReady = function () {
if (locationMapLoaded) {
setupLocationMap(resp);
} else {
setTimeout(function () {
loadWhenMapReady();
}, 100);
}
}
loadWhenMapReady();
}, function (xhr) {
app.preloader.hide();
try {
var error = $.parseJSON(xhr.responseText);
if (error && typeof error.msg != 'undefined') {
app.dialog.alert(error.msg, "Error");
sendErrorReport("Location Map", "Couldn't get locations GeoJSON", error.msg);
} else {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Location Map", "Couldn't get locations GeoJSON", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
} catch (ex) {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Location Map", "Couldn't get locations GeoJSON", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
});
}
} else {
showWebGLErrorMessage();
app.preloader.hide();
}
}
function setupLocationMap(geojson) {
app.preloader.hide();
geojson.features.forEach((marker) => {
const el = document.createElement('div');
el.className = 'marker';
el.style.backgroundImage = "url(./assets/images/" + marker.properties.branding + "_marker.png)";
el.style.width = "32px";
el.style.height = "32px";
el.style.cursor = "pointer";
el.addEventListener('click', () => {
openMapLocationInfo(marker);
});
new maplibregl.Marker({element: el})
.setLngLat(marker.geometry.coordinates)
.addTo(locationMap.mapObj);
});
locationMap.mapObj.jumpTo({center: [-112.005, 46.589], zoom: 9});
}
$("body").on("sheet:open", "#locationInfoModal", function () {
$("#mapbox-locations").addClass("sheet-open");
locationMap.mapObj.resize();
});
$("body").on("sheet:close", "#locationInfoModal", function () {
$("#mapbox-locations").removeClass("sheet-open");
locationMap.mapObj.resize();
locationMap.mapObj.easeTo({center: [-112.005, 46.589], zoom: 9});
});

@ -14,7 +14,8 @@ var app = new Framework7({
id: "com.netsyms.helenaexpress.app",
theme: "auto",
card: {
swipeToClose: false
swipeToClose: false,
hideNavbarOnOpen: false,
},
popup: {
backdrop: true
@ -22,6 +23,15 @@ var app = new Framework7({
popover: {
backdrop: true
},
sheet: {
backdrop: false
},
touch: {
tapHold: true
},
statusbar: {
enabled: false
},
init: false,
initOnDeviceReady: false,
routes: routes
@ -96,24 +106,25 @@ $(document).keyup(function (e) {
router.on("routeChange", function (newRoute) {
console.log("Info", "Navigating to ", newRoute.path);
trackPageView(newRoute.path, $("#view-main .page-current .navbar .navbar-inner .title").first().text());
});
function setAppTheme(theme) {
if (theme == "light") {
$("body").removeClass("theme-dark");
$("body").removeClass("dark");
if (platform_type == "cordova" && typeof StatusBar !== 'undefined') {
StatusBar.backgroundColorByHexString("#e8f9fe");
StatusBar.styleDefault();
if (device.platform == "Android") {
StatusBar.backgroundColorByHexString("#9ebfc9");
} else {
StatusBar.backgroundColorByHexString("#d0f2fc");
}
}
} else if (theme == "dark") {
$("body").addClass("theme-dark");
$("body").addClass("dark");
if (platform_type == "cordova" && typeof StatusBar !== 'undefined') {
StatusBar.styleLightContent();
StatusBar.backgroundColorByHexString("#000000");
if (cordova.platformId == "ios") {
StatusBar.backgroundColorByHexString("#121212");
} else {
StatusBar.backgroundColorByName("black");
}
}
}
}
@ -165,10 +176,91 @@ function setAnimations(enabled) {
applyColorTheme();
setAnimations();
var setup = (inStorage("phonenumber") && inStorage("accountkey")) || inStorage("setupskipped");
// Migrate from old to new account number storage key
if (inStorage("phonenumber") && !inStorage("accountnumber")) {
setStorage("accountnumber", getStorage("phonenumber"));
removeFromStorage("phonenumber");
}
var setup = (inStorage("accountnumber") && inStorage("accountkey")) || inStorage("setupskipped");
app.init();
if (getStorage("analytics") !== "false") {
try {
var _paq = window._paq = window._paq || [];
_paq.push(['enableLinkTracking']);
(function () {
var u = "https://analytics.netsyms.net/";
_paq.push(['setTrackerUrl', u + 'matomo.php']);
_paq.push(['setSiteId', '40']);
var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
g.async = true;
g.src = u + 'matomo.js';
s.parentNode.insertBefore(g, s);
})();
} catch (ex) {
// skip
}
} else {
console.log("Analytics code not loaded at user request.");
}
document.title = SETTINGS.branding.apptitle;
/**
* Open the page set in the startpage URL parameter.
* @returns {Boolean} true if navigated to a set page, false if app should open something else.
*/
function openStartpageURLArg() {
try {
var urlParams = new URLSearchParams(window.location.search);
if (urlParams.has("startpage")) {
var startpage = urlParams.get("startpage");
if (startpage == "") {
return false;
}
router.navigate("/" + startpage);
return true;
}
} catch (ex) {
}
return false;
}
/**
* Get the cached dynamic page content if available, else return null (and try to fetch it for next time)
* @param {string} page the page ID
* @returns {string|null}
*/
function getDynamicPageContent(page) {
if (inStorage("dynamiccontent_" + page)) {
return getStorage("dynamiccontent_" + page);
}
apirequest(SETTINGS.apis.dynamicappcontent, {page: page}, function (resp) {
if (resp.status == "OK") {
setStorage("dynamiccontent_" + resp.page, resp.content);
}
});
return null;
}
// update dynamic page text cache
setTimeout(function () {
dynamicPages.forEach(function (pageid) {
// Only update if it's been over eight hours since last update
if (!inStorage("dynamiccontent-lastupdated_" + pageid) || getStorage("dynamiccontent-lastupdated_" + pageid) < time() - 60 * 60 * 8) {
apirequest(SETTINGS.apis.dynamicappcontent, {page: pageid}, function (resp) {
if (resp.status == "OK") {
setStorage("dynamiccontent_" + resp.page, resp.content);
setStorage("dynamiccontent-lastupdated_" + resp.page, time());
}
});
}
});
}, 500);
if (setup) {
router.navigate("/home");
} else {
@ -177,4 +269,5 @@ if (setup) {
pushState: false
});
}
document.title = SETTINGS.branding.apptitle;
openStartpageURLArg();

@ -5,4 +5,13 @@
*/
var dropboxMap = null;
var dropboxMap = null;
var serviceAreaMap = null;
var locationMap = null;
function showWebGLErrorMessage() {
app.dialog.alert("Well, this is awkward. Your device doesn't support displaying the map. If your \n\
device is less than 5 years old, that's not normal. Some hints for a tech expert: WebGL 3D support \n\
not detected in system embedded browser. Check the system webview is up to date and \n\
working. WebGL is often broken in the official Android Emulator.", "Sorry!");
}

@ -7,7 +7,7 @@
function maplibreMap(containerEl, interactive) {
var theme = "liberty";
if ($("body").hasClass("theme-dark")) {
if ($("body").hasClass("dark")) {
theme = "libertydark";
}

@ -0,0 +1,51 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
function requestPickup() {
if (isNaN($("#pickupRequestForm #packagecount").val()) || $("#pickupRequestForm #packagecount").val() == "") {
app.dialog.alert("Tell us how many packages you're sending so we'll know if we miss any.", "Whoops!");
return;
}
if ($("#pickupRequestForm #streetaddress").val() == "") {
app.dialog.alert("We need an address to get the packages from. Don't have one? Find your location on fixphrase.com and use that.", "Whoops!");
return;
}
if (($("#pickupRequestForm #packagelocation").val() == "" || $("#pickupRequestForm #packagelocation").val() == "OTHER") && $("#pickupRequestForm #instructions").val() == "") {
app.dialog.alert("Give us some instructions so we know how to find your packages.", "Whoops!");
return;
}
var instructions = "";
instructions = $("#pickupRequestForm #packagelocation").val();
instructions += " " + $("#pickupRequestForm #instructions").val();
setStorage("lastpickupaddress", $("#pickupRequestForm #streetaddress").val());
setStorage("lastpickupzipcode", $("#pickupRequestForm #zipcode").val());
app.dialog.preloader("Requesting Pickup...");
apirequest(SETTINGS.apis.requestpickup, {
accountnumber: getStorage("accountnumber"),
accountkey: getStorage("accountkey"),
count: $("#pickupRequestForm #packagecount").val(),
address: $("#pickupRequestForm #streetaddress").val() + " " + $("#pickupRequestForm #zipcode").val(),
instructions: instructions,
prepaid: $("#prepaid-label-checkbox").is(":checked") ? "1" : "0"
}, function (success) {
app.dialog.close();
if (success.status == "OK") {
app.dialog.alert(success.msg, "Pickup Requested!");
sendActionReport("Pickup", "Pickup requested");
} else {
app.dialog.alert(success.msg, "Error");
sendErrorReport("Pickup", "Pickup request", success.msg);
}
}, function (xhr, status, error) {
app.dialog.close();
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Pickup", "Couldn't request pickup", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}, "POST");
}

@ -141,6 +141,96 @@ function setupCordovaBarcodeScanner() {
};
}
/**
* Handle a deep link.
* @param {string} href the link
* @returns {boolean} true if handled, false if rejected.
*/
function handleDeepLink(href) {
var link = new URL(href);
if (link.host != "helena.express") {
return false;
}
if (link.hash) {
link.fragment = link.hash.substr(1);
}
switch (link.pathname) {
case "/":
break;
case "/app":
case "/app/get":
app.dialog.alert("You already have the Helena Express app. You're using it right now!", "Hi there!");
break;
case "/das":
router.navigate("/das");
break;
case "/das/map":
router.navigate("/das");
break;
case "/das/pickup":
if (link.fragment) {
sendPickupCode(link.fragment);
} else {
router.navigate("/das");
}
break;
case "/das/account":
router.navigate("/account");
break;
case "/fast":
router.navigate("/quicksend");
break;
case "/kiosk":
router.navigate("/kiosk");
break;
case "/manifest":
openExternalBrowser(link.href);
break;
case "/mobile":
case "/mobile/":
router.navigate("/mobile");
break;
case "/notary":
router.navigate("/notary");
break;
case "/pickup":
router.navigate("/pickup");
break;
case "/locations":
router.navigate("/locations");
break;
case "/rates":
router.navigate("/rates");
break;
case "/review":
openExternalBrowser("https://helena.express/review");
break;
case "/schedule":
router.navigate("/appointment");
break;
case "/send":
router.navigate("/send");
break;
case "/shop":
router.navigate("/shop");
break;
case "/telegram":
case "/telegram/":
router.navigate("/telegram");
break;
case "/track":
if (link.fragment) {
router.navigate("/track/" + link.fragment);
} else {
router.navigate("/track");
}
break;
default:
openBrowser(link.href);
}
return true;
}
function initCordova() {
platform_type = "cordova";
@ -176,67 +266,54 @@ function initCordova() {
}, function (err) {});
window.htmlopen = window.open;
window.open = cordova.InAppBrowser.open;
if (typeof device != "undefined" && device.platform != "browser") {
window.open = cordova.InAppBrowser.open;
openBrowser = function (url, options, onclose, onmessage) {
if (typeof options == "undefined") {
options = "location=yes";
}
cordovaInAppBrowserRef = cordova.InAppBrowser.open(url, "_blank", options);
if (typeof onclose == "function") {
try {
cordovaInAppBrowserRef.removeEventListener("exit");
} catch (ex) {
openBrowser = function (url, options, onclose, onmessage) {
if (typeof options == "undefined") {
options = "location=yes,fullscreen=no,zoom=no";
}
cordovaInAppBrowserRef = cordova.InAppBrowser.open(url, "_blank", options);
if (typeof onclose == "function") {
try {
cordovaInAppBrowserRef.removeEventListener("exit");
} catch (ex) {
}
cordovaInAppBrowserRef.addEventListener("exit", onclose);
}
if (typeof onmessage == "function") {
try {
cordovaInAppBrowserRef.removeEventListener("message");
} catch (ex) {
}
cordovaInAppBrowserRef.addEventListener("message", onmessage);
}
cordovaInAppBrowserRef.addEventListener("exit", onclose);
}
if (typeof onmessage == "function") {
try {
cordovaInAppBrowserRef.removeEventListener("message");
} catch (ex) {
closeBrowser = function () {
if (typeof cordovaInAppBrowserRef != null) {
cordovaInAppBrowserRef.close();
}
cordovaInAppBrowserRef.addEventListener("message", onmessage);
}
}
closeBrowser = function () {
if (typeof cordovaInAppBrowserRef != null) {
cordovaInAppBrowserRef.close();
openExternalBrowser = function (url) {
window.open(url, '_system', '');
}
} else {
// Running in browser, use a "real" window instead of an IAB one
openBrowser = function (url) {
window.open(url);
}
}
openExternalBrowser = function (url) {
window.open(url, '_system', '');
openExternalBrowser = function (url) {
window.open(url);
}
}
IonicDeeplink.onDeepLink(function (link) {
if (link.host != "helena.express") {
return;
}
// Wait a bit so the home page has time to load first.
setTimeout(function () {
switch (link.path) {
case "/track":
if (link.fragment) {
router.navigate("/track/" + link.fragment);
} else {
router.navigate("/track");
}
break;
case "/rates":
router.navigate("/rates");
break;
case "/schedule":
router.navigate("/appointment");
break;
case "/das/pickup":
if (link.fragment) {
sendPickupCode(link.fragment);
} else {
router.navigate("/dropandsend");
}
break;
}
handleDeepLink(link.url);
}, 1000);
});
}, false);
@ -252,6 +329,11 @@ function initCordova() {
}
evt.preventDefault();
});
$("body").on("click", "a[href^='tel:'],a[href^='sms:'],a[href^='mailto:']", function (evt) {
window.open($(this).attr("href"), "_system");
evt.preventDefault();
});
}
function initNW() {
@ -298,6 +380,11 @@ function initNW() {
evt.preventDefault();
});
$("body").on("click", "a[href^='tel:'],a[href^='sms:'],a[href^='mailto:']", function (evt) {
require('nw.gui').Shell.openExternal($(this).attr("href"));
evt.preventDefault();
});
// automatic theme, default light
if (typeof Framework7.device.prefersColorScheme() !== 'undefined' && Framework7.device.prefersColorScheme() == "dark") {
appTheme = "dark";
@ -320,7 +407,12 @@ function initBrowser() {
setupHTML5BarcodeScanner();
$("body").on("click", ".geolink", function (evt) {
$("body").on("click", "a[href^='geo:']", function (evt) {
window.open($(this).attr("href"), "_blank");
evt.preventDefault();
});
$("body").on("click", "a[href^='tel:'],a[href^='sms:'],a[href^='mailto:']", function (evt) {
window.open($(this).attr("href"), "_blank");
evt.preventDefault();
});

File diff suppressed because one or more lines are too long

@ -0,0 +1,52 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
function showAddressQRCode() {
var content = "QSv1|tofrom"
+ "|" + (inStorage("accountnumber") ? getStorage("accountnumber") : "")
+ "|" + $("#addresscodeform #to_name").val()
+ "|" + $("#addresscodeform #to_company").val()
+ "|" + $("#addresscodeform #to_street1").val()
+ "|" + $("#addresscodeform #to_street2").val()
+ "|" + $("#addresscodeform #to_city").val()
+ "|" + $("#addresscodeform #to_state").val()
+ "|" + $("#addresscodeform #to_zip").val()
+ "|" + $("#addresscodeform #to_country").val()
+ "|" + $("#addresscodeform #to_phone").val()
+ "|" // email
+ "|" + $("#addresscodeform #from_name").val()
+ "|" + $("#addresscodeform #from_company").val()
+ "|" + $("#addresscodeform #from_street1").val()
+ "|" + $("#addresscodeform #from_street2").val()
+ "|" // city
+ "|" // state
+ "|" + $("#addresscodeform #from_zip").val()
+ "|" // country
+ "|" + $("#addresscodeform #from_phone").val()
+ "|"; // email
setStorage("quicksend_name", $("#addresscodeform #from_name").val());
setStorage("quicksend_company", $("#addresscodeform #from_company").val());
setStorage("quicksend_street1", $("#addresscodeform #from_street1").val());
setStorage("quicksend_street2", $("#addresscodeform #from_street2").val());
setStorage("quicksend_zip", $("#addresscodeform #from_zip").val());
setStorage("quicksend_phone", $("#addresscodeform #from_phone").val());
var canvas = document.createElement('canvas');
bwipjs.toCanvas(canvas, {
bcid: 'pdf417', // Barcode type
text: content, // Text to encode
scale: 5,
includetext: false, // Show human-readable text
textxalign: 'center', // Always good to set this
eclevel: 'M'
});
document.getElementById("addresscode-barcode").src = canvas.toDataURL('image/png');
app.popup.create({el: document.getElementById("qrCodePopup")}).open();
}

@ -41,12 +41,14 @@ var itemTypeCharacteristics = {
function updateRateForm() {
if ($("#to_country").val() == "" || $("#to_country").val() == "US") {
$(".citystateboxes").css("display", "none");
$("#zipcodelookuplink").css("display", "");
$("#ziptext").html("ZIP Code");
$("#to_zip").attr("inputmode", "numeric");
$("#to_zip").attr("required", "true");
$("#to_zip").attr("placeholder", "ZIP Code");
} else {
$(".citystateboxes").css("display", "");
$("#zipcodelookuplink").css("display", "none");
$("#ziptext").html("Postal Code");
$("#to_zip").attr("inputmode", "text");
$("#to_zip").removeAttr("required");
@ -128,8 +130,10 @@ function getRates() {
}
$("#rateResultPopup").html(compiledPages.rateresult(resp));
app.popup.open("#rateResultPopup");
sendActionReport("Rates", "Got rates", $("#from_zip").val() + " -> " + $("#to_zip").val());
} else {
app.dialog.alert(resp.message, "Error");
sendErrorReport("Rates", "Couldn't get rates", resp.message);
}
},
function (xhr) {
@ -138,11 +142,72 @@ function getRates() {
var error = $.parseJSON(xhr.responseText);
if (error && typeof error.msg != 'undefined') {
app.dialog.alert(error.msg, "Error");
sendErrorReport("Rates", "Couldn't get rates", error.msg);
} else {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Rates", "Couldn't get rates", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
} catch (ex) {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Rates", "Couldn't get rates", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
}, "GET");
}
function doZipCodeLookup(street, city, state) {
if (street == "") {
app.dialog.alert("You need to enter a street address.", "ZIP Code Lookup");
return;
}
if (city == "") {
app.dialog.alert("You need to enter a city.", "ZIP Code Lookup");
return;
}
if (state == "") {
app.dialog.alert("You need to select a state.", "ZIP Code Lookup");
return;
}
app.dialog.preloader("Searching...");
apirequest(
SETTINGS.apis.zipcodelookup,
{
street: street,
city: city,
state: state
},
function (resp) {
app.dialog.close();
if (resp.status == "OK") {
app.popup.close();
if (resp.address.dpv_confirmed) {
// If an exact deliverable match was found, fill in the verified street address
$("#to_street1").val(resp.address.address);
}
$("#to_zip").val(resp.address.zip);
app.input.checkEmptyState('#to_street1');
app.input.checkEmptyState('#to_zip');
app.dialog.alert("The correct ZIP Code is " + resp.address.zip, "ZIP Code Lookup");
} else {
app.dialog.alert(resp.msg, "Error");
sendErrorReport("ZIP Lookup", "Couldn't get ZIP Code", resp.msg);
}
},
function (xhr) {
app.dialog.close();
try {
var error = $.parseJSON(xhr.responseText);
if (error && typeof error.msg != 'undefined') {
app.dialog.alert(error.msg, "Error");
sendErrorReport("ZIP Lookup", "Couldn't get ZIP Code", error.msg);
} else {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("ZIP Lookup", "Couldn't get ZIP Code", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
} catch (ex) {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("ZIP Lookup", "Couldn't get ZIP Code", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
}, "GET");
}

@ -0,0 +1,56 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
function sendErrorReport(category, error, errordata) {
if (getStorage("analytics") !== "false" && typeof _paq !== "undefined") {
try {
if (typeof errordata == "undefined") {
_paq.push(['trackEvent', 'Error', category, error]);
} else {
_paq.push(['trackEvent', 'Error', category, error, errordata]);
}
} catch (ex) {
console.error(ex);
}
}
}
function sendActionReport(category, action, data) {
if (getStorage("analytics") !== "false" && typeof _paq !== "undefined") {
try {
if (typeof data == "undefined") {
_paq.push(['trackEvent', 'User Action', category, action]);
} else {
_paq.push(['trackEvent', 'User Action', category, action, data]);
}
} catch (ex) {
console.error(ex);
}
}
}
function trackPageView(url, title) {
if (getStorage("analytics") !== "false" && typeof _paq !== "undefined") {
try {
_paq.push(['setCustomUrl', "https://app.helena.express" + url]);
_paq.push(['setDocumentTitle', title]);
_paq.push(['trackPageView']);
} catch (ex) {
console.error(ex);
}
}
}
function privacyPromptDialog() {
app.dialog.confirm("Turn off anonymous reporting?", "Analytics", function () {
setStorage("analytics", "false");
app.toast.show({
text: "Analytics disabled.",
closeTimeout: 3000
});
});
}

@ -0,0 +1,88 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
function loadServiceAreaMap() {
if (MapControl.supported()) {
if (serviceAreaMap == null) {
app.preloader.show();
var mapboxel = document.getElementById("mapbox-servicearea");
serviceAreaMap = new MapControl(mapboxel, true);
serviceAreaMap.reloadMap();
var serviceAreaMapLoaded = false;
serviceAreaMap.mapObj.on('load', function () {
serviceAreaMapLoaded = true;
});
apirequest(SETTINGS.apis.servicearea, {}, function (resp) {
var loadWhenMapReady = function () {
if (serviceAreaMapLoaded) {
setupServiceAreaMap(resp);
} else {
setTimeout(function () {
loadWhenMapReady();
}, 100);
}
}
loadWhenMapReady();
}, function (xhr) {
app.preloader.hide();
try {
var error = $.parseJSON(xhr.responseText);
if (error && typeof error.msg != 'undefined') {
app.dialog.alert(error.msg, "Error");
sendErrorReport("Service Area", "Couldn't get service area GeoJSON", error.msg);
} else {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Service Area", "Couldn't get service area GeoJSON", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
} catch (ex) {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Service Area", "Couldn't get service area GeoJSON", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
});
}
} else {
showWebGLErrorMessage();
app.preloader.hide();
}
}
function setupServiceAreaMap(geojson) {
app.preloader.hide();
serviceAreaMap.mapObj.jumpTo({center: [-112.005, 46.589], zoom: 9});
serviceAreaMap.mapObj.addSource('servicearea', {
'type': 'geojson',
'data': geojson
});
serviceAreaMap.mapObj.addLayer({
'id': 'courierservicearea',
'type': 'fill',
'source': 'servicearea',
'paint': {
'fill-color': '#005387',
'fill-opacity': 0.4
},
'filter': ['==', 'label', 'Courier']
});
serviceAreaMap.mapObj.addLayer({
'id': 'notaryservicearea',
'type': 'fill',
'source': 'servicearea',
'paint': {
'fill-color': '#008733',
'fill-opacity': 0.4
},
'filter': ['==', 'label', 'Notary']
});
}
function openServiceAreaExtraChargeInfo() {
app.dialog.alert("If you need a notary outside the green zone, the travel fee will be calculated \n\
using the current IRS mileage rate. If you need courier service outside the blue zone, we can accomodate \n\
but our delivery window guarantees will not apply.", "Info");
}

@ -33,9 +33,14 @@ $('.item-content[data-setting=hideaccountnag] .toggle input').on("change", funct
setStorage("hideaccountnag", checked);
});
$('.item-content[data-setting=analytics] .toggle input').on("change", function () {
var checked = $(this).prop('checked');
setStorage("analytics", checked ? "true" : "false");
});
function resetAccountPrompt() {
app.dialog.confirm("Are you sure you want to log out?", function () {
removeFromStorage("phonenumber");
removeFromStorage("accountnumber");
removeFromStorage("accountkey");
restartApplication();
});

@ -0,0 +1,225 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
var shopitems = [];
var shopitems_flattened = [];
var samedaydeliveryfee = 10.0;
function loadShopPage( {resolve, reject}) {
app.dialog.preloader("Opening the shop...");
apirequest(SETTINGS.apis.shopitems, [], function (resp) {
app.dialog.close();
shopitems = resp.items;
samedaydeliveryfee = resp.samedaydeliveryfee;
for (var cat in shopitems) {
for (var i in shopitems[cat]["items"]) {
shopitems_flattened[i] = shopitems[cat]["items"][i];
}
}
resolve({
content: compiledPages.shop({
items: shopitems
})
}, {});
}, function (error) {
app.dialog.close();
app.dialog.alert("Couldn't open the shop right now. Try again later.", "Whoops!");
sendErrorReport("Shop", "Opening shop");
reject();
});
}
$("body").on("card:opened", ".shop-item-card", function () {
app.swiper.destroy("#swiper-" + $(this).data("sku"));
app.swiper.create("#swiper-" + $(this).data("sku"), {
pagination: {
el: "#swiper-pagination-" + $(this).data("sku"),
type: "bullets"
}
});
});
var shoppingcart = {};
if (inStorage("shoppingcart")) {
shoppingcart = JSON.parse(getStorage("shoppingcart"));
}
function addToCart(sku, qty) {
if (typeof qty == 'undefined') {
qty = 1;
}
if (shoppingcart[sku]) {
shoppingcart[sku] += qty;
} else {
shoppingcart[sku] = qty;
}
app.toast.show({
icon: "<i class='far fa-cart-plus fa-2x'></i>",
text: "Added to cart!",
position: "center",
horizontalPosition: "center",
closeTimeout: 2000,
destroyOnClose: true
});
updateCart();
sendActionReport("Shop", "Add to cart", sku + ", " + qty);
}
function removeFromCart(sku, qty) {
// If no qty set, delete them all
if (typeof qty == "undefined") {
qty = 99999;
}
if (shoppingcart[sku]) {
shoppingcart[sku] -= qty;
}
if (shoppingcart[sku] <= 0) {
delete shoppingcart[sku];
}
updateCart();
sendActionReport("Shop", "Remove from cart", sku + ", " + qty);
}
function emptyShoppingCart() {
shoppingcart = {};
updateCart();
}
function updateCart() {
setStorage("shoppingcart", JSON.stringify(shoppingcart));
var totalitems = 0;
for (var sku in shoppingcart) {
totalitems += shoppingcart[sku];
}
$("#shopping-cart-items-chip-label").text(totalitems + "");
var cartitems = [];
for (var sku in shoppingcart) {
var item = shopitems_flattened[sku];
item.qty = shoppingcart[sku];
item.linetotal = (item.qty * item.price).toFixed(2);
cartitems.push(item);
}
$("#shoppingCartContainer").html(compiledPages.shoppingcart_fragment({
cartitems: cartitems
}));
}
function openShopCheckout() {
// Check if order is mailable or not by checking each item for mailability
// Also check if all items are still in stock (cart could have sat around a while)
var ordermailable = true;
var orderinstock = true;
var ordertotal = 0.0;
var outofstockitems = [];
for (var sku in shoppingcart) {
if (shopitems_flattened[sku].mailable != true) {
ordermailable = false;
}
if (shopitems_flattened[sku].instock != true) {
orderinstock = false;
outofstockitems.push(shopitems_flattened[sku].name);
}
ordertotal += (shopitems_flattened[sku].price * shoppingcart[sku]);
}
if (!orderinstock) {
if (outofstockitems.length == 1) {
app.dialog.alert("The following item is out of stock. Remove it from your cart to complete your order.<br><br>" + outofstockitems[0], "Out of Stock!");
} else {
app.dialog.alert("The following items in your cart are out of stock. Remove them from your cart to complete your order.<br><br>" + outofstockitems.join("<br>"), "Out of Stock!");
}
return;
}
if (ordermailable) {
app.dialog.create({
title: 'Checkout',
text: "Your order can be either mailed to you (1-5 days) or delivered same-day. Either way, it will be sent to your account's address. Your saved payment method will be charged for $" + ordertotal.toFixed(2) + " plus any delivery fee when your order ships.",
buttons: [
{
text: 'Mail (free)'
},
{
text: 'Same-day delivery ($' + samedaydeliveryfee.toFixed(2) + ')'
},
{
text: 'Cancel Checkout',
color: "red"
}
],
verticalButtons: true,
onClick: function (dialog, index) {
switch (index) {
case 0:
placeOrder("mail", ordertotal);
break;
case 1:
placeOrder("courier", ordertotal + samedaydeliveryfee);
break;
}
}
}).open();
} else {
app.dialog.create({
title: 'Checkout',
text: "Your order will be delivered to your account's address. Your saved payment method will be charged for $" + (ordertotal + samedaydeliveryfee).toFixed(2) + " (including delivery fee) when your order ships.",
buttons: [
{
text: 'Confirm Order'
},
{
text: 'Cancel Checkout',
color: "red"
}
],
verticalButtons: true,
onClick: function (dialog, index) {
switch (index) {
case 0:
placeOrder("courier", ordertotal + samedaydeliveryfee);
break;
case 1:
break;
}
}
}).open();
}
}
function placeOrder(deliverymethod, ordertotal) {
app.dialog.preloader("Placing order...");
apirequest(SETTINGS.apis.shopbuy, {
cart: JSON.stringify(shoppingcart),
shipmethod: deliverymethod,
total: (ordertotal * 1.0).toFixed(2),
accountnumber: getStorage("accountnumber"),
accountkey: getStorage("accountkey")
}, function (resp) {
app.dialog.close();
if (resp.status == "ERROR") {
app.dialog.alert(resp.msg, "Error");
sendErrorReport("Shop", "Order not placed", "Server error: " + resp.msg);
return;
} else {
emptyShoppingCart();
app.dialog.alert("Your order has been received.", "Order placed!");
app.popup.close();
sendActionReport("Shop", "Order placed", "$" + (ordertotal * 1.0).toFixed(2));
return;
}
}, function (xhr, status, error) {
app.dialog.close();
app.dialog.alert("Your order might not have gone through due to a network error. If you don't get a confirmation email, try again.", "Whoops!");
sendErrorReport("Shop", "Order not placed", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
})
console.log(deliverymethod);
console.log(shoppingcart);
}

@ -12,7 +12,11 @@
* @returns {undefined}
*/
function setStorage(key, value) {
localStorage.setItem(key, value);
if (typeof value == "string") {
localStorage.setItem(key, value);
} else {
localStorage.setItem(key, "JSON|" + JSON.stringify(value));
}
}
/**
@ -21,7 +25,12 @@ function setStorage(key, value) {
* @returns {DOMString}
*/
function getStorage(key) {
return localStorage.getItem(key);
var val = localStorage.getItem(key);
if (typeof val == "string" && val.startsWith("JSON|")) {
return JSON.parse(val.substr(5));
} else {
return val;
}
}
function removeFromStorage(key) {

@ -0,0 +1,31 @@
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
function sendTelegram() {
app.dialog.preloader("Sending...");
apirequest(SETTINGS.apis.sendtelegram, {
accountnumber: getStorage("accountnumber"),
accountkey: getStorage("accountkey"),
message: $("#telegrammessage").val(),
to: $("#telegramto").val(),
from: $("#telegramfrom").val(),
instructions: $("#telegraminstructions").val(),
usestop: $("#stopperiodcheckbox").is(":checked") ? "1" : "0"
}, function (resp) {
app.dialog.close();
if (resp.status == "OK") {
app.dialog.alert(resp.msg, "Telegram Sent!");
sendActionReport("Telegram", "Telegram sent");
} else if (resp.status == "ERROR") {
app.dialog.alert(resp.msg, "Error");
sendErrorReport("Telegram", "Couldn't send telegram", resp.msg);
}
}, function (xhr, status, error) {
app.dialog.close();
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Telegram", "Couldn't send telegram", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
});
}

@ -4,9 +4,16 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
var trackingcoderegex = /^[0-9a-zA-Z]{5,40}$/;
function openTrackingInfoPage(code) {
if (typeof code == "undefined" || code == null || code == "") {
if (typeof code == "undefined" || code == null || code.trim() == "") {
app.input.validate("#trackingcode");
app.toast.show({
text: "Please enter a tracking code.",
position: "bottom",
closeTimeout: 2000
});
return;
}
@ -14,30 +21,142 @@ function openTrackingInfoPage(code) {
}
function addTrackingSuggestions() {
$("#tracking-suggestion-list ul").html("");
$("#tracking-history-list ul").html("");
$("#tracking-history-list-empty").addClass("display-none");
$("#tracking-history-list .list").removeClass("display-none");
var history = getTrackingHistory();
for (var i = history.length - 1; i >= 0; i--) {
$("#tracking-suggestion-list ul").append('<li><a class="item-link item-content hapticbtn" href="/track/' + history[i] + '">'
+ '<div class="item-inner"><div class="item-title">'
+ history[i]
+ '</div></div></a></li>');
if (history == false || history.length == 0) {
$("#tracking-history-list-empty").removeClass("display-none");
$("#tracking-history-list .list").addClass("display-none");
} else {
for (var i = history.length - 1; i >= 0; i--) {
$("#tracking-history-list ul").append('<li><a class="item-link item-content hapticbtn tracking-code-history-link" data-trackingcode="' + history[i] + '" href="/track/' + history[i] + '">'
+ '<div class="item-inner"><div class="item-title">'
+ history[i]
+ '</div></div></a></li>');
}
}
if (inStorage("accountkey") && inStorage("accountnumber")) {
$("#tracking-account-list-empty").addClass("display-none");
$("#tracking-account-list .list").removeClass("display-none");
apirequest(SETTINGS.apis.gettrackingnumbers, {
accountnumber: getStorage("accountnumber"),
accountkey: getStorage("accountkey")
}, function (success) {
if (success.status == "OK") {
$("#tracking-account-list ul").html("");
for (var i = 0; i < success.trackingnumbers.length; i++) {
$("#tracking-account-list ul").append('<li><a class="item-link item-content hapticbtn" href="/track/' + success.trackingnumbers[i].trackingcode + '">'
+ '<div class="item-inner">'
+ '<div class="item-title">'
+ '<div class="item-header">' + success.trackingnumbers[i].nickname + '</div>'
+ success.trackingnumbers[i].trackingcode
+ '<div class="item-footer">' + success.trackingnumbers[i].datetimestring + '</div>'
+ '</div>'
+ '</div></a></li>');
}
if (success.trackingnumbers.length == 0) {
$("#tracking-account-list-empty").removeClass("display-none");
$("#tracking-account-list .list").addClass("display-none");
}
} else {
$("#tracking-account-list ul").html('<li class="item-content"><div class="item-inner justify-content-center"><div class="item-title" style="color: var(--f7-list-item-footer-text-color);">Error: ' + success.msg + '</div></div></li>');
}
}, function (xhr, status, error) {
$("#tracking-account-list ul").html('<li class="item-content"><div class="item-inner justify-content-center"><div class="item-title" style="color: var(--f7-list-item-footer-text-color);">Server or network error. Try again later.</div></div></li>');
sendErrorReport("Tracking", "Couldn't get account tracking codes", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}, "GET");
} else {
$("#tracking-account-list-empty").removeClass("display-none");
$("#tracking-account-list .list").addClass("display-none");
}
$("#tracking-multi-list-empty").addClass("display-none");
$("#tracking-multi-list .list").removeClass("display-none");
var codes = getTrackingMultiList();
if (codes.length > 0) {
$("#tracking-multi-list ul").html('<li class="item-content"><div class="item-inner justify-content-center text-align-center noselect">Loading...</div></li>');
// Only update if we're on that tab, since it's not the easiest API call for the server to do
if ($("#tracking-multi-list").hasClass("tab-active")) {
updateTrackingMultiListStatus();
}
} else {
$("#tracking-multi-list-empty").removeClass("display-none");
$("#tracking-multi-list .list").addClass("display-none");
}
}
function updateTrackingMultiListStatus() {
var codes = getTrackingMultiList();
console.log(codes.length);
$("#tracking-multi-list-empty").addClass("display-none");
$("#tracking-multi-list .list").removeClass("display-none");
$("#tracking-multi-list ul").html('<li class="item-content"><div class="item-inner justify-content-center"><div class="item-title">Loading...</div></div></li>');
if (codes.length > 0) {
$("#tracking-multi-list ul").html("");
for (var i = 0; i < codes.length; i++) {
$("#tracking-multi-list ul").append('<li><div style="cursor: pointer;" class="item-content tracking-code-multi-link noselect" data-trackingcode="' + codes[i].code + '" onclick="router.navigate(\'/track/' + codes[i].code + '\')">'
+ '<div class="item-inner item-cell">'
+ (codes[i].nick == "" ? "" : '<div class="item-row"><div class="item-cell"><b>' + codes[i].nick + '</b></div></div>')
+ '<div class="item-row"><div class="item-cell">' + codes[i].code + '</div></div>'
+ '<div class="item-row"><div class="item-cell">'
+ '<img src="" class="trackingeventicon tracking-multi-status-icon" /> <span class="tracking-multi-status-text"></span>'
+ '</div></div></div></div></li>');
}
var codelist = [];
for (var i = 0; i < codes.length; i++) {
codelist.push(codes[i].code);
}
apirequest(SETTINGS.apis.trackmultiple, {
code: codelist.join(",")
}, function (resp) {
if (resp.status == "OK") {
for (const code in resp.results) {
$(".tracking-code-multi-link[data-trackingcode=\"" + code + "\"] .tracking-multi-status-text").text(resp.results[code].text);
$(".tracking-code-multi-link[data-trackingcode=\"" + code + "\"] .tracking-multi-status-icon").attr("src", "./assets/images/icons/" + resp.results[code].icon + ".svg");
}
$("#tracking-multi-list ul").append('<li class="item-content"><div class="item-inner display-block text-align-center noselect" style="color: var(--f7-list-item-footer-text-color);"><i class="fas fa-info-circle"></i>&nbsp;<span class="taptext">Long-press</span><span class="clicktext">Right-click</span>&nbsp;an entry to remove it.</div></li>');
} else {
$("#tracking-multi-list ul").html('<li class="item-content"><div class="item-inner justify-content-center text-align-center noselect">Error: ' + resp.msg + '</div></li>');
sendErrorReport("Tracking", "Couldn't get multi tracking", resp.msg);
}
}, function (xhr) {
try {
var resp = $.parseJSON(xhr.responseText);
if (resp && typeof resp.msg != 'undefined') {
$("#tracking-multi-list ul").html('<li class="item-content"><div class="item-inner justify-content-center text-align-center">Error: ' + resp.msg + '</div></li>');
sendErrorReport("Tracking", "Couldn't get multi tracking", resp.msg);
} else {
$("#tracking-multi-list ul").html('<li class="item-content"><div class="item-inner justify-content-center text-align-center noselect">There\'s a server or network problem. Check your Internet connection or try again later.</div></li>');
sendErrorReport("Tracking", "Couldn't get multi tracking", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
} catch (ex) {
$("#tracking-multi-list ul").html('<li class="item-content"><div class="item-inner justify-content-center text-align-center noselect">There\'s a server or network problem. Check your Internet connection or try again later.</div></li>');
sendErrorReport("Tracking", "Couldn't get multi tracking", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
});
} else {
$("#tracking-multi-list-empty").removeClass("display-none");
$("#tracking-multi-list .list").addClass("display-none");
}
}
function openTrackingBarcodeScanner() {
scanBarcode(function (result) {
var code = "";
var coderegex = /^[0-9a-zA-Z]{5,40}$/;
if (result.startsWith("https://helena.express/track#")) {
code = result.split("#")[1];
} else if (result.startsWith("http") && result.includes("#")) {
if (coderegex.test(result.split("#")[1])) {
if (trackingcoderegex.test(result.split("#")[1])) {
code = result.split("#")[1];
} else {
app.dialog.alert("This app can't understand what's in that barcode.", "Error");
return;
}
} else if (coderegex.test(result)) {
} else if (trackingcoderegex.test(result)) {
code = result;
} else {
app.dialog.alert("This app can't understand what's in that barcode.", "Error");
@ -74,7 +193,8 @@ function trackOpenAsync( {to, resolve, reject}) {
enabled: (typeof resp.info.latitude == "number" && typeof resp.info.longitude == "number" && MapControl.supported()),
latitude: resp.info.latitude,
longitude: resp.info.longitude,
accurate: resp.info.geoaccurate
accurate: resp.info.geoaccurate,
geoiscountrylevel: (typeof resp.info.geoiscountrylevel == "undefined" ? false : resp.info.geoiscountrylevel)
}
};
if (resp.info.statustext) {
@ -113,11 +233,13 @@ function trackOpenAsync( {to, resolve, reject}) {
context.events = false;
}
sendActionReport("Tracking", "Tracked package");
resolve({
content: compiledPages.trackresult(context)
});
} else {
app.dialog.alert(resp.msg, "Error");
sendErrorReport("Tracking", "Couldn't get tracking", resp.msg);
reject();
}
},
@ -127,22 +249,190 @@ function trackOpenAsync( {to, resolve, reject}) {
var error = $.parseJSON(xhr.responseText);
if (error && typeof error.msg != 'undefined') {
app.dialog.alert(error.msg, "Error");
sendErrorReport("Tracking", "Couldn't get tracking", error.msg);
} else {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Tracking", "Couldn't get tracking", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
} catch (ex) {
app.dialog.alert("There's a server or network problem. Check your Internet connection or try again later.", "Error");
sendErrorReport("Tracking", "Couldn't get tracking", "Server/network problem: " + xhr.status + ": " + xhr.statusText);
}
reject();
}, "GET");
}
$("#app").on("submit", "#tracking-searchbar-form", function (evt) {
evt.preventDefault();
openTrackingInfoPage($('input[name=\'trackingcode\']').val());
return false;
});
$("#app").on("contextmenu taphold", ".tracking-code-history-link", function (evt) {
evt.preventDefault();
// Don't trigger contextmenu on a touch device because we'll also get a taphold
if (evt.type == "contextmenu" && window.matchMedia("(pointer: coarse)").matches) {
return;
}
var code = $(this).data("trackingcode");
var action = app.actions.create({
buttons: [
[
{
text: 'Track',
bold: true,
onClick: function () {
openTrackingInfoPage(code);
}
},
{
text: 'Add to Multi list',
onClick: function () {
addToTrackingMultiList(code);
addTrackingSuggestions();
}
},
{
text: 'Remove From History',
onClick: function () {
removeFromTrackingHistory(code);
addTrackingSuggestions();
}
}
],
[
{
text: 'Cancel',
color: 'red'
}
]
]
});
action.open();
return false;
});
$("#app").on("contextmenu taphold", ".tracking-code-multi-link", function (evt) {
evt.preventDefault();
// Don't trigger contextmenu on a touch device because we'll also get a taphold
if (evt.type == "contextmenu" && window.matchMedia("(pointer: coarse)").matches) {
return;
}
var code = $(this).data("trackingcode");
var action = app.actions.create({
buttons: [
[
{
text: 'Open',
bold: true,
onClick: function () {
openTrackingInfoPage(code);
}
},
{
text: 'Add/Change Nickname',
onClick: function () {
app.dialog.prompt("Set a nickname for " + code, "Package Name", function (input) {
addNicknameToTrackingMultiList(code, htmlEntities(input));
updateTrackingMultiListStatus();
}, function () {
// canceled
}, "");
}
},
{
text: 'Remove from list',
onClick: function () {
removeFromTrackingMultiList(code);
addTrackingSuggestions();
}
}
],
[
{
text: 'Cancel',
color: 'red'
}
]
]
});
action.open();
return false;
});
$("#app").on("contextmenu taphold", "#brokenscannercodeadd", function (evt) {
evt.preventDefault();
// Don't trigger contextmenu on a touch device because we'll also get a taphold
if (evt.type == "contextmenu" && window.matchMedia("(pointer: coarse)").matches) {
return;
}
var code = $('input[name=\'trackingcode\']').val().trim().replace(/\s/, "");
var action = app.actions.create({
buttons: [
[
{
text: 'Track',
bold: true,
onClick: function () {
if (code == "") {
app.dialog.alert("You need to type a tracking code first.", "Error");
return;
}
openTrackingInfoPage(code);
}
},
{
text: 'Add to Multi list',
onClick: function () {
if (code == "") {
app.dialog.alert("You need to type a tracking code first.", "Error");
return;
}
if (!code.match(trackingcoderegex)) {
app.dialog.alert("That doesn't seem like a valid tracking code.", "Error");
return;
}
addToTrackingMultiList(code);
addTrackingSuggestions();
}
}
],
[
{
text: 'Cancel',
color: 'red'
}
]
]
});
action.open();
return false;
});
$("#app").on("tab:show", "#tracking-multi-list", function (evt) {
updateTrackingMultiListStatus();
});
function getTrackingHistory() {
var history = getStorage("trackinghistory");
if (history != null) {
return JSON.parse(history);
} else {
if (history == "false" || history == "null" || history == null) {
return [];
} else {
return JSON.parse(history);
}
}
@ -161,4 +451,100 @@ function addToTrackingHistory(code) {
history.shift();
}
setStorage("trackinghistory", JSON.stringify(history));
}
function removeFromTrackingHistory(code) {
var history = getTrackingHistory();
for (var i = 0; i < history.length; i++) {
if (history[i] == code) {
history.splice(i, 1);
}
}
while (history.length > 10) {
history.shift();
}
setStorage("trackinghistory", JSON.stringify(history));
$(".tracking-code-history-link[data-trackingcode=\"" + code + "\"]").parent("li").remove();
}
function getTrackingMultiList() {
var multilist = getStorage("multitrackingcodes");
if (multilist == "false" || multilist == "null" || multilist == null) {
return [];
} else {
var multilistjson = JSON.parse(multilist);
if (multilistjson.length > 0) {
if (typeof multilistjson[0] == "object") {
return multilistjson;
} else {
// Old version is just string array, new version is array of objects,
// do a conversion
// TODO: Remove this code once everyone's updated to this version, since it's not efficient to do typeof every time
var newmultilist = [];
for (var i = 0; i < multilistjson.length; i++) {
newmultilist.push({
code: multilistjson[i],
nick: ""
});
}
setStorage("multitrackingcodes", JSON.stringify(newmultilist));
return newmultilist;
}
} else {
return [];
}
}
}
function addToTrackingMultiList(code, nickname) {
if (typeof nickname != "string") {
nickname = "";
}
var multilist = getTrackingMultiList();
for (var i = 0; i < multilist.length; i++) {
if (multilist[i].code == code) {
// Already in list, remove so we can add with the new nick if set
multilist.splice(i, 1);
}
}
// Add the code to the list
multilist.push({
code: code,
nick: nickname
});
setStorage("multitrackingcodes", JSON.stringify(multilist));
}
function addNicknameToTrackingMultiList(code, nickname) {
var multilist = getTrackingMultiList();
for (var i = 0; i < multilist.length; i++) {
if (multilist[i].code == code) {
multilist[i].nick = nickname;
}
}
setStorage("multitrackingcodes", JSON.stringify(multilist));
}
function removeFromTrackingMultiList(code) {
var multilist = getTrackingMultiList();
for (var i = 0; i < multilist.length; i++) {
if (multilist[i].code == code) {
multilist.splice(i, 1);
}
}
setStorage("multitrackingcodes", JSON.stringify(multilist));
$(".tracking-code-multi-link[data-trackingcode=\"" + code + "\"]").parent("li").remove();
}

@ -325,4 +325,14 @@ function colorThemeNameToHex(theme) {
};
return colors[theme.toLowerCase()];
}
/**
* Make an untrusted string safe for inlining in HTML by replacing dangerous characters with HTML entities.
* Credit: https://stackoverflow.com/a/14130005 CC-BY-SA 3.0
* @param {String} str
* @returns {String}
*/
function htmlEntities(str) {
return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}

@ -12,16 +12,18 @@
<link rel="stylesheet" href="node_modules/@fortawesome/fontawesome-pro/css/all.min.css" />
<!-- <link rel="stylesheet" href="node_modules/material-design-icons/iconfont/material-icons.css" /> -->
<link rel="stylesheet" href="node_modules/maplibre-gl/dist/maplibre-gl.css">
<link rel="stylesheet" href="assets/css/theme.css" />
<link rel="stylesheet" href="assets/css/app.css" />
<link rel="stylesheet" href="assets/css/home.css" />
<link rel="stylesheet" href="assets/css/backdrop.css" />
<link rel="stylesheet" href="assets/css/web-barcode.css" />
<link rel="stylesheet" href="assets/fonts/roboto/Roboto.css" />
<link rel="stylesheet" href="assets/fonts/roboto-mono/Roboto_Mono.css" />
<link rel="stylesheet" href="assets/css/tablet.css" />
<link rel="stylesheet" href="assets/css/customstyles.css" />
<script src="cordova.js"></script>
</head>
<body class="color-theme-green">
<body class="">
<div id="app" style="height: 100%;">
<div class="view view-main" id="view-main">
<div data-name="init" class="page">
@ -42,6 +44,8 @@
<script src="node_modules/template7/dist/template7.min.js"></script>
<script src="node_modules/jquery/dist/jquery.min.js"></script>
<script src="node_modules/maplibre-gl/dist/maplibre-gl.js"></script>
<script src="node_modules/bwip-js/dist/bwip-js-min.js"></script>
<script src="assets/js/qrcode.min.js"></script>
<script src="settings.js"></script>
@ -49,14 +53,22 @@
<script src="assets/js/platform.js"></script>
<script src="assets/js/reporting.js"></script>
<script src="assets/js/map_maplibre.js"></script>
<script src="assets/js/MapControl.class.js"></script>
<script src="assets/js/map.js"></script>
<script src="assets/js/util.js"></script>
<script src="assets/js/track.js"></script>
<script src="assets/js/dropandsend.js"></script>
<script src="assets/js/telegram.js"></script>
<script src="assets/js/pickup.js"></script>
<script src="assets/js/rates.js"></script>
<script src="assets/js/account.js"></script>
<script src="assets/js/shop.js"></script>
<script src="assets/js/home.js"></script>
<script src="assets/js/serviceareamap.js"></script>
<script src="assets/js/locationmap.js"></script>
<script src="assets/js/quicksend.js"></script>
<script src="routes.js"></script>
<script src="assets/js/main.js"></script>

428
www/package-lock.json generated

@ -1,36 +1,37 @@
{
"name": "HelenaExpressApp",
"version": "1.4.1",
"version": "2.1.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "HelenaExpressApp",
"version": "1.4.0",
"version": "2.0.4",
"license": "MPL-2.0",
"dependencies": {
"@fortawesome/fontawesome-pro": "^5.15.4",
"@fortawesome/fontawesome-pro": "^6",
"@zxing/library": "^0.15.2",
"framework7": "^6.3.5",
"bwip-js": "^3.1.0",
"framework7": "^7.0.2",
"jquery": "^3.6.0",
"maplibre-gl": "^1.15.2",
"maplibre-gl": "^1.15.3",
"template7": "^1.4.2"
}
},
"node_modules/@fortawesome/fontawesome-pro": {
"version": "5.15.4",
"resolved": "https://npm.fontawesome.com/@fortawesome/fontawesome-pro/-/5.15.4/fontawesome-pro-5.15.4.tgz",
"integrity": "sha512-ApOqpDdKgA79xfLZH3B5PucZxj+TZyQUSrZ4bKkbJCR+zjmveQ4/gp/uXc5bNNhsdtJUy16BYJ/lAVydca2Y5Q==",
"version": "6.1.1",
"resolved": "https://npm.fontawesome.com/@fortawesome/fontawesome-pro/-/6.1.1/fontawesome-pro-6.1.1.tgz",
"integrity": "sha512-0w6GM8sCXNpcBLUz4bx61JvjjoCvfEIz5wBz2KjLNw9qk1F2XiUWuifXobvLbwaA7kqPGBRPo3U8Zw7zyaJ9sA==",
"engines": {
"node": ">=6"
}
},
"node_modules/@mapbox/geojson-rewind": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.0.tgz",
"integrity": "sha512-73l/qJQgj/T/zO1JXVfuVvvKDgikD/7D/rHAD28S9BG1OTstgmftrmqfCx4U+zQAmtsB6HcDA3a7ymdnJZAQgg==",
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.1.tgz",
"integrity": "sha512-eL7fMmfTBKjrb+VFHXCGv9Ot0zc3C0U+CwXo1IrP+EPwDczLoXv34Tgq3y+2mPSFNVUXgU42ILWJTC7145KPTA==",
"dependencies": {
"concat-stream": "~2.0.0",
"get-stream": "^6.0.1",
"minimist": "^1.2.5"
},
"bin": {
@ -64,9 +65,9 @@
"integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI="
},
"node_modules/@mapbox/tiny-sdf": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.0.tgz",
"integrity": "sha512-gy4o8kxsIQLSbY1etb+swWeXTateN6C9DrHeArrHsxuAnQFCh9MEKvy3b0C6QyMYZcrG6QEz4sJ/zr/ud9Zlgw=="
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz",
"integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw=="
},
"node_modules/@mapbox/unitbezier": {
"version": "0.0.0",
@ -92,7 +93,7 @@
"node_modules/@zxing/library": {
"version": "0.15.2",
"resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.15.2.tgz",
"integrity": "sha1-MCYHGsqAqErwlwbf+h04YFPhHvw=",
"integrity": "sha512-J+N88Eyg6eI2SKIk2YIkjjNICbMSqmLZnB3oD1S21Bi3k+Ddg2eKe/nW+Hce4NKAFAZtY1mdDM08Bj9eu87HSg==",
"dependencies": {
"ts-custom-error": "^3.0.0"
},
@ -103,23 +104,12 @@
"text-encoding": "^0.7.0"
}
},
"node_modules/buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"node_modules/concat-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
"integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
"engines": [
"node >= 6.0"
],
"dependencies": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^3.0.2",
"typedarray": "^0.0.6"
"node_modules/bwip-js": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bwip-js/-/bwip-js-3.1.0.tgz",
"integrity": "sha512-H+4s1/25kC/ybwt+o0zhFkbTL4nGrzZV7KW44luWqT/ClmCzhXVqVgaNx8d9YoOUVKR461xDmLt3eGDRtGqRag==",
"bin": {
"bwip-js": "bin/bwip-js.js"
}
},
"node_modules/csscolorparser": {
@ -128,30 +118,30 @@
"integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs="
},
"node_modules/dom7": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz",
"integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==",
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.4.tgz",
"integrity": "sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==",
"dependencies": {
"ssr-window": "^3.0.0-alpha.1"
"ssr-window": "^4.0.0"
}
},
"node_modules/earcut": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz",
"integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ=="
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.3.tgz",
"integrity": "sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug=="
},
"node_modules/framework7": {
"version": "6.3.5",
"resolved": "https://registry.npmjs.org/framework7/-/framework7-6.3.5.tgz",
"integrity": "sha512-zafVvrg/UToMYfltTuyXGkavSDwENincD3dgPhWhKGrATMp0nCnO/BzVoyYHgkdtYUNytCH9lCSO4G00z7u9Xw==",
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/framework7/-/framework7-7.0.2.tgz",
"integrity": "sha512-LDjHItZ1+47wWYhItL95zqRDvfvl/5Lj7qGTPCFLO2U6/JrdYWbl2erkU8+KHwgSnB4tbDvLixWVlqOPCWbpZg==",
"hasInstallScript": true,
"dependencies": {
"dom7": "^3.0.0",
"dom7": "^4.0.4",
"htm": "^3.1.0",
"path-to-regexp": "^6.2.0",
"skeleton-elements": "^3.5.0",
"ssr-window": "^3.0.0",
"swiper": "^6.8.4"
"skeleton-elements": "^4.0.0",
"ssr-window": "^4.0.2",
"swiper": "^8.1.4"
},
"funding": {
"type": "patreon",
@ -163,10 +153,21 @@
"resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz",
"integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg=="
},
"node_modules/get-stream": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/gl-matrix": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz",
"integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA=="
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz",
"integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA=="
},
"node_modules/grid-index": {
"version": "1.1.0",
@ -174,9 +175,9 @@
"integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA=="
},
"node_modules/htm": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/htm/-/htm-3.1.0.tgz",
"integrity": "sha512-L0s3Sid5r6YwrEvkig14SK3Emmc+kIjlfLhEGn2Vy3bk21JyDEes4MoDsbJk6luaPp8bugErnxPz86ZuAw6e5Q=="
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz",
"integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ=="
},
"node_modules/ieee754": {
"version": "1.2.1",
@ -197,11 +198,6 @@
}
]
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
@ -213,9 +209,9 @@
"integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew=="
},
"node_modules/maplibre-gl": {
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-1.15.2.tgz",
"integrity": "sha512-uPeV530apb4JfX3cRFfE+awFnbcJTOnCv2QvY4mw4huiInbybElWYkNzTs324YLSADq0f4bidRoYcR81ho3aLA==",
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-1.15.3.tgz",
"integrity": "sha512-ZuOhLCNgp7Yl1L9uyKgZeuo7kKdewP0iWtmEXsZ/snp0JiVkR1Kl+m1rsfKT/wpm/O4zZ7mUGxF16cYbMIFDRA==",
"dependencies": {
"@mapbox/geojson-rewind": "^0.5.0",
"@mapbox/geojson-types": "^1.0.2",
@ -231,7 +227,7 @@
"geojson-vt": "^3.2.1",
"gl-matrix": "^3.2.1",
"grid-index": "^1.1.0",
"minimist": "^1.2.5",
"minimist": "^1.2.6",
"murmurhash-js": "^1.0.0",
"pbf": "^3.2.1",
"potpack": "^1.0.1",
@ -246,9 +242,9 @@
}
},
"node_modules/minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"node_modules/murmurhash-js": {
"version": "1.0.0",
@ -273,33 +269,20 @@
}
},
"node_modules/potpack": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.1.tgz",
"integrity": "sha512-15vItUAbViaYrmaB/Pbw7z6qX2xENbFSTA7Ii4tgbPtasxm5v6ryKhKtL91tpWovDJzTiZqdwzhcFBCwiMVdVw=="
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz",
"integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ=="
},
"node_modules/protocol-buffers-schema": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.5.1.tgz",
"integrity": "sha512-YVCvdhxWNDP8/nJDyXLuM+UFsuPk4+1PB7WGPVDzm3HTHbzFLxQYeW2iZpS4mmnXrQJGBzt230t/BbEb7PrQaw=="
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz",
"integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw=="
},
"node_modules/quickselect": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
"integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="
},
"node_modules/readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/resolve-protobuf-schema": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
@ -313,59 +296,32 @@
"resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
"integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/skeleton-elements": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/skeleton-elements/-/skeleton-elements-3.5.0.tgz",
"integrity": "sha512-KOU3wHGyCOtfMWLYF9wn2JzxM/l0Vu4miqqdoz9HeTfd1fwIsEePrcIrZ4+8wbg6yK82UPLLyH7fAZAwhQwZNw=="
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/skeleton-elements/-/skeleton-elements-4.0.0.tgz",
"integrity": "sha512-ctu/bKsWvq1stmvaNDsaZI+tnttgHfTf1FJq7ZLL0N/g9SDTf1ulOIr/fTIbWSUrpqmC2BbKPDyd1h8JmGfV/Q=="
},
"node_modules/ssr-window": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz",
"integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA=="
},
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
"safe-buffer": "~5.2.0"
}
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz",
"integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
},
"node_modules/supercluster": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.2.tgz",
"integrity": "sha512-bGA0pk3DYMjLTY1h+rbh0imi/I8k/Lg0rzdBGfyQs0Xkiix7jK2GUmH1qSD8+jq6U0Vu382QHr3+rbbiHqdKJA==",
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz",
"integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==",
"dependencies": {
"kdbush": "^3.0.0"
}
},
"node_modules/swiper": {
"version": "6.8.4",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-6.8.4.tgz",
"integrity": "sha512-O+buF9Q+sMA0H7luMS8R59hCaJKlpo8PXhQ6ZYu6Rn2v9OsFd4d1jmrv14QvxtQpKAvL/ZiovEeANI/uDGet7g==",
"version": "8.1.4",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-8.1.4.tgz",
"integrity": "sha512-ho6ceKxqbDxV51qymVxwn1oB4CqTrsG3Y5pGW2aKlZxsT6NMdlow8ICUa+wD/m5l2T5ZD2B0yyqTihSSmLBV4A==",
"funding": [
{
"type": "patreon",
"url": "https://www.patreon.com/vladimirkharlampidi"
"url": "https://www.patreon.com/swiperjs"
},
{
"type": "open_collective",
@ -374,8 +330,8 @@
],
"hasInstallScript": true,
"dependencies": {
"dom7": "^3.0.0",
"ssr-window": "^3.0.0"
"dom7": "^4.0.4",
"ssr-window": "^4.0.2"
},
"engines": {
"node": ">= 4.7.0"
@ -392,7 +348,7 @@
"node_modules/text-encoding": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz",
"integrity": "sha1-+JXoNuRZkGJAhmAXmOqY6PNu5kM=",
"integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==",
"deprecated": "no longer maintained",
"optional": true
},
@ -402,46 +358,36 @@
"integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA=="
},
"node_modules/ts-custom-error": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.1.1.tgz",
"integrity": "sha1-0wx0FUYdrJPcLMnp6y2ukuZCOQE=",
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.2.0.tgz",
"integrity": "sha512-cBvC2QjtvJ9JfWLvstVnI45Y46Y5dMxIaG1TDMGAD/R87hpvqFL+7LhvUDhnRCfOnx/xitollFWWvUKKKhbN0A==",
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"node_modules/vt-pbf": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz",
"integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==",
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz",
"integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==",
"dependencies": {
"@mapbox/point-geometry": "0.1.0",
"@mapbox/vector-tile": "^1.3.1",
"pbf": "^3.0.5"
"pbf": "^3.2.1"
}
}
},
"dependencies": {
"@fortawesome/fontawesome-pro": {
"version": "5.15.4",
"resolved": "https://npm.fontawesome.com/@fortawesome/fontawesome-pro/-/5.15.4/fontawesome-pro-5.15.4.tgz",
"integrity": "sha512-ApOqpDdKgA79xfLZH3B5PucZxj+TZyQUSrZ4bKkbJCR+zjmveQ4/gp/uXc5bNNhsdtJUy16BYJ/lAVydca2Y5Q=="
"version": "6.1.1",
"resolved": "https://npm.fontawesome.com/@fortawesome/fontawesome-pro/-/6.1.1/fontawesome-pro-6.1.1.tgz",
"integrity": "sha512-0w6GM8sCXNpcBLUz4bx61JvjjoCvfEIz5wBz2KjLNw9qk1F2XiUWuifXobvLbwaA7kqPGBRPo3U8Zw7zyaJ9sA=="
},
"@mapbox/geojson-rewind": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.0.tgz",
"integrity": "sha512-73l/qJQgj/T/zO1JXVfuVvvKDgikD/7D/rHAD28S9BG1OTstgmftrmqfCx4U+zQAmtsB6HcDA3a7ymdnJZAQgg==",
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.1.tgz",
"integrity": "sha512-eL7fMmfTBKjrb+VFHXCGv9Ot0zc3C0U+CwXo1IrP+EPwDczLoXv34Tgq3y+2mPSFNVUXgU42ILWJTC7145KPTA==",
"requires": {
"concat-stream": "~2.0.0",
"get-stream": "^6.0.1",
"minimist": "^1.2.5"
}
},
@ -467,9 +413,9 @@
"integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI="
},
"@mapbox/tiny-sdf": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.0.tgz",
"integrity": "sha512-gy4o8kxsIQLSbY1etb+swWeXTateN6C9DrHeArrHsxuAnQFCh9MEKvy3b0C6QyMYZcrG6QEz4sJ/zr/ud9Zlgw=="
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz",
"integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw=="
},
"@mapbox/unitbezier": {
"version": "0.0.0",
@ -492,27 +438,16 @@
"@zxing/library": {
"version": "0.15.2",
"resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.15.2.tgz",
"integrity": "sha1-MCYHGsqAqErwlwbf+h04YFPhHvw=",
"integrity": "sha512-J+N88Eyg6eI2SKIk2YIkjjNICbMSqmLZnB3oD1S21Bi3k+Ddg2eKe/nW+Hce4NKAFAZtY1mdDM08Bj9eu87HSg==",
"requires": {
"text-encoding": "^0.7.0",
"ts-custom-error": "^3.0.0"
}
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"concat-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
"integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
"requires": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
"readable-stream": "^3.0.2",
"typedarray": "^0.0.6"
}
"bwip-js": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bwip-js/-/bwip-js-3.1.0.tgz",
"integrity": "sha512-H+4s1/25kC/ybwt+o0zhFkbTL4nGrzZV7KW44luWqT/ClmCzhXVqVgaNx8d9YoOUVKR461xDmLt3eGDRtGqRag=="
},
"csscolorparser": {
"version": "1.0.3",
@ -520,29 +455,29 @@
"integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs="
},
"dom7": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz",
"integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==",
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.4.tgz",
"integrity": "sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==",
"requires": {
"ssr-window": "^3.0.0-alpha.1"
"ssr-window": "^4.0.0"
}
},
"earcut": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz",
"integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ=="
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.3.tgz",
"integrity": "sha512-iRDI1QeCQIhMCZk48DRDMVgQSSBDmbzzNhnxIo+pwx3swkfjMh6vh0nWLq1NdvGHLKH6wIrAM3vQWeTj6qeoug=="
},
"framework7": {
"version": "6.3.5",
"resolved": "https://registry.npmjs.org/framework7/-/framework7-6.3.5.tgz",
"integrity": "sha512-zafVvrg/UToMYfltTuyXGkavSDwENincD3dgPhWhKGrATMp0nCnO/BzVoyYHgkdtYUNytCH9lCSO4G00z7u9Xw==",
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/framework7/-/framework7-7.0.2.tgz",
"integrity": "sha512-LDjHItZ1+47wWYhItL95zqRDvfvl/5Lj7qGTPCFLO2U6/JrdYWbl2erkU8+KHwgSnB4tbDvLixWVlqOPCWbpZg==",
"requires": {
"dom7": "^3.0.0",
"dom7": "^4.0.4",
"htm": "^3.1.0",
"path-to-regexp": "^6.2.0",
"skeleton-elements": "^3.5.0",
"ssr-window": "^3.0.0",
"swiper": "^6.8.4"
"skeleton-elements": "^4.0.0",
"ssr-window": "^4.0.2",
"swiper": "^8.1.4"
}
},
"geojson-vt": {
@ -550,10 +485,15 @@
"resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz",
"integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg=="
},
"get-stream": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
},
"gl-matrix": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz",
"integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA=="
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz",
"integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA=="
},
"grid-index": {
"version": "1.1.0",
@ -561,20 +501,15 @@
"integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA=="
},
"htm": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/htm/-/htm-3.1.0.tgz",
"integrity": "sha512-L0s3Sid5r6YwrEvkig14SK3Emmc+kIjlfLhEGn2Vy3bk21JyDEes4MoDsbJk6luaPp8bugErnxPz86ZuAw6e5Q=="
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz",
"integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ=="
},
"ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
@ -586,9 +521,9 @@
"integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew=="
},
"maplibre-gl": {
"version": "1.15.2",
"resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-1.15.2.tgz",
"integrity": "sha512-uPeV530apb4JfX3cRFfE+awFnbcJTOnCv2QvY4mw4huiInbybElWYkNzTs324YLSADq0f4bidRoYcR81ho3aLA==",
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-1.15.3.tgz",
"integrity": "sha512-ZuOhLCNgp7Yl1L9uyKgZeuo7kKdewP0iWtmEXsZ/snp0JiVkR1Kl+m1rsfKT/wpm/O4zZ7mUGxF16cYbMIFDRA==",
"requires": {
"@mapbox/geojson-rewind": "^0.5.0",
"@mapbox/geojson-types": "^1.0.2",
@ -604,7 +539,7 @@
"geojson-vt": "^3.2.1",
"gl-matrix": "^3.2.1",
"grid-index": "^1.1.0",
"minimist": "^1.2.5",
"minimist": "^1.2.6",
"murmurhash-js": "^1.0.0",
"pbf": "^3.2.1",
"potpack": "^1.0.1",
@ -616,9 +551,9 @@
}
},
"minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"murmurhash-js": {
"version": "1.0.0",
@ -640,30 +575,20 @@
}
},
"potpack": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.1.tgz",
"integrity": "sha512-15vItUAbViaYrmaB/Pbw7z6qX2xENbFSTA7Ii4tgbPtasxm5v6ryKhKtL91tpWovDJzTiZqdwzhcFBCwiMVdVw=="
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz",
"integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ=="
},
"protocol-buffers-schema": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.5.1.tgz",
"integrity": "sha512-YVCvdhxWNDP8/nJDyXLuM+UFsuPk4+1PB7WGPVDzm3HTHbzFLxQYeW2iZpS4mmnXrQJGBzt230t/BbEb7PrQaw=="
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz",
"integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw=="
},
"quickselect": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
"integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="
},
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"resolve-protobuf-schema": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
@ -677,44 +602,31 @@
"resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
"integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"skeleton-elements": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/skeleton-elements/-/skeleton-elements-3.5.0.tgz",
"integrity": "sha512-KOU3wHGyCOtfMWLYF9wn2JzxM/l0Vu4miqqdoz9HeTfd1fwIsEePrcIrZ4+8wbg6yK82UPLLyH7fAZAwhQwZNw=="
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/skeleton-elements/-/skeleton-elements-4.0.0.tgz",
"integrity": "sha512-ctu/bKsWvq1stmvaNDsaZI+tnttgHfTf1FJq7ZLL0N/g9SDTf1ulOIr/fTIbWSUrpqmC2BbKPDyd1h8JmGfV/Q=="
},
"ssr-window": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz",
"integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA=="
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
"safe-buffer": "~5.2.0"
}
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz",
"integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
},
"supercluster": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.2.tgz",
"integrity": "sha512-bGA0pk3DYMjLTY1h+rbh0imi/I8k/Lg0rzdBGfyQs0Xkiix7jK2GUmH1qSD8+jq6U0Vu382QHr3+rbbiHqdKJA==",
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz",
"integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==",
"requires": {
"kdbush": "^3.0.0"
}
},
"swiper": {
"version": "6.8.4",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-6.8.4.tgz",
"integrity": "sha512-O+buF9Q+sMA0H7luMS8R59hCaJKlpo8PXhQ6ZYu6Rn2v9OsFd4d1jmrv14QvxtQpKAvL/ZiovEeANI/uDGet7g==",
"version": "8.1.4",
"resolved": "https://registry.npmjs.org/swiper/-/swiper-8.1.4.tgz",
"integrity": "sha512-ho6ceKxqbDxV51qymVxwn1oB4CqTrsG3Y5pGW2aKlZxsT6NMdlow8ICUa+wD/m5l2T5ZD2B0yyqTihSSmLBV4A==",
"requires": {
"dom7": "^3.0.0",
"ssr-window": "^3.0.0"
"dom7": "^4.0.4",
"ssr-window": "^4.0.2"
}
},
"template7": {
@ -725,7 +637,7 @@
"text-encoding": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz",
"integrity": "sha1-+JXoNuRZkGJAhmAXmOqY6PNu5kM=",
"integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==",
"optional": true
},
"tinyqueue": {
@ -734,28 +646,18 @@
"integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA=="
},
"ts-custom-error": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.1.1.tgz",
"integrity": "sha1-0wx0FUYdrJPcLMnp6y2ukuZCOQE="
},
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.2.0.tgz",
"integrity": "sha512-cBvC2QjtvJ9JfWLvstVnI45Y46Y5dMxIaG1TDMGAD/R87hpvqFL+7LhvUDhnRCfOnx/xitollFWWvUKKKhbN0A=="
},
"vt-pbf": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz",
"integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==",
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz",
"integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==",
"requires": {
"@mapbox/point-geometry": "0.1.0",
"@mapbox/vector-tile": "^1.3.1",
"pbf": "^3.0.5"
"pbf": "^3.2.1"
}
}
}

@ -1,14 +1,15 @@
{
"name": "HelenaExpressApp",
"version": "1.4.1",
"version": "2.1.0",
"main": "index.html",
"license": "MPL-2.0",
"dependencies": {
"@fortawesome/fontawesome-pro": "^5.15.4",
"@fortawesome/fontawesome-pro": "^6",
"@zxing/library": "^0.15.2",
"framework7": "^6.3.5",
"bwip-js": "^3.1.0",
"framework7": "^7.0.2",
"jquery": "^3.6.0",
"maplibre-gl": "^1.15.2",
"maplibre-gl": "^1.15.3",
"template7": "^1.4.2"
}
}

@ -24,7 +24,7 @@
<div class="card margin">
<div class="card-content text-align-center padding-vertical">
<div id="loadingaccountbox" style="text-align: center;">
<div id="loadingaccountbox" class="text-align-center">
<div class="preloader"></div>
<br /><br />
Loading...
@ -32,34 +32,33 @@
<div id="hasaccountbox" style="display: none;">
<div id="addPaymentMethodBox" style="display: none;">
Add a credit or debit card to use Drop and Send. It'll be securely saved for future use.
<div class="button hapticbtn button-fill margin" onclick="openCheckoutWindowToSaveCard()"><i class="fas fa-credit-card fa-fw"></i> Add Card</div>
Add a credit or debit card to pay for postage and services. It'll be securely saved for future use.
<div class="button hapticbtn button-fill margin" onclick="openCheckoutWindowToSaveCard()"><i class="fa-solid fa-credit-card fa-fw"></i> Add Card</div>
<hr />
</div>
<div class="card-content-padding">
Your Account Number:
<h2><span id="accountnumberspan">Loading...</span></h2>
</div>
<div id="loyaltyBalanceBox" class="card-content-padding">
<div>You have earned a total of</div>
<h2 id="loyaltyCreditBalanceHeading">...</h2>
<img id="loyaltyBarcodeImg" style="width: 90%; max-width: 300px; padding: 1.2em; background: white; display: none;" />
</div>
<div class="block">
<div class="button hapticbtn popup-open button-outline" data-popup="#accountUpdatePopup"><i class="fas fa-edit fa-fw"></i> Update account details</div>
</div>
<div id="loyaltyErrorMessage"></div>
<div class="block margin-top">
Loyalty points have no cash value. All points and associated discounts
are offered as a courtesy by and at the discretion of Helena Express
and may be revoked, canceled, or modified at any time for any reason.
<div class="row">
<div class="col-100 medium-50">
<div class="block padding-half">
<a class="button hapticbtn button-fill" href="/receipts"><i class="fa-solid fa-receipt fa-fw"></i> Receipts</a>
</div>
</div>
<div class="col-100 medium-50">
<div class="block padding-half">
<div class="button hapticbtn popup-open button-outline" data-popup="#accountUpdatePopup"><i class="fa-solid fa-edit fa-fw"></i> Update account details</div>
</div>
</div>
</div>
<div id="accountErrorMessage"></div>
</div>
<div id="setupaccountbox" style="display: none;">
<div class="block">
Set up an account to use our Drop and Send service, earn rewards points, and more!
Set up an account to pay for services, earn rewards points, and more!
</div>
<div class="block">
Already have an account?
@ -75,7 +74,7 @@
<div class="item-inner">
<div class="item-title item-floating-label">Name</div>
<div class="item-input-wrap">
<input type="text" id="name" />
<input type="text" id="name" inputmode="latin-name" />
<span class="input-clear-button"></span>
</div>
</div>
@ -119,7 +118,7 @@
</ul>
</div>
<div class="card-content-padding">
<div class="button hapticbtn button-fill" id="setupAccountBtn"><i class="far fa-plus fa-fw"></i> Setup Account</div>
<div class="button hapticbtn button-fill" id="setupAccountBtn"><i class="fa-regular fa-plus fa-fw"></i> Setup Account</div>
</div>
</div>
</div>
@ -138,7 +137,16 @@
<div class="item-inner">
<div class="item-title item-floating-label">Name</div>
<div class="item-input-wrap">
<input type="text" id="name" />
<input type="text" id="name" inputmode="latin-name" />
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-content item-input item-input-outline">
<div class="item-inner">
<div class="item-title item-floating-label">Phone Number</div>
<div class="item-input-wrap">
<input type="tel" id="phone" autocorrect="off" />
<span class="input-clear-button"></span>
</div>
</div>
@ -173,10 +181,10 @@
</ul>
</div>
<div class="card-content-padding">
<div class="button hapticbtn button-outline" onclick="openCheckoutWindowToSaveCard()"><i class="fas fa-credit-card fa-fw"></i> Add New Card</div>
<div class="button hapticbtn button-outline" onclick="openCheckoutWindowToSaveCard()"><i class="fa-solid fa-credit-card fa-fw"></i> Add New Card</div>
</div>
<div class="card-content-padding">
<div class="button button-fill hapticbtn" id="updateAccountBtn"><i class="far fa-edit fa-fw"></i> Update Account</div>
<div class="button button-fill hapticbtn" id="updateAccountBtn"><i class="fa-regular fa-edit fa-fw"></i> Update Account</div>
</div>
<div class="card-content-padding">
<div class="button popup-close hapticbtn">Cancel</div>

@ -13,7 +13,7 @@
<span class="if-not-md">Back</span>
</a>
</div>
<div class="title">Book Appointment</div>
<div class="title">Book {{#js_if "this.serviceid == 'shipping'"}}a Pickup{{else}}{{#js_if "this.serviceid == 'notary'"}}a Notary{{else}}Appointment{{/js_if}}{{/js_if}}</div>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save