Compare commits

...

78 Commits

Author SHA1 Message Date
Skylar Ittner 4a84e6e215 Whoops 10 months ago
Skylar Ittner ac55a3eee4 Change entire audio code to maybe make iOS work right 10 months ago
Skylar Ittner 0f993bb399 Make script chmod +x 10 months ago
Skylar Ittner 5f335cdef4 Hopefully make alerts not stop music on iOS (#59) 10 months ago
Skylar Ittner c6b4ed81d6 Fix package tracking history not showing more than two lines 10 months ago
Skylar Ittner e6b9e27152 Update broken scanner no-signature STC list, bump version to 1.6.8 10 months ago
Skylar Ittner 73e4746f6b Update credits generation script 10 months ago
Skylar Ittner b42afb05bc Update powermanagement so it builds on iOS 10 months ago
Skylar Ittner f1cb5e6a91 Hopefully fix pulling in powermanagement plugin 10 months ago
Skylar Ittner 31ac9b6056 Publish powermanagement plugin on NPM so it'll build reliably 11 months ago
Skylar Ittner 547edb007c Bump version to 1.6.7 1 year ago
Skylar Ittner ffa373f69d Stop AppStoreConnect export compliance nagging 1 year ago
Skylar Ittner bd5f379faf Update copyright year 1 year ago
Skylar Ittner 2db2e269c5 Fix script 1 year ago
Skylar Ittner 9d302d2487 Bump version 1.6.5 to 1.6.6 2 years ago
Skylar Ittner 2416e3e33f Update broken scanner: separate No Access and Business Closed, adjust wording 2 years ago
Skylar Ittner f2c82b98f7 Improve splashscreen 2 years ago
Skylar Ittner 5902598002 Hopefully fix "resource not found" build error 2 years ago
Skylar Ittner 9390347d4a Improve splash 2 years ago
Skylar Ittner 69c886caf6 Trim some bloat 2 years ago
Skylar Ittner c039920433 Fix barcodescanner plugin not compiling for Android 12 2 years ago
Skylar Ittner 096ab5bebe Prevent syncing package list between different versions, fix bug 2 years ago
Skylar Ittner 7a385b2ccd Update copyright year 2 years ago
Skylar Ittner c43b1b5283 YOLO update dependencies and stuff 2 years ago
Skylar Ittner 2f1dc4d368 Add forward and UTF note boxes 2 years ago
Skylar Ittner fd0232a694 Don't play audio if volume set to zero (prevent podcast pausing) 2 years ago
Skylar Ittner 77da43f2bc Pre-warm map resources to make subsequent loads faster 2 years ago
Skylar Ittner c5e52c7845 Disable legacy AndroidInsecureFileModeEnabled, bump version 2 years ago
Skylar Ittner 9d2d23b275 Update cordova-android to v10, NPM maintenance 2 years ago
Skylar Ittner 5a7e1685f7 Make map icons easier to see on dark/satellite maps 2 years ago
Skylar Ittner 7eb588dd44 Add "auto" map theme as default (changes between light and dark based on app theme) 2 years ago
Skylar Ittner 0415aa565b Reset autocomplete before setting up 2 years ago
Skylar Ittner 7aabdff33d Fix some issues with NativeStorage -> LocalStorage recovery 2 years ago
Skylar Ittner 6e6a155214 Fix some issues with NativeStorage -> LocalStorage recovery 2 years ago
Skylar Ittner a977851cff Add remove all button to map page 2 years ago
Skylar Ittner cc2c3335f1 Fix typo 2 years ago
Skylar Ittner a2dfbbc5c2 Close #64, add help docs to Add screen, add option to disable alert SFX 2 years ago
Skylar Ittner 94ab1d5cbb Fix crash if Cordova doesn't init fast enough 2 years ago
Skylar Ittner b179677722 Add satellite map theme 2 years ago
Skylar Ittner c809dce865 Improve UX for map calibration prompt. Close #62, close #63. 2 years ago
Skylar Ittner a705ccb846 Missed a spot for #61 2 years ago
Skylar Ittner ee091277dd Use NativeStorage plugin as backup for localStorage data #60 2 years ago
Skylar Ittner 18a49da6b0 Use incrementing version to reconcile setting sync conflicts instead of timestamp 2 years ago
Skylar Ittner 147c80302e Update API URLs 2 years ago
Skylar Ittner 3454d70654 Add 6PM reminder for Express (close #61) 2 years ago
Skylar Ittner 59f225d64a Use new tracking API at data.netsyms.net 3 years ago
Skylar Ittner 54e1c69a6e Improve haptic feedback 3 years ago
Skylar Ittner 1462417637 Add haptic feedback, bump version 3 years ago
Skylar Ittner 5a137607a0 Bump to v1.6.3 3 years ago
Skylar Ittner ad820cab3c Detect if power management not available and hide setting for it 3 years ago
Skylar Ittner 3d2e187a11 Adjust splash screen 3 years ago
Skylar Ittner 611d883d5b Add splash screen 3 years ago
Skylar Ittner 40a647d8cf ? 3 years ago
Skylar Ittner 36a43c9ba9 Some adjustments 3 years ago
Skylar Ittner de2acf34f7 Start watching position after finish loading platform code 3 years ago
Skylar Ittner ad869d1b97 More StatusBar 3 years ago
Skylar Ittner 21dcd3fdc3 More StatusBar 3 years ago
Skylar Ittner 0b747a4cef More StatusBar 3 years ago
Skylar Ittner 8547252843 Fix #58 3 years ago
Skylar Ittner d04acce21d Update copyright year 3 years ago
Skylar Ittner 7b9641e751 Fix geo: URI handling on iOS by replacing with link to Apple Maps https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html 3 years ago
Skylar Ittner 6f57946ab0 Fix StatusBar on iOS 3 years ago
Skylar Ittner ca08dbd780 Add inputtype=numeric to ZIP code and street number inputs, fix iOS display bug 3 years ago
Skylar Ittner da1492161c Fix missing icon 3 years ago
Skylar Ittner 0c4a1a3ac7 Fix missing icon 3 years ago
Skylar Ittner 2d759d8612 Add iOS icons 3 years ago
Skylar Ittner 7839d7c4b9 Remove powermanagement plugin when building for iOS 3 years ago
Skylar Ittner 05e2bb4b94 Improve iOS 3 years ago
Skylar Ittner 8075b3eb18 Add iOS config 3 years ago
Skylar Ittner fd14386270 Remove run in background 3 years ago
Skylar Ittner 0d83edcf74 Fix display settings missing some options 3 years ago
Skylar Ittner ef3ba503f7 Fix dark map background color 3 years ago
Skylar Ittner 759fa029c5 Add attribution to map 3 years ago
Skylar Ittner 9482d21438 Add Liberty Dark map theme, change map theme names 3 years ago
Skylar Ittner eed22e4cb8 Bump version to 1.6.2 4 years ago
Skylar Ittner b2f0d00795 Add persistent notification for background GPS 4 years ago
Skylar Ittner 0203720cd1 Update map tile attribution 4 years ago
Skylar Ittner 6fc97ef3ff Improve readability of forecast 4 years ago

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.netsyms.PackageHelper" version="1.6.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<widget id="com.netsyms.PackageHelper" version="1.6.8" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name short="PH">PackageHelper</name>
<description>
Assistant app for door-to-door package delivery.
@ -8,20 +8,32 @@
Netsyms Technologies
</author>
<content src="index.html" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<access origin="*" />
<allow-navigation href="https://*.netsyms.com/*" />
<allow-navigation href="app://localhost/*" />
<allow-navigation href="https://apis.netsyms.net/*" />
<allow-navigation href="https://maps.netsyms.net/*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<icon src="res/logo.png" />
<access launch-external="yes" origin="geo:*" />
<platform name="android">
<hook src="scripts/npm_prepare.sh" type="before_prepare" />
<!-- <preference name="AndroidInsecureFileModeEnabled" value="true" /> -->
<allow-intent href="market:*" />
<preference name="HeaderColor" value="#2196F3" />
<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="#2196F3" />
<!-- <preference name="AndroidWindowSplashScreenBrandingImage" value="res/android/drawable/ic_cdv_splashscreen_branding.xml" /> -->
<preference name="AndroidXEnabled" value="true" />
<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_cdv_splashscreen_branding.xml" target="app/src/main/res/drawable/ic_cdv_splashscreen_branding.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" />
@ -30,8 +42,56 @@
<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" />
</platform>
<platform name="ios">
<config-file target="*-Info.plist" parent="ITSAppUsesNonExemptEncryption" mode="add">
<false/>
</config-file>
<preference name="StatusBarBackgroundColor" value="#F6F6F6" />
<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" />
<preference name="MediaPlaybackAllowsAirPlay" value="false"/>
<hook src="scripts/npm_prepare.sh" type="before_prepare" />
<hook src="scripts/remove_powermanagement.sh" type="before_prepare" />
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="DisallowOverscroll" value="true" />
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
<splash src="res/ios/splash/Default@2x~universal~anyany.png" />
<splash src="res/ios/splash/Default@2x~universal~anyany~dark.png" />
<icon height="180" src="res/ios/icon/icon-60@3x.png" width="180" />
<icon height="60" src="res/ios/icon/icon-60.png" width="60" />
<icon height="120" src="res/ios/icon/icon-60@2x.png" width="120" />
<icon height="76" src="res/ios/icon/icon-76.png" width="76" />
<icon height="152" src="res/ios/icon/icon-76@2x.png" width="152" />
<icon height="40" src="res/ios/icon/icon-small-40.png" width="40" />
<icon height="80" src="res/ios/icon/icon-small-40@2x.png" width="80" />
<icon height="57" src="res/ios/icon/icon.png" width="57" />
<icon height="114" src="res/ios/icon/icon@2x.png" width="114" />
<icon height="72" src="res/ios/icon/icon-72.png" width="72" />
<icon height="144" src="res/ios/icon/icon-72@2x.png" width="144" />
<icon height="167" src="res/ios/icon/icon-167.png" width="167" />
<icon height="29" src="res/ios/icon/icon-small.png" width="29" />
<icon height="58" src="res/ios/icon/icon-small@2x.png" width="58" />
<icon height="87" src="res/ios/icon/icon-small@3x.png" width="87" />
<icon height="50" src="res/ios/icon/icon-small-50.png" width="50" />
<icon height="100" src="res/ios/icon/icon-small-50@2x.png" width="100" />
<icon height="167" src="res/ios/icon/icon-83.5@2x.png" width="167" />
<icon height="1024" src="res/ios/icon/icon-1024.png" width="1024" />
<edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
<string>The camera is used to scan barcodes.</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
<string>Your location is used to provide proximity alerts and other app features. It is only transmitted when you submit a map calibration.</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationAlwaysAndWhenInUseUsageDescription">
<string>Your location is used to provide proximity alerts and other app features. It is only transmitted when you submit a map calibration.</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationAlwaysUsageDescription">
<string>Your location is used to provide proximity alerts and other app features. It is only transmitted when you submit a map calibration.</string>
</edit-config>
</platform>
<hook src="scripts/npm_prepare.sh" type="before_prepare" />
</widget>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -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,12 +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.PackageHelper-www=www
file.reference.PackageNotice-test=test
file.reference.PackageNotice-www=www
files.encoding=UTF-8
project.licensePath=./nbproject/license-mpl.txt
site.root.folder=${file.reference.PackageHelper-www}
start.file=index.html
web.context.root=/PackageNotice
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>PackageHelper</name>
<name>com.netsyms.packagehelper</name>
</data>
</configuration>
</project>

4434
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -1,7 +1,7 @@
{
"name": "com.netsyms.packagehelper",
"displayName": "PackageHelper",
"version": "1.6.1",
"version": "1.6.8",
"description": "Assistant app for door-to-door package delivery.",
"product_string": "PackageHelper",
"main": "www/index.html",
@ -22,30 +22,38 @@
"cordova": {
"plugins": {
"cordova-plugin-geolocation": {},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-powermanagement-netsyms": {},
"cordova-plugin-whitelist": {},
"phonegap-plugin-barcodescanner": {},
"cordova-plugin-device": {},
"cordova-plugin-battery-status": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-headercolor": {}
"cordova-plugin-inappbrowser": {},
"cordova-plugin-headercolor": {},
"cordova-plugin-velda-devicefeedback": {},
"cordova-plugin-nativestorage": {},
"phonegap-plugin-barcodescanner-android12": {
"ANDROID_SUPPORT_V4_VERSION": "27.+"
},
"@netsyms/cordova-plugin-powermanagement": {}
},
"platforms": [
"browser",
"ios",
"android"
]
},
"dependencies": {
"cordova-android": "^9.0.0",
"cordova-browser": "^6.0.0",
"cordova-plugin-battery-status": "^2.0.3",
"cordova-plugin-device": "^2.0.3",
"cordova-plugin-headercolor": "^1.0.0",
"cordova-plugin-inappbrowser": "^3.1.0",
"cordova-plugin-powermanagement-netsyms": "git+https://source.netsyms.com/Netsyms/cordova-plugin-powermanagement",
"cordova-plugin-statusbar": "^2.4.3",
"cordova-plugin-whitelist": "^1.3.4"
"cordova-plugin-statusbar": "^2.4.3"
},
"devDependencies": {}
}
"devDependencies": {
"@netsyms/cordova-plugin-powermanagement": "^1.1.3",
"cordova-android": "^11.0.0",
"cordova-ios": "^6.1.1",
"cordova-plugin-inappbrowser": "^4.1.0",
"cordova-plugin-nativestorage": "^2.3.2",
"cordova-plugin-velda-devicefeedback": "0.0.2",
"generate-license-file": "^2.0.0",
"phonegap-plugin-barcodescanner-android12": "^8.1.2"
}
}

@ -0,0 +1,24 @@
<vector xmlns:ns0="http://schemas.android.com/apk/res/android" ns0:name="svg7166" ns0:width="1000.0dp" ns0:height="512.0dp" ns0:viewportWidth="1000.0" ns0:viewportHeight="512.0000384">
<group ns0:name="layer1">
<group ns0:name="layer1-7">
<path ns0:name="path932" ns0:pathData="M403.68481895 467.870585463C403.68481895 467.870585463 74.9462691267 467.870585463 74.9462691267 467.870585463C74.9462691267 467.870585463 239.315546988 159.345649003 239.315546988 159.345649003C239.315546988 159.345649003 403.68481895 467.870585463 403.68481895 467.870585463" ns0:fillColor="#1976d2" ns0:fillAlpha="1.0" ns0:strokeWidth="0.264583333328" ns0:strokeAlpha="1.0" ns0:strokeLineJoin="round" ns0:strokeMiterLimit="4"/>
<path ns0:name="path934" ns0:pathData="M564.807640325 432.574835298C564.807640325 432.574835298 308.01527707 432.574835298 308.01527707 432.574835298C308.01527707 432.574835298 436.411461002 257.924176137 436.411461002 257.924176137C436.411461002 257.924176137 564.807640325 432.574835298 564.807640325 432.574835298" ns0:fillColor="#1976d2" ns0:fillAlpha="0.5" ns0:strokeWidth="0.264583333328" ns0:strokeAlpha="0.5" ns0:strokeLineJoin="round" ns0:strokeMiterLimit="4"/>
<path ns0:name="path2" ns0:pathData="M856.109725739 109.46279508C857.186123552 106.912903177 857.789993606 104.124684895 857.789993606 101.217340978C857.789993606 88.5870071006 846.500625991 78.3397421407 832.585894389 78.3397421407C827.413768791 78.3397421407 822.582991059 79.7696212496 818.592357411 82.200350977C811.319912203 70.7615820087 797.746447266 63.0880576264 782.177635055 63.0880576264C758.968883112 63.0880576264 740.170755659 80.1508853989 740.170755659 101.217340978C740.170755659 101.860776122 740.198769936 102.504211267 740.223130176 103.147646411C725.520750808 107.842321451 714.966534641 120.567983039 714.966534641 135.533676303C714.966534641 154.479162909 731.900575914 169.850068469 752.772713917 169.850068469C752.772713917 169.850068469 849.388430965 169.850068469 849.388430965 169.850068469C867.950223488 169.850068469 882.993930422 156.195037328 882.993930422 139.3466426C882.993930422 124.595360049 871.442060918 112.274823467 856.109543037 109.46279508C856.109543037 109.46279508 856.109725739 109.46279508 856.109725739 109.46279508" ns0:fillColor="#acd6ff" ns0:fillAlpha="0.46733668" ns0:strokeWidth="0.0326010428744"/>
<group ns0:name="text869">
<path ns0:name="path890" ns0:pathData="M215.620685253 221.354701014C224.210909293 221.354701014 230.781576987 222.919142706 235.332688335 226.048026091C239.940688964 229.176909476 242.244689279 234.069352449 242.244689279 240.725355012C242.244689279 244.195579496 241.618911248 247.182246445 240.367355188 249.685355859C239.172688408 252.131584113 237.409132879 254.15114276 235.076688601 255.744031799C232.744242969 257.280026144 229.899797869 258.417804996 226.543353301 259.157368355C223.186908597 259.896918181 219.346908118 260.266693093 215.023351863 260.266693093C215.023351863 260.266693093 209.647350949 260.266693093 209.647350949 260.266693093C209.647350949 260.266693093 209.647350949 281.088039995 209.647350949 281.088039995C209.647350949 281.088039995 198.895349323 281.088039995 198.895349323 281.088039995C198.895349323 281.088039995 198.895349323 222.805353318 198.895349323 222.805353318C201.398460781 222.236474042 204.157572298 221.866699129 207.172683874 221.69602858C210.244684339 221.468476869 213.060684798 221.354701014 215.620685253 221.354701014C215.620685253 221.354701014 215.620685253 221.354701014 215.620685253 221.354701014M216.388685471 230.656029427C213.658018256 230.656029427 211.410906749 230.741364702 209.647350949 230.912035251C209.647350949 230.912035251 209.647350949 251.050706722 209.647350949 251.050706722C209.647350949 251.050706722 214.852685036 251.050706722 214.852685036 251.050706722C220.02957482 251.050706722 224.011797486 250.33959071 226.799353035 248.917358687C229.586908854 247.438245502 230.980686764 244.67913703 230.980686764 240.640033271C230.980686764 238.705803132 230.610909144 237.084466746 229.871353905 235.776024111C229.131798667 234.467581476 228.107798376 233.443585246 226.799353035 232.70403542C225.490909047 231.964472062 223.92646458 231.45246718 222.106019635 231.168020775C220.342463835 230.82669321 218.43668578 230.656029427 216.388685471 230.656029427C216.388685471 230.656029427 216.388685471 230.656029427 216.388685471 230.656029427" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path892" ns0:pathData="M266.751358879 273.834697276C269.937136958 273.834697276 272.354915158 273.664033493 274.004693478 273.322705928C274.004693478 273.322705928 274.004693478 261.88802948 274.004693478 261.88802948C273.435803375 261.71735893 272.610914215 261.546695148 271.530025997 261.376038132C270.449136426 261.205367582 269.254469647 261.120032307 267.946025659 261.120032307C266.808246806 261.120032307 265.642023991 261.205367582 264.447357211 261.376038132C263.309579712 261.546695148 262.257135458 261.859582133 261.290024449 262.314699087C260.379801368 262.769816041 259.640245452 263.424037359 259.071356703 264.277363039C258.502467953 265.073807559 258.218023579 266.097810556 258.218023579 267.34937203C258.218023579 269.79558675 258.986023458 271.502251645 260.522023217 272.469366714C262.058024328 273.379587089 264.134469549 273.834697276 266.751358879 273.834697276C266.751358879 273.834697276 266.751358879 273.834697276 266.751358879 273.834697276M265.898025755 235.349354504C269.311359604 235.349354504 272.184248668 235.776024111 274.516692946 236.629363325C276.849137225 237.482689006 278.698026675 238.677355785 280.063361298 240.213363664C281.485583848 241.749358009 282.481139497 243.626693453 283.050028247 245.845369996C283.675806277 248.007138312 283.988695292 250.396471871 283.988695292 253.013370674C283.988695292 253.013370674 283.988695292 280.064036999 283.988695292 280.064036999C282.395804899 280.405364564 279.9780267 280.803586824 276.735360693 281.258703778C273.549581261 281.770701893 269.937136281 282.026700951 265.898025755 282.026700951C263.224247144 282.026700951 260.778024304 281.770701893 258.559357234 281.258703778C256.340690164 280.746705663 254.43491211 279.921813796 252.84202307 278.784028178C251.306021958 277.646256092 250.082910538 276.167149675 249.17268881 274.346708925C248.319355009 272.526254641 247.892688109 270.279137518 247.892688109 267.605357554C247.892688109 265.045366979 248.376243614 262.883591896 249.343354623 261.120032307C250.367354913 259.356472718 251.732688859 257.934247462 253.43935646 256.853356537C255.146022708 255.715584452 257.108689367 254.919139932 259.327356437 254.464022978C261.602912788 253.952024863 263.963802383 253.696025805 266.410025223 253.696025805C267.547802722 253.696025805 268.742469502 253.78136108 269.994025562 253.95203163C271.245581623 254.065848085 272.582470928 254.293406562 274.004693478 254.634707061C274.004693478 254.634707061 274.004693478 252.928028633 274.004693478 252.928028633C274.004693478 251.733361853 273.862470952 250.595583001 273.578025901 249.514692077C273.29358085 248.433801152 272.781580705 247.49513343 272.042025466 246.69868891C271.359359508 245.84536323 270.420693139 245.191141912 269.22602636 244.736024958C268.088247508 244.280921537 266.637580317 244.053369827 264.874024788 244.053369827C262.484691229 244.053369827 260.294468799 244.22403361 258.3033575 244.565361175C256.312246201 244.906688741 254.690912521 245.304911001 253.43935646 245.760027955C253.43935646 245.760027955 252.159355759 237.397360498 252.159355759 237.397360498C253.467801101 236.942243543 255.373579155 236.487133356 257.876689923 236.032029935C260.379802044 235.576912981 263.053580655 235.349354504 265.898025755 235.349354504C265.898025755 235.349354504 265.898025755 235.349354504 265.898025755 235.349354504" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path894" ns0:pathData="M295.075365409 258.81604079C295.075365409 255.516473322 295.587365554 252.444471098 296.611365844 249.600034118C297.635366134 246.698702444 299.086033325 244.195586263 300.963367415 242.090685575C302.897589434 239.98579842 305.230034389 238.336021453 307.96070228 237.141354673C310.691368819 235.946687894 313.763369012 235.349354504 317.176702862 235.349354504C321.386481231 235.349354504 325.36870383 236.117358443 329.123370658 237.653366322C329.123370658 237.653366322 326.904704942 246.10135552 326.904704942 246.10135552C325.710038162 245.589357405 324.344704216 245.162694565 322.808703104 244.821367C321.329592627 244.480025901 319.736703587 244.309355351 318.030035986 244.309355351C313.990924106 244.309355351 310.918923912 245.589357405 308.814035404 248.149361514C306.709145543 250.652470929 305.656700613 254.208030687 305.656700613 258.81604079C305.656700613 263.253366809 306.652256262 266.780472454 308.643367562 269.397357723C310.634478861 271.957361832 313.990924106 273.237363886 318.712703297 273.237363886C320.476258826 273.237363886 322.211370391 273.066700104 323.918037993 272.725372538C325.624704241 272.384031439 327.103815395 271.957361832 328.355371456 271.445363717C328.355371456 271.445363717 329.806037969 279.978694957 329.806037969 279.978694957C328.668260471 280.547587767 326.933148906 281.059592648 324.600703274 281.514709603C322.325148276 281.969813023 319.964259358 282.197364734 317.518036517 282.197364734C313.706480408 282.197364734 310.378479803 281.628478691 307.534034703 280.490706606C304.746478884 279.296039826 302.414033929 277.674703439 300.536699838 275.626697446C298.716255029 273.521810291 297.350921759 271.047141457 296.440700031 268.202690944C295.530476949 265.301359269 295.075365409 262.172475885 295.075365409 258.81604079C295.075365409 258.81604079 295.075365409 258.81604079 295.075365409 258.81604079" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path896" ns0:pathData="M349.208705383 253.866689588C350.517150725 252.501365792 351.910929311 251.050699955 353.390041142 249.514692077C354.86915162 247.921803037 356.319818133 246.357361345 357.742040683 244.821367C359.164263233 243.22847796 360.501152539 241.720917429 361.752708599 240.298685405C363.061152587 238.819585754 364.170486122 237.539590467 365.080709204 236.458699542C365.080709204 236.458699542 377.283376734 236.458699542 377.283376734 236.458699542C374.438931634 239.644477621 371.423820045 242.944031555 368.238041966 246.357361345C365.109153168 249.770691134 361.951819729 253.098692415 358.76604165 256.341365189C360.472707898 257.763583679 362.264708068 259.498695921 364.142042159 261.546701914C366.019376249 263.537813214 367.839821059 265.671147715 369.603376588 267.94670542C371.366932117 270.222263124 373.016709761 272.497814061 374.55270952 274.773358232C376.088710632 277.048915936 377.368711333 279.153809857 378.392711623 281.088039995C378.392711623 281.088039995 366.446041796 281.088039995 366.446041796 281.088039995C365.422041506 279.324480406 364.227374727 277.475592309 362.862041458 275.541375704C361.553597469 273.607145566 360.131374919 271.729810122 358.595373807 269.909369372C357.059374049 268.088928622 355.49492965 266.382263727 353.90204061 264.789374688C352.309151571 263.139590954 350.744706495 261.745813044 349.208705383 260.608040959C349.208705383 260.608040959 349.208705383 281.088039995 349.208705383 281.088039995C349.208705383 281.088039995 338.883371944 281.088039995 338.883371944 281.088039995C338.883371944 281.088039995 338.883371944 216.576033895 338.883371944 216.576033895C338.883371944 216.576033895 349.208705383 214.869355467 349.208705383 214.869355467C349.208705383 214.869355467 349.208705383 253.866689588 349.208705383 253.866689588" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path898" ns0:pathData="M402.58470985 273.834697276C405.770481162 273.834697276 408.188258686 273.664033493 409.838042419 273.322705928C409.838042419 273.322705928 409.838042419 261.88802948 409.838042419 261.88802948C409.26914961 261.71735893 408.444257743 261.546695148 407.363366819 261.376038132C406.282484014 261.205367582 405.087820618 261.120032307 403.77937663 261.120032307C402.641599131 261.120032307 401.475376315 261.205367582 400.280708182 261.376038132C399.142930684 261.546695148 398.09048643 261.859582133 397.12337542 262.314699087C396.213152339 262.769816041 395.473596423 263.424037359 394.904707674 264.277363039C394.335818925 265.073807559 394.05137455 266.097810556 394.05137455 267.34937203C394.05137455 269.79558675 394.819374429 271.502251645 396.355374188 272.469366714C397.8913753 273.379587089 399.967820521 273.834697276 402.58470985 273.834697276C402.58470985 273.834697276 402.58470985 273.834697276 402.58470985 273.834697276M401.731376726 235.349354504C405.144710576 235.349354504 408.017603023 235.776024111 410.350054068 236.629363325C412.682492933 237.482689006 414.53138103 238.677355785 415.896718359 240.213363664C417.318936849 241.749358009 418.314492499 243.626693453 418.883385308 245.845369996C419.509159278 248.007138312 419.822046263 250.396471871 419.822046263 253.013370674C419.822046263 253.013370674 419.822046263 280.064036999 419.822046263 280.064036999C418.229157224 280.405364564 415.811376318 280.803586824 412.568703544 281.258703778C409.382925465 281.770701893 405.770483192 282.026700951 401.731376726 282.026700951C399.057598116 282.026700951 396.611375275 281.770701893 394.392708206 281.258703778C392.174041136 280.746705663 390.268263081 279.921813796 388.675374042 278.784028178C387.139374283 277.646256092 385.916262863 276.167149675 385.006039781 274.346708925C384.152705981 272.526254641 383.72603908 270.279137518 383.72603908 267.605357554C383.72603908 265.045366979 384.209595262 262.883591896 385.176707624 261.120032307C386.200706561 259.356472718 387.56603983 257.934247462 389.272707431 256.853356537C390.979373679 255.715584452 392.942040338 254.919139932 395.160707408 254.464022978C397.436263759 253.952024863 399.797153354 253.696025805 402.243376195 253.696025805C403.381153693 253.696025805 404.575820473 253.78136108 405.827376533 253.95203163C407.078935301 254.065848085 408.415823929 254.293406562 409.838042419 254.634707061C409.838042419 254.634707061 409.838042419 252.928028633 409.838042419 252.928028633C409.838042419 251.733361853 409.695819217 250.595583001 409.411372812 249.514692077C409.126926408 248.433801152 408.614928293 247.49513343 407.875378467 246.69868891C407.192711156 245.84536323 406.25404411 245.191141912 405.059377331 244.736024958C403.921598479 244.280921537 402.470931288 244.053369827 400.707375759 244.053369827C398.3180422 244.053369827 396.127819771 244.22403361 394.136708471 244.565361175C392.145597172 244.906688741 390.524263492 245.304911001 389.272707431 245.760027955C389.272707431 245.760027955 387.99270673 237.397360498 387.99270673 237.397360498C389.301152072 236.942243543 391.206930127 236.487133356 393.710040894 236.032029935C396.213153015 235.576912981 398.886931626 235.349354504 401.731376726 235.349354504C401.731376726 235.349354504 401.731376726 235.349354504 401.731376726 235.349354504" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path900" ns0:pathData="M441.490053614 257.62137401C441.490053614 262.001818869 442.428721336 265.216037528 444.30605678 267.264029988C446.240286919 269.255141288 448.714955753 270.250696937 451.730063282 270.250696937C453.379847016 270.250696937 454.915848128 270.023145227 456.338066618 269.568041806C457.817179802 269.112924852 459.011846582 268.57247939 459.922066957 267.94670542C459.922066957 267.94670542 459.922066957 244.821367 459.922066957 244.821367C459.182517131 244.65069645 458.272296757 244.508473248 457.191405832 244.394697393C456.110514908 244.224026843 454.745177578 244.138691568 453.095393845 244.138691568C449.34073649 244.138691568 446.467852163 245.390246275 444.476740863 247.89335569C442.48561603 250.339583944 441.490053614 253.582256717 441.490053614 257.62137401C441.490053614 257.62137401 441.490053614 257.62137401 441.490053614 257.62137401M470.247398366 276.565358401C470.247398366 283.676477918 468.426957617 288.881814644 464.786076117 292.181368578C461.202075778 295.480922512 455.683852067 297.130699479 448.231404985 297.130699479C445.500730327 297.130699479 442.826950363 296.903147769 440.210065093 296.448044348C437.650060984 295.992927394 435.317615353 295.395594004 433.212728198 294.656044178C433.212728198 294.656044178 435.090070409 285.866707114 435.090070409 285.866707114C436.853616464 286.606256939 438.844727764 287.203590329 441.063404307 287.658707283C443.338962011 288.113810704 445.785183498 288.341362415 448.402068768 288.341362415C452.554961916 288.341362415 455.513181518 287.488029967 457.276727573 285.781365073C459.040287162 284.074700178 459.922066957 281.543143416 459.922066957 278.186694788C459.922066957 278.186694788 459.922066957 276.48003666 459.922066957 276.48003666C458.898070727 276.992034775 457.532740164 277.50403289 455.82607527 278.016031005C454.176291536 278.52802912 452.270508744 278.784028178 450.108726896 278.784028178C447.264289916 278.784028178 444.647404646 278.32891799 442.258071087 277.418697615C439.925618688 276.50847724 437.906060042 275.171587258 436.199395147 273.408027669C434.549611413 271.644481614 433.241168778 269.454259184 432.274067243 266.837360381C431.363846868 264.163580417 430.90873668 261.09158496 430.90873668 257.62137401C430.90873668 254.378701237 431.392287448 251.392034288 432.359388984 248.661373163C433.383398747 245.930698504 434.834064585 243.598252873 436.711386495 241.664036268C438.645616634 239.729806129 440.978062266 238.222245598 443.70872339 237.141354673C446.439398049 236.060463749 449.53984762 235.520018287 453.010072103 235.520018287C456.366507198 235.520018287 459.552285277 235.776024111 462.56740634 236.288035759C465.58251387 236.800033874 468.142511212 237.34047257 470.247398366 237.909351846C470.247398366 237.909351846 470.247398366 276.565358401 470.247398366 276.565358401" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path902" ns0:pathData="M481.908726549 258.986704572C481.908726549 255.061363134 482.477612592 251.619585998 483.615384677 248.661373163C484.810051457 245.703146794 486.374499916 243.25691854 488.308730054 241.322688402C490.24294666 239.331577103 492.461609669 237.852470685 494.964719084 236.885369149C497.467828498 235.861359386 500.027832607 235.349354504 502.64473141 235.349354504C508.788722324 235.349354504 513.567389443 237.255137295 516.980732766 241.066702878C520.450957249 244.878254927 522.186069491 250.567142421 522.186069491 258.133365358C522.186069491 258.702258168 522.157649211 259.356479485 522.10080865 260.09602931C522.10080865 260.778697975 522.07238837 261.404478712 522.01554781 261.973371521C522.01554781 261.973371521 492.575547926 261.973371521 492.575547926 261.973371521C492.859994331 265.55737186 494.111549038 268.344927679 496.330212048 270.336038979C498.605769752 272.270255584 501.876883106 273.237363886 506.143552109 273.237363886C508.646661523 273.237363886 510.922219228 273.009812176 512.970225221 272.554708755C515.075112376 272.099591801 516.724889343 271.616034266 517.919556123 271.104036151C517.919556123 271.104036151 519.284886685 279.55202535 519.284886685 279.55202535C518.715993876 279.836471755 517.919549356 280.149365507 516.895553126 280.490706606C515.928438056 280.77515301 514.790659204 281.031152068 513.48221657 281.258703778C512.230668629 281.543150183 510.865338067 281.770701893 509.386224882 281.941358909C507.907111698 282.112029459 506.399557933 282.197364734 504.863563588 282.197364734C500.93822215 282.197364734 497.524885594 281.628478691 494.62355392 280.490706606C491.722222245 279.296039826 489.332888686 277.674703439 487.455553242 275.626697446C485.578217798 273.521810291 484.184439888 271.075588804 483.274219513 268.288032985C482.363999138 265.443582472 481.908888951 262.343139667 481.908888951 258.986704572C481.908888951 258.986704572 481.908726549 258.986704572 481.908726549 258.986704572M511.860717781 254.378701237C511.860717781 252.956482747 511.661606651 251.619592765 511.263384392 250.368031291C510.865162132 249.059588656 510.267828742 247.950257151 509.471384222 247.040036776C508.731834397 246.072921707 507.793173441 245.333365115 506.655401356 244.821367C505.574510432 244.25247419 504.26606103 243.968027785 502.730053151 243.968027785C501.137164112 243.968027785 499.743386202 244.280914771 498.548719423 244.906688741C497.354052643 245.47558155 496.330056413 246.24358549 495.476730732 247.210700559C494.680286213 248.177815628 494.054505476 249.287147133 493.599388521 250.538695073C493.144285101 251.790256547 492.831398115 253.070258602 492.660727566 254.378701237C492.660727566 254.378701237 511.860717781 254.378701237 511.860717781 254.378701237" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path904" ns0:pathData="M570.9994233 221.952034404C570.9994233 221.952034404 581.751424316 221.952034404 581.751424316 221.952034404C581.751424316 221.952034404 581.751424316 281.088039995 581.751424316 281.088039995C581.751424316 281.088039995 570.9994233 281.088039995 570.9994233 281.088039995C570.9994233 281.088039995 570.9994233 254.890692585 570.9994233 254.890692585C570.9994233 254.890692585 545.314087538 254.890692585 545.314087538 254.890692585C545.314087538 254.890692585 545.314087538 281.088039995 545.314087538 281.088039995C545.314087538 281.088039995 534.562086521 281.088039995 534.562086521 281.088039995C534.562086521 281.088039995 534.562086521 221.952034404 534.562086521 221.952034404C534.562086521 221.952034404 545.314087538 221.952034404 545.314087538 221.952034404C545.314087538 221.952034404 545.314087538 245.589364172 545.314087538 245.589364172C545.314087538 245.589364172 570.9994233 245.589364172 570.9994233 245.589364172C570.9994233 245.589364172 570.9994233 221.952034404 570.9994233 221.952034404" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path906" ns0:pathData="M593.908726989 258.986704572C593.908726989 255.061363134 594.477619799 251.619585998 595.615405418 248.661373163C596.810072197 245.703146794 598.37451389 243.25691854 600.308730495 241.322688402C602.242960633 239.331577103 604.46163041 237.852470685 606.964739824 236.885369149C609.467849239 235.861359386 612.027846581 235.349354504 614.64473185 235.349354504C620.788736298 235.349354504 625.567403416 237.255137295 628.980733206 241.066702878C632.450957689 244.878254927 634.186069931 250.567142421 634.186069931 258.133365358C634.186069931 258.702258168 634.157649651 259.356479485 634.100809091 260.09602931C634.100809091 260.778697975 634.07238881 261.404478712 634.01554825 261.973371521C634.01554825 261.973371521 604.575548366 261.973371521 604.575548366 261.973371521C604.859994771 265.55737186 606.111549478 268.344927679 608.330212488 270.336038979C610.605770192 272.270255584 613.876883546 273.237363886 618.143552549 273.237363886C620.646661964 273.237363886 622.922212901 273.009812176 624.970205361 272.554708755C627.075106049 272.099591801 628.724889783 271.616034266 629.919556563 271.104036151C629.919556563 271.104036151 631.284887125 279.55202535 631.284887125 279.55202535C630.715994316 279.836471755 629.919549796 280.149365507 628.895553566 280.490706606C627.928438497 280.77515301 626.790659645 281.031152068 625.48221701 281.258703778C624.230655536 281.543150183 622.865318207 281.770701893 621.386205022 281.941358909C619.907105372 282.112029459 618.399551607 282.197364734 616.863543728 282.197364734C612.938215824 282.197364734 609.524879268 281.628478691 606.62353406 280.490706606C603.722202385 279.296039826 601.332868826 277.674703439 599.455533382 275.626697446C597.578211471 273.521810291 596.184433562 271.075588804 595.274199653 268.288032985C594.363979278 265.443582472 593.908869091 262.343139667 593.908869091 258.986704572C593.908869091 258.986704572 593.908726989 258.986704572 593.908726989 258.986704572M623.860738522 254.378701237C623.860738522 252.956482747 623.661627392 251.619592765 623.263405132 250.368031291C622.865182872 249.059588656 622.267849482 247.950257151 621.471404962 247.040036776C620.731855137 246.072921707 619.793187415 245.333365115 618.655401796 244.821367C617.574510872 244.25247419 616.266068237 243.968027785 614.730073892 243.968027785C613.137184852 243.968027785 611.743406943 244.280914771 610.548740163 244.906688741C609.354073383 245.47558155 608.330070387 246.24358549 607.476731172 247.210700559C606.680286653 248.177815628 606.054512682 249.287147133 605.599409262 250.538695073C605.144292308 251.790256547 604.831398556 253.070258602 604.660728006 254.378701237C604.660728006 254.378701237 623.860738522 254.378701237 623.860738522 254.378701237" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path908" ns0:pathData="M661.580763748 281.941358909C658.508761524 281.884518349 655.948757415 281.543190783 653.900751422 280.917376213C651.909640122 280.291588709 650.316751083 279.409808915 649.122084303 278.272036829C647.927417524 277.07737005 647.074085076 275.626704212 646.562086961 273.920039318C646.10698354 272.156479729 645.87943183 270.165368429 645.87943183 267.94670542C645.87943183 267.94670542 645.87943183 216.576033895 645.87943183 216.576033895C645.87943183 216.576033895 656.20476324 214.869355467 656.20476324 214.869355467C656.20476324 214.869355467 656.20476324 265.984041467 656.20476324 265.984041467C656.20476324 267.235589408 656.290098514 268.288032985 656.460769064 269.141372199C656.688320774 269.99469788 657.058095687 270.734254472 657.570093802 271.360041976C658.082091917 271.928921252 658.764760582 272.384031439 659.618099796 272.725372538C660.528320171 273.009818943 661.666099023 273.237370653 663.031436352 273.408027669C663.031436352 273.408027669 661.580763748 281.941358909 661.580763748 281.941358909" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path910" ns0:pathData="M701.994097731 258.986704572C701.994097731 254.37869447 700.941654153 250.794694131 698.836766999 248.234703556C696.788761005 245.674699447 693.460759724 244.394697393 688.852763155 244.394697393C687.885648086 244.394697393 686.861645089 244.45160562 685.780754164 244.565422076C684.756757934 244.622262636 683.732761704 244.792926419 682.708765474 245.077413424C682.708765474 245.077413424 682.708765474 270.592085403 682.708765474 270.592085403C683.618985849 271.217872907 684.813652628 271.815206297 686.292765813 272.384085573C687.828760158 272.896097221 689.450089778 273.152103046 691.156754673 273.152103046C694.911425561 273.152103046 697.642093453 271.872100991 699.348758347 269.312096883C701.112317936 266.752092774 701.994097731 263.310315637 701.994097731 258.986765473C701.994097731 258.986765473 701.994097731 258.986704572 701.994097731 258.986704572M712.575434965 258.815979889C712.575434965 262.229309678 712.12031801 265.358193063 711.210084102 268.202630043C710.356758421 271.047080556 709.105203714 273.49330881 707.45541998 275.541314804C705.80564978 277.589307264 703.729209973 279.182196304 701.226100558 280.319981922C698.779872305 281.457754008 695.992316485 282.02664005 692.863433101 282.02664005C690.758532413 282.02664005 688.824309041 281.770640993 687.060762985 281.258642878C685.297203396 280.746644763 683.846537559 280.177751953 682.708765474 279.55196445C682.708765474 279.55196445 682.708765474 296.874653054 682.708765474 296.874653054C682.708765474 296.874653054 672.383413764 296.874653054 672.383413764 296.874653054C672.383413764 296.874653054 672.383413764 237.909290945 672.383413764 237.909290945C674.488300919 237.340411669 677.076745608 236.799972974 680.148747832 236.287974859C683.220750055 235.77596321 686.463422829 235.519957386 689.876766152 235.519957386C693.403871796 235.519957386 696.561202528 236.060402848 699.348758347 237.141293773C702.136314166 238.222184697 704.497200378 239.786633156 706.431416983 241.83463915C708.422528283 243.825750449 709.930088814 246.271971936 710.954098578 249.17330361C712.034989502 252.017754124 712.575434965 255.23197955 712.575434965 258.815979889C712.575434965 258.815979889 712.575434965 258.815979889 712.575434965 258.815979889" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path912" ns0:pathData="M721.742091849 258.986704572C721.742091849 255.061363134 722.310984659 251.619585998 723.448770278 248.661373163C724.643437057 245.703146794 726.20787875 243.25691854 728.142095355 241.322688402C730.076325493 239.331577103 732.29499527 237.852470685 734.798104684 236.885369149C737.301214099 235.861359386 739.861211441 235.349354504 742.47809671 235.349354504C748.622101158 235.349354504 753.400768276 237.255137295 756.814098066 241.066702878C760.28432255 244.878254927 762.019434791 250.567142421 762.019434791 258.133365358C762.019434791 258.702258168 761.991014511 259.356479485 761.934173951 260.09602931C761.934173951 260.778697975 761.90575367 261.404478712 761.84891311 261.973371521C761.84891311 261.973371521 732.408913226 261.973371521 732.408913226 261.973371521C732.693359631 265.55737186 733.944914338 268.344927679 736.163577348 270.336038979C738.439135052 272.270255584 741.710248406 273.237363886 745.976917409 273.237363886C748.480026824 273.237363886 750.755584528 273.009812176 752.803590521 272.554708755C754.908477676 272.099591801 756.558254643 271.616034266 757.752921423 271.104036151C757.752921423 271.104036151 759.118251985 279.55202535 759.118251985 279.55202535C758.549359176 279.836471755 757.752914656 280.149365507 756.728918426 280.490706606C755.761803357 280.77515301 754.624024505 281.031152068 753.31558187 281.258703778C752.064020396 281.543150183 750.698689833 281.770701893 749.219590183 281.941358909C747.740476998 282.112029459 746.232916467 282.197364734 744.696908588 282.197364734C740.771580684 282.197364734 737.358250894 281.628478691 734.45691922 280.490706606C731.555574012 279.296039826 729.166240453 277.674703439 727.288918542 275.626697446C725.411583098 273.521810291 724.017805188 271.075588804 723.107584814 268.288032985C722.197350905 265.443582472 721.742233951 262.343139667 721.742233951 258.986704572C721.742233951 258.986704572 721.742091849 258.986704572 721.742091849 258.986704572M751.694103382 254.378701237C751.694103382 252.956482747 751.494992252 251.619592765 751.096769992 250.368031291C750.698547732 249.059588656 750.101214342 247.950257151 749.304769822 247.040036776C748.565219997 246.072921707 747.626552275 245.333365115 746.488766656 244.821367C745.407875732 244.25247419 744.099433097 243.968027785 742.563438752 243.968027785C740.970549712 243.968027785 739.576771803 244.280914771 738.382105023 244.906688741C737.187438243 245.47558155 736.163435247 246.24358549 735.310096032 247.210700559C734.513651513 248.177815628 733.887877542 249.287147133 733.432774122 250.538695073C732.977657168 251.790256547 732.664763416 253.070258602 732.494092866 254.378701237C732.494092866 254.378701237 751.694103382 254.378701237 751.694103382 254.378701237" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
<path ns0:name="path914" ns0:pathData="M799.31277011 245.760027955C798.459430896 245.47558155 797.264764117 245.191135146 795.728769771 244.906688741C794.249656587 244.565361175 792.514544345 244.394697393 790.523433046 244.394697393C789.385660961 244.394697393 788.162546834 244.508473248 786.854090666 244.736024958C785.602542725 244.963576668 784.720769697 245.162687798 784.208771582 245.333358348C784.208771582 245.333358348 784.208771582 281.088039995 784.208771582 281.088039995C784.208771582 281.088039995 773.883440173 281.088039995 773.883440173 281.088039995C773.883440173 281.088039995 773.883440173 238.592027277 773.883440173 238.592027277C775.874551472 237.852477452 778.349213539 237.169808787 781.307426374 236.544021283C784.322547437 235.861352619 787.650548719 235.520018287 791.291430219 235.520018287C791.974098883 235.520018287 792.770543403 235.576926514 793.680763778 235.69074297C794.590984153 235.74758353 795.501204528 235.861359386 796.411424903 236.032070536C797.321658811 236.145886991 798.203438605 236.316550774 799.056764286 236.544061884C799.9101035 236.714732433 800.592772165 236.885402983 801.10477028 237.056073532C801.10477028 237.056073532 799.31277011 245.760027955 799.31277011 245.760027955" ns0:fillColor="#ffffff" ns0:fillAlpha="1.0" ns0:strokeWidth="0.130335348081"/>
</group>
</group>
</group>
</vector>

@ -0,0 +1,15 @@
<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="layer1-6">
<group ns0:name="g7294">
<group ns0:name="layer1-7"/>
<group ns0:name="layer1-3">
<group ns0:name="g6">
<path ns0:name="path2-5" ns0:pathData="M534.107506251 261.246933531C534.107506251 261.246933531 568.215083596 397.677242907 568.215083596 397.677242907C568.215083596 397.677242907 568.215083596 517.053763612 568.215083596 517.053763612C568.215083596 521.576709582 566.418350305 525.914407461 563.220144538 529.112613227C560.021938772 532.310818993 555.684240894 534.107552284 551.161294923 534.107552284C551.161294923 534.107552284 448.838562891 534.107552284 448.838562891 534.107552284C444.315616921 534.107552284 439.977919042 532.310818993 436.779713276 529.112613227C433.58150751 525.914407461 431.784774219 521.576709582 431.784774219 517.053763612C431.784774219 517.053763612 431.784774219 397.677242907 431.784774219 397.677242907C431.784774219 397.677242907 465.892351563 261.246933531 465.892351563 261.246933531C465.892351563 261.246933531 534.107506251 261.246933531 534.107506251 261.246933531" ns0:fillColor="#7ac0f8" ns0:fillAlpha="1.0" ns0:strokeAlpha="1.0"/>
<path ns0:name="path4" ns0:pathData="M737.367349987 397.677242907C737.793694704 397.144312011 737.900280883 396.931139653 738.3266256 396.398208757C738.3266256 396.398208757 678.31860671 284.589306776 678.31860671 284.589306776C673.67800263 270.637925736 660.619332092 261.23052821 645.916408233 261.246933531C645.916408233 261.246933531 534.107506251 261.246933531 534.107506251 261.246933531C534.107506251 261.246933531 568.215083596 397.677242907 568.215083596 397.677242907C568.215083596 397.677242907 737.367349987 397.677242907 737.367349987 397.677242907M431.784774219 397.677242907C431.784774219 397.677242907 465.892351563 261.246933531 465.892351563 261.246933531C465.892351563 261.246933531 354.083449582 261.246933531 354.083449582 261.246933531C339.380525723 261.23052821 326.321855184 270.637925736 321.681251105 284.589306776C321.681251105 284.589306776 261.673232215 396.398208757 261.673232215 396.398208757C262.099576932 396.931139653 262.206163111 397.144312011 262.632507828 397.677242907C262.632507828 397.677242907 431.784774219 397.677242907 431.784774219 397.677242907M568.215083596 431.784820252C568.215083596 431.784820252 568.215083596 517.053763612 568.215083596 517.053763612C568.215083596 521.576709582 566.418350305 525.914407461 563.220144538 529.112613227C560.021938772 532.310818993 555.684240894 534.107552284 551.161294923 534.107552284C551.161294923 534.107552284 448.838562891 534.107552284 448.838562891 534.107552284C444.315616921 534.107552284 439.977919042 532.310818993 436.779713276 529.112613227C433.58150751 525.914407461 431.784774219 521.576709582 431.784774219 517.053763612C431.784774219 517.053763612 431.784774219 431.784820252 431.784774219 431.784820252C431.784774219 431.784820252 261.246887498 431.784820252 261.246887498 431.784820252C261.246887498 431.784820252 261.246887498 704.645439005 261.246887498 704.645439005C261.246887498 713.691330945 264.840354079 722.366726702 271.236765612 728.763138235C277.633177145 735.159549768 286.308572902 738.753016349 295.354464842 738.753016349C295.354464842 738.753016349 704.645392972 738.753016349 704.645392972 738.753016349C713.691284912 738.753016349 722.366680669 735.159549768 728.763092202 728.763138235C735.159503735 722.366726702 738.752970316 713.691330945 738.752970316 704.645439005C738.752970316 704.645439005 738.752970316 431.784820252 738.752970316 431.784820252C738.752970316 431.784820252 568.215083596 431.784820252 568.215083596 431.784820252" ns0:fillColor="#f7fbff" ns0:fillAlpha="1.0"/>
</group>
</group>
</group>
</group>
</group>
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

@ -1,11 +1,8 @@
#!/bin/bash
echo "Generating credits files..."
echo "Generating credits file..."
cd www
yarn licenses generate-disclaimer > ../license-credits.md
cd ..
yarn licenses generate-disclaimer >> license-credits.md
npx generate-license-file --ci --no-spinner --input www/package.json --output license-credits.txt --overwrite
cp www/pages/credits.template.html www/pages/credits.html
sed -e "/{{credits}}/r license-credits.md" -e "/{{credits}}/d" -i www/pages/credits.html
sed -e "/{{credits}}/r license-credits.txt" -e "/{{credits}}/d" -i www/pages/credits.html

@ -11,8 +11,8 @@ DIR="$(pwd)/www/node_modules"
cd $DIR
rm -rf {ansicolors,buffer-from,cardinal,chartjs-color,chartjs-color-string,color-convert,color-name}
rm -rf {concat-stream,core-util-is,csscolorparser,dom7,earcut,esprima,geojson-vt}
rm -rf {gl-matrix,grid-index,ieee754,inherits,isarray,kdbush,leaflet-geometryutil,@mapbox,minimist}
rm -rf {moment,murmurhash-js,path-to-regexp,pbf,potpack,process-nextick-args}
rm -rf {gl-matrix,grid-index,ieee754,inherits,isarray,kdbush,leaflet-geometryutil,@mapbox,mapbox-gl}
rm -rf {minimist,moment,murmurhash-js,path-to-regexp,pbf,potpack,process-nextick-args}
rm -rf {protocol-buffers-schema,quickselect,readable-stream,redeyed,resolve-protobuf-schema}
rm -rf {rw,safe-buffer,sharkdown,split,ssr-window,string_decoder,supercluster}
rm -rf {template7,text-encoding,through,tinyqueue,ts-custom-error,typedarray}
@ -85,9 +85,9 @@ cd material-design-icons
find . -maxdepth 1 -not -name '.' -not -name 'LICENSE' -not -name 'iconfont' -exec rm -rf {} \;
cd $DIR
cd mapbox-gl
cd maplibre-gl
rm -rf {build,flow-typed,src}
find dist -type f -not -name 'mapbox-gl.css' -not -name 'mapbox-gl.js' -delete
find dist -type f -not -name 'maplibre-gl.css' -not -name 'maplibre-gl.js' -delete
rm -rf dist/style-spec
cd $DIR

@ -0,0 +1,4 @@
#!/bin/bash
npm uninstall cordova-plugin-powermanagement-netsyms || true
cordova plugin rm cordova-plugin-powermanagement-netsyms || true

@ -84,7 +84,7 @@ Framework7 and FontAwesome both have a .fab class
/* Allow tapping/clicking on package markers
* when the location dot is overlapping them
*/
#mapbox .mapboxgl-user-location-dot {
#mapbox .maplibregl-user-location-dot, #mapbox .maplibregl-user-location-accuracy-circle {
pointer-events: none;
}
@ -96,6 +96,10 @@ Framework7 and FontAwesome both have a .fab class
transition: 10ms !important;
}
.fab-stacked-above {
bottom: calc(calc(calc(var(--f7-fab-margin) + var(--f7-safe-area-bottom)) + var(--f7-fab-size)) + var(--f7-fab-margin)) !important;
}
/*
Allow easily changing help text to reflect finger/mouse usage.
*/

@ -27,25 +27,25 @@
color: rgba(255,100,100,0.3) !important;
}
#app.oled-burn-in .mapboxgl-ctrl-group {
#app.oled-burn-in .maplibregl-ctrl-group {
background: #222;
}
#app.oled-burn-in .mapboxgl-ctrl-group .mapboxgl-ctrl-icon {
#app.oled-burn-in .maplibregl-ctrl-group .maplibregl-ctrl-icon {
filter: invert(69%) sepia(0%) saturate(28%) hue-rotate(215deg) brightness(88%) contrast(91%);
}
#app.oled-burn-in .mapboxgl-ctrl-scale {
#app.oled-burn-in .maplibregl-ctrl-scale {
background-color: #222;
color: #ccc;
border: 2px solid #333;
border-top: none;
}
#app.oled-burn-in .mapboxgl-ctrl-group .mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon {
#app.oled-burn-in .maplibregl-ctrl-group .maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon {
filter: contrast(30%);
}
#app.oled-burn-in .mapboxgl-ctrl-group .mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon {
#app.oled-burn-in .maplibregl-ctrl-group .maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon {
filter: contrast(30%);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 843 B

After

Width:  |  Height:  |  Size: 806 B

@ -16,9 +16,9 @@
viewBox="0 0 512 512"
version="1.1"
id="svg4"
sodipodi:docname="box-solid.svg"
sodipodi:docname="box.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/PackageHelper/www/assets/images/box-solid.png"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/Apps/Native/PackageHelper/www/assets/images/box.png"
inkscape:export-xdpi="9.3800001"
inkscape:export-ydpi="9.3800001">
<metadata
@ -45,19 +45,20 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
inkscape:window-height="1015"
id="namedview6"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="-52.067797"
inkscape:cy="256"
inkscape:window-x="0"
inkscape:zoom="0.65186406"
inkscape:cx="-129.97382"
inkscape:cy="359.44038"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<path
d="M 504.64368,185.96782 455.01303,37.07586 C 448.63755,17.851339 430.68812,4.9042123 410.38467,4.9042123 H 271.69349 V 193.22605 h 234.1272 c -0.39234,-2.4521 -0.39234,-4.90421 -1.17701,-7.25823 z M 240.30651,4.9042123 H 101.61532 c -20.303445,0 -38.25287,12.9471267 -44.628349,32.1716477 L 7.3563195,185.96782 c -0.7846743,2.35402 -0.7846743,4.80613 -1.1770115,7.25823 H 240.30651 Z M 4.9042123,224.61303 v 235.4023 c 0,25.99233 21.0881227,47.08046 47.0804597,47.08046 H 460.01533 c 25.99233,0 47.08046,-21.08813 47.08046,-47.08046 v -235.4023 z"
d="M 492.47269,189.3774 445.27144,47.734379 C 439.20804,29.445821 422.13722,17.129037 402.82762,17.129037 H 270.92531 V 196.28225 h 222.66677 c -0.37313,-2.33272 -0.37313,-4.66544 -1.11939,-6.90485 z M 241.07471,17.129037 H 109.1724 c -19.309601,0 -36.380409,12.316784 -42.443811,30.605342 L 19.527338,189.3774 c -0.746264,2.23941 -0.746264,4.57213 -1.119397,6.90485 H 241.07471 Z M 17.195261,226.14113 v 223.94152 c 0,24.72687 20.055867,44.78831 44.77589,44.78831 H 450.02888 c 24.72001,0 44.77589,-20.06144 44.77589,-44.78831 V 226.14113 Z"
id="path2"
style="fill:currentColor;stroke:#ffffff;stroke-width:9.80842876;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="fill:currentColor;stroke:#ffffff;stroke-width:31.50000191;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0" />
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -20,7 +20,7 @@
width="512"
height="512"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/PackageHelper/www/assets/images/boxes.png"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/Apps/Native/PackageHelper/www/assets/images/boxes.png"
inkscape:export-xdpi="9.3800001"
inkscape:export-ydpi="9.3800001">
<metadata
@ -47,19 +47,20 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
inkscape:window-height="1015"
id="namedview6"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="-20.067797"
inkscape:cx="-445.28814"
inkscape:cy="256"
inkscape:window-x="0"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<path
d="m 493.65188,283.95905 h -69.89761 v 83.87713 l -27.95905,-18.61024 -27.95904,18.61024 v -83.87713 h -69.89761 c -7.68874,0 -13.97953,6.29078 -13.97953,13.97952 v 167.75427 c 0,7.68873 6.29079,13.97952 13.97953,13.97952 h 195.71331 c 7.68873,0 13.97952,-6.29079 13.97952,-13.97952 V 297.93857 c 0,-7.68874 -6.29079,-13.97952 -13.97952,-13.97952 z M 158.14334,228.04096 h 195.71332 c 7.68873,0 13.97952,-6.29078 13.97952,-13.97952 V 46.307167 c 0,-7.688738 -6.29079,-13.979523 -13.97952,-13.979523 H 283.95904 V 116.20478 L 256,97.594536 228.04096,116.20478 V 32.327644 h -69.89762 c -7.68873,0 -13.97952,6.290785 -13.97952,13.979523 V 214.06144 c 0,7.68874 6.29079,13.97952 13.97952,13.97952 z m 55.91809,55.91809 h -69.89761 v 83.87713 L 116.20478,349.22594 88.245734,367.83618 V 283.95905 H 18.348123 c -7.688738,0 -13.9795227,6.29078 -13.9795227,13.97952 v 167.75427 c 0,7.68873 6.2907847,13.97952 13.9795227,13.97952 H 214.06143 c 7.68874,0 13.97953,-6.29079 13.97953,-13.97952 V 297.93857 c 0,-7.68874 -6.29079,-13.97952 -13.97953,-13.97952 z"
d="M 483.13889,282.71325 H 416.33334 V 362.853 L 389.61111,345.07199 362.88889,362.853 v -80.13975 h -66.80555 c -7.34862,0 -13.36112,6.01048 -13.36112,13.35662 v 160.27951 c 0,7.34614 6.0125,13.35663 13.36112,13.35663 h 187.05555 c 7.3486,0 13.36111,-6.01049 13.36111,-13.35663 V 296.06987 c 0,-7.34614 -6.01251,-13.35662 -13.36111,-13.35662 z m -320.66667,-53.4265 h 187.05556 c 7.34861,0 13.36111,-6.01048 13.36111,-13.35663 V 55.650611 c 0,-7.346144 -6.0125,-13.356626 -13.36111,-13.356626 H 282.72222 V 122.43374 L 256,104.65272 229.27778,122.43374 V 42.293985 h -66.80556 c -7.34861,0 -13.36111,6.010482 -13.36111,13.356626 V 215.93012 c 0,7.34615 6.0125,13.35663 13.36111,13.35663 z m 53.44444,53.4265 H 149.11111 V 362.853 L 122.38889,345.07199 95.666667,362.853 V 282.71325 H 28.861112 C 21.5125,282.71325 15.5,288.72373 15.5,296.06987 v 160.27951 c 0,7.34614 6.0125,13.35663 13.361112,13.35663 H 215.91666 c 7.34862,0 13.36112,-6.01049 13.36112,-13.35663 V 296.06987 c 0,-7.34614 -6.0125,-13.35662 -13.36112,-13.35662 z"
id="path2"
style="fill:currentColor;stroke:#ffffff;stroke-width:8.73720169;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="fill:currentColor;stroke:#ffffff;stroke-width:31;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0" />
</svg>

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -18,7 +18,7 @@
id="svg4"
sodipodi:docname="check.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/PackageHelper/www/assets/images/check.png"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/Apps/Native/PackageHelper/www/assets/images/check.png"
inkscape:export-xdpi="9.3800001"
inkscape:export-ydpi="9.3800001">
<metadata
@ -29,7 +29,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -44,20 +44,29 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1680"
inkscape:window-height="991"
inkscape:window-width="1920"
inkscape:window-height="1013"
id="namedview6"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="-52.067797"
inkscape:cx="-477.28814"
inkscape:cy="256"
inkscape:window-x="1920"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:30;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="rect2099"
width="360.13559"
height="340.61017"
x="-429.55933"
y="84.610176"
transform="rotate(-90)" />
<path
d="m 507.00001,256 c 0,138.62386 -112.37614,251.00001 -251,251.00001 C 117.37615,507.00001 4.9999944,394.62386 4.9999944,256 4.9999944,117.37614 117.37615,4.99999 256.00001,4.99999 c 138.62386,0 251,112.37615 251,251.00001 z M 226.967,388.90248 413.19281,202.67666 c 6.32358,-6.32357 6.32358,-16.57712 0,-22.90071 l -22.90072,-22.90071 c -6.32357,-6.32459 -16.57712,-6.32459 -22.90172,0 L 215.51613,308.74846 144.60964,237.84197 c -6.32357,-6.32358 -16.57712,-6.32358 -22.90172,0 l -22.900724,22.90072 c -6.323577,6.32357 -6.323577,16.57713 0,22.90071 L 204.06527,388.90147 c 6.32459,6.32459 16.57713,6.32459 22.90173,10e-4 z"
d="M 497,256 C 497,389.10099 389.101,497 256.00001,497 122.89902,497 15.000002,389.10099 15.000002,256 15.000002,122.899 122.89902,14.999998 256.00001,14.999998 389.101,14.999998 497,122.899 497,256 Z M 228.1237,383.60755 406.93014,204.8011 c 6.07165,-6.07164 6.07165,-15.91668 0,-21.98834 L 384.9418,160.82443 c -6.07163,-6.07261 -15.91667,-6.07261 -21.9893,0 L 217.12904,306.64692 149.04751,238.5654 c -6.07164,-6.07165 -15.91668,-6.07165 -21.9893,0 l -21.98835,21.98834 c -6.071639,6.07163 -6.071639,15.91668 0,21.98833 l 101.06453,101.06451 c 6.07261,6.07262 15.91668,6.07262 21.98931,9.6e-4 z"
id="path2"
style="fill:#4caf50;stroke:#ffffff;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="fill:#4caf50;stroke:#ffffff;stroke-width:30;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0" />
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -18,7 +18,7 @@
id="svg4"
sodipodi:docname="envelope.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/PackageHelper/www/assets/images/envelope.png"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/Apps/Native/PackageHelper/www/assets/images/envelope.png"
inkscape:export-xdpi="9.3800001"
inkscape:export-ydpi="9.3800001">
<metadata
@ -29,7 +29,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -45,19 +45,20 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
inkscape:window-height="1015"
id="namedview6"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="-52.067797"
inkscape:cy="256"
inkscape:window-x="0"
inkscape:zoom="1.84375"
inkscape:cx="290.45453"
inkscape:cy="218.7895"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<path
d="m 497.58161,192.04909 c 3.82529,-3.04058 9.51418,-0.19576 9.51418,4.60991 v 200.58242 c 0,25.99234 -21.08812,47.08041 -47.08046,47.08041 H 51.984673 c -25.992337,0 -47.0804607,-21.08807 -47.0804607,-47.08041 V 196.75708 c 0,-4.90416 5.5908047,-7.65048 9.5141767,-4.60991 21.970881,17.06667 51.101916,38.74324 151.147891,111.42375 20.69579,15.10501 55.6138,46.88424 90.43372,46.68808 35.01609,0.29415 70.62069,-32.17157 90.5318,-46.68808 100.04598,-72.68051 129.07893,-94.45516 151.04981,-111.52183 z M 256,318.77401 c 22.75556,0.39253 55.51571,-28.64068 71.99387,-40.60692 130.15786,-94.45517 140.06437,-102.69425 170.07817,-126.23451 5.68888,-4.41374 9.02375,-11.27966 9.02375,-18.53791 v -18.636 c 0,-25.992326 -21.08812,-47.080502 -47.08046,-47.080502 H 51.984673 c -25.992337,0 -47.0804607,21.088176 -47.0804607,47.080502 v 18.636 c 0,7.25825 3.3348668,14.02609 9.0237547,18.53791 30.013794,23.44218 39.920307,31.77934 170.078173,126.23451 16.47815,11.96624 49.2383,40.99925 71.99386,40.60692 z"
d="m 487.14678,194.86572 c 3.66006,-2.90666 9.10322,-0.18714 9.10322,4.40687 v 191.74804 c 0,24.84754 -20.17724,45.00682 -45.04687,45.00682 H 60.796877 c -24.869629,0 -45.046876,-20.15928 -45.046876,-45.00682 V 199.36635 c 0,-4.68816 5.349317,-7.31352 9.103223,-4.40687 21.021875,16.31499 48.894629,37.03685 144.619236,106.51624 19.80186,14.43973 53.21163,44.81929 86.52754,44.63177 33.50361,0.28119 67.57031,-30.75462 86.62139,-44.63177 95.72461,-69.47939 123.50351,-90.29501 144.52539,-106.61 z M 256,316.00921 c 21.77266,0.37524 53.11778,-27.37924 68.88418,-38.81844 124.53584,-90.29502 134.01445,-98.17122 162.73184,-120.67468 5.44316,-4.21935 8.63398,-10.78287 8.63398,-17.72144 v -17.8152 c 0,-24.847528 -20.17724,-45.006903 -45.04687,-45.006903 H 60.796877 c -24.869629,0 -45.046876,20.159375 -45.046876,45.006903 v 17.8152 c 0,6.93857 3.190821,13.40833 8.633984,17.72144 28.717384,22.4097 38.195997,30.37966 162.731845,120.67468 15.7664,11.4392 47.11151,39.19349 68.88417,38.81844 z"
id="path2"
style="fill:currentColor;stroke:#ffffff;stroke-width:9.80842876;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="fill:currentColor;stroke:#ffffff;stroke-width:31.49999809;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0" />
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -21,7 +21,7 @@
width="512"
height="512"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/PackageHelper/www/assets/images/express.png"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/Apps/Native/PackageHelper/www/assets/images/express.png"
inkscape:export-xdpi="9.3800001"
inkscape:export-ydpi="9.3800001">
<metadata
@ -32,7 +32,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -57,19 +57,20 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
inkscape:window-height="1015"
id="namedview6"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="11.932203"
inkscape:cy="256"
inkscape:window-x="0"
inkscape:cx="214.32713"
inkscape:cy="323.29431"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<path
d="m 499.2,332.8 h -12.8 v -86.48 c 0,-10.16 -4.08,-19.92 -11.28,-27.12 L 395.2,139.28 C 388,132.08 378.24,128 368.08,128 H 332.8 V 89.6 c 0,-21.2 -17.2,-38.4 -38.4,-38.4 H 89.600002 c -21.2,0 -38.4,17.2 -38.4,38.4 V 128 H 6.3999985 c -3.52,0 -6.4,2.88 -6.4,6.4 v 12.8 c 0,3.52 2.88,6.4 6.4,6.4 H 224 c 3.52,0 6.4,2.88 6.4,6.4 v 12.8 c 0,3.52 -2.88,6.4 -6.4,6.4 H 31.999999 c -3.52,0 -6.4,2.88 -6.4,6.4 v 12.8 c 0,3.52 2.88,6.4 6.4,6.4 H 198.4 c 3.52,0 6.4,2.88 6.4,6.4 V 224 c 0,3.52 -2.88,6.4 -6.4,6.4 H 6.3999985 c -3.52,0 -6.4,2.88 -6.4,6.4 v 12.8 c 0,3.52 2.88,6.4 6.4,6.4 H 172.8 c 3.52,0 6.4,2.88 6.4,6.4 v 12.8 c 0,3.52 -2.88,6.4 -6.4,6.4 H 51.200002 V 384 c 0,42.4 34.4,76.8 76.799998,76.8 42.4,0 76.8,-34.4 76.8,-76.8 h 102.4 c 0,42.4 34.4,76.8 76.8,76.8 42.4,0 76.8,-34.4 76.8,-76.8 h 38.4 c 7.04,0 12.8,-5.76 12.8,-12.8 v -25.6 c 0,-7.04 -5.76,-12.8 -12.8,-12.8 z M 128,422.4 c -21.2,0 -38.399998,-17.2 -38.399998,-38.4 0,-21.2 17.199998,-38.4 38.399998,-38.4 21.2,0 38.4,17.2 38.4,38.4 0,21.2 -17.2,38.4 -38.4,38.4 z m 256,0 c -21.2,0 -38.4,-17.2 -38.4,-38.4 0,-21.2 17.2,-38.4 38.4,-38.4 21.2,0 38.4,17.2 38.4,38.4 0,21.2 -17.2,38.4 -38.4,38.4 z M 448,256 H 332.8 v -89.6 h 35.28 L 448,246.32 Z"
d="m 489.7,329.7718 h -12.3 v -83.07012 c 0,-9.7594 -3.92063,-19.13456 -10.83938,-26.05067 L 389.7625,143.88223 c -6.91875,-6.91611 -16.2975,-10.83524 -26.06063,-10.83524 H 329.8 V 96.161091 c 0,-20.364093 -16.52813,-36.885903 -36.9,-36.885903 H 96.100003 c -20.371875,0 -36.9,16.52181 -36.9,36.885903 V 133.04699 H 16.149999 c -3.3825,0 -6.1499998,2.76644 -6.1499998,6.14765 v 12.2953 c 0,3.38121 2.7674998,6.14765 6.1499998,6.14765 H 225.25 c 3.3825,0 6.15,2.76645 6.15,6.14765 v 12.2953 c 0,3.38121 -2.7675,6.14765 -6.15,6.14765 H 40.75 c -3.3825,0 -6.15,2.76645 -6.15,6.14765 v 12.29531 c 0,3.3812 2.7675,6.14765 6.15,6.14765 h 159.9 c 3.3825,0 6.15,2.76644 6.15,6.14765 v 12.2953 c 0,3.3812 -2.7675,6.14765 -6.15,6.14765 H 16.149999 c -3.3825,0 -6.1499998,2.76644 -6.1499998,6.14765 v 12.2953 c 0,3.38121 2.7674998,6.14765 6.1499998,6.14765 H 176.05 c 3.3825,0 6.15,2.76644 6.15,6.14765 v 12.2953 c 0,3.38121 -2.7675,6.14765 -6.15,6.14765 H 59.200003 v 98.36241 c 0,40.72818 33.05625,73.7718 73.799997,73.7718 40.74375,0 73.8,-33.04362 73.8,-73.7718 h 98.4 c 0,40.72818 33.05625,73.7718 73.8,73.7718 40.74375,0 73.8,-33.04362 73.8,-73.7718 h 36.9 c 6.765,0 12.3,-5.53289 12.3,-12.2953 V 342.0671 c 0,-6.76241 -5.535,-12.2953 -12.3,-12.2953 z M 133,415.83891 c -20.37188,0 -36.899997,-16.52181 -36.899997,-36.8859 0,-20.3641 16.528117,-36.88591 36.899997,-36.88591 20.37187,0 36.9,16.52181 36.9,36.88591 0,20.36409 -16.52813,36.8859 -36.9,36.8859 z m 246,0 c -20.37188,0 -36.9,-16.52181 -36.9,-36.8859 0,-20.3641 16.52812,-36.88591 36.9,-36.88591 20.37187,0 36.9,16.52181 36.9,36.88591 0,20.36409 -16.52813,36.8859 -36.9,36.8859 z M 440.5,256 H 329.8 v -86.06711 h 33.90187 L 440.5,246.70168 Z"
id="path2"
inkscape:connector-curvature="0"
style="fill:currentColor;stroke:#ffffff;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:currentColor;stroke:#ffffff;stroke-width:20;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -29,7 +29,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -45,19 +45,20 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
inkscape:window-height="1015"
id="namedview6"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="-451.93349"
inkscape:cy="107.74134"
inkscape:window-x="0"
inkscape:cx="-530.03518"
inkscape:cy="454.85998"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<path
d="m 117.95,255.99998 h 276.1 c 6.9025,0 12.55,-5.64696 12.55,-12.5488 V 67.76794 c 0,-6.901842 -5.6475,-12.548804 -12.55,-12.548804 H 306.19999 V 155.60955 l -50.2,-25.0976 -50.2,25.0976 V 55.219136 H 117.95 c -6.9025,0 -12.55,5.646962 -12.55,12.548804 v 175.68324 c 0,6.90184 5.6475,12.5488 12.55,12.5488 z m 376.5,100.39042 c 6.9025,0 12.55,-5.64695 12.55,-12.5488 V 318.744 c 0,-6.90185 -5.6475,-12.54881 -12.55,-12.54881 H 17.55 C 10.6475,306.19519 5,311.84215 5,318.744 v 25.0976 c 0,6.90185 5.6475,12.5488 12.55,12.5488 H 55.2 v 50.19522 H 17.55 c -6.9025,0 -12.55,5.64695 -12.55,12.5488 v 25.09764 c 0,6.90184 5.6475,12.5488 12.55,12.5488 h 476.9 c 6.9025,0 12.55,-5.64696 12.55,-12.5488 v -25.09764 c 0,-6.90185 -5.6475,-12.5488 -12.55,-12.5488 H 456.8 V 356.3904 Z M 230.89999,406.58562 H 105.4 V 356.3904 h 125.49999 z m 175.70001,0 H 281.09999 V 356.3904 H 406.6 Z"
d="m 123.45,255.99998 h 265.1 c 6.6275,0 12.05,-5.41881 12.05,-12.04179 V 75.373001 c 0,-6.62299 -5.4225,-12.0418 -12.05,-12.0418 h -84.35001 v 96.334379 l -48.2,-24.08359 -48.2,24.08359 V 63.331201 H 123.45 c -6.6275,0 -12.05,5.41881 -12.05,12.0418 V 243.95819 c 0,6.62298 5.4225,12.04179 12.05,12.04179 z m 361.5,96.33439 c 6.6275,0 12.05,-5.4188 12.05,-12.04179 v -24.0836 c 0,-6.62299 -5.4225,-12.0418 -12.05,-12.0418 H 27.05 c -6.6275,0 -12.05,5.41881 -12.05,12.0418 v 24.0836 c 0,6.62299 5.4225,12.04179 12.05,12.04179 H 63.2 v 48.16721 H 27.05 c -6.6275,0 -12.05,5.41879 -12.05,12.04179 V 436.627 c 0,6.62299 5.4225,12.0418 12.05,12.0418 h 457.9 c 6.6275,0 12.05,-5.41881 12.05,-12.0418 v -24.08363 c 0,-6.623 -5.4225,-12.04179 -12.05,-12.04179 H 448.8 V 352.33437 Z M 231.89999,400.50158 H 111.4 v -48.16721 h 120.49999 z m 168.70001,0 H 280.09999 V 352.33437 H 400.6 Z"
id="path2"
inkscape:connector-curvature="0"
style="fill:currentColor;stroke:#ffffff;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:currentColor;stroke:#ffffff;stroke-width:30;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1006 B

@ -45,19 +45,20 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
inkscape:window-height="1015"
id="namedview6"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="-451.93349"
inkscape:cy="107.74134"
inkscape:window-x="0"
inkscape:cx="-443.25552"
inkscape:cy="281.30066"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<path
inkscape:connector-curvature="0"
style="fill:currentColor;stroke:#ffffff;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 67.75,256 h 175.7 c 6.9025,0 12.55,-5.64696 12.55,-12.5488 V 67.767965 c 0,-6.90184 -5.6475,-12.54881 -12.55,-12.54881 H 67.75 c -6.9025,0 -12.55,5.64697 -12.55,12.54881 V 243.4512 C 55.2,250.35304 60.8475,256 67.75,256 Z m 251,0 h 125.5 c 6.9025,0 12.55,-5.64696 12.55,-12.5488 V 117.96317 c 0,-6.90184 -5.6475,-12.5488 -12.55,-12.5488 h -125.5 c -6.9025,0 -12.55,5.64696 -12.55,12.5488 V 243.4512 c 0,6.90184 5.6475,12.5488 12.55,12.5488 z m 175.7,100.39042 c 6.9025,0 12.55,-5.64696 12.55,-12.5488 v -25.09761 c 0,-6.90184 -5.6475,-12.5488 -12.55,-12.5488 H 17.55 c -6.9025,0 -12.55,5.64696 -12.55,12.5488 v 25.09761 c 0,6.90184 5.6475,12.5488 12.55,12.5488 H 55.2 v 50.19521 H 17.55 c -6.9025,0 -12.55,5.64696 -12.55,12.5488 v 25.09761 c 0,6.90184 5.6475,12.5488 12.55,12.5488 h 476.9 c 6.9025,0 12.55,-5.64696 12.55,-12.5488 v -25.09761 c 0,-6.90184 -5.6475,-12.5488 -12.55,-12.5488 H 456.8 V 356.39042 Z M 230.9,406.58563 H 105.4 v -50.19521 h 125.5 z m 175.7,0 H 281.1 v -50.19521 h 125.5 z"
style="fill:currentColor;stroke:#ffffff;stroke-width:30;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 75.25,256 h 168.7 c 6.6275,0 12.05,-5.41881 12.05,-12.0418 V 75.373025 c 0,-6.622988 -5.4225,-12.041806 -12.05,-12.041806 H 75.25 c -6.6275,0 -12.05,5.418818 -12.05,12.041806 V 243.9582 C 63.2,250.58119 68.6225,256 75.25,256 Z m 241,0 h 120.5 c 6.6275,0 12.05,-5.41881 12.05,-12.0418 V 123.54021 c 0,-6.62298 -5.4225,-12.04179 -12.05,-12.04179 h -120.5 c -6.6275,0 -12.05,5.41881 -12.05,12.04179 V 243.9582 c 0,6.62299 5.4225,12.0418 12.05,12.0418 z m 168.7,96.33439 c 6.6275,0 12.05,-5.41881 12.05,-12.0418 v -24.0836 C 497,309.586 491.5775,304.1672 484.95,304.1672 H 27.05 c -6.6275,0 -12.05,5.4188 -12.05,12.04179 v 24.0836 c 0,6.62299 5.4225,12.0418 12.05,12.0418 H 63.2 v 48.16719 H 27.05 c -6.6275,0 -12.05,5.41881 -12.05,12.0418 v 24.0836 c 0,6.62299 5.4225,12.0418 12.05,12.0418 h 457.9 c 6.6275,0 12.05,-5.41881 12.05,-12.0418 v -24.0836 c 0,-6.62299 -5.4225,-12.0418 -12.05,-12.0418 H 448.8 V 352.33439 Z M 231.9,400.50158 H 111.4 v -48.16719 h 120.5 z m 168.7,0 H 280.1 v -48.16719 h 120.5 z"
id="path2-6" />
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -20,7 +20,7 @@
width="512"
height="512"
inkscape:version="0.92.3 (2405546, 2018-03-11)"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/PackageHelper/www/assets/images/multiple-items.png"
inkscape:export-filename="/home/skylar/Documents/Projects/Sources/Apps/Native/PackageHelper/www/assets/images/multiple-items.png"
inkscape:export-xdpi="9.3800001"
inkscape:export-ydpi="9.3800001">
<metadata
@ -46,20 +46,21 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1680"
inkscape:window-height="991"
inkscape:window-width="1920"
inkscape:window-height="1015"
id="namedview6"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="-20.067797"
inkscape:cy="256"
inkscape:zoom="0.65186406"
inkscape:cx="-175.30252"
inkscape:cy="318.51884"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<path
d="m 144.70646,422.94033 c -22.25872,0 -44.51743,-19.47637 -55.64678,-27.82338 C 33.412906,356.1642 16.718874,342.25252 5.5895199,333.90549 v 116.85823 c 0,15.36372 12.4596611,27.82338 27.8233861,27.82338 H 255.99999 c 15.36374,0 27.82339,-12.45966 27.82339,-27.82338 V 333.90549 c -11.12936,8.34703 -27.82339,22.25871 -83.47016,61.21146 -11.12935,8.34701 -33.38805,27.82338 -55.64676,27.82338 z M 255.99999,256 H 33.412906 C 18.049181,256 5.5895199,268.45967 5.5895199,283.8234 v 13.91169 c 22.2587091,16.69403 19.4763701,16.69403 100.1641901,75.12315 8.34702,5.56467 25.04104,22.25871 38.95275,22.25871 13.91169,0 30.60572,-16.69404 38.95273,-19.47639 80.68782,-58.42911 77.90548,-58.42911 100.16419,-75.12313 V 283.8234 C 283.82338,268.45967 271.36373,256 255.99999,256 Z M 478.5871,172.52984 H 200.35322 c -15.36372,0 -27.82338,12.45966 -27.82338,27.8234 v 27.82339 h 83.47015 c 28.87547,0 52.68186,22.1022 55.39463,50.27337 l 0.25216,-0.19129 V 395.11695 H 478.5871 c 15.36372,0 27.82338,-12.45968 27.82338,-27.8234 V 200.35324 c 0,-15.36374 -12.45966,-27.8234 -27.82338,-27.8234 z M 450.76371,283.8234 h -55.64678 v -55.64677 h 55.64678 z M 144.70646,200.35324 c 0,-30.68398 24.96279,-55.64678 55.64676,-55.64678 H 395.11693 V 61.236302 c 0,-15.363722 -12.45965,-27.823398 -27.82339,-27.823398 H 89.05968 c -15.363727,0 -27.823387,12.459676 -27.823387,27.823398 V 228.17663 h 83.470167 z"
d="M 146.66667,419.98589 C 124.8,419.98589 102.93333,400.8542 92,392.65492 37.333333,354.39153 20.933333,340.72606 9.9999999,332.52675 v 114.79012 c 0,15.09182 12.2402091,27.33098 27.3333331,27.33098 H 255.99999 c 15.09314,0 27.33334,-12.23916 27.33334,-27.33098 V 332.52675 c -10.93334,8.19931 -27.33334,21.86478 -82,60.12817 -10.93333,8.19928 -32.79999,27.33097 -54.66666,27.33097 z M 255.99999,255.99999 H 37.333333 c -15.093124,0 -27.3333331,12.23917 -27.3333331,27.331 v 13.66549 C 31.866666,313.39506 29.133333,313.39506 108.4,370.79013 c 8.2,5.46619 24.59999,21.86479 38.26667,21.86479 13.66667,0 30.06666,-16.3986 38.26666,-19.13171 79.26666,-57.39506 76.53333,-57.39506 98.4,-73.79364 v -16.39858 c 0,-15.09183 -12.2402,-27.331 -27.33334,-27.331 z M 474.66667,174.00705 H 201.33333 c -15.09312,0 -27.33333,12.23916 -27.33333,27.331 v 27.33098 h 81.99999 c 28.36689,0 51.75397,21.71104 54.41896,49.38365 l 0.24772,-0.1879 v 114.79014 h 164 c 15.09312,0 27.33333,-12.23918 27.33333,-27.331 V 201.33805 c 0,-15.09184 -12.24021,-27.331 -27.33333,-27.331 z m -27.33333,109.32394 h -54.66668 v -54.66196 h 54.66668 z M 146.66667,201.33805 c 0,-30.14095 24.52312,-54.66197 54.66666,-54.66197 H 392.66666 V 64.683139 c 0,-15.091821 -12.24019,-27.330992 -27.33333,-27.330992 H 92 c -15.093126,0 -27.333334,12.239171 -27.333334,27.330992 V 228.66903 h 82.000004 z"
id="path2"
inkscape:connector-curvature="0"
style="fill:currentColor;stroke:#fffafa;stroke-width:11.179039;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:currentColor;stroke:#fffafa;stroke-width:20;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -45,19 +45,20 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
inkscape:window-height="1015"
id="namedview6"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="-47.728814"
inkscape:cy="256"
inkscape:window-x="0"
inkscape:zoom="0.32593203"
inkscape:cx="-333.05608"
inkscape:cy="278.48961"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<path
inkscape:connector-curvature="0"
style="fill:currentColor;stroke:#ffffff;stroke-width:9.80799961;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 193.94336,405.45713 c -2.62221,-5.2622 -7.19108,-5.79553 -9.03996,-5.79553 -1.84888,0 -6.41775,0.52444 -8.90663,5.5022 l -6.81775,13.6355 c -5.6622,11.35995 -22.24879,10.10662 -26.20433,-1.85777 l -14.95994,-44.86203 -9.43107,28.33765 c -5.23553,15.69771 -19.893239,26.24878 -36.444279,26.24878 h -11.01329 c -7.85774,0 -14.22216,-6.36442 -14.22216,-14.22216 0,-7.85775 6.36442,-14.22216 14.22216,-14.22216 h 11.01329 c 4.29331,0 8.09774,-2.73777 9.45774,-6.80886 l 16.168809,-48.56868 c 2.93332,-8.71996 11.05773,-14.5866 20.2488,-14.5866 9.19108,0 17.31549,5.85775 20.23992,14.5866 l 12.33772,37.01317 c 17.55548,-14.39105 48.05313,-8.62218 58.66641,12.58661 1.68,3.35999 4.87998,5.28887 8.31997,5.56442 v -72.99523 l 113.77728,-112.9684 v -41.3776 H 220.4588 c -11.73328,0 -21.33324,-9.59996 -21.33324,-21.33324 V 28.44543 H 21.348551 c -11.8221703,0 -21.33324027,9.51107 -21.33324027,21.33325 v 412.44265 c 0,11.82217 9.51106997,21.33324 21.33324027,21.33324 H 320.01392 c 11.82217,0 21.33324,-9.51107 21.33324,-21.33324 v -35.5554 l -113.77728,-0.0978 c -14.32883,-0.27555 -27.18211,-8.24885 -33.62652,-21.11102 z m 147.4038,-268.65661 c 0,-5.59998 -2.22221,-11.02217 -6.22219,-15.02216 L 248.10312,34.66763 c -3.99998,-3.99998 -9.42218,-6.2222 -15.11104,-6.2222 h -5.4222 V 142.22272 H 341.34716 Z M 256.0142,336.85298 v 61.36863 h 61.32418 L 461.05331,253.5289 400.71579,193.19139 Z M 505.38201,177.18257 477.05324,148.8538 c -8.83552,-8.83552 -23.17323,-8.83552 -32.00875,0 l -24.22212,24.22212 60.33752,60.33751 24.22212,-24.22211 c 8.8444,-8.83552 8.8444,-23.17324 0,-32.00875 z"
style="fill:currentColor;stroke:#ffffff;stroke-width:30.00000191;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 197.60108,396.66571 c -2.46905,-4.95267 -6.77106,-5.45463 -8.51196,-5.45463 -1.74088,0 -6.04289,0.49359 -8.3864,5.17855 l -6.41954,12.83342 c -5.33148,10.69173 -20.94928,9.51213 -24.67379,-1.74849 l -14.08615,-42.22314 -8.88023,26.67076 c -4.92973,14.77434 -18.73131,24.70476 -34.315637,24.70476 H 81.957348 c -7.398783,0 -13.39147,-5.99004 -13.39147,-13.38556 0,-7.39555 5.992687,-13.38558 13.39147,-13.38558 h 10.370025 c 4.042546,0 7.624766,-2.57673 8.905327,-6.40835 l 15.22442,-45.71175 c 2.762,-8.20704 10.41187,-13.72858 19.06612,-13.72858 8.65424,0 16.30412,5.51317 19.05773,13.72858 l 11.61711,34.83596 c 16.5301,-13.54453 45.24643,-8.11501 55.23981,11.84623 1.58187,3.16235 4.59495,4.97777 7.83402,5.23712 V 320.95353 L 336.40367,214.6302 V 175.68654 H 222.5678 c -11.04796,0 -20.08721,-9.03527 -20.08721,-20.07837 V 41.830741 H 35.087202 c -11.13166,0 -20.087206,8.951606 -20.087206,20.078377 V 450.09089 c 0,11.12676 8.955546,20.07837 20.087206,20.07837 H 316.30809 c 11.13167,0 20.08721,-8.95161 20.08721,-20.07837 v -33.46395 l -107.13176,-0.092 c -13.49191,-0.25934 -25.59445,-7.76363 -31.66246,-19.86921 z M 336.3953,143.81212 c 0,-5.27057 -2.09241,-10.37382 -5.85876,-14.13852 L 248.59747,47.686936 c -3.76635,-3.764691 -8.87185,-5.856195 -14.22843,-5.856195 h -5.1055 V 148.91538 H 336.3953 Z m -80.34882,188.28489 v 57.75879 h 57.74235 L 449.10964,253.67426 392.29632,196.88595 Z M 490.84919,181.8188 464.17504,155.1564 c -8.31945,-8.31579 -21.81972,-8.31579 -30.13917,0 l -22.80735,22.79732 56.81331,56.78831 22.80736,-22.79731 c 8.32781,-8.31579 8.32781,-21.81013 0,-30.12592 z"
id="path2-3" />
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -29,7 +29,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@ -45,30 +45,31 @@
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1013"
inkscape:window-height="1015"
id="namedview6"
showgrid="false"
inkscape:zoom="0.4609375"
inkscape:cx="-451.93349"
inkscape:cx="-616.81485"
inkscape:cy="107.74134"
inkscape:window-x="0"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<g
id="g1063"
transform="matrix(0.84074873,0,0,0.84030597,772.08632,-86.536242)"
style="stroke-width:1.18972933">
transform="matrix(0.81903555,0,0,0.8184437,758.77857,-77.624464)"
style="stroke-width:1.22138965">
<path
id="path2-5"
d="m -606.48259,496.68926 c -2.40085,-4.818 -6.58404,-5.3064 -8.27685,-5.3064 -1.6928,0 -5.87599,0.4802 -8.15477,5.0378 l -6.24222,12.4845 c -5.18423,10.401 -20.37066,9.2534 -23.99229,-1.701 l -13.69709,-41.075 -8.63494,25.9455 c -4.79357,14.3726 -18.21395,24.033 -33.36783,24.033 h -10.0836 c -7.19443,0 -13.02159,-5.8271 -13.02159,-13.0216 0,-7.1944 5.82716,-13.0216 13.02159,-13.0216 h 10.0836 c 3.93089,0 7.41417,-2.5066 8.65936,-6.2341 l 14.80392,-44.46872 c 2.6857,-7.98386 10.12429,-13.35527 18.53949,-13.35527 8.41521,0 15.85379,5.36327 18.53136,13.35527 l 11.29623,33.8887 c 16.07353,-13.17623 43.99671,-7.89434 53.71407,11.52412 1.53818,3.0763 4.46803,4.8424 7.61763,5.0947 v -66.83334 l 104.17275,-103.43214 v -37.88469 h -110.69168 c -10.74282,0 -19.53239,-8.78958 -19.53239,-19.53239 V 151.50306 h -162.76991 c -10.8242,0 -19.53239,8.70819 -19.53239,19.53239 v 377.62621 c 0,10.8242 8.70819,19.5324 19.53239,19.5324 h 273.45345 c 10.8242,0 19.53239,-8.7082 19.53239,-19.5324 v -32.554 l -104.17275,-0.09 c -13.11925,-0.2523 -24.88752,-7.5525 -30.78793,-19.3289 z m 134.96068,-245.97794 c 0,-5.12725 -2.03462,-10.09174 -5.69695,-13.75406 L -556.89473,157.2 c -3.66232,-3.66232 -8.62681,-5.69694 -13.83544,-5.69694 h -4.96449 V 255.6758 h 104.17275 z m -78.12956,183.16498 v 56.18816 h 56.14748 l 131.5832,-132.47842 -55.24411,-55.24411 z m 228.31735,-146.1918 -25.93738,-25.93738 c -8.08966,-8.08967 -21.21706,-8.08967 -29.30672,0 l -22.1774,22.1774 55.24411,55.24411 22.17739,-22.1774 c 8.0978,-8.08967 8.0978,-21.21706 0,-29.30673 z"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:11.89729309;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:28.09196091;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="csssssscssc"
id="path2-7"
d="m -592.38477,599.76246 v 40 c 0,13.255 -10.745,24 -24,24 h -271.99997 c -13.255,0 -24,-10.745 -24,-24 v -368 c 0,-13.255 10.745,-24 24,-24 h 72 v 296 c 0,30.879 25.121,56 56,56 z"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:11.89729309;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="fill:#000000;fill-opacity:1;stroke:#ffffff;stroke-width:28.09196091;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -29,7 +29,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
@ -49,12 +49,13 @@
id="namedview6"
showgrid="false"
inkscape:zoom="0.921875"
inkscape:cx="-67.254237"
inkscape:cy="133.23159"
inkscape:window-x="0"
inkscape:cx="-19.525423"
inkscape:cy="306.79091"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect812"
@ -64,7 +65,7 @@
y="69.423721" />
<path
id="path885"
d="M 450.32446,8.677964 H 61.675533 c -29.270117,0 -52.9975695,23.727453 -52.9975695,52.997571 V 450.32445 c 0,29.27014 23.7274525,52.99759 52.9975695,52.99759 H 450.32446 c 29.27013,0 52.99758,-23.72745 52.99758,-52.99759 V 61.675535 c 0,-29.270118 -23.72745,-52.997571 -52.99758,-52.997571 z M 205.33984,262.73953 C 105.20973,190.0699 106.22996,189.88663 79.341395,168.95921 v -27.78729 c 0,-14.63507 11.863732,-26.49879 26.498815,-26.49879 h 300.3196 c 14.63508,0 26.4988,11.86372 26.4988,26.49879 v 27.78729 c -26.90843,20.94397 -25.87387,21.11511 -125.99844,93.78144 -11.5932,8.45199 -34.66043,28.83951 -50.66016,28.58999 -16.01299,0.24066 -39.04928,-20.12475 -50.66017,-28.59111 z m 227.31877,-48.94437 v 157.03293 c 0,14.63504 -11.86372,26.4988 -26.4988,26.4988 h -300.3196 c -14.635083,0 -26.498815,-11.86376 -26.498815,-26.4988 V 213.79516 c 15.411275,11.91785 36.799115,27.86349 105.225585,77.52442 15.63651,11.41766 41.92884,35.49182 71.42972,35.34278 29.68639,0.14793 56.35078,-24.33584 71.45842,-35.35935 68.4088,-49.64658 89.79222,-65.59112 105.20349,-77.50785 z"
d="M 447.32143,12.500001 H 64.678563 c -28.817786,0 -52.178561,23.360776 -52.178561,52.178563 V 447.32142 c 0,28.81781 23.360775,52.17858 52.178561,52.17858 H 447.32143 C 476.13923,499.5 499.5,476.13923 499.5,447.32142 V 64.678564 c 0,-28.817787 -23.36077,-52.178563 -52.17857,-52.178563 z M 206.12273,262.63538 C 107.54,191.08876 108.54446,190.90832 82.071422,170.30431 v -27.35787 c 0,-14.40891 11.680394,-26.08929 26.089308,-26.08929 h 295.67856 c 14.40891,0 26.08929,11.68038 26.08929,26.08929 v 27.35787 c -26.49259,20.62031 -25.47402,20.7888 -124.05129,92.33217 -11.41405,8.32138 -34.1248,28.39383 -49.87728,28.14817 -15.76553,0.23694 -38.44582,-19.81375 -49.87728,-28.14927 z m 223.80585,-48.188 v 154.60619 c 0,14.40888 -11.68038,26.0893 -26.08929,26.0893 H 108.16073 c -14.408914,0 -26.089308,-11.68042 -26.089308,-26.0893 V 214.44738 c 15.173114,11.73367 36.230438,27.4329 103.599468,76.32638 15.39486,11.24122 41.28088,34.94334 70.32586,34.7966 29.22763,0.14565 55.47996,-23.95976 70.35413,-34.81291 67.35163,-48.87936 88.4046,-64.5775 103.5777,-76.31007 z"
inkscape:connector-curvature="0"
style="fill:currentColor;stroke:#ffffff;stroke-width:10.00000095;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:currentColor;stroke:#ffffff;stroke-width:25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -29,7 +29,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -49,12 +49,13 @@
id="namedview6"
showgrid="false"
inkscape:zoom="0.921875"
inkscape:cx="-104.19093"
inkscape:cx="30.317545"
inkscape:cy="133.23159"
inkscape:window-x="0"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
inkscape:current-layer="svg4"
inkscape:pagecheckerboard="true" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10.00000095;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect917-3"
@ -66,7 +67,7 @@
id="path885"
d="M 255.50605,55.050864 H 66.934617 c -14.201783,0 -25.714281,11.51249 -25.714281,25.71428 V 269.33656 c 0,14.2018 11.512498,25.7143 25.714281,25.7143 H 255.50605 c 14.20179,0 25.71428,-11.5125 25.71428,-25.7143 V 80.765144 c 0,-14.20179 -11.51249,-25.71428 -25.71428,-25.71428 z M 136.64016,178.32086 C 88.057295,143.06174 88.552308,142.97282 75.506047,132.81889 v -13.48232 c 0,-7.10089 5.756251,-12.85714 12.857155,-12.85714 H 234.07748 c 7.1009,0 12.85714,5.75625 12.85714,12.85714 v 13.48232 c -13.0559,10.16196 -12.55393,10.245 -61.13411,45.50251 -5.62499,4.10088 -16.81715,13.99285 -24.58017,13.87179 -7.76946,0.11677 -18.94661,-9.76448 -24.58018,-13.87233 z m 110.29446,-23.74768 v 76.19196 c 0,7.10088 -5.75624,12.85715 -12.85714,12.85715 H 88.363202 c -7.100904,0 -12.857155,-5.75627 -12.857155,-12.85715 v -76.19196 c 7.47751,5.78251 17.854833,13.51929 51.055173,37.61464 7.58679,5.53982 20.34376,17.22054 34.65751,17.14822 14.40376,0.0718 27.34125,-11.80768 34.67144,-17.15626 33.19177,-24.08839 43.56695,-31.82464 51.04445,-37.6066 z"
inkscape:connector-curvature="0"
style="fill:currentColor;stroke:#ffffff;stroke-width:10.00000095;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
style="fill:currentColor;stroke:#ffffff;stroke-width:15;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect917"
@ -75,7 +76,7 @@
x="190.91525"
y="212.61017" />
<path
style="fill:currentColor;stroke:#ffffff;stroke-width:10.00000095;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="fill:currentColor;stroke:#ffffff;stroke-width:15;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature="0"
d="M 439.89346,165.76272 H 198.47941 c -18.1815,0 -32.92009,14.73859 -32.92009,32.92009 v 241.41404 c 0,18.18151 14.73859,32.92011 32.92009,32.92011 h 241.41405 c 18.1815,0 32.92009,-14.7386 32.92009,-32.92011 V 198.68281 c 0,-18.1815 -14.73859,-32.92009 -32.92009,-32.92009 z M 287.71826,323.57618 C 225.5212,278.43654 226.15494,278.3227 209.45278,265.32338 v -17.26042 c 0,-9.09074 7.3693,-16.46005 16.46006,-16.46005 h 186.54721 c 9.09075,0 16.46004,7.36931 16.46004,16.46005 v 17.26042 c -16.7145,13.0096 -16.07187,13.11591 -78.26548,58.25349 -7.20125,5.25006 -21.52975,17.91401 -31.46817,17.75903 -9.94666,0.14949 -24.25594,-12.50074 -31.46818,-17.75972 z m 141.20183,-30.4024 v 97.54293 c 0,9.09073 -7.36929,16.46006 -16.46004,16.46006 H 225.91284 c -9.09076,0 -16.46006,-7.36933 -16.46006,-16.46006 v -97.54293 c 9.5729,7.40292 22.85822,17.30775 65.36216,48.15524 9.7128,7.09223 26.04461,22.04619 44.36944,21.9536 18.44007,0.0919 35.00298,-15.1165 44.38728,-21.96389 42.49297,-30.83858 55.77554,-40.74273 65.34843,-48.14495 z"
id="path915" />

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

@ -56,6 +56,13 @@ $(".addpackagebtn").click(function () {
}
var address = ($("input[name=number]").val() + " " + $("input[name=street]").val()).toUpperCase();
var itemtype = $("input[name=itemtype]:checked").val();
if ($(this).hasClass("addpackagebtn-custom")) {
itemtype = $(this).data("addtype");
}
$("#no-history").addClass("display-none");
addPackageByAddress(
$("input[name=number]").val().toUpperCase(),
@ -63,7 +70,7 @@ $(".addpackagebtn").click(function () {
$("input[name=street]").val().toUpperCase(),
$("input[name=citystate]").val().toUpperCase(),
$("input[name=zipcode]").val().toUpperCase(),
$("input[name=itemtype]:checked").val(),
itemtype,
function (ids) {
var packageObj = getPackage(ids.packageID);
// Reset item type to default
@ -125,11 +132,13 @@ function toggleLettersInAddressNumber() {
$("#address-has-letters-checkbox").prop("checked", false);
$("#housenumberinput").attr("type", "number");
$("#housenumberinput").attr("placeholder", "1234");
$("#housenumberinput").attr("inputmode", "numeric");
} else {
// allow
$("#address-has-letters-checkbox").prop("checked", true);
$("#housenumberinput").attr("type", "text");
$("#housenumberinput").attr("placeholder", "1A2B3");
$("#housenumberinput").attr("inputmode", "text");
}
}

@ -5,8 +5,18 @@
*/
var sfx = {};
var sfxBuffers = {};
const AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext;
var sfxVolume = {
"alert": 100.0,
"ok": 100.0,
"error": 100.0,
"scan": 100.0
};
function initSFX() {
audioContext = new AudioContext();
if (getStorage("alertsound") == null) {
setStorage("alertsound", "sonar");
}
@ -14,15 +24,61 @@ function initSFX() {
setStorage("alertvolume", 100);
}
var alertNoiseFile = SETTINGS.alertsounds[getStorage("alertsound")].file;
var alertVolume = getStorage("alertvolume");
var noalertsound = false;
var alertNoiseFile = "";
if (getStorage("alertsound") == "NONE") {
noalertsound = true;
} else {
alertNoiseFile = SETTINGS.alertsounds[getStorage("alertsound")].file;
}
sfx = {
"alert": new Audio("assets/audio/" + alertNoiseFile),
"alert": noalertsound ? false : new Audio("assets/audio/" + alertNoiseFile),
"ok": new Audio("assets/audio/ok.mp3"),
"error": new Audio("assets/audio/error.mp3"),
"scan": new Audio("assets/audio/scan.mp3")
};
if (noalertsound == false) {
window.fetch("assets/audio/" + alertNoiseFile)
.then(response => response.arrayBuffer())
.then(arrayBuffer => audioContext.decodeAudioData(arrayBuffer,
audioBuffer => {
sfxBuffers.alert = audioBuffer;
},
error =>
console.error(error)
));
} else {
sfxBuffers.alert = false;
}
window.fetch("assets/audio/ok.mp3")
.then(response => response.arrayBuffer())
.then(arrayBuffer => audioContext.decodeAudioData(arrayBuffer,
audioBuffer => {
sfxBuffers.ok = audioBuffer;
},
error =>
console.error(error)
));
window.fetch("assets/audio/error.mp3")
.then(response => response.arrayBuffer())
.then(arrayBuffer => audioContext.decodeAudioData(arrayBuffer,
audioBuffer => {
sfxBuffers.error = audioBuffer;
},
error =>
console.error(error)
));
window.fetch("assets/audio/scan.mp3")
.then(response => response.arrayBuffer())
.then(arrayBuffer => audioContext.decodeAudioData(arrayBuffer,
audioBuffer => {
sfxBuffers.scan = audioBuffer;
},
error =>
console.error(error)
));
setVolume("alert", alertVolume);
}
@ -33,7 +89,18 @@ function initSFX() {
* @returns {undefined}
*/
function playSound(sound) {
sfx[sound].play();
if (sfxBuffers[sound] == false) {
return;
}
if (sfxVolume[sound] == 0) {
return;
}
const source = audioContext.createBufferSource();
source.buffer = sfxBuffers[sound];
const gainNode = audioContext.createGain();
gainNode.gain.value = sfxVolume[sound] / 100.0;
source.connect(gainNode).connect(audioContext.destination);
source.start();
}
/**
@ -42,7 +109,11 @@ function playSound(sound) {
* @param number volume Number in range 0 to 100
*/
function setVolume(sound, volume) {
sfx[sound].volume = volume / 100.0;
if (sfx[sound] == false) {
return;
}
//sfx[sound].volume = volume / 100.0;
sfxVolume[sound] = volume;
}
initSFX();

@ -135,6 +135,7 @@ function searchAutofillByStreet(q) {
}
function setupStreetAutofill(streetBox, numberBox) {
app.autocomplete.destroy(streetBox);
app.autocomplete.create({
inputEl: streetBox,
openIn: 'dropdown',

@ -145,9 +145,9 @@ function loadPackageList(sortType) {
+ '</div>'
+ '<div class="accordion-item-content">'
+ ' <div class="row padding-horizontal">'
+ ' <a href="#" class="col deliver-btn button button-outline color-green" data-packageid="{{id}}">{{#if delivered}}<i class="fas fa-undo"></i> Undeliver{{else}}<i class="fas fa-check"></i>&nbsp; Deliver{{/if}}</a>'
+ ' <a href="{{geolink}}" class="col geolink directions-btn button button-outline"><i class="fas fa-directions"></i> Directions</a>'
+ ' <a href="#" class="col delete-btn color-red button button-outline"><i class="fas fa-trash"></i> Delete</a>'
+ ' <a href="#" class="col deliver-btn button button-outline color-green hapticbtn" data-packageid="{{id}}">{{#if delivered}}<i class="fas fa-undo"></i> Undeliver{{else}}<i class="fas fa-check"></i>&nbsp; Deliver{{/if}}</a>'
+ ' <a href="{{geolink}}" class="col geolink directions-btn button button-outline hapticbtn"><i class="fas fa-directions"></i> Directions</a>'
+ ' <a href="#" class="col delete-btn color-red button button-outline hapticbtn"><i class="fas fa-trash"></i> Delete</a>'
+ ' </div>'
+ ' </div>'
+ '</div>'
@ -168,11 +168,11 @@ function loadPackageList(sortType) {
+ ' </div>'
+ '</div>'
+ '<div class="swipeout-actions-left">'
+ ' <a href="#" class="color-green deliver-btn" data-packageid="{{id}}">{{#if delivered}}<i class="fas fa-undo"></i> &nbsp; Undeliver{{else}}<i class="fas fa-check"></i>&nbsp; Deliver{{/if}}</a>'
+ ' <a href="{{geolink}}" class="color-blue directions-btn"><i class="material-icons">directions</i></a>'
+ ' <a href="#" class="color-green deliver-btn hapticbtn" data-packageid="{{id}}">{{#if delivered}}<i class="fas fa-undo"></i> &nbsp; Undeliver{{else}}<i class="fas fa-check"></i>&nbsp; Deliver{{/if}}</a>'
+ ' <a href="{{geolink}}" class="color-blue directions-btn hapticbtn"><i class="material-icons">directions</i></a>'
+ '</div>'
+ '<div class="swipeout-actions-right">'
+ ' <a href="#" class="color-red delete-btn"><i class="material-icons">delete</i>&nbsp; Delete</a>'
+ ' <a href="#" class="color-red delete-btn hapticbtn"><i class="material-icons">delete</i>&nbsp; Delete</a>'
+ '</div>'
+ '</li>';

@ -41,77 +41,79 @@ var geoerrorcount = 0;
var mapLocationControlStarted = false;
if ("geolocation" in navigator) {
navigator.geolocation.watchPosition(function (position) {
userPosition.coords = position.coords;
userPosition.updated = time();
setStorage("user_latitude", userPosition.coords.latitude);
setStorage("user_longitude", userPosition.coords.longitude);
if (mapLocationControlStarted) {
// Don't refresh at an interval less than ten seconds
var currentTimestamp = Math.floor(Date.now() / 1000);
if (lastGpsUpdateTimestamp < (currentTimestamp - 10)) {
updateDistances(position.coords.latitude, position.coords.longitude);
var alertinterval = getStorage("alertinterval");
if (alertinterval == null) {
alertinterval = 30;
} else {
alertinterval = alertinterval * 1;
}
function setupPositionWatcher() {
if ("geolocation" in navigator) {
navigator.geolocation.watchPosition(function (position) {
userPosition.coords = position.coords;
userPosition.updated = time();
setStorage("user_latitude", userPosition.coords.latitude);
setStorage("user_longitude", userPosition.coords.longitude);
if (mapLocationControlStarted) {
// Don't refresh at an interval less than ten seconds
var currentTimestamp = Math.floor(Date.now() / 1000);
if (lastGpsUpdateTimestamp < (currentTimestamp - 10)) {
updateDistances(position.coords.latitude, position.coords.longitude);
var alertinterval = getStorage("alertinterval");
if (alertinterval == null) {
alertinterval = 30;
} else {
alertinterval = alertinterval * 1;
}
lastGpsUpdateTimestamp = currentTimestamp;
for (var i = 0; i < packages.length; i++) {
if (packages[i].distance * 1 < getStorage("alertradius") * 1) {
lastGpsUpdateTimestamp = currentTimestamp;
for (var i = 0; i < packages.length; i++) {
if (packages[i].distance * 1 < getStorage("alertradius") * 1) {
if (packages[i].lastAlert > currentTimestamp - alertinterval) {
continue;
}
if (packages[i].lastAlert > currentTimestamp - alertinterval) {
continue;
}
if (getUndeliveredCount(packages[i]) == 0) {
continue;
}
if (getUndeliveredCount(packages[i]) == 0) {
continue;
}
try {
if (map != null) {
map.updatePackageLayer(packages);
try {
if (map != null) {
map.updatePackageLayer(packages);
}
loadPackageList();
} catch (ex) {
// It'll show up sooner or later anyways
}
loadPackageList();
} catch (ex) {
// It'll show up sooner or later anyways
}
playSound("alert");
packages[i].lastAlert = currentTimestamp;
playSound("alert");
packages[i].lastAlert = currentTimestamp;
}
}
}
} else {
if (map != null) {
map.startLocateControl();
mapLocationControlStarted = true;
}
}
} else {
if (map != null) {
map.startLocateControl();
mapLocationControlStarted = true;
}, function (err) {
if (typeof error == "function") {
error(err.message);
}
}
}, function (err) {
if (typeof error == "function") {
error(err.message);
}
}, {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
});
} else {
geoerrorcount++;
console.log("Warn", "Geolocation error #" + geoerrorcount + ": ", error);
// Stop showing error toasts if they're happening a lot
if (geoerrorcount <= 3) {
app.toast.show({
text: '<i class="fas fa-compass"></i> ' + error,
position: "bottom",
destroyOnClose: true,
closeTimeout: 1000 * 3
}, {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
});
} else {
geoerrorcount++;
console.log("Warn", "Geolocation error #" + geoerrorcount + ": ", error);
// Stop showing error toasts if they're happening a lot
if (geoerrorcount <= 3) {
app.toast.show({
text: '<i class="fas fa-compass"></i> ' + error,
position: "bottom",
destroyOnClose: true,
closeTimeout: 1000 * 3
});
}
}
}

@ -12,7 +12,7 @@ var app = new Framework7({
root: "#app",
name: "PackageHelper",
id: "com.netsyms.PackageHelper",
theme: "md",
theme: "auto",
card: {
swipeToClose: false
},
@ -87,6 +87,10 @@ $(document).keyup(function (e) {
}
});
$(document).on("mousedown", ".hapticbtn,.input-clear-button,.button,.link,.fab", function () {
doHapticFeedback();
});
router.on("routeChange", function (newRoute) {
console.log("Info", "Navigating to ", newRoute.path);
});
@ -104,15 +108,25 @@ if (getStorage("alertvolume") == null) {
function setAppTheme(theme) {
if (theme == "light") {
$("#app").removeClass("theme-dark");
if (platform_type == "cordova" && cordova.platformId == 'android' && typeof StatusBar !== 'undefined') {
StatusBar.styleDefault();
StatusBar.backgroundColorByHexString("#E0E0E0");
if (platform_type == "cordova" && typeof StatusBar !== 'undefined') {
if (cordova.platformId == 'android') {
StatusBar.styleDefault();
StatusBar.backgroundColorByHexString("#E0E0E0");
} else if (cordova.platformId == 'ios') {
StatusBar.styleDefault();
StatusBar.backgroundColorByHexString("#F6F6F6");
}
}
} else if (theme == "dark" || theme == "oleddark") {
$("#app").addClass("theme-dark");
if (platform_type == "cordova" && cordova.platformId == 'android' && typeof StatusBar !== 'undefined') {
StatusBar.styleLightContent();
StatusBar.backgroundColorByHexString("#000000");
if (platform_type == "cordova" && typeof StatusBar !== 'undefined') {
if (cordova.platformId == 'android') {
StatusBar.styleLightContent();
StatusBar.backgroundColorByHexString("#000000");
} else if (cordova.platformId == 'ios') {
StatusBar.styleLightContent();
StatusBar.backgroundColorByHexString("#161616");
}
}
}
@ -174,7 +188,4 @@ function setAnimations(enabled) {
}
}
applyColorTheme();
setAnimations();
router.navigate("/home");

@ -14,7 +14,7 @@ function createMap() {
}
maptype = getStorage("maptype");
if (maptype == "mapbox") {
if (mapboxgl.supported()) {
if (maplibregl.supported()) {
map = mapboxMap();
} else {
console.log("Warn", "mapbox-gl not supported, falling back to Leaflet");

@ -17,12 +17,21 @@ function leafletMap() {
map.maptype = "leaflet";
if (getStorage("mapsource") == null) {
setStorage("mapsource", "liberty");
setStorage("mapsource", "auto");
}
mapsource = getStorage("mapsource");
$("#mapbox").css("background-color", SETTINGS.maptileurls[getStorage("mapsource")].bgcolor);
if (mapsource == "auto") {
if ($("#app").hasClass("theme-dark")) {
mapsource = "libertydark";
} else {
mapsource = "liberty";
}
}
$("#mapbox").css("background-color", SETTINGS.maptileurls[mapsource].bgcolor);
L.tileLayer(SETTINGS.maptileurls[getStorage("mapsource")].url, {
L.tileLayer(SETTINGS.maptileurls[mapsource].url, {
minZoom: 1,
maxZoom: 19
}).addTo(map);
@ -79,7 +88,7 @@ function leafletMap() {
var iconName = getMapIconForItems(datai.items);
//console.log(iconName);
var classes = "package-marker package-marker-leaflet";
var classes = "package-marker package-marker-leaflet hapticbtn";
// Prevent selection highlight from going away after map refresh
if (map.openedPanelIconID != null && map.openedPanelIconID == datai.id) {

@ -10,17 +10,30 @@ var firstload = true;
function mapboxMap() {
/* Pre-load workers and stuff, and enable re-using them even after map unloaded */
maplibregl.prewarm();
var mapsource = "auto";
if (getStorage("mapsource") == null) {
setStorage("mapsource", "liberty");
setStorage("mapsource", "auto");
}
mapsource = getStorage("mapsource");
if (mapsource == "auto") {
if ($("#app").hasClass("theme-dark")) {
mapsource = "libertydark";
} else {
mapsource = "liberty";
}
}
$("#mapbox").css("background-color", SETTINGS.maptileurls[getStorage("mapsource")].bgcolor);
$("#mapbox").css("background-color", SETTINGS.maptileurls[mapsource].bgcolor);
mapboxgl.accessToken = '';
var map = new mapboxgl.Map({
maplibregl.accessToken = SETTINGS.mapboxpublictoken;
var map = new maplibregl.Map({
container: 'mapbox',
style: SETTINGS.maptileurls[getStorage("mapsource")].json,
attributionControl: false,
style: SETTINGS.maptileurls[mapsource].json,
dragPan: true,
pitch: 0,
zoom: 2,
@ -29,12 +42,12 @@ function mapboxMap() {
map.maptype = "mapbox";
map.addControl(new mapboxgl.NavigationControl({
map.addControl(new maplibregl.NavigationControl({
visualizePitch: true
}), 'top-left');
map.addControl(
new mapboxgl.GeolocateControl({
new maplibregl.GeolocateControl({
positionOptions: {
enableHighAccuracy: true,
timeout: 10 * 1000
@ -48,7 +61,7 @@ function mapboxMap() {
if (getStorage("mapscale") !== "false") {
map.addControl(
new mapboxgl.ScaleControl({
new maplibregl.ScaleControl({
unit: getStorage("units") == "imperial" ? "imperial" : "metric"
})
);
@ -105,7 +118,7 @@ function mapboxMap() {
var el = document.createElement("div");
el.className = "package-marker package-marker-mapbox";
el.className = "package-marker package-marker-mapbox hapticbtn";
// Prevent selection highlight from going away after map refresh
if (map.openedPanelIconID != null && map.openedPanelIconID == datai.id) {
el.className += " selected";
@ -124,7 +137,7 @@ function mapboxMap() {
openPackageInfoSheet(datai.id);
});
new mapboxgl.Marker(el)
new maplibregl.Marker(el)
.setLngLat([datai.coords[1], datai.coords[0]])
.addTo(map);
})(data[i]);

@ -66,6 +66,8 @@ function saveNote(id) {
zipcode: "",
route: "",
notes: "",
forwards: "",
utfs: "",
toggles: {}
};
if (exists) {
@ -77,6 +79,8 @@ function saveNote(id) {
note.zipcode = $("input[name=zipcode]").val().trim();
note.route = $("input[name=route]").val().trim().toUpperCase();
note.notes = $("textarea#notes").val().trim();
note.forwards = $("textarea#forwards").val().trim();
note.utfs = $("textarea#utfs").val().trim();
if (note.number == "") {
app.dialog.alert("Fill in an address number.", "Error");
@ -161,6 +165,13 @@ $(".view-main").on("click", ".editnotebtn", function () {
});
}
if (typeof note.forwards == "undefined") {
note.forwards = "";
}
if (typeof note.utfs == "undefined") {
note.utfs = "";
}
router.navigate("/myroute/editnote", {
context: {
title: "Edit Note",

@ -177,37 +177,44 @@ function addPackage(address, latitude, longitude, type, callback, deadline) {
function importPackageList(newlist) {
skipped = 0;
let count = 0;
for (latlng in newlist) {
var latitude = newlist[latlng].coords[0];
var longitude = newlist[latlng].coords[1];
latitude = +(parseFloat("" + latitude).toFixed(4));
longitude = +(parseFloat("" + longitude).toFixed(4));
for (pkg in newlist[latlng].items) {
var added = false;
for (var i = 0; i < packages.length; i++) {
if (+(parseFloat("" + packages[i].coords[0]).toFixed(4)) == latitude && +(parseFloat("" + packages[i].coords[1]).toFixed(4)) == longitude) {
var newpackage = newlist[latlng].items[pkg];
for (var j in packages[i].items) {
if (packages[i].items[j].id == newpackage.id) {
// This package already exists in the local database.
if (packages.length > 0) {
for (latlng in newlist) {
var latitude = newlist[latlng].coords[0];
var longitude = newlist[latlng].coords[1];
latitude = +(parseFloat("" + latitude).toFixed(4));
longitude = +(parseFloat("" + longitude).toFixed(4));
for (pkg in newlist[latlng].items) {
var added = false;
for (var i = 0; i < packages.length; i++) {
if (+(parseFloat("" + packages[i].coords[0]).toFixed(4)) == latitude && +(parseFloat("" + packages[i].coords[1]).toFixed(4)) == longitude) {
var newpackage = newlist[latlng].items[pkg];
for (var j in packages[i].items) {
if (packages[i].items[j].id == newpackage.id) {
// This package already exists in the local database.
console.log("Skipping package ", newpackage);
added = true;
skipped++;
}
}
if (!added) {
packages[i].items.push(package);
count++;
added = true;
skipped++;
}
break;
}
if (!added) {
packages[i].items.push(package);
count++;
added = true;
}
break;
}
}
if (!added) {
packages.push(newlist[latlng]);
if (!added) {
packages.push(newlist[latlng]);
}
}
}
} else {
// internal list is empty, so just copy
packages = newlist;
skipped = -1;
}
setStorage("packages", JSON.stringify(packages));
@ -220,7 +227,7 @@ function importPackageList(newlist) {
function mapCalibrate(item, packagesentry) {
// Determine if the delivery location isn't near the map pin
if (userPosition.coords.accuracy < 20 && timeDiff(userPosition.updated) < 10) {
if (getStorage("mapcalibrate") !== "false" && userPosition.coords.accuracy < 20 && timeDiff(userPosition.updated) < 10) {
// User location is accurate, check distance
var distance = getDistance(packagesentry.coords[0], packagesentry.coords[1], userPosition.coords.latitude, userPosition.coords.longitude);
var lat = userPosition.coords.latitude;
@ -262,43 +269,62 @@ function mapCalibrate(item, packagesentry) {
};
app.dialog.create({
title: 'Map Calibration',
text: "Your actual location doesn't match the map location for the " + SETTINGS.itemtypes[item.type].name + " at " + item.address + ". Where are you?",
title: 'Question',
text: "Are you currently at the correct delivery location for the " + SETTINGS.itemtypes[item.type].name + " at " + item.address + "?",
buttons: [
{
text: 'Address',
text: "No",
close: true
},
{
text: 'Mailbox/CBU',
close: true
},
{
text: 'Parcel Locker',
close: true
},
{
text: "Other/Cancel",
text: "Yes",
close: true
}
],
verticalButtons: true,
onClick: function (dialog, index) {
switch (index) {
case 0:
fixmap(item, lat, lon, "address", packagesentry);
break;
case 1:
fixmap(item, lat, lon, "mailbox", packagesentry);
break;
case 2:
fixmap(item, lat, lon, "locker", packagesentry);
break;
default:
return;
if (index == 1) {
app.dialog.create({
title: 'Map Calibration',
text: "Your actual location doesn't match the expected location for the " + SETTINGS.itemtypes[item.type].name + " at " + item.address + ". Where are you?",
buttons: [
{
text: 'Address',
close: true
},
{
text: 'Mailbox/CBU',
close: true
},
{
text: 'Parcel Locker',
close: true
},
{
text: "Other/Cancel",
close: true
}
],
verticalButtons: true,
onClick: function (dialog, index) {
switch (index) {
case 0:
fixmap(item, lat, lon, "address", packagesentry);
break;
case 1:
fixmap(item, lat, lon, "mailbox", packagesentry);
break;
case 2:
fixmap(item, lat, lon, "locker", packagesentry);
break;
default:
return;
}
}
}).open();
}
}
}).open();
}
}
}
@ -550,6 +576,10 @@ function addPackageByAddress(number, unit, street, citystate, zip, type, callbac
text: '3:00 PM',
close: true
},
{
text: '6:00 PM',
close: true
},
{
text: "No reminder",
color: "red",
@ -573,6 +603,9 @@ function addPackageByAddress(number, unit, street, citystate, zip, type, callbac
deadline.setHours(12 + 3);
break;
case 3:
deadline.setMinutes(00);
deadline.setHours(12 + 6);
break;
default:
deadline = false;
break;
@ -681,6 +714,10 @@ function addPackageByBarcode(barcode, type, callback) {
text: '3:00 PM',
close: true
},
{
text: '6:00 PM',
close: true
},
{
text: "No reminder",
color: "red",
@ -704,6 +741,9 @@ function addPackageByBarcode(barcode, type, callback) {
deadline.setHours(12 + 3);
break;
case 3:
deadline.setMinutes(00);
deadline.setHours(12 + 6);
break;
default:
deadline = false;
break;

@ -30,6 +30,10 @@ var scanBarcode = function (success, error) {
app.dialog.alert("You can't scan barcodes with this device.", "Sorry!");
}
var doHapticFeedback = function () {
console.log("Haptics not enabled.");
}
var scanningBarcode = false;
var getLocation = function (success, error) {
@ -155,22 +159,64 @@ function initCordova() {
// Handle back button to close things
document.addEventListener("backbutton", handleBackButton, false);
document.addEventListener("deviceready", function () {
if (getStorage("wakelock") == "true") {
window.powerManagement.acquire(function () {
console.log("Info", 'Wakelock acquired');
}, function () {
console.log("Warn", 'Failed to acquire wakelock');
});
} else {
window.powerManagement.release(function () {
console.log("Info", 'Wakelock released');
}, function () {
console.log("Warn", 'Failed to release wakelock');
});
try {
// Detect if localStorage is gone and try to restore it from NativeStorage plugin
// This shouldn't cause issues if updating from an old version without localstorageok
// because values that only exist in LocalStorage won't be overwritten
if (!inStorage("localstorageok")) {
console.log("LocalStorage key localstorageok isn't present, copying NativeStorage over LocalStorage");
// "restore" localStorage
copyNativeStorageToLocalStorage();
// give it some arbitrary amount of time because I'm too lazy to do real async
setTimeout(function () {
loadSettings();
setStorage("localstorageok", "true");
}, 10 * 1000);
} else {
// "back up" localStorage
console.log("Backing up LocalStorage");
setStorage("localstorageok", "true");
copyLocalStorageToNativeStorage();
}
} catch (ex) {
// Well we tried
console.error(ex);
}
loadSettings();
// Make sure the status bar color is set properly
applyColorTheme();
if (typeof device != "undefined" && device.platform == "Android") {
doHapticFeedback = function () {
window.plugins.deviceFeedback.acoustic();
}
}
// start watching user position after everything's done, hopefully this will make it work
// with ios
setupPositionWatcher();
try {
if (getStorage("wakelock") == "true") {
window.powerManagement.acquire(function () {
console.log("Info", 'Wakelock acquired');
}, function () {
console.log("Warn", 'Failed to acquire wakelock');
});
} else {
window.powerManagement.release(function () {
console.log("Info", 'Wakelock released');
}, function () {
console.log("Warn", 'Failed to release wakelock');
});
}
} catch (ex) {
console.log("Warn", 'Failed to configure wakelock', ex);
}
}, false);
openBrowser = function (url) {
cordova.InAppBrowser.open(url, '_blank', 'location=yes');
@ -195,7 +241,13 @@ function initCordova() {
// Handle geo: urls
$("#app").on("click", "a[href^='geo:']", function (evt) {
window.open($(this).attr("href"), "_system");
if (cordova.platformId == "ios") {
window.open($(this).attr("href").replace("geo:", "http://maps.apple.com/?q="), "_system");
} else if (cordova.platformId == "android") {
window.open($(this).attr("href").replace("geo:", "geo:0,0?q="), "_system");
} else {
window.open($(this).attr("href"), "_system");
}
evt.preventDefault();
});
@ -214,6 +266,7 @@ function initCordova() {
}
function initNW() {
loadSettings();
platform_type = "nw";
platform_theme = "md";
openBrowser = function (url) {
@ -256,9 +309,12 @@ function initNW() {
require('nw.gui').Shell.openExternal($(this).attr("href"));
evt.preventDefault();
});
setupPositionWatcher();
}
function initBrowser() {
loadSettings();
platform_type = "browser";
platform_theme = "md";
openBrowser = function (url) {
@ -275,6 +331,8 @@ function initBrowser() {
window.open($(this).attr("href"), "_blank");
evt.preventDefault();
});
setupPositionWatcher();
}
function initPlatform() {

@ -10,9 +10,10 @@ function logout() {
"Are you sure you want to log out?",
"Log out?",
function () {
localStorage.removeItem('password');
localStorage.removeItem('username');
localStorage.removeItem('lastsync');
removeStorage('username');
removeStorage('password');
removeStorage('lastsync');
removeStorage('syncstateversion');
restartApplication();
}
);
@ -98,6 +99,22 @@ $('.item-content[data-setting=wakelock] .toggle input').on("change", function ()
}
});
$('.item-content[data-setting=runinbackground] .toggle input').on("change", function () {
var checked = $(this).prop('checked');
setStorage("runinbackground", checked);
if (platform_type == "cordova") {
loadSettings();
} else {
app.toast.show({
text: "This setting won't do anything on your device.",
position: "bottom",
destroyOnClose: true,
closeTimeout: 1000 * 10
});
}
});
$('.item-content[data-setting=hardwarescanner] .toggle input').on("change", function () {
var checked = $(this).prop('checked');
setStorage("hardwarescanner", checked);
@ -121,6 +138,11 @@ $('.item-content[data-setting=alertinterval] .range-slider').on('range:changed',
setStorage("alertinterval", val);
});
$('.item-content[data-setting=mapcalibrate] .toggle input').on("change", function () {
var checked = $(this).prop('checked');
setStorage("mapcalibrate", checked ? "true" : "false");
});
$('.item-link[data-setting=mapsource] select').on("change", function () {
setStorage("mapsource", $('.item-link[data-setting=mapsource] select').val());
@ -149,4 +171,8 @@ $('.item-link[data-setting=alertsound] select').on("change", function () {
initSFX();
// Play the selected sound
playSound("alert");
});
$('.item-link[data-setting=customaddtype] select').on("change", function () {
setStorage("customaddtype", $('.item-link[data-setting=customaddtype] select').val());
});

@ -1,4 +1,4 @@
/*
/*
* 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/.
@ -9,7 +9,7 @@
* Save something to persistent storage.
* @param {string} key
* @param {string} value non-string values are converted to strings.
* @param {bool} nochangeupdate If true, the lastchange setting won't be updated.
* @param {bool} nochangeupdate If true, the settings version won't be updated.
* @returns {undefined}
*/
function setStorage(key, value, nochangeupdate) {
@ -17,8 +17,14 @@ function setStorage(key, value, nochangeupdate) {
nochangeupdate = false;
}
localStorage.setItem(key, value);
try {
NativeStorage.setItem(key, value);
} catch (ex) {
// skip
}
if (!nochangeupdate && !SETTINGS.synckeyblacklist.includes(key)) {
localStorage.setItem("lastchange", Date.now() / 1000);
var version = getStorage("syncstateversion") == null ? 0 : getStorage("syncstateversion");
localStorage.setItem("syncstateversion", Number(version) + 1);
}
}
@ -40,6 +46,15 @@ function inStorage(key) {
return localStorage.getItem(key) != null;
}
/**
* Erase the key and its value from the persistent storage.
* @param {string} key
* @returns {undefined}
*/
function removeStorage(key) {
localStorage.removeItem(key);
}
/**
* Get all item from persistent storage.
* @returns {Array} [{key: "", value: ""},...]
@ -55,4 +70,24 @@ function getAllStorage() {
}
}
return all;
}
function copyLocalStorageToNativeStorage() {
for (var key in localStorage) {
if (localStorage.hasOwnProperty(key)) {
NativeStorage.setItem(key, localStorage.getItem(key));
}
}
}
function copyNativeStorageToLocalStorage() {
NativeStorage.keys(function (keys) {
for (var i = 0; i < keys.length; i++) {
(function (key) {
NativeStorage.getItem(key, function (val) {
localStorage.setItem(key, val);
});
})(keys[i]);
}
});
}

@ -6,15 +6,13 @@
function gatherSyncData() {
if (getStorage("syncstateversion") == null) {
setStorage("syncstateversion", 0);
}
var data = {
localStorage: {},
changed: getStorage("lastchange") == null ? 0 : getStorage("lastchange"),
stateversion: getStorage("syncstateversion") == null ? 0 : getStorage("syncstateversion")
};
if (!inStorage("lastsync")) {
// first time syncing to the server, let's make sure
// the server settings take precedence
data.changed = 1;
}
var allitems = getAllStorage();
for (var i = 0; i < allitems.length; i++) {
var key = allitems[i].key;
@ -27,33 +25,30 @@ function gatherSyncData() {
return data;
}
function syncDataToLocalStorage(data) {
function syncDataToLocalStorage(data, stateversion) {
for (var key in data.localStorage) {
if (data.localStorage.hasOwnProperty(key)) {
setStorage(key, data.localStorage[key], true);
}
}
setStorage("syncstateversion", stateversion);
}
function resolveSync(remotedata) {
var localchangetime = getStorage("lastchange");
if (remotedata.changed == null) {
// The server has nothing, this is the first sync
function resolveSync(remotedata, remotestateversion) {
var localstateversion = getStorage("syncstateversion");
console.log("Resolving sync: remote state: " + remotestateversion, "local state: " + localstateversion);
if (localstateversion == remotestateversion) {
// Server and client both have same version
console.log("Sync: server is same as client");
return true;
}
if (localchangetime == null) {
// No local setting changes but since we've gotten this far,
// the server has stuff for us
syncDataToLocalStorage(remotedata);
} else if (Number(localstateversion) < Number(remotestateversion)) {
// Server has newer version
console.log("Sync: server is newer than client");
syncDataToLocalStorage(remotedata, remotestateversion);
return true;
}
if (localchangetime < remotedata.changed) {
// The server has newer stuff for us
syncDataToLocalStorage(remotedata);
return true;
}
if (localchangetime >= remotedata.changed) {
// Our local data is newer or the same as the server copy
} else {
// We have the newer version
console.log("Sync: client is newer than server.");
return true;
}
return false;
@ -70,10 +65,11 @@ function syncNow(callback) {
$.post(SETTINGS.syncapi, {
username: username,
password: password,
data: JSON.stringify(data)
data: JSON.stringify(data),
stateversion: data.stateversion
}, function (resp) {
if (resp.status == "OK") {
resolveSync(resp.data);
resolveSync(resp.data, resp.stateversion);
setStorage("lastsync", Date.now() / 1000);
if (typeof callback == "function") {
callback();
@ -85,6 +81,7 @@ function syncNow(callback) {
function loadSettings() {
applyColorTheme();
setAnimations();
if (platform_type == "cordova") {
if (getStorage("wakelock") == "true") {
@ -100,6 +97,12 @@ function loadSettings() {
console.log("Warn", 'Failed to release wakelock');
});
}
// if (getStorage("runinbackground") == "true") {
// cordova.plugins.foregroundService.start('PackageHelper', 'GPS active');
// } else {
// cordova.plugins.foregroundService.stop();
// }
}
}

@ -63,9 +63,10 @@ function addCodeToScannerList(code) {
/**
* Regex of IMpb codes that don't need anything special
* Updated with July 9 2023 STC list from https://postalpro.usps.com/impb-stcs-excel
* @type {RegExp}
*/
var stcregex = /^(420[0-9]{5})?[0-9]{2}(001|023|055|056|112|113|134|135|138|140|141|142|164|209|211|259|265|269|346|361|389|390|419|431|490|502|551|563|612|624|671|701|702|703|704|723|746|748|790|791|793|794|905|906|907|909|971|972)[0-9]+$/;
var stcregex = /^(420[0-9]{5})?[0-9]{2}(001|017|019|020|022|024|037|055|058|091|112|113|116|120|134|135|138|140|141|142|164|184|185|187|190|209|211|217|218|219|259|265|269|346|361|362|363|367|368|385|388|389|390|395|419|431|453|468|483|490|502|515|526|551|563|596|597|598|612|624|671|676|701|702|703|704|746|748|760|785|786|790|791|793|794|798|837|859|905|906|907|909)[0-9]+$/;
var signatureRequired = false;
for (var i = 0; i < signatureregexes.length; i++) {

@ -17,7 +17,8 @@ function uploadList() {
dataType: 'json',
method: 'post',
data: {
packages: JSON.stringify(packages)
packages: JSON.stringify(packages),
appversion: app_version
},
timeout: 15 * 1000,
success: function (resp) {
@ -69,12 +70,23 @@ function downloadItemList(code) {
downloadlistdialogopen = false;
}
if (resp.status == "OK") {
if (typeof resp.appversion == "string") {
if (resp.appversion != app_version) {
app.dialog.alert("The sender is using " + app.name + " verson " + resp.appversion + " but you have " + app_version + ". Both devices must have the same version installed.", "Version Mismatch");
return;
}
} else {
app.dialog.alert("The sender is using an old version of " + app.name + ". Both devices must have the same version installed.", "Version Mismatch");
return;
}
var skipped = importPackageList(resp.packages);
if (skipped > 0) {
app.dialog.alert("List imported and merged with the existing one. " + skipped + " items already existed locally and were skipped. Verify their delivery status manually.", "Import Complete");
} else if (skipped == -1) {
app.dialog.alert("List imported.", "Import Complete");
} else {
app.dialog.alert("List imported and merged with the existing one.", "Import Complete");
}
app.dialog.alert("List imported and merged with the existing one.", "Import Complete");
}
} else {
app.dialog.alert(resp.message, "Error");
}

@ -63,7 +63,8 @@ function openTrackingHistory(code) {
url: SETTINGS.trackingapi,
dataType: 'json',
data: {
code: trackingcode
code: trackingcode,
nocache: (refresh ? "1" : "")
},
timeout: 15 * 1000,
success: function (resp) {
@ -76,14 +77,14 @@ function openTrackingHistory(code) {
var infocontext = resp;
infocontext.current.location.display = locationArrayToString(infocontext.current.location);
infocontext.current.date = timestampToDateTimeString(infocontext.current.date);
infocontext.current.date = infocontext.current.nicetime;
infocontext.current.status = trackingStatusToNiceString(infocontext.current.status, true);
infocontext.addresses.from = locationArrayToString(infocontext.addresses.from);
infocontext.addresses.to = locationArrayToString(infocontext.addresses.to);
for (var i = 0; i < infocontext.history.length; i++) {
infocontext.history[i].location.display = locationArrayToString(infocontext.history[i].location);
infocontext.history[i].date = timestampToDateTimeString(infocontext.history[i].date);
infocontext.history[i].date = infocontext.history[i].nicetime;
infocontext.history[i].status = trackingStatusToNiceString(infocontext.history[i].status, true);
}
@ -120,7 +121,7 @@ function openTrackingHistory(code) {
});
}
} else {
app.dialog.alert(resp.message, "Error");
app.dialog.alert(resp.msg, "Error");
}
},
error: function (jqXHR, status, errorThrown) {

@ -17,7 +17,7 @@ function loadWeather(reload) {
}
if (userPosition.coords.accuracy > 99999) {
app.dialog.alert("Couldn't find your location. Wait for a GPS signal and try again.", "Error");
app.dialog.alert("Couldn't find your location. Wait a few seconds and press the reload button.", "Error");
return;
}
@ -197,15 +197,16 @@ function loadWeather(reload) {
var low = (getStorage("units") == "metric" ? Math.round(ftoc(resp.forecast[i].temp.min)) : Math.round(resp.forecast[i].temp.min));
var high = (getStorage("units") == "metric" ? Math.round(ftoc(resp.forecast[i].temp.max)) + " &deg;C" : Math.round(resp.forecast[i].temp.max) + " &deg;F");
var precipcolor = precipChanceToColor(resp.forecast[i].precipitation.chance);
var uvcolor = uvIndexToColor(resp.forecast[i].uv_index);
forecastItems.push({
day: (i == 0 ? "Today" : formatTimestamp('l', resp.forecast[i].date)),
temps: low + " to " + high,
uv_index: resp.forecast[i].uv_index,
uv_color: uvIndexToColor(resp.forecast[i].uv_index),
uv_foreground: uvIndexToColor(resp.forecast[i].uv_index) == "yellow" ? "black" : "white",
uv_color: uvcolor,
uv_foreground: (uvcolor == "purple" ? "white" : "black"),
precip_chance: Math.round(resp.forecast[i].precipitation.chance * 100),
precip_color: precipcolor,
precip_foreground: precipcolor == "lightblue" ? "black" : "white"
precip_foreground: precipcolor == "blue" ? "white" : "black"
});
}

@ -4,7 +4,7 @@
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<title>PackageHelper</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="initial-scale=1, width=device-width, height=device-height, viewport-fit=cover, user-scalable=no">
<link rel="icon" href="assets/images/icons/logo.svg" />
<link rel="manifest" href="manifest.json">
<link rel="stylesheet" href="node_modules/framework7/css/framework7.bundle.min.css" />
@ -14,7 +14,7 @@
<link rel="stylesheet" href="node_modules/leaflet.markercluster/dist/MarkerCluster.css" />
<link rel="stylesheet" href="node_modules/leaflet.markercluster/dist/MarkerCluster.Default.css" />
<link rel="stylesheet" href="node_modules/leaflet.locatecontrol/dist/L.Control.Locate.min.css" />
<link rel="stylesheet" href="node_modules/mapbox-gl/dist/mapbox-gl.css">
<link rel="stylesheet" href="node_modules/maplibre-gl/dist/maplibre-gl.css">
<link rel="stylesheet" href="node_modules/chart.js/dist/Chart.min.css">
<link rel="stylesheet" href="assets/css/app.css" />
<link rel="stylesheet" href="assets/css/backdrop.css" />
@ -42,7 +42,7 @@
<script src="node_modules/jquery/dist/jquery.min.js"></script>
<script src="node_modules/leaflet/dist/leaflet.js"></script>
<script src="node_modules/leaflet.markercluster/dist/leaflet.markercluster.js"></script>
<script src="node_modules/mapbox-gl/dist/mapbox-gl.js"></script>
<script src="node_modules/maplibre-gl/dist/maplibre-gl.js"></script>
<script src="node_modules/jsbarcode/dist/JsBarcode.all.min.js"></script>
<script src="node_modules/bwip-js/dist/bwip-js-min.js"></script>
<script src="node_modules/leaflet.locatecontrol/dist/L.Control.Locate.min.js"></script>

726
www/package-lock.json generated

@ -1,8 +1,522 @@
{
"name": "PackageHelper",
"version": "1.6.0",
"lockfileVersion": 1,
"version": "1.6.7",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "PackageHelper",
"version": "1.6.7",
"license": "MPL-2.0",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.12.1",
"@zxing/library": "^0.15.2",
"bwip-js": "^3.1.0",
"chart.js": "^2.9.3",
"framework7": "^5.5.1",
"jquery": "^3.6.1",
"jsbarcode": "^3.11.5",
"leaflet": "^1.8.0",
"leaflet-geometryutil": "^0.10.1",
"leaflet.locatecontrol": "^0.76.1",
"leaflet.markercluster": "^1.5.3",
"maplibre-gl": "^1.15.3",
"material-design-icons": "^3.0.1",
"onscan.js": "^1.5.2"
},
"devDependencies": {}
},
"node_modules/@fortawesome/fontawesome-free": {
"version": "5.12.1",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.12.1.tgz",
"integrity": "sha512-ZtjIIFplxncqxvogq148C3hBLQE+W3iJ8E4UvJ09zIJUgzwLcROsWwFDErVSXY2Plzao5J9KUYNHKHMEUYDMKw==",
"engines": {
"node": ">=6"
}
},
"node_modules/@mapbox/geojson-rewind": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz",
"integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==",
"dependencies": {
"get-stream": "^6.0.1",
"minimist": "^1.2.6"
},
"bin": {
"geojson-rewind": "geojson-rewind"
}
},
"node_modules/@mapbox/geojson-types": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz",
"integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw=="
},
"node_modules/@mapbox/jsonlint-lines-primitives": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
"integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/@mapbox/mapbox-gl-supported": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz",
"integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==",
"peerDependencies": {
"mapbox-gl": ">=0.32.1 <2.0.0"
}
},
"node_modules/@mapbox/point-geometry": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
"integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI="
},
"node_modules/@mapbox/tiny-sdf": {
"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",
"resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz",
"integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA=="
},
"node_modules/@mapbox/vector-tile": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz",
"integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==",
"dependencies": {
"@mapbox/point-geometry": "~0.1.0"
}
},
"node_modules/@mapbox/whoots-js": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz",
"integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@zxing/library": {
"version": "0.15.2",
"resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.15.2.tgz",
"integrity": "sha1-MCYHGsqAqErwlwbf+h04YFPhHvw=",
"dependencies": {
"ts-custom-error": "^3.0.0"
},
"engines": {
"node": ">= 8.9.0"
},
"optionalDependencies": {
"text-encoding": "^0.7.0"
}
},
"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/chart.js": {
"version": "2.9.4",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz",
"integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==",
"dependencies": {
"chartjs-color": "^2.1.0",
"moment": "^2.10.2"
}
},
"node_modules/chartjs-color": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz",
"integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==",
"dependencies": {
"chartjs-color-string": "^0.6.0",
"color-convert": "^1.9.3"
}
},
"node_modules/chartjs-color-string": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz",
"integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==",
"dependencies": {
"color-name": "^1.0.0"
}
},
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/color-convert/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/csscolorparser": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz",
"integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs="
},
"node_modules/dom7": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/dom7/-/dom7-2.1.3.tgz",
"integrity": "sha512-QTxHHDox+M6ZFz1zHPAHZKI3JOHY5iY4i9BK2uctlggxKQwRhO3q3HHFq1BKsT25Bm/ySSj70K6Wk/G4bs9rMQ==",
"dependencies": {
"ssr-window": "^1.0.1"
}
},
"node_modules/earcut": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz",
"integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ=="
},
"node_modules/framework7": {
"version": "5.5.1",
"resolved": "https://registry.npmjs.org/framework7/-/framework7-5.5.1.tgz",
"integrity": "sha512-Ei+LYZtBf+6kmz9u5YcgXKEFQAK4CRm4lQiUO2zh2HNsxXBJFh3nJ+usybbDmxDL4FZO6/8xF9tO7c77n2X4/A==",
"hasInstallScript": true,
"dependencies": {
"dom7": "^2.1.3",
"path-to-regexp": "^6.1.0",
"ssr-window": "^1.0.1",
"template7": "^1.4.2"
},
"funding": {
"type": "patreon",
"url": "https://www.patreon.com/vladimirkharlampidi"
}
},
"node_modules/geojson-vt": {
"version": "3.2.1",
"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.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",
"resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz",
"integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA=="
},
"node_modules/ieee754": {
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
},
"node_modules/jquery": {
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz",
"integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw=="
},
"node_modules/jsbarcode": {
"version": "3.11.5",
"resolved": "https://registry.npmjs.org/jsbarcode/-/jsbarcode-3.11.5.tgz",
"integrity": "sha512-zv3KsH51zD00I/LrFzFSM6dst7rDn0vIMzaiZFL7qusTjPZiPtxg3zxetp0RR7obmjTw4f6NyGgbdkBCgZUIrA==",
"bin": {
"auto.js": "bin/barcodes/CODE128/auto.js",
"Barcode.js": "bin/barcodes/Barcode.js",
"barcodes": "bin/barcodes",
"canvas.js": "bin/renderers/canvas.js",
"checksums.js": "bin/barcodes/MSI/checksums.js",
"codabar": "bin/barcodes/codabar",
"CODE128": "bin/barcodes/CODE128",
"CODE128_AUTO.js": "bin/barcodes/CODE128/CODE128_AUTO.js",
"CODE128.js": "bin/barcodes/CODE128/CODE128.js",
"CODE128A.js": "bin/barcodes/CODE128/CODE128A.js",
"CODE128B.js": "bin/barcodes/CODE128/CODE128B.js",
"CODE128C.js": "bin/barcodes/CODE128/CODE128C.js",
"CODE39": "bin/barcodes/CODE39",
"constants.js": "bin/barcodes/ITF/constants.js",
"defaults.js": "bin/options/defaults.js",
"EAN_UPC": "bin/barcodes/EAN_UPC",
"EAN.js": "bin/barcodes/EAN_UPC/EAN.js",
"EAN13.js": "bin/barcodes/EAN_UPC/EAN13.js",
"EAN2.js": "bin/barcodes/EAN_UPC/EAN2.js",
"EAN5.js": "bin/barcodes/EAN_UPC/EAN5.js",
"EAN8.js": "bin/barcodes/EAN_UPC/EAN8.js",
"encoder.js": "bin/barcodes/EAN_UPC/encoder.js",
"ErrorHandler.js": "bin/exceptions/ErrorHandler.js",
"exceptions": "bin/exceptions",
"exceptions.js": "bin/exceptions/exceptions.js",
"fixOptions.js": "bin/help/fixOptions.js",
"GenericBarcode": "bin/barcodes/GenericBarcode",
"getOptionsFromElement.js": "bin/help/getOptionsFromElement.js",
"getRenderProperties.js": "bin/help/getRenderProperties.js",
"help": "bin/help",
"index.js": "bin/renderers/index.js",
"index.tmp.js": "bin/barcodes/index.tmp.js",
"ITF": "bin/barcodes/ITF",
"ITF.js": "bin/barcodes/ITF/ITF.js",
"ITF14.js": "bin/barcodes/ITF/ITF14.js",
"JsBarcode.js": "bin/JsBarcode.js",
"linearizeEncodings.js": "bin/help/linearizeEncodings.js",
"merge.js": "bin/help/merge.js",
"MSI": "bin/barcodes/MSI",
"MSI.js": "bin/barcodes/MSI/MSI.js",
"MSI10.js": "bin/barcodes/MSI/MSI10.js",
"MSI1010.js": "bin/barcodes/MSI/MSI1010.js",
"MSI11.js": "bin/barcodes/MSI/MSI11.js",
"MSI1110.js": "bin/barcodes/MSI/MSI1110.js",
"object.js": "bin/renderers/object.js",
"options": "bin/options",
"optionsFromStrings.js": "bin/help/optionsFromStrings.js",
"pharmacode": "bin/barcodes/pharmacode",
"renderers": "bin/renderers",
"shared.js": "bin/renderers/shared.js",
"svg.js": "bin/renderers/svg.js",
"UPC.js": "bin/barcodes/EAN_UPC/UPC.js",
"UPCE.js": "bin/barcodes/EAN_UPC/UPCE.js"
}
},
"node_modules/kdbush": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz",
"integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew=="
},
"node_modules/leaflet": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.8.0.tgz",
"integrity": "sha512-gwhMjFCQiYs3x/Sf+d49f10ERXaEFCPr+nVTryhAW8DWbMGqJqt9G4XuIaHmFW08zYvhgdzqXGr8AlW8v8dQkA=="
},
"node_modules/leaflet-geometryutil": {
"version": "0.10.1",
"resolved": "https://registry.npmjs.org/leaflet-geometryutil/-/leaflet-geometryutil-0.10.1.tgz",
"integrity": "sha512-xfyBxv0Ls2H45V4nrzn5ASi/qw0VXgEVAkbXZqQE2Qhs52fMqmWyl7egA5ht2xbyPHqjTN9ssr9lXrmXWE91yw==",
"dependencies": {
"leaflet": "^1.6.0"
}
},
"node_modules/leaflet.locatecontrol": {
"version": "0.76.1",
"resolved": "https://registry.npmjs.org/leaflet.locatecontrol/-/leaflet.locatecontrol-0.76.1.tgz",
"integrity": "sha512-qA92Mxs2N1jgVx+EdmxtDrdzFD+f2llPJbqaKvmW1epZMSIvD6KNsBjpQYUIxz4XtJkOleqRSwWQcrm5P5NnYw=="
},
"node_modules/leaflet.markercluster": {
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.3.tgz",
"integrity": "sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA==",
"peerDependencies": {
"leaflet": "^1.3.1"
}
},
"node_modules/mapbox-gl": {
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.2.tgz",
"integrity": "sha512-CPjtWygL+f7naL+sGHoC2JQR0DG7u+9ik6WdkjjVmz2uy0kBC2l+aKfdi3ZzUR7VKSQJ6Mc/CeCN+6iVNah+ww==",
"peer": true,
"dependencies": {
"@mapbox/geojson-rewind": "^0.5.0",
"@mapbox/geojson-types": "^1.0.2",
"@mapbox/jsonlint-lines-primitives": "^2.0.2",
"@mapbox/mapbox-gl-supported": "^1.5.0",
"@mapbox/point-geometry": "^0.1.0",
"@mapbox/tiny-sdf": "^1.1.1",
"@mapbox/unitbezier": "^0.0.0",
"@mapbox/vector-tile": "^1.3.1",
"@mapbox/whoots-js": "^3.1.0",
"csscolorparser": "~1.0.3",
"earcut": "^2.2.2",
"geojson-vt": "^3.2.1",
"gl-matrix": "^3.2.1",
"grid-index": "^1.1.0",
"minimist": "^1.2.5",
"murmurhash-js": "^1.0.0",
"pbf": "^3.2.1",
"potpack": "^1.0.1",
"quickselect": "^2.0.0",
"rw": "^1.3.3",
"supercluster": "^7.1.0",
"tinyqueue": "^2.0.3",
"vt-pbf": "^3.1.1"
},
"engines": {
"node": ">=6.4.0"
}
},
"node_modules/maplibre-gl": {
"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",
"@mapbox/jsonlint-lines-primitives": "^2.0.2",
"@mapbox/mapbox-gl-supported": "^1.5.0",
"@mapbox/point-geometry": "^0.1.0",
"@mapbox/tiny-sdf": "^1.1.1",
"@mapbox/unitbezier": "^0.0.0",
"@mapbox/vector-tile": "^1.3.1",
"@mapbox/whoots-js": "^3.1.0",
"csscolorparser": "~1.0.3",
"earcut": "^2.2.2",
"geojson-vt": "^3.2.1",
"gl-matrix": "^3.2.1",
"grid-index": "^1.1.0",
"minimist": "^1.2.6",
"murmurhash-js": "^1.0.0",
"pbf": "^3.2.1",
"potpack": "^1.0.1",
"quickselect": "^2.0.0",
"rw": "^1.3.3",
"supercluster": "^7.1.0",
"tinyqueue": "^2.0.3",
"vt-pbf": "^3.1.1"
},
"engines": {
"node": ">=6.4.0"
}
},
"node_modules/material-design-icons": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/material-design-icons/-/material-design-icons-3.0.1.tgz",
"integrity": "sha1-mnHEh0chjrylHlGmbaaCA4zct78="
},
"node_modules/minimist": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"node_modules/moment": {
"version": "2.27.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz",
"integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==",
"engines": {
"node": "*"
}
},
"node_modules/murmurhash-js": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz",
"integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E="
},
"node_modules/onscan.js": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/onscan.js/-/onscan.js-1.5.2.tgz",
"integrity": "sha512-9oGYy2gXYRjvXO9GYqqVca0VuCTAmWhbmX3egBSBP13rXiMNb+dKPJzKFEeECGqPBpf0m40Zoo+GUQ7eCackdw=="
},
"node_modules/path-to-regexp": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.1.0.tgz",
"integrity": "sha1-Cxj4i3oM4L+uaiWZDJCauG9RJCc="
},
"node_modules/pbf": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz",
"integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==",
"dependencies": {
"ieee754": "^1.1.12",
"resolve-protobuf-schema": "^2.1.0"
},
"bin": {
"pbf": "bin/pbf"
}
},
"node_modules/potpack": {
"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.4.0",
"resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz",
"integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA=="
},
"node_modules/quickselect": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
"integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="
},
"node_modules/resolve-protobuf-schema": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
"integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==",
"dependencies": {
"protocol-buffers-schema": "^3.3.1"
}
},
"node_modules/rw": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
"integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
},
"node_modules/ssr-window": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-1.0.1.tgz",
"integrity": "sha1-MHUqakZm53Z/C35qpvwv29DZs2k="
},
"node_modules/supercluster": {
"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/template7": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/template7/-/template7-1.4.2.tgz",
"integrity": "sha1-YvMpWTYeRV7Bce+e8z0pynEw4Ak=",
"engines": {
"node": ">= 0.10.0"
}
},
"node_modules/text-encoding": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz",
"integrity": "sha1-+JXoNuRZkGJAhmAXmOqY6PNu5kM=",
"deprecated": "no longer maintained",
"optional": true
},
"node_modules/tinyqueue": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz",
"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=",
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/vt-pbf": {
"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.2.1"
}
}
},
"dependencies": {
"@fortawesome/fontawesome-free": {
"version": "5.12.1",
@ -10,12 +524,12 @@
"integrity": "sha512-ZtjIIFplxncqxvogq148C3hBLQE+W3iJ8E4UvJ09zIJUgzwLcROsWwFDErVSXY2Plzao5J9KUYNHKHMEUYDMKw=="
},
"@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.2",
"resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz",
"integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==",
"requires": {
"concat-stream": "~2.0.0",
"minimist": "^1.2.5"
"get-stream": "^6.0.1",
"minimist": "^1.2.6"
}
},
"@mapbox/geojson-types": {
@ -31,7 +545,8 @@
"@mapbox/mapbox-gl-supported": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz",
"integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg=="
"integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==",
"requires": {}
},
"@mapbox/point-geometry": {
"version": "0.1.0",
@ -39,14 +554,14 @@
"integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI="
},
"@mapbox/tiny-sdf": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.1.1.tgz",
"integrity": "sha512-Ihn1nZcGIswJ5XGbgFAvVumOgWpvIjBX9jiRlIl46uQG9vJOF51ViBYHF95rEZupuyQbEmhLaDPLQlU7fUTsBg=="
"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",
"resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz",
"integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4="
"integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA=="
},
"@mapbox/vector-tile": {
"version": "1.3.1",
@ -70,20 +585,15 @@
"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=="
},
"bwip-js": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/bwip-js/-/bwip-js-2.0.6.tgz",
"integrity": "sha512-25zupM+tgx6NGmrg0kFhdkddeQ5+QnUMvHbb7cPNVbBdFDd0SOG3xRZ1ocGDEamhmM+fStglCLEkH21OpD4Y/w=="
"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=="
},
"chart.js": {
"version": "2.9.3",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.3.tgz",
"integrity": "sha512-+2jlOobSk52c1VU6fzkh3UwqHMdSlgH1xFv9FKMqHiNCpXsGPQa/+81AFa+i3jZ253Mq9aAycPwDjnn1XbRNNw==",
"version": "2.9.4",
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz",
"integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==",
"requires": {
"chartjs-color": "^2.1.0",
"moment": "^2.10.2"
@ -126,17 +636,6 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"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"
}
},
"csscolorparser": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz",
@ -151,9 +650,9 @@
}
},
"earcut": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz",
"integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ=="
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz",
"integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ=="
},
"framework7": {
"version": "5.5.1",
@ -171,10 +670,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",
@ -186,20 +690,15 @@
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
},
"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.5.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz",
"integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg=="
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz",
"integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw=="
},
"jsbarcode": {
"version": "3.11.0",
"resolved": "https://registry.npmjs.org/jsbarcode/-/jsbarcode-3.11.0.tgz",
"integrity": "sha1-IGI+AIsQHvRdDM6cgCLN9JvihUc="
"version": "3.11.5",
"resolved": "https://registry.npmjs.org/jsbarcode/-/jsbarcode-3.11.5.tgz",
"integrity": "sha512-zv3KsH51zD00I/LrFzFSM6dst7rDn0vIMzaiZFL7qusTjPZiPtxg3zxetp0RR7obmjTw4f6NyGgbdkBCgZUIrA=="
},
"kdbush": {
"version": "3.0.0",
@ -207,32 +706,34 @@
"integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew=="
},
"leaflet": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.6.0.tgz",
"integrity": "sha1-rsuwRLlJ7ClGnusxx3qI4vRI8wg="
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.8.0.tgz",
"integrity": "sha512-gwhMjFCQiYs3x/Sf+d49f10ERXaEFCPr+nVTryhAW8DWbMGqJqt9G4XuIaHmFW08zYvhgdzqXGr8AlW8v8dQkA=="
},
"leaflet-geometryutil": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/leaflet-geometryutil/-/leaflet-geometryutil-0.9.3.tgz",
"integrity": "sha512-Wi6YvfNx/Xu9q35AEfXpsUXmIFLen/MO+C2qimxHRnjyeyOxBhdcZa6kSiReaOX0cGK7yQInqrzz0dkIqZ8Dpg==",
"version": "0.10.1",
"resolved": "https://registry.npmjs.org/leaflet-geometryutil/-/leaflet-geometryutil-0.10.1.tgz",
"integrity": "sha512-xfyBxv0Ls2H45V4nrzn5ASi/qw0VXgEVAkbXZqQE2Qhs52fMqmWyl7egA5ht2xbyPHqjTN9ssr9lXrmXWE91yw==",
"requires": {
"leaflet": ">=0.7.0"
"leaflet": "^1.6.0"
}
},
"leaflet.locatecontrol": {
"version": "0.67.0",
"resolved": "https://registry.npmjs.org/leaflet.locatecontrol/-/leaflet.locatecontrol-0.67.0.tgz",
"integrity": "sha1-rf7r/WYvYdY5paX7o2I2hXn4rFU="
"version": "0.76.1",
"resolved": "https://registry.npmjs.org/leaflet.locatecontrol/-/leaflet.locatecontrol-0.76.1.tgz",
"integrity": "sha512-qA92Mxs2N1jgVx+EdmxtDrdzFD+f2llPJbqaKvmW1epZMSIvD6KNsBjpQYUIxz4XtJkOleqRSwWQcrm5P5NnYw=="
},
"leaflet.markercluster": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.4.1.tgz",
"integrity": "sha1-tT8sTyynMG3asdu28YYdXoqmxeU="
"version": "1.5.3",
"resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.3.tgz",
"integrity": "sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA==",
"requires": {}
},
"mapbox-gl": {
"version": "1.12.0",
"resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.12.0.tgz",
"integrity": "sha512-B3URR4qY9R/Bx+DKqP8qmGCai8IOZYMSZF7ZSvcCZaYTaOYhQQi8ErTEDZtFMOR0ZPj7HFWOkkhl5SqvDfpJpA==",
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.2.tgz",
"integrity": "sha512-CPjtWygL+f7naL+sGHoC2JQR0DG7u+9ik6WdkjjVmz2uy0kBC2l+aKfdi3ZzUR7VKSQJ6Mc/CeCN+6iVNah+ww==",
"peer": true,
"requires": {
"@mapbox/geojson-rewind": "^0.5.0",
"@mapbox/geojson-types": "^1.0.2",
@ -259,15 +760,45 @@
"vt-pbf": "^3.1.1"
}
},
"maplibre-gl": {
"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",
"@mapbox/jsonlint-lines-primitives": "^2.0.2",
"@mapbox/mapbox-gl-supported": "^1.5.0",
"@mapbox/point-geometry": "^0.1.0",
"@mapbox/tiny-sdf": "^1.1.1",
"@mapbox/unitbezier": "^0.0.0",
"@mapbox/vector-tile": "^1.3.1",
"@mapbox/whoots-js": "^3.1.0",
"csscolorparser": "~1.0.3",
"earcut": "^2.2.2",
"geojson-vt": "^3.2.1",
"gl-matrix": "^3.2.1",
"grid-index": "^1.1.0",
"minimist": "^1.2.6",
"murmurhash-js": "^1.0.0",
"pbf": "^3.2.1",
"potpack": "^1.0.1",
"quickselect": "^2.0.0",
"rw": "^1.3.3",
"supercluster": "^7.1.0",
"tinyqueue": "^2.0.3",
"vt-pbf": "^3.1.1"
}
},
"material-design-icons": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/material-design-icons/-/material-design-icons-3.0.1.tgz",
"integrity": "sha1-mnHEh0chjrylHlGmbaaCA4zct78="
},
"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=="
},
"moment": {
"version": "2.27.0",
@ -299,9 +830,9 @@
}
},
"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.4.0",
@ -313,16 +844,6 @@
"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",
@ -334,30 +855,17 @@
"rw": {
"version": "1.3.3",
"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=="
"integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
},
"ssr-window": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-1.0.1.tgz",
"integrity": "sha1-MHUqakZm53Z/C35qpvwv29DZs2k="
},
"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"
}
},
"supercluster": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.0.tgz",
"integrity": "sha512-LDasImUAFMhTqhK+cUXfy9C2KTUqJ3gucLjmNLNFmKWOnDUBxLFLH9oKuXOTCLveecmxh8fbk8kgh6Q0gsfe2w==",
"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"
}
@ -383,24 +891,14 @@
"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="
},
"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,21 +1,21 @@
{
"name": "PackageHelper",
"version": "1.6.1",
"version": "1.6.8",
"main": "index.html",
"license": "MPL-2.0",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.12.1",
"@zxing/library": "^0.15.2",
"bwip-js": "^2.0.6",
"bwip-js": "^3.1.0",
"chart.js": "^2.9.3",
"framework7": "^5.5.1",
"jquery": "^3.5.1",
"jsbarcode": "^3.11.0",
"leaflet": "^1.5.1",
"leaflet-geometryutil": "^0.9.1",
"leaflet.locatecontrol": "^0.67.0",
"leaflet.markercluster": "^1.4.1",
"mapbox-gl": "^1.12.0",
"jquery": "^3.6.1",
"jsbarcode": "^3.11.5",
"leaflet": "^1.8.0",
"leaflet-geometryutil": "^0.10.1",
"leaflet.locatecontrol": "^0.76.1",
"leaflet.markercluster": "^1.5.3",
"maplibre-gl": "^1.15.3",
"material-design-icons": "^3.0.1",
"onscan.js": "^1.5.2"
},

@ -21,6 +21,11 @@
<a class="link popover-open" data-popover="#popover-add-options">
<i class="icon material-icons">more_vert</i>
</a>
{{#if show_help}}
<a class="link" href="/help/add">
<i class="icon material-icons">help</i>
</a>
{{/if}}
</div>
</div>
</div>
@ -68,7 +73,7 @@
</div>
</div>
<div class="page-content row justify-content-center margin-top-tablet padding-bottom-tablet">
<div class="list no-margin-top col-100 medium-80 large-50 elevation-tablet">
<div class="list no-hairlines no-margin-top col-100 medium-80 large-50 elevation-tablet">
<ul>
<li class="item-divider">Address</li>
<li>
@ -77,7 +82,7 @@
<div class="item-inner">
<div class="item-title item-label">Number</div>
<div class="item-input-wrap">
<input type="number" name="number" id="housenumberinput" placeholder="1234" value="" autocomplete="off" autocorrect="off">
<input type="number" name="number" id="housenumberinput" placeholder="1234" value="" autocomplete="off" autocorrect="off" inputmode="numeric" >
</div>
</div>
</div>
@ -114,7 +119,7 @@
<div class="item-inner no-padding-right">
<div class="item-title item-label">ZIP</div>
<div class="item-input-wrap">
<input type="text" name="zipcode" placeholder="12345" value="" autocomplete="off" autocorrect="off">
<input type="text" name="zipcode" placeholder="12345" value="" autocomplete="off" autocorrect="off" inputmode="numeric" >
</div>
</div>
</div>
@ -132,16 +137,32 @@
</label>
</li>
{{/each}}
<!-- Extra hidden element for padding because the last list entry likes to hide under the bottom bar on iOS -->
<li style="visibility: hidden;"><span class="item-content">&nbsp;</span></li>
</ul>
</div>
</div>
<div class="fab fab-right-bottom no-tablet">
{{#if customaddtype}}
<div class="fab fab-right-bottom no-tablet hapticbtn fab-stacked-above">
<a class="addpackagebtn addpackagebtn-custom" data-addtype="{{customaddtype}}">
<i class="{{customaddicon}}"></i>
</a>
</div>
<div class="fab fab-extended fab-right-bottom only-tablet hapticbtn fab-stacked-above">
<a class="addpackagebtn addpackagebtn-custom" data-addtype="{{customaddtype}}">
<i class="{{customaddicon}}"></i>
<div class="fab-text">{{customaddname}}</div>
</a>
</div>
{{/if}}
<div class="fab fab-right-bottom no-tablet hapticbtn">
<a class="addpackagebtn">
<i class="icon material-icons">add</i>
</a>
</div>
<div class="fab fab-extended fab-right-bottom only-tablet">
<div class="fab fab-extended fab-right-bottom only-tablet hapticbtn">
<a class="addpackagebtn">
<i class="icon material-icons">add</i>
<div class="fab-text">Add Item</div>
@ -160,7 +181,7 @@
<img style="width: 60%; max-width: 300px; max-height: 40vh;" src="assets/images/history-dashed.svg" class="margin-vertical" />
<div class="margin-top">No recently added items! <span id="history-empty-swipe-prompt">Swipe <i class="fas fa-arrow-left"></i> to add some.</span></div>
</div>
<ul class="list no-hairlines tablet-inset no-margin-top" id="historylist">
<ul class="list no-hairlines tablet-inset no-margin-top hapticbtn" id="historylist">
<!-- Packages go here -->
</ul>
<div class="block text-align-center display-none noselect" id="tap-to-remove-history-prompt">

File diff suppressed because it is too large Load Diff

@ -28,7 +28,7 @@
<div class="block">
<h2>Map Data and Styles</h2>
<p>
Map data &copy; <a href="http://www.openmaptiles.org/" target="_system">OpenMapTiles</a>, &copy; <a href="https://www.openstreetmap.org/copyright" target="_system">OpenStreetMap</a> contributors.
Map data &copy; <a href="https://www.maptiler.com/copyright/" target="_system">MapTiler</a>, &copy; <a href="https://www.openstreetmap.org/copyright" target="_system">OpenStreetMap</a> contributors.
</p>
<h4>OSM Liberty map style</h4>
<pre style="white-space: pre-line; overflow-wrap: break-word;">

@ -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/. -->
<div class="panel panel-right panel-cover">
<div class="view">
<div class="page">
<div class="navbar">
<div class="navbar-bg"></div>
<div class="navbar-inner">
<div class="title">Help</div>
<div class="right">
<a class="link panel-close">
<span>Close</span>
</a>
</div>
</div>
</div>
<div class="page-content">
<div class="block-title">Add a Package/Item</div>
<div class="block">
Enter the house number, street, city, state, and ZIP code. Then choose an item type and
<span class="taptext">tap</span><span class="clicktext">click</span> the <b>+</b> button.
You'll hear a noise and see a message at the bottom of the screen confirming the item was added.
<ul class="padding-left">
<li>The city, state, and ZIP are saved for you so you won't have to enter them every day.
<li>The next time you <span class="taptext">tap</span><span class="clicktext">click</span>
the Number box, it will automatically be erased for you so you can quickly enter the next one.
<li>If you find yourself frequently selecting the same item type, you can add an extra + button that will only
add items as your preferred type. Go to Settings -> Packages and Alerts -> Custom Add Button to set it up.
</ul>
</div>
<div class="block-title">Addresses with Letters</div>
<div class="block">
If the house "number" has letters in it, <span class="taptext">tap</span><span class="clicktext">click</span>
the menu button <i class="fas fa-ellipsis-v"></i> at the top right and select "Address contains letters".
You'll now be able to enter both letters and numbers in the Number box.
</div>
<div class="block-title">Remove an Item</div>
<div class="block">
If you made a mistake, you can quickly remove a recently added item.
On small screens, <span class="taptext">tap</span><span class="clicktext">click</span> the recent tab
or swipe to the left. Then simply <span class="taptext">tap</span><span class="clicktext">click</span> the entry you
want to remove.
If you go to a different part of the app, the recent tab will be empty.
If the item you want to remove isn't in the recent tab, back out to the main screen,
go to the List page, and remove it from there.
</div>
<div class="block-title">Autocomplete</div>
<div class="block">
You'll notice that as you use PackageHelper, it will suggest street names for you. These suggestions
are based on the address number you enter. For example, if you add a package for 1234 Sample Rd, then
for 987 Other St, the next time you type 1234 it will suggest Sample Rd. If multiple addresses share the same
number, the suggestion list will start with the most frequently used at the top.
</div>
</div>
</div>
</div>
</div>

@ -34,7 +34,7 @@
<ul>
{{#each pages}}
<li>
<a href="{{href}}" class="item-link item-content">
<a href="{{href}}" class="item-link item-content hapticbtn">
<div class="item-media"><i class="icon {{icon}}"></i></div>
<div class="item-inner">
<div class="item-title">{{title}}</div>
@ -52,7 +52,7 @@
<div class="row">
{{#each pages}}
<div class="col-50 small-33 large-15">
<div class="card" onclick="router.navigate('{{href}}');" style="cursor: pointer; background-image: url(assets/images/bgs/{{bg}}); background-repeat: no-repeat; background-position: center; background-size: cover;">
<div class="card hapticbtn" onclick="router.navigate('{{href}}');" style="cursor: pointer; background-image: url(assets/images/bgs/{{bg}}); background-repeat: no-repeat; background-position: center; background-size: cover;">
<div class="card-content text-align-center padding-vertical">
<h1 class="no-margin"><i class="{{icon}}"></i></h1>
<br />

@ -15,6 +15,9 @@
</div>
<div class="title">Map</div>
<div class="right">
<a class="link text-color-red" onclick="confirmDeleteAllPackages()">
<i class="icon material-icons">delete</i>
</a>
{{#if show_help}}
<a class="link" href="/help/map">
<i class="icon material-icons">help</i>

@ -56,6 +56,12 @@
{{#if notes}}
<p>{{newlinestobr notes}}</p>
{{/if}}
{{#if forwards}}
<p><b><i class="fas fa-forward"></i></b> {{newlinestobr forwards}}</p>
{{/if}}
{{#if utfs}}
<p><b><span class="fa-stack"><i class="fas fa-forward"></i><i class="fas fa-slash"></i></span></b> {{newlinestobr utfs}}</p>
{{/if}}
<div class="margin-vertical-half">
<ul>
{{#each toggles}}

@ -52,7 +52,7 @@
<div class="item-inner">
<div class="item-title item-label">ZIP</div>
<div class="item-input-wrap">
<input type="number" value="{{note.zipcode}}" name="zipcode" id="zipcode" placeholder="12345" value="" autocomplete="off" autocorrect="off">
<input type="number" value="{{note.zipcode}}" name="zipcode" id="zipcode" placeholder="12345" value="" autocomplete="off" autocorrect="off" inputmode="numeric" >
</div>
</div>
</div>
@ -93,6 +93,26 @@
</div>
</div>
</li>
<li class="item-divider">Forwards</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-input-wrap">
<textarea id="forwards">{{note.forwards}}</textarea>
<span class="input-clear-button"></span>
</div>
</div>
</li>
<li class="item-divider">UTFs</li>
<li class="item-content item-input">
<div class="item-inner">
<div class="item-input-wrap">
<textarea id="utfs">{{note.utfs}}</textarea>
<span class="input-clear-button"></span>
</div>
</div>
</li>
</ul>
</div>
</div>

@ -25,7 +25,7 @@
{{#each settings}}
<li>
{{#if link}}
<div class="item-content item-link" data-setting="{{setting}}" onclick="{{onclick}}">
<div class="item-content item-link hapticbtn" data-setting="{{setting}}" onclick="{{onclick}}">
<div class="item-inner">
<div class="item-title-row">
<div class="item-title">{{title}}</div>
@ -41,14 +41,10 @@
<div class="item-title">
{{title}}
</div>
<div class="item-after" onclick="{
{
onclick
}
}">
<div class="item-after hapticbtn" onclick="{{onclick}}">
<label class="toggle toggle-init">
<input type="checkbox" {{#if checked}}checked{{/if}}>
<span class="toggle-icon"></span>
<span class="toggle-icon"></span>
</label>
</div>
</div>
@ -84,11 +80,7 @@
</div>
</a>
{{else}}
<div class="item-content" data-setting="{{setting}}" onclick="{
{
onclick
}
}">
<div class="item-content hapticbtn" data-setting="{{setting}}" onclick="{{onclick}}">
<div class="item-inner">
<div class="item-title-row">
<div class="item-title">{{title}}</div>

@ -24,7 +24,7 @@
<ul>
{{#each pages}}
<li>
<a href="{{href}}" class="item-link item-content">
<a href="{{href}}" class="item-link item-content hapticbtn">
<div class="item-media"><i class="icon {{icon}}"></i></div>
<div class="item-inner">
<div class="item-title">{{title}}</div>
@ -42,7 +42,7 @@
<div class="row">
{{#each pages}}
<div class="col-50 small-33 large-15">
<div class="card" onclick="router.navigate('{{href}}');" style="cursor: pointer; background-image: url(assets/images/bgs/{{bg}}); background-repeat: no-repeat; background-position: center; background-size: cover;">
<div class="card hapticbtn" onclick="router.navigate('{{href}}');" style="cursor: pointer; background-image: url(assets/images/bgs/{{bg}}); background-repeat: no-repeat; background-position: center; background-size: cover;">
<div class="card-content text-align-center padding-vertical">
<h1 class="no-margin"><i class="{{icon}}"></i></h1>
<br />

@ -57,7 +57,7 @@
<div class="item-inner no-padding-right">
<div class="item-title item-label">ZIP</div>
<div class="item-input-wrap">
<input type="text" id="zipcodeinput" placeholder="12345" value="" autocomplete="off" autocorrect="off">
<input type="text" id="zipcodeinput" placeholder="12345" value="" autocomplete="off" autocorrect="off" inputmode="numeric" >
<span class="input-clear-button"></span>
</div>
</div>

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

Loading…
Cancel
Save