Initial commit

This commit is contained in:
Juan Carlos Ruvalcaba 2021-04-13 14:46:54 -07:00
commit a23e95ca0a
133 changed files with 17734 additions and 0 deletions

47
.gitignore vendored Normal file
View File

@ -0,0 +1,47 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Dependency directories
node_modules/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
# Misc
.DS_Store
Thumbs.db
# Cordova
cordova/platforms/
cordova/plugins/
cordova/www/
# Production build
www/
#Hide connection file
/src/js/models/ConnectionMode.js
/src/js/api/key.js

90
README.md Normal file
View File

@ -0,0 +1,90 @@
# Comida Cab
## NPM Scripts
* 🔥 `start` - run development server
* 🔧 `dev` - run development server
* 🔧 `build` - build web app for production
* 📱 `build-cordova` - build cordova app
* 📱 `build-cordova-ios` - build cordova iOS app
* 📱 `cordova-ios` - run dev build cordova iOS app
* 📱 `build-cordova-android` - build cordova Android app
* 📱 `cordova-android` - run dev build cordova Android app
* 🖥 `build-cordova-electron` - build cordova Electron app
* 🖥 `cordova-electron` - launch quick preview (without full build process) of Electron app in development mode
## WebPack
There is a webpack bundler setup. It compiles and bundles all "front-end" resources. You should work only with files located in `/src` folder. Webpack config located in `build/webpack.config.js`.
Webpack has specific way of handling static assets (CSS files, images, audios). You can learn more about correct way of doing things on [official webpack documentation](https://webpack.js.org/guides/asset-management/).
## Cordova
## Cordova Android
Cordova Android was installed. To test it, use following command:
```
framework7 cordova run android
```
## PWA
This is a PWA. Don't forget to check what is inside of your `service-worker.js`. It is also recommended that you disable service worker (or enable "Update on reload") in browser dev tools during development.
## Cordova
Cordova project located in `cordova` folder. You shouldn't modify content of `cordova/www` folder. Its content will be correctly generated when you call `npm run cordova-build-prod`.
## Cordova Electron
There is also cordova Electron platform installed. To learn more about it and Electron check this guides:
* [Cordova Electron Platform Guide](https://cordova.apache.org/docs/en/latest/guide/platforms/electron/index.html)
* [Official Electron Documentation](https://electronjs.org/docs)
## Assets
Assets (icons, splash screens) source images located in `assets-src` folder. To generate your own icons and splash screen images, you will need to replace all assets in this directory with your own images (pay attention to image size and format), and run the following command in the project directory:
```
framework7 assets
```
Or launch UI where you will be able to change icons and splash screens:
```
framework7 assets --ui
```
## To compile after download from github
After getting project from github
```
npm update
```
If framework7 cli not installed, add it:
```
npm install -g framework7-cli
```
Re-add platforms to cordova
```
framework7 cordova platform add electron@1.1.1
framework7 cordova platform add android@8.1.0
```
If cordova build has not been made then:
```
npm run build-dev-cordova
```
Finally, to test in device or emulator run
```
framework7 cordova build android
framework7 cordova run android
```

190
README.md.bak Normal file
View File

@ -0,0 +1,190 @@
# Comida Cab
## Framework7 CLI Options
Framework7 app created with following options:
```
{
"cwd": "C:\\android\\projects\\comida-cab-f7-v6",
"type": [
"web",
"pwa",
"cordova"
],
"name": "Comida Cab",
"framework": "core",
"template": "single-view",
"bundler": "webpack",
"cssPreProcessor": "less",
"theming": {
"customColor": true,
"color": "#44c950",
"darkTheme": true,
"iconFonts": true,
"fillBars": false
},
"customBuild": true,
"customBuildConfig": {
"rtl": false,
"darkTheme": true,
"lightTheme": true,
"themes": [
"ios",
"md",
"aurora"
],
"components": [
"appbar",
"dialog",
"popup",
"login-screen",
"popover",
"actions",
"sheet",
"toast",
"preloader",
"progressbar",
"sortable",
"swipeout",
"accordion",
"contacts-list",
"virtual-list",
"list-index",
"timeline",
"tabs",
"panel",
"card",
"chip",
"form",
"input",
"checkbox",
"radio",
"toggle",
"range",
"stepper",
"smart-select",
"grid",
"calendar",
"picker",
"infinite-scroll",
"pull-to-refresh",
"lazy",
"data-table",
"fab",
"searchbar",
"messages",
"messagebar",
"swiper",
"photo-browser",
"notification",
"autocomplete",
"tooltip",
"gauge",
"skeleton",
"menu",
"color-picker",
"treeview",
"text-editor",
"area-chart",
"pie-chart",
"elevation",
"typography"
]
},
"webpack": {
"developmentSourceMap": true,
"productionSourceMap": true,
"hashAssets": false,
"preserveAssetsPaths": false,
"inlineAssets": true
},
"pkg": "com.comidacab.app",
"cordova": {
"folder": "cordova",
"platforms": [
"ios",
"android",
"electron"
],
"plugins": [
"cordova-plugin-statusbar",
"cordova-plugin-keyboard",
"cordova-plugin-splashscreen"
]
}
}
```
## NPM Scripts
* 🔥 `start` - run development server
* 🔧 `dev` - run development server
* 🔧 `build` - build web app for production
* 📱 `build-cordova` - build cordova app
* 📱 `build-cordova-ios` - build cordova iOS app
* 📱 `cordova-ios` - run dev build cordova iOS app
* 📱 `build-cordova-android` - build cordova Android app
* 📱 `cordova-android` - run dev build cordova Android app
* 🖥 `build-cordova-electron` - build cordova Electron app
* 🖥 `cordova-electron` - launch quick preview (without full build process) of Electron app in development mode
## WebPack
There is a webpack bundler setup. It compiles and bundles all "front-end" resources. You should work only with files located in `/src` folder. Webpack config located in `build/webpack.config.js`.
Webpack has specific way of handling static assets (CSS files, images, audios). You can learn more about correct way of doing things on [official webpack documentation](https://webpack.js.org/guides/asset-management/).
## Cordova
## Cordova Android
Cordova Android was installed. To test it, use following command:
```
framework7 cordova run android
```
## PWA
This is a PWA. Don't forget to check what is inside of your `service-worker.js`. It is also recommended that you disable service worker (or enable "Update on reload") in browser dev tools during development.
## Cordova
Cordova project located in `cordova` folder. You shouldn't modify content of `cordova/www` folder. Its content will be correctly generated when you call `npm run cordova-build-prod`.
## Cordova Electron
There is also cordova Electron platform installed. To learn more about it and Electron check this guides:
* [Cordova Electron Platform Guide](https://cordova.apache.org/docs/en/latest/guide/platforms/electron/index.html)
* [Official Electron Documentation](https://electronjs.org/docs)
## Assets
Assets (icons, splash screens) source images located in `assets-src` folder. To generate your own icons and splash screen images, you will need to replace all assets in this directory with your own images (pay attention to image size and format), and run the following command in the project directory:
```
framework7 assets
```
Or launch UI where you will be able to change icons and splash screens:
```
framework7 assets --ui
```
## To compile after download from github
After getting project from github
## Documentation & Resources
* [Framework7 Core Documentation](https://framework7.io/docs/)
* [Framework7 Icons Reference](https://framework7.io/icons/)
* [Community Forum](https://forum.framework7.io)
## Support Framework7
Love Framework7? Support project by donating or pledging on patreon:
https://patreon.com/vladimirkharlampidi

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
assets-src/web-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

11
babel.config.js Normal file
View File

@ -0,0 +1,11 @@
module.exports = {
presets: [
'@babel/preset-react',
['@babel/preset-env', {
modules: false,
}],
],
plugins: [
'@babel/plugin-transform-runtime',
],
};

36
build/build.js Normal file
View File

@ -0,0 +1,36 @@
const webpack = require('webpack');
const ora = require('ora');
const rm = require('rimraf');
const chalk = require('chalk');
const config = require('./webpack.config.js');
const env = process.env.NODE_ENV || 'development';
const target = process.env.TARGET || 'web';
const isCordova = target === 'cordova'
const spinner = ora(env === 'production' ? 'building for production...' : 'building development version...');
spinner.start();
rm(isCordova ? './cordova/www' : './www/', (removeErr) => {
if (removeErr) throw removeErr;
webpack(config, (err, stats) => {
if (err) throw err;
spinner.stop();
process.stdout.write(`${stats.toString({
colors: true,
modules: false,
children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
chunks: false,
chunkModules: false,
})}\n\n`);
if (stats.hasErrors()) {
console.log(chalk.red('Build failed with errors.\n'));
process.exit(1);
}
console.log(chalk.cyan('Build complete.\n'));
});
});

216
build/webpack.config.js Normal file
View File

@ -0,0 +1,216 @@
const webpack = require('webpack');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const WorkboxPlugin = require('workbox-webpack-plugin');
const path = require('path');
function resolvePath(dir) {
return path.join(__dirname, '..', dir);
}
const env = process.env.NODE_ENV || 'development';
const target = process.env.TARGET || 'web';
const isCordova = target === 'cordova';
const isElectronWatch = process.env.ELECTRON_WATCH || false;
module.exports = {
mode: env,
target: env === "development" ? "web" : "browserslist",
entry: {
app: './src/js/app.js',
},
output: {
path: resolvePath(isCordova ? (isElectronWatch ? 'cordova/platforms/electron/www' : 'cordova/www') : 'www'),
filename: 'js/[name].js',
chunkFilename: 'js/[name].js',
publicPath: '',
hotUpdateChunkFilename: 'hot/hot-update.js',
hotUpdateMainFilename: 'hot/hot-update.json',
},
resolve: {
extensions: ['.js', '.json'],
alias: {
'@': resolvePath('src'),
},
},
devtool: env === 'production' ? 'source-map' : 'eval',
devServer: {
hot: true,
open: true,
compress: true,
contentBase: '/www/',
disableHostCheck: true,
historyApiFallback: true,
},
optimization: {
concatenateModules: true,
minimizer: [new TerserPlugin()],
},
module: {
rules: [
{
test: /\.(mjs|js|jsx)$/,
include: [
resolvePath('src'),
],
use: [
{
loader: require.resolve('babel-loader'),
},
]
},
{
test: /\.f7.(html|js)$/,
use: [
'babel-loader',
'framework7-loader',
],
},
{
test: /\.css$/,
use: [
(env === 'development' ? 'style-loader' : {
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: '../'
}
}),
'css-loader',
'postcss-loader',
],
},
{
test: /\.styl(us)?$/,
use: [
(env === 'development' ? 'style-loader' : {
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: '../'
}
}),
'css-loader',
'postcss-loader',
'stylus-loader',
],
},
{
test: /\.less$/,
use: [
(env === 'development' ? 'style-loader' : {
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: '../'
}
}),
'css-loader',
'postcss-loader',
'less-loader',
],
},
{
test: /\.(sa|sc)ss$/,
use: [
(env === 'development' ? 'style-loader' : {
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: '../'
}
}),
'css-loader',
'postcss-loader',
'sass-loader',
],
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'images/[name].[ext]',
},
type: 'javascript/auto'
},
{
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac|m4a)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'media/[name].[ext]',
},
type: 'javascript/auto'
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'fonts/[name].[ext]',
},
type: 'javascript/auto'
},
],
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(env),
'process.env.TARGET': JSON.stringify(target),
}),
...(env === 'production' ? [
new CssMinimizerPlugin(),
] : [
// Development only plugins
new webpack.HotModuleReplacementPlugin(),
]),
new HtmlWebpackPlugin({
filename: './index.html',
template: './src/index.html',
inject: true,
minify: env === 'production' ? {
collapseWhitespace: true,
removeComments: true,
removeRedundantAttributes: false,
removeScriptTypeAttributes: true,
removeStyleLinkTypeAttributes: true,
useShortDoctype: true
} : false,
}),
new MiniCssExtractPlugin({
filename: 'css/[name].css',
}),
new CopyWebpackPlugin({
patterns: [
{
noErrorOnMissing: true,
from: resolvePath('src/static'),
to: resolvePath(isCordova ? 'cordova/www/static' : 'www/static'),
},
{
noErrorOnMissing: true,
from: resolvePath('src/manifest.json'),
to: resolvePath('www/manifest.json'),
},
],
}),
...(!isCordova ? [
new WorkboxPlugin.InjectManifest({
swSrc: resolvePath('src/service-worker.js'),
})
] : []),
],
};

119
cordova/config.xml Normal file
View File

@ -0,0 +1,119 @@
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.comidacab.app" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Comida Cab</name>
<description>
Aplicación de entrega de comida local.
</description>
<author email="askot.altair@gmail.com" href="https://www.linkedin.com/in/juan-carlos-r-2a3333184">
Aplicaciones Digitales Cab
</author>
<content src="index.html" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<allow-navigation href="*" />
<platform name="android">
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="android-minSdkVersion" value="22" />
<preference name="SplashMaintainAspectRatio" value="true" />
<!--
<splash density="land-hdpi" src="res/screen/android/drawable-hdpi/screen.png" />
<splash density="land-mdpi" src="res/screen/android/drawable-mdpi/screen.png" />
<splash density="land-xhdpi" src="res/screen/android/drawable-xhdpi/screen.png" />
<splash density="land-xxhdpi" src="res/screen/android/drawable-xxhdpi/screen.png" />
<splash density="land-xxxhdpi" src="res/screen/android/drawable-xxxhdpi/screen.png" />
<splash density="port-hdpi" src="res/screen/android/drawable-hdpi/screen.png" />
<splash density="port-mdpi" src="res/screen/android/drawable-mdpi/screen.png" />
<splash density="port-xhdpi" src="res/screen/android/drawable-xhdpi/screen.png" />
<splash density="port-xxhdpi" src="res/screen/android/drawable-xxhdpi/screen.png" />
<splash density="port-xxxhdpi" src="res/screen/android/drawable-xxxhdpi/screen.png" />
<icon density="ldpi" src="res/icon/android/mipmap-ldpi/ic_launcher.png" />
<icon density="mdpi" src="res/icon/android/mipmap-mdpi/ic_launcher.png" />
<icon density="hdpi" src="res/icon/android/mipmap-hdpi/ic_launcher.png" />
<icon density="xhdpi" src="res/icon/android/mipmap-xhdpi/ic_launcher.png" />
<icon density="xxhdpi" src="res/icon/android/mipmap-xxhdpi/ic_launcher.png" />
<icon density="xxxhdpi" src="res/icon/android/mipmap-xxxhdpi/ic_launcher.png" />
-->
<splash density="land-mdpi" src="res/screen/android/land/splash-land-mdpi.png" />
<splash density="land-hdpi" src="res/screen/android/land/splash-land-hdpi.png" />
<splash density="land-xhdpi" src="res/screen/android/land/splash-land-xhdpi.png" />
<splash density="land-xxhdpi" src="res/screen/android/land/splash-land-xxhdpi.png" />
<splash density="land-xxxhdpi" src="res/screen/android/land/splash-land-xxxhdpi.png" />
<splash density="port-mdpi" src="res/screen/android/port/splash-port-mdpi.png" />
<splash density="port-hdpi" src="res/screen/android/port/splash-port-hdpi.png" />
<splash density="port-xhdpi" src="res/screen/android/port/splash-port-xhdpi.png" />
<splash density="port-xxhdpi" src="res/screen/android/port/splash-port-xxhdpi.png" />
<splash density="port-xxxhdpi" src="res/screen/android/port/splash-port-xxxhdpi.png" />
<icon density="ldpi" src="res/icon/android/ldpi.png" />
<icon density="mdpi" src="res/icon/android/mdpi.png" />
<icon density="hdpi" src="res/icon/android/hdpi.png" />
<icon density="xhdpi" src="res/icon/android/xhdpi.png" />
<icon density="xxhdpi" src="res/icon/android/xxhdpi.png" />
<icon density="xxxhdpi" src="res/icon/android/xxxhdpi.png" />
</platform>
<platform name="ios">
<config-file parent="CFBundleAllowMixedLocalizations" platform="ios" target="*-Info.plist">
<true />
</config-file>
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
<preference name="StatusBarOverlaysWebView" value="true" />
<splash src="res/screen/ios/Default@2x~universal~anyany.png" />
<icon height="180" src="res/icon/ios/icon-60x60@3x.png" width="180" />
<icon height="60" src="res/icon/ios/icon-60x60@1x.png" width="60" />
<icon height="120" src="res/icon/ios/icon-60x60@2x.png" width="120" />
<icon height="76" src="res/icon/ios/icon-76x76@1x.png" width="76" />
<icon height="152" src="res/icon/ios/icon-76x76@2x.png" width="152" />
<icon height="228" src="res/icon/ios/icon-76x76@3x.png" width="228" />
<icon height="40" src="res/icon/ios/icon-40x40@1x.png" width="40" />
<icon height="80" src="res/icon/ios/icon-40x40@2x.png" width="80" />
<icon height="87" src="res/icon/ios/icon-29x29@3x.png" width="87" />
<icon height="57" src="res/icon/ios/icon-57x57@1x.png" width="57" />
<icon height="114" src="res/icon/ios/icon-57x57@2x.png" width="114" />
<icon height="72" src="res/icon/ios/icon-72x72@1x.png" width="72" />
<icon height="144" src="res/icon/ios/icon-72x72@2x.png" width="144" />
<icon height="167" src="res/icon/ios/icon-83.5x83.5@2x.png" width="167" />
<icon height="29" src="res/icon/ios/icon-29x29@1x.png" width="29" />
<icon height="58" src="res/icon/ios/icon-29x29@2x.png" width="58" />
<icon height="50" src="res/icon/ios/icon-50x50@1x.png" width="50" />
<icon height="100" src="res/icon/ios/icon-50x50@2x.png" width="100" />
<icon height="167" src="res/icon/ios/icon-83.5x83.5@2x.png" width="167" />
<icon height="1024" src="res/icon/ios/icon-512x512@2x.png" width="1024" />
</platform>
<platform name="electron">
<preference name="ElectronSettingsFilePath" value="electron-settings.json" />
<icon src="res/icon/electron/app.png" target="app" />
<icon src="res/icon/electron/installer.png" target="installer" />
<preference name="ShowSplashScreen" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
</platform>
<preference name="DisallowOverscroll" value="true" />
<preference name="BackupWebStorage" value="local" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="ShowSplashScreenSpinner" value="false" />
<preference name="SplashScreenDelay" value="0" />
<preference name="Suppresses3DTouchGesture" value="true" />
<preference name="Allow3DTouchLinkPreview" value="false" />
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<preference name="AllowInlineMediaPlayback" value="true" />
</widget>

101
cordova/config.xml.bak Normal file
View File

@ -0,0 +1,101 @@
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.comidacab.app" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>Comida Cab</name>
<description>
A sample Apache Cordova application that responds to the deviceready event.
</description>
<author email="dev@cordova.apache.org" href="http://cordova.io">
Apache Cordova Team
</author>
<content src="index.html" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<allow-navigation href="*" />
<platform name="android">
<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="android-minSdkVersion" value="22" />
<preference name="SplashMaintainAspectRatio" value="true" />
<splash density="land-hdpi" src="res/screen/android/drawable-hdpi/screen.png" />
<splash density="land-mdpi" src="res/screen/android/drawable-mdpi/screen.png" />
<splash density="land-xhdpi" src="res/screen/android/drawable-xhdpi/screen.png" />
<splash density="land-xxhdpi" src="res/screen/android/drawable-xxhdpi/screen.png" />
<splash density="land-xxxhdpi" src="res/screen/android/drawable-xxxhdpi/screen.png" />
<splash density="port-hdpi" src="res/screen/android/drawable-hdpi/screen.png" />
<splash density="port-mdpi" src="res/screen/android/drawable-mdpi/screen.png" />
<splash density="port-xhdpi" src="res/screen/android/drawable-xhdpi/screen.png" />
<splash density="port-xxhdpi" src="res/screen/android/drawable-xxhdpi/screen.png" />
<splash density="port-xxxhdpi" src="res/screen/android/drawable-xxxhdpi/screen.png" />
<icon density="ldpi" src="res/icon/android/mipmap-ldpi/ic_launcher.png" />
<icon density="mdpi" src="res/icon/android/mipmap-mdpi/ic_launcher.png" />
<icon density="hdpi" src="res/icon/android/mipmap-hdpi/ic_launcher.png" />
<icon density="xhdpi" src="res/icon/android/mipmap-xhdpi/ic_launcher.png" />
<icon density="xxhdpi" src="res/icon/android/mipmap-xxhdpi/ic_launcher.png" />
<icon density="xxxhdpi" src="res/icon/android/mipmap-xxxhdpi/ic_launcher.png" />
</platform>
<platform name="ios">
<config-file parent="CFBundleAllowMixedLocalizations" platform="ios" target="*-Info.plist">
<true />
</config-file>
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
<preference name="StatusBarOverlaysWebView" value="true" />
<splash src="res/screen/ios/Default@2x~universal~anyany.png" />
<icon height="180" src="res/icon/ios/icon-60x60@3x.png" width="180" />
<icon height="60" src="res/icon/ios/icon-60x60@1x.png" width="60" />
<icon height="120" src="res/icon/ios/icon-60x60@2x.png" width="120" />
<icon height="76" src="res/icon/ios/icon-76x76@1x.png" width="76" />
<icon height="152" src="res/icon/ios/icon-76x76@2x.png" width="152" />
<icon height="228" src="res/icon/ios/icon-76x76@3x.png" width="228" />
<icon height="40" src="res/icon/ios/icon-40x40@1x.png" width="40" />
<icon height="80" src="res/icon/ios/icon-40x40@2x.png" width="80" />
<icon height="87" src="res/icon/ios/icon-29x29@3x.png" width="87" />
<icon height="57" src="res/icon/ios/icon-57x57@1x.png" width="57" />
<icon height="114" src="res/icon/ios/icon-57x57@2x.png" width="114" />
<icon height="72" src="res/icon/ios/icon-72x72@1x.png" width="72" />
<icon height="144" src="res/icon/ios/icon-72x72@2x.png" width="144" />
<icon height="167" src="res/icon/ios/icon-83.5x83.5@2x.png" width="167" />
<icon height="29" src="res/icon/ios/icon-29x29@1x.png" width="29" />
<icon height="58" src="res/icon/ios/icon-29x29@2x.png" width="58" />
<icon height="50" src="res/icon/ios/icon-50x50@1x.png" width="50" />
<icon height="100" src="res/icon/ios/icon-50x50@2x.png" width="100" />
<icon height="167" src="res/icon/ios/icon-83.5x83.5@2x.png" width="167" />
<icon height="1024" src="res/icon/ios/icon-512x512@2x.png" width="1024" />
</platform>
<platform name="electron">
<preference name="ElectronSettingsFilePath" value="electron-settings.json" />
<icon src="res/icon/electron/app.png" target="app" />
<icon src="res/icon/electron/installer.png" target="installer" />
<preference name="ShowSplashScreen" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
</platform>
<preference name="DisallowOverscroll" value="true" />
<preference name="BackupWebStorage" value="local" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="ShowSplashScreenSpinner" value="false" />
<preference name="SplashScreenDelay" value="0" />
<preference name="Suppresses3DTouchGesture" value="true" />
<preference name="Allow3DTouchLinkPreview" value="false" />
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<preference name="AllowInlineMediaPlayback" value="true" />
</widget>

View File

@ -0,0 +1,7 @@
{
"browserWindow": {
"webPreferences": {
"nodeIntegration": true
}
}
}

23
cordova/hooks/README.md Normal file
View File

@ -0,0 +1,23 @@
<!--
#
# 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.
#
-->
# Cordova Hooks
Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. See Hooks Guide for more details: http://cordova.apache.org/docs/en/edge/guide_appdev_hooks_index.md.html#Hooks%20Guide.

3449
cordova/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

39
cordova/package.json Normal file
View File

@ -0,0 +1,39 @@
{
"name": "com.comidacab.app",
"displayName": "Comida Cab",
"version": "1.0.0",
"description": "Aplicación de entrega de comida local.",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"ecosystem:cordova"
],
"author": "Juan Carlos Ruvalcaba",
"license": "Closed source",
"dependencies": {
"cordova-android": "^8.1.0",
"cordova-electron": "^1.1.1",
"cordova-ios": "^6.2.0",
"cordova-plugin-keyboard": "^1.2.0",
"cordova-plugin-splashscreen": "^6.0.0",
"cordova-plugin-statusbar": "^2.4.3"
},
"cordova": {
"plugins": {
"cordova-plugin-statusbar": {},
"cordova-plugin-keyboard": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-whitelist": {}
},
"platforms": [
"ios",
"android",
"electron"
]
},
"devDependencies": {
"cordova-plugin-whitelist": "^1.3.4"
}
}

39
cordova/package.json.bak Normal file
View File

@ -0,0 +1,39 @@
{
"name": "com.comidacab.app",
"displayName": "Comida Cab",
"version": "1.0.0",
"description": "A sample Apache Cordova application that responds to the deviceready event.",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"ecosystem:cordova"
],
"author": "Apache Cordova Team",
"license": "Apache-2.0",
"dependencies": {
"cordova-android": "^8.1.0",
"cordova-electron": "^1.1.1",
"cordova-ios": "^6.2.0",
"cordova-plugin-keyboard": "^1.2.0",
"cordova-plugin-splashscreen": "^6.0.0",
"cordova-plugin-statusbar": "^2.4.3"
},
"cordova": {
"plugins": {
"cordova-plugin-statusbar": {},
"cordova-plugin-keyboard": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-whitelist": {}
},
"platforms": [
"ios",
"android",
"electron"
]
},
"devDependencies": {
"cordova-plugin-whitelist": "^1.3.4"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 770 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 977 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

109
framework7.json Normal file
View File

@ -0,0 +1,109 @@
{
"cwd": "C:\\android\\projects\\comida-cab-f7-v6",
"type": [
"web",
"pwa",
"cordova"
],
"name": "Comida Cab",
"framework": "core",
"template": "single-view",
"bundler": "webpack",
"cssPreProcessor": "less",
"theming": {
"customColor": true,
"color": "#44c950",
"darkTheme": true,
"iconFonts": true,
"fillBars": false
},
"customBuild": true,
"customBuildConfig": {
"rtl": false,
"darkTheme": true,
"lightTheme": true,
"themes": [
"ios",
"md",
"aurora"
],
"components": [
"appbar",
"dialog",
"popup",
"login-screen",
"popover",
"actions",
"sheet",
"toast",
"preloader",
"progressbar",
"sortable",
"swipeout",
"accordion",
"contacts-list",
"virtual-list",
"list-index",
"timeline",
"tabs",
"panel",
"card",
"chip",
"form",
"input",
"checkbox",
"radio",
"toggle",
"range",
"stepper",
"smart-select",
"grid",
"calendar",
"picker",
"infinite-scroll",
"pull-to-refresh",
"lazy",
"data-table",
"fab",
"searchbar",
"messages",
"messagebar",
"swiper",
"photo-browser",
"notification",
"autocomplete",
"tooltip",
"gauge",
"skeleton",
"menu",
"color-picker",
"treeview",
"text-editor",
"area-chart",
"pie-chart",
"elevation",
"typography"
]
},
"webpack": {
"developmentSourceMap": true,
"productionSourceMap": true,
"hashAssets": false,
"preserveAssetsPaths": false,
"inlineAssets": true
},
"pkg": "com.comidacab.app",
"cordova": {
"folder": "cordova",
"platforms": [
"ios",
"android",
"electron"
],
"plugins": [
"cordova-plugin-statusbar",
"cordova-plugin-keyboard",
"cordova-plugin-splashscreen"
]
}
}

11842
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

68
package.json Normal file
View File

@ -0,0 +1,68 @@
{
"name": "comida-cab",
"private": true,
"version": "1.0.0",
"description": "Comida Cab",
"repository": "",
"license": "UNLICENSED",
"scripts": {
"start": "npm run dev",
"dev": "cross-env NODE_ENV=development webpack serve --config ./build/webpack.config.js --port 8082",
"build": "cross-env NODE_ENV=production node ./build/build.js",
"build-cordova": "cross-env TARGET=cordova cross-env NODE_ENV=production node ./build/build.js && cd cordova && cordova build",
"build-cordova-ios": "cross-env TARGET=cordova cross-env NODE_ENV=production node ./build/build.js && cd cordova && cordova build ios",
"cordova-ios": "cross-env TARGET=cordova cross-env NODE_ENV=development node ./build/build.js && cd cordova && cordova run ios",
"build-cordova-android": "cross-env TARGET=cordova cross-env NODE_ENV=production node ./build/build.js && cd cordova && cordova build android",
"cordova-android": "cross-env TARGET=cordova cross-env NODE_ENV=development node ./build/build.js && cd cordova && cordova run android",
"build-cordova-electron": "cross-env TARGET=cordova cross-env NODE_ENV=production node ./build/build.js && cd cordova && cordova build electron",
"cordova-electron": "cross-env TARGET=cordova cross-env NODE_ENV=development node ./build/build.js && concurrently --kill-others \"cross-env TARGET=cordova cross-env ELECTRON_WATCH=true cross-env NODE_ENV=development cross-env webpack --progress --config ./build/webpack.config.js --watch\" \"cd cordova && cordova run electron --nobuild\"",
"postinstall": "cpy ./node_modules/framework7-icons/fonts/*.* ./src/fonts/"
},
"browserslist": [
"Android >= 7",
"IOS >= 11",
"Safari >= 11",
"Chrome >= 49",
"Firefox >= 31",
"Samsung >= 5"
],
"dependencies": {
"dom7": "^3.0.0",
"framework7": "^6.0.15",
"framework7-icons": "^4.0.2",
"skeleton-elements": "^3.3.0",
"swiper": "^6.5.6"
},
"devDependencies": {
"@babel/core": "^7.13.15",
"@babel/plugin-transform-runtime": "^7.13.15",
"@babel/preset-env": "^7.13.15",
"@babel/preset-react": "^7.13.13",
"@babel/runtime": "^7.13.10",
"babel-loader": "^8.2.2",
"chalk": "^4.1.0",
"concurrently": "^6.0.2",
"copy-webpack-plugin": "^8.1.1",
"cpy-cli": "^3.1.1",
"cross-env": "^7.0.3",
"css-loader": "^5.2.1",
"css-minimizer-webpack-plugin": "^2.0.0",
"file-loader": "^6.2.0",
"framework7-loader": "^3.0.2",
"html-webpack-plugin": "^5.3.1",
"less": "^4.1.1",
"less-loader": "^8.1.0",
"mini-css-extract-plugin": "^1.4.1",
"ora": "^5.4.0",
"postcss-loader": "^5.2.0",
"postcss-preset-env": "^6.7.0",
"rimraf": "^3.0.2",
"style-loader": "^2.0.0",
"terser-webpack-plugin": "^5.1.1",
"url-loader": "^4.1.1",
"webpack": "^5.32.0",
"webpack-cli": "^4.6.0",
"webpack-dev-server": "^3.11.2",
"workbox-webpack-plugin": "^6.1.5"
}
}

5
postcss.config.js Normal file
View File

@ -0,0 +1,5 @@
module.exports = {
plugins: {
'postcss-preset-env': {},
},
};

32
src/app.f7.html Normal file
View File

@ -0,0 +1,32 @@
<template>
<div id="app" class="theme-dark">
<!-- Your main view, should have "view-main" class -->
<div class="view view-main view-init safe-areas" data-url="/"></div>
</div>
</template>
<script>
export default (props, { $f7, $update }) => {
// Login screen demo data
let username = '';
let password = '';
const updateUsername = (e) => {
username = e.target.value;
$update();
}
const updatePassword = (e) => {
password = e.target.value;
$update();
}
const alertLoginData = () => {
$f7.dialog.alert('Username: ' + username + '<br/>Password: ' + password, () => {
$f7.loginScreen.close();
});
}
return $render;
}
</script>

14
src/css/app.less Normal file
View File

@ -0,0 +1,14 @@
/* iOS Cordova Tweak */
.device-cordova.device-ios {
height: 100vh;
}
/* Custom color theme properties */
:root {
--f7-theme-color: #44c950;
--f7-theme-color-rgb: 68, 201, 80;
--f7-theme-color-shade: #33b13e;
--f7-theme-color-tint: #64d26e;
}
/* Your app custom styles here */

View File

@ -0,0 +1,66 @@
& {
@import url('../../node_modules/framework7/framework7.less');
@import url('../../node_modules/framework7/components/appbar/appbar.less');
@import url('../../node_modules/framework7/components/dialog/dialog.less');
@import url('../../node_modules/framework7/components/popup/popup.less');
@import url('../../node_modules/framework7/components/login-screen/login-screen.less');
@import url('../../node_modules/framework7/components/popover/popover.less');
@import url('../../node_modules/framework7/components/actions/actions.less');
@import url('../../node_modules/framework7/components/sheet/sheet.less');
@import url('../../node_modules/framework7/components/toast/toast.less');
@import url('../../node_modules/framework7/components/preloader/preloader.less');
@import url('../../node_modules/framework7/components/progressbar/progressbar.less');
@import url('../../node_modules/framework7/components/sortable/sortable.less');
@import url('../../node_modules/framework7/components/swipeout/swipeout.less');
@import url('../../node_modules/framework7/components/accordion/accordion.less');
@import url('../../node_modules/framework7/components/contacts-list/contacts-list.less');
@import url('../../node_modules/framework7/components/virtual-list/virtual-list.less');
@import url('../../node_modules/framework7/components/list-index/list-index.less');
@import url('../../node_modules/framework7/components/timeline/timeline.less');
@import url('../../node_modules/framework7/components/tabs/tabs.less');
@import url('../../node_modules/framework7/components/panel/panel.less');
@import url('../../node_modules/framework7/components/card/card.less');
@import url('../../node_modules/framework7/components/chip/chip.less');
@import url('../../node_modules/framework7/components/form/form.less');
@import url('../../node_modules/framework7/components/input/input.less');
@import url('../../node_modules/framework7/components/checkbox/checkbox.less');
@import url('../../node_modules/framework7/components/radio/radio.less');
@import url('../../node_modules/framework7/components/toggle/toggle.less');
@import url('../../node_modules/framework7/components/range/range.less');
@import url('../../node_modules/framework7/components/stepper/stepper.less');
@import url('../../node_modules/framework7/components/smart-select/smart-select.less');
@import url('../../node_modules/framework7/components/grid/grid.less');
@import url('../../node_modules/framework7/components/calendar/calendar.less');
@import url('../../node_modules/framework7/components/picker/picker.less');
@import url('../../node_modules/framework7/components/infinite-scroll/infinite-scroll.less');
@import url('../../node_modules/framework7/components/pull-to-refresh/pull-to-refresh.less');
@import url('../../node_modules/framework7/components/lazy/lazy.less');
@import url('../../node_modules/framework7/components/data-table/data-table.less');
@import url('../../node_modules/framework7/components/fab/fab.less');
@import url('../../node_modules/framework7/components/searchbar/searchbar.less');
@import url('../../node_modules/framework7/components/messages/messages.less');
@import url('../../node_modules/framework7/components/messagebar/messagebar.less');
@import url('../../node_modules/framework7/components/swiper/swiper.less');
@import url('../../node_modules/framework7/components/photo-browser/photo-browser.less');
@import url('../../node_modules/framework7/components/notification/notification.less');
@import url('../../node_modules/framework7/components/autocomplete/autocomplete.less');
@import url('../../node_modules/framework7/components/tooltip/tooltip.less');
@import url('../../node_modules/framework7/components/gauge/gauge.less');
@import url('../../node_modules/framework7/components/skeleton/skeleton.less');
@import url('../../node_modules/framework7/components/menu/menu.less');
@import url('../../node_modules/framework7/components/color-picker/color-picker.less');
@import url('../../node_modules/framework7/components/treeview/treeview.less');
@import url('../../node_modules/framework7/components/text-editor/text-editor.less');
@import url('../../node_modules/framework7/components/area-chart/area-chart.less');
@import url('../../node_modules/framework7/components/pie-chart/pie-chart.less');
@import url('../../node_modules/framework7/components/elevation/elevation.less');
@import url('../../node_modules/framework7/components/typography/typography.less');
@includeIosTheme: true;
@includeMdTheme: true;
@includeAuroraTheme: true;
@includeDarkTheme: true;
@includeLightTheme: true;
@rtl: false
}

61
src/css/icons.css Normal file
View File

@ -0,0 +1,61 @@
/* Material Icons Font (for MD theme) */
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(../fonts/MaterialIcons-Regular.eot);
src: local('Material Icons'),
local('MaterialIcons-Regular'),
url(../fonts/MaterialIcons-Regular.woff2) format('woff2'),
url(../fonts/MaterialIcons-Regular.woff) format('woff'),
url(../fonts/MaterialIcons-Regular.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px;
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
-moz-osx-font-smoothing: grayscale;
font-feature-settings: 'liga';
}
/* Framework7 Icons Font (for iOS theme) */
@font-face {
font-family: 'Framework7 Icons';
font-style: normal;
font-weight: 400;
src: url("../fonts/Framework7Icons-Regular.eot");
src: url("../fonts/Framework7Icons-Regular.woff2") format("woff2"),
url("../fonts/Framework7Icons-Regular.woff") format("woff"),
url("../fonts/Framework7Icons-Regular.ttf") format("truetype");
}
.f7-icons {
font-family: 'Framework7 Icons';
font-weight: normal;
font-style: normal;
font-size: 28px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
-moz-osx-font-smoothing: grayscale;
-webkit-font-feature-settings: "liga";
-moz-font-feature-settings: "liga=1";
-moz-font-feature-settings: "liga";
font-feature-settings: "liga";
text-align: center;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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