Merge branch 'developer' of https://bitbucket.org/equilibriumito/gabinete-digital into developer
@@ -52,3 +52,5 @@ src/app/store/notification.service.ts
|
|||||||
src/assets/www/pdfjs/web/compressed.tracemonkey-pldi-09.pdf.pdf
|
src/assets/www/pdfjs/web/compressed.tracemonkey-pldi-09.pdf.pdf
|
||||||
node_modules_
|
node_modules_
|
||||||
node_modules__
|
node_modules__
|
||||||
|
plugins_
|
||||||
|
ios
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"appId": "com.gpr.gabinetedigital",
|
|
||||||
"appName": "gabinete-digital",
|
|
||||||
"webDir": "www",
|
|
||||||
"npmClient": "npm",
|
|
||||||
"linuxAndroidStudioPath": "/snap/android-studio/current/android-studio/bin/studio.sh",
|
|
||||||
"cordova": {
|
|
||||||
"preferences": {
|
|
||||||
"ScrollEnabled": "false",
|
|
||||||
"BackupWebStorage": "none",
|
|
||||||
"SplashMaintainAspectRatio": "true",
|
|
||||||
"FadeSplashScreenDuration": "300",
|
|
||||||
"SplashShowOnlyFirstTime": "false",
|
|
||||||
"SplashScreen": "screen",
|
|
||||||
"SplashScreenDelay": "3000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"android": {
|
|
||||||
"allowMixedContent": true
|
|
||||||
},
|
|
||||||
"bundledWebRuntime": false
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
// / <reference types="@capacitor/local-notifications" />
|
||||||
|
// / <reference types="@capacitor/push-notifications" />
|
||||||
|
// / <reference types="@capacitor/splash-screen" />
|
||||||
|
|
||||||
|
import { CapacitorConfig } from '@capacitor/cli';
|
||||||
|
|
||||||
|
const config: CapacitorConfig = {
|
||||||
|
appId: 'com.capacitorjs.app.testapp',
|
||||||
|
appName: 'capacitor-testapp',
|
||||||
|
webDir: 'build',
|
||||||
|
plugins: {
|
||||||
|
SplashScreen: {
|
||||||
|
launchAutoHide: false,
|
||||||
|
},
|
||||||
|
LocalNotifications: {
|
||||||
|
smallIcon: 'ic_stat_icon_config_sample',
|
||||||
|
iconColor: '#CE0B7C',
|
||||||
|
},
|
||||||
|
PushNotifications: {
|
||||||
|
presentationOptions: ['alert', 'sound'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
||||||
@@ -46,6 +46,55 @@
|
|||||||
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
|
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
|
||||||
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
|
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
|
||||||
</platform>
|
</platform>
|
||||||
|
<<<<<<< HEAD
|
||||||
|
<<<<<<< HEAD
|
||||||
|
<mfp:android>
|
||||||
|
<mfp:sdkChecksum>3077110622</mfp:sdkChecksum>
|
||||||
|
<mfp:appChecksum>3619450036</mfp:appChecksum>
|
||||||
|
<mfp:security>
|
||||||
|
<mfp:testWebResourcesChecksum enabled="false" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3" />
|
||||||
|
</mfp:security>
|
||||||
|
</mfp:android>
|
||||||
|
<mfp:ios>
|
||||||
|
<mfp:sdkChecksum>1979143311</mfp:sdkChecksum>
|
||||||
|
<mfp:appChecksum>1328564293</mfp:appChecksum>
|
||||||
|
<mfp:security>
|
||||||
|
<mfp:testWebResourcesChecksum enabled="false" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3" />
|
||||||
|
</mfp:security>
|
||||||
|
</mfp:ios>
|
||||||
|
<mfp:windows>
|
||||||
|
<mfp:windows8>
|
||||||
|
<mfp:sdkChecksum>0</mfp:sdkChecksum>
|
||||||
|
<mfp:security>
|
||||||
|
<mfp:testWebResourcesChecksum enabled="false" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3" />
|
||||||
|
</mfp:security>
|
||||||
|
</mfp:windows8>
|
||||||
|
<mfp:windowsphone8>
|
||||||
|
<mfp:sdkChecksum>0</mfp:sdkChecksum>
|
||||||
|
<mfp:security>
|
||||||
|
<mfp:testWebResourcesChecksum enabled="false" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3" />
|
||||||
|
</mfp:security>
|
||||||
|
</mfp:windowsphone8>
|
||||||
|
<mfp:windows10>
|
||||||
|
<mfp:sdkChecksum>0</mfp:sdkChecksum>
|
||||||
|
<mfp:security>
|
||||||
|
<mfp:testWebResourcesChecksum enabled="false" ignoreFileExtensions="png, jpg, jpeg, gif, mp4, mp3" />
|
||||||
|
</mfp:security>
|
||||||
|
</mfp:windows10>
|
||||||
|
<mfp:appChecksum>0</mfp:appChecksum>
|
||||||
|
</mfp:windows>
|
||||||
|
<mfp:platformVersion>8.0.0.00-20210905-154328</mfp:platformVersion>
|
||||||
|
<mfp:clientCustomInit enabled="false" />
|
||||||
|
<mfp:server runtime="mfp" url="http://gpr-dev-10.gabinetedigital.local:9080" />
|
||||||
|
<mfp:serverUri url="" />
|
||||||
|
<mfp:directUpdateAuthenticityPublicKey />
|
||||||
|
<mfp:languagePreferences>en</mfp:languagePreferences>
|
||||||
|
<mfp:APIproxyURL>/adapters/MobileAPIProxy</mfp:APIproxyURL>
|
||||||
|
<mfp:SDKProtocolVersion>2</mfp:SDKProtocolVersion>
|
||||||
|
=======
|
||||||
|
>>>>>>> d9593fa592ca58a1f04e3fcd0aaf596f9a54cd3a
|
||||||
|
=======
|
||||||
|
>>>>>>> 562e405f192af623ae8d2ac244c729b150b0cf99
|
||||||
<allow-navigation href="http://localhost:8100" sessionid="9714472a" />
|
<allow-navigation href="http://localhost:8100" sessionid="9714472a" />
|
||||||
<allow-navigation href="http://localhost:8101" sessionid="4721f88c" />
|
<allow-navigation href="http://localhost:8101" sessionid="4721f88c" />
|
||||||
<plugin name="cordova-plugin-dbcopy" spec="https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git" />
|
<plugin name="cordova-plugin-dbcopy" spec="https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git" />
|
||||||
|
|||||||
@@ -1,11 +1,29 @@
|
|||||||
if ('serviceWorker' in navigator) {
|
if ("serviceWorker" in navigator) {
|
||||||
navigator.serviceWorker.register('./firebase-messaging-sw.js')
|
navigator.serviceWorker
|
||||||
.then(function(registration) {
|
.register("./firebase-messaging-sw.js")
|
||||||
console.log('Registration successful, scope is:', registration.scope);
|
.then(function(registration) {
|
||||||
}).catch(function(err) {
|
console.log("Registration successful, scope is:", registration.scope);
|
||||||
console.log('Service worker registration failed, error:', err);
|
messaging.getToken({vapidKey: 'BEuyzkUKcx4FSs-6GaIz_si2oV5Ut7e5ZEtcrVvr5L_tMVWZtS1NTqdtQkih5QCt2FZKuRUxZIaLm5GaxI6nJEw', serviceWorkerRegistration : registration })
|
||||||
});
|
.then((currentToken) => {
|
||||||
}
|
if (currentToken) {
|
||||||
|
console.log('current token for client: ', currentToken);
|
||||||
|
|
||||||
|
// Track the token -> client mapping, by sending to backend server
|
||||||
|
// show on the UI that permission is secured
|
||||||
|
} else {
|
||||||
|
console.log('No registration token available. Request permission to generate one.');
|
||||||
|
|
||||||
|
// shows on the UI that permission is required
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log('An error occurred while retrieving token. ', err);
|
||||||
|
// catch error while creating client token
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(function(err) {
|
||||||
|
console.log("Service worker registration failed, error:" , err );
|
||||||
|
});
|
||||||
|
}
|
||||||
// Scripts for firebase and firebase messaging
|
// Scripts for firebase and firebase messaging
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
App/build
|
|
||||||
App/Pods
|
|
||||||
App/Podfile.lock
|
|
||||||
App/App/public
|
|
||||||
DerivedData
|
|
||||||
xcuserdata
|
|
||||||
|
|
||||||
# Cordova plugins for Capacitor
|
|
||||||
capacitor-cordova-ios-plugins
|
|
||||||
@@ -1,402 +0,0 @@
|
|||||||
// !$*UTF8*$!
|
|
||||||
{
|
|
||||||
archiveVersion = 1;
|
|
||||||
classes = {
|
|
||||||
};
|
|
||||||
objectVersion = 48;
|
|
||||||
objects = {
|
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
|
||||||
2FAD9763203C412B000D30F8 /* config.xml in Resources */ = {isa = PBXBuildFile; fileRef = 2FAD9762203C412B000D30F8 /* config.xml */; };
|
|
||||||
50379B232058CBB4000EE86E /* capacitor.config.json in Resources */ = {isa = PBXBuildFile; fileRef = 50379B222058CBB4000EE86E /* capacitor.config.json */; };
|
|
||||||
504EC3081FED79650016851F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 504EC3071FED79650016851F /* AppDelegate.swift */; };
|
|
||||||
504EC30D1FED79650016851F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 504EC30B1FED79650016851F /* Main.storyboard */; };
|
|
||||||
504EC30F1FED79650016851F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 504EC30E1FED79650016851F /* Assets.xcassets */; };
|
|
||||||
504EC3121FED79650016851F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 504EC3101FED79650016851F /* LaunchScreen.storyboard */; };
|
|
||||||
50B271D11FEDC1A000F3C39B /* public in Resources */ = {isa = PBXBuildFile; fileRef = 50B271D01FEDC1A000F3C39B /* public */; };
|
|
||||||
A084ECDBA7D38E1E42DFC39D /* Pods_App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF277DCFFFF123FFC6DF26C7 /* Pods_App.framework */; };
|
|
||||||
/* End PBXBuildFile section */
|
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
|
||||||
2FAD9762203C412B000D30F8 /* config.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = config.xml; sourceTree = "<group>"; };
|
|
||||||
50379B222058CBB4000EE86E /* capacitor.config.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = capacitor.config.json; sourceTree = "<group>"; };
|
|
||||||
504EC3041FED79650016851F /* App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
504EC3071FED79650016851F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
|
||||||
504EC30C1FED79650016851F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
|
||||||
504EC30E1FED79650016851F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
|
||||||
504EC3111FED79650016851F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
|
||||||
504EC3131FED79650016851F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
|
||||||
50B271D01FEDC1A000F3C39B /* public */ = {isa = PBXFileReference; lastKnownFileType = folder; path = public; sourceTree = "<group>"; };
|
|
||||||
AF277DCFFFF123FFC6DF26C7 /* Pods_App.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_App.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
||||||
AF51FD2D460BCFE21FA515B2 /* Pods-App.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App.release.xcconfig"; path = "Pods/Target Support Files/Pods-App/Pods-App.release.xcconfig"; sourceTree = "<group>"; };
|
|
||||||
FC68EB0AF532CFC21C3344DD /* Pods-App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-App.debug.xcconfig"; path = "Pods/Target Support Files/Pods-App/Pods-App.debug.xcconfig"; sourceTree = "<group>"; };
|
|
||||||
/* End PBXFileReference section */
|
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
|
||||||
504EC3011FED79650016851F /* Frameworks */ = {
|
|
||||||
isa = PBXFrameworksBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
A084ECDBA7D38E1E42DFC39D /* Pods_App.framework in Frameworks */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXFrameworksBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
|
||||||
27E2DDA53C4D2A4D1A88CE4A /* Frameworks */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
AF277DCFFFF123FFC6DF26C7 /* Pods_App.framework */,
|
|
||||||
);
|
|
||||||
name = Frameworks;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
504EC2FB1FED79650016851F = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
504EC3061FED79650016851F /* App */,
|
|
||||||
504EC3051FED79650016851F /* Products */,
|
|
||||||
7F8756D8B27F46E3366F6CEA /* Pods */,
|
|
||||||
27E2DDA53C4D2A4D1A88CE4A /* Frameworks */,
|
|
||||||
);
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
504EC3051FED79650016851F /* Products */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
504EC3041FED79650016851F /* App.app */,
|
|
||||||
);
|
|
||||||
name = Products;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
504EC3061FED79650016851F /* App */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
50379B222058CBB4000EE86E /* capacitor.config.json */,
|
|
||||||
504EC3071FED79650016851F /* AppDelegate.swift */,
|
|
||||||
504EC30B1FED79650016851F /* Main.storyboard */,
|
|
||||||
504EC30E1FED79650016851F /* Assets.xcassets */,
|
|
||||||
504EC3101FED79650016851F /* LaunchScreen.storyboard */,
|
|
||||||
504EC3131FED79650016851F /* Info.plist */,
|
|
||||||
2FAD9762203C412B000D30F8 /* config.xml */,
|
|
||||||
50B271D01FEDC1A000F3C39B /* public */,
|
|
||||||
);
|
|
||||||
path = App;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
7F8756D8B27F46E3366F6CEA /* Pods */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
FC68EB0AF532CFC21C3344DD /* Pods-App.debug.xcconfig */,
|
|
||||||
AF51FD2D460BCFE21FA515B2 /* Pods-App.release.xcconfig */,
|
|
||||||
);
|
|
||||||
name = Pods;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXGroup section */
|
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
|
||||||
504EC3031FED79650016851F /* App */ = {
|
|
||||||
isa = PBXNativeTarget;
|
|
||||||
buildConfigurationList = 504EC3161FED79650016851F /* Build configuration list for PBXNativeTarget "App" */;
|
|
||||||
buildPhases = (
|
|
||||||
6634F4EFEBD30273BCE97C65 /* [CP] Check Pods Manifest.lock */,
|
|
||||||
504EC3001FED79650016851F /* Sources */,
|
|
||||||
504EC3011FED79650016851F /* Frameworks */,
|
|
||||||
504EC3021FED79650016851F /* Resources */,
|
|
||||||
9592DBEFFC6D2A0C8D5DEB22 /* [CP] Embed Pods Frameworks */,
|
|
||||||
);
|
|
||||||
buildRules = (
|
|
||||||
);
|
|
||||||
dependencies = (
|
|
||||||
);
|
|
||||||
name = App;
|
|
||||||
productName = App;
|
|
||||||
productReference = 504EC3041FED79650016851F /* App.app */;
|
|
||||||
productType = "com.apple.product-type.application";
|
|
||||||
};
|
|
||||||
/* End PBXNativeTarget section */
|
|
||||||
|
|
||||||
/* Begin PBXProject section */
|
|
||||||
504EC2FC1FED79650016851F /* Project object */ = {
|
|
||||||
isa = PBXProject;
|
|
||||||
attributes = {
|
|
||||||
LastSwiftUpdateCheck = 0920;
|
|
||||||
LastUpgradeCheck = 0920;
|
|
||||||
TargetAttributes = {
|
|
||||||
504EC3031FED79650016851F = {
|
|
||||||
CreatedOnToolsVersion = 9.2;
|
|
||||||
LastSwiftMigration = 1100;
|
|
||||||
ProvisioningStyle = Automatic;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
buildConfigurationList = 504EC2FF1FED79650016851F /* Build configuration list for PBXProject "App" */;
|
|
||||||
compatibilityVersion = "Xcode 8.0";
|
|
||||||
developmentRegion = en;
|
|
||||||
hasScannedForEncodings = 0;
|
|
||||||
knownRegions = (
|
|
||||||
en,
|
|
||||||
Base,
|
|
||||||
);
|
|
||||||
mainGroup = 504EC2FB1FED79650016851F;
|
|
||||||
productRefGroup = 504EC3051FED79650016851F /* Products */;
|
|
||||||
projectDirPath = "";
|
|
||||||
projectRoot = "";
|
|
||||||
targets = (
|
|
||||||
504EC3031FED79650016851F /* App */,
|
|
||||||
);
|
|
||||||
};
|
|
||||||
/* End PBXProject section */
|
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */
|
|
||||||
504EC3021FED79650016851F /* Resources */ = {
|
|
||||||
isa = PBXResourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
504EC3121FED79650016851F /* LaunchScreen.storyboard in Resources */,
|
|
||||||
50B271D11FEDC1A000F3C39B /* public in Resources */,
|
|
||||||
504EC30F1FED79650016851F /* Assets.xcassets in Resources */,
|
|
||||||
50379B232058CBB4000EE86E /* capacitor.config.json in Resources */,
|
|
||||||
504EC30D1FED79650016851F /* Main.storyboard in Resources */,
|
|
||||||
2FAD9763203C412B000D30F8 /* config.xml in Resources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXResourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */
|
|
||||||
6634F4EFEBD30273BCE97C65 /* [CP] Check Pods Manifest.lock */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
|
||||||
"${PODS_ROOT}/Manifest.lock",
|
|
||||||
);
|
|
||||||
name = "[CP] Check Pods Manifest.lock";
|
|
||||||
outputPaths = (
|
|
||||||
"$(DERIVED_FILE_DIR)/Pods-App-checkManifestLockResult.txt",
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
9592DBEFFC6D2A0C8D5DEB22 /* [CP] Embed Pods Frameworks */ = {
|
|
||||||
isa = PBXShellScriptBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
);
|
|
||||||
inputPaths = (
|
|
||||||
);
|
|
||||||
name = "[CP] Embed Pods Frameworks";
|
|
||||||
outputPaths = (
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
shellPath = /bin/sh;
|
|
||||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-App/Pods-App-frameworks.sh\"\n";
|
|
||||||
showEnvVarsInLog = 0;
|
|
||||||
};
|
|
||||||
/* End PBXShellScriptBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
|
||||||
504EC3001FED79650016851F /* Sources */ = {
|
|
||||||
isa = PBXSourcesBuildPhase;
|
|
||||||
buildActionMask = 2147483647;
|
|
||||||
files = (
|
|
||||||
504EC3081FED79650016851F /* AppDelegate.swift in Sources */,
|
|
||||||
);
|
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
|
||||||
};
|
|
||||||
/* End PBXSourcesBuildPhase section */
|
|
||||||
|
|
||||||
/* Begin PBXVariantGroup section */
|
|
||||||
504EC30B1FED79650016851F /* Main.storyboard */ = {
|
|
||||||
isa = PBXVariantGroup;
|
|
||||||
children = (
|
|
||||||
504EC30C1FED79650016851F /* Base */,
|
|
||||||
);
|
|
||||||
name = Main.storyboard;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
504EC3101FED79650016851F /* LaunchScreen.storyboard */ = {
|
|
||||||
isa = PBXVariantGroup;
|
|
||||||
children = (
|
|
||||||
504EC3111FED79650016851F /* Base */,
|
|
||||||
);
|
|
||||||
name = LaunchScreen.storyboard;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXVariantGroup section */
|
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
|
||||||
504EC3141FED79650016851F /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_COMMA = YES;
|
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
||||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
||||||
ENABLE_TESTABILITY = YES;
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
|
||||||
GCC_DYNAMIC_NO_PIC = NO;
|
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
|
||||||
GCC_OPTIMIZATION_LEVEL = 0;
|
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
|
||||||
"DEBUG=1",
|
|
||||||
"$(inherited)",
|
|
||||||
);
|
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
|
||||||
SDKROOT = iphoneos;
|
|
||||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
504EC3151FED79650016851F /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
buildSettings = {
|
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
|
||||||
CLANG_ENABLE_MODULES = YES;
|
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
|
||||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
|
||||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_COMMA = YES;
|
|
||||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
|
||||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
|
||||||
CLANG_WARN_EMPTY_BODY = YES;
|
|
||||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
|
||||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
|
||||||
CLANG_WARN_INT_CONVERSION = YES;
|
|
||||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
|
||||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
|
||||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
|
||||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
|
||||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
|
||||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
|
||||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
|
||||||
COPY_PHASE_STRIP = NO;
|
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
|
||||||
GCC_NO_COMMON_BLOCKS = YES;
|
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
|
||||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
|
||||||
SDKROOT = iphoneos;
|
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
|
|
||||||
VALIDATE_PRODUCT = YES;
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
504EC3171FED79650016851F /* Debug */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
baseConfigurationReference = FC68EB0AF532CFC21C3344DD /* Pods-App.debug.xcconfig */;
|
|
||||||
buildSettings = {
|
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
||||||
CODE_SIGN_STYLE = Automatic;
|
|
||||||
INFOPLIST_FILE = App/Info.plist;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.gpr.gabinetedigital;
|
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
||||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
|
||||||
SWIFT_VERSION = 5.0;
|
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
|
||||||
};
|
|
||||||
name = Debug;
|
|
||||||
};
|
|
||||||
504EC3181FED79650016851F /* Release */ = {
|
|
||||||
isa = XCBuildConfiguration;
|
|
||||||
baseConfigurationReference = AF51FD2D460BCFE21FA515B2 /* Pods-App.release.xcconfig */;
|
|
||||||
buildSettings = {
|
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
||||||
CODE_SIGN_STYLE = Automatic;
|
|
||||||
INFOPLIST_FILE = App/Info.plist;
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.gpr.gabinetedigital;
|
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
||||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "";
|
|
||||||
SWIFT_VERSION = 5.0;
|
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
|
||||||
};
|
|
||||||
name = Release;
|
|
||||||
};
|
|
||||||
/* End XCBuildConfiguration section */
|
|
||||||
|
|
||||||
/* Begin XCConfigurationList section */
|
|
||||||
504EC2FF1FED79650016851F /* Build configuration list for PBXProject "App" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
504EC3141FED79650016851F /* Debug */,
|
|
||||||
504EC3151FED79650016851F /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
504EC3161FED79650016851F /* Build configuration list for PBXNativeTarget "App" */ = {
|
|
||||||
isa = XCConfigurationList;
|
|
||||||
buildConfigurations = (
|
|
||||||
504EC3171FED79650016851F /* Debug */,
|
|
||||||
504EC3181FED79650016851F /* Release */,
|
|
||||||
);
|
|
||||||
defaultConfigurationIsVisible = 0;
|
|
||||||
defaultConfigurationName = Release;
|
|
||||||
};
|
|
||||||
/* End XCConfigurationList section */
|
|
||||||
};
|
|
||||||
rootObject = 504EC2FC1FED79650016851F /* Project object */;
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Workspace
|
|
||||||
version = "1.0">
|
|
||||||
<FileRef
|
|
||||||
location = "self:App.xcodeproj">
|
|
||||||
</FileRef>
|
|
||||||
</Workspace>
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Workspace
|
|
||||||
version = "1.0">
|
|
||||||
<FileRef
|
|
||||||
location = "group:App.xcodeproj">
|
|
||||||
</FileRef>
|
|
||||||
<FileRef
|
|
||||||
location = "group:Pods/Pods.xcodeproj">
|
|
||||||
</FileRef>
|
|
||||||
</Workspace>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>IDEDidComputeMac32BitWarning</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
import UIKit
|
|
||||||
import Capacitor
|
|
||||||
|
|
||||||
@UIApplicationMain
|
|
||||||
class AppDelegate: UIResponder, UIApplicationDelegate {
|
|
||||||
|
|
||||||
var window: UIWindow?
|
|
||||||
|
|
||||||
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
|
||||||
// Override point for customization after application launch.
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func applicationWillResignActive(_ application: UIApplication) {
|
|
||||||
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
|
|
||||||
// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
|
|
||||||
}
|
|
||||||
|
|
||||||
func applicationDidEnterBackground(_ application: UIApplication) {
|
|
||||||
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
|
|
||||||
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
|
|
||||||
}
|
|
||||||
|
|
||||||
func applicationWillEnterForeground(_ application: UIApplication) {
|
|
||||||
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
|
|
||||||
}
|
|
||||||
|
|
||||||
func applicationDidBecomeActive(_ application: UIApplication) {
|
|
||||||
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
|
|
||||||
}
|
|
||||||
|
|
||||||
func applicationWillTerminate(_ application: UIApplication) {
|
|
||||||
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
|
|
||||||
}
|
|
||||||
|
|
||||||
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
|
|
||||||
// Called when the app was launched with a url. Feel free to add additional processing here,
|
|
||||||
// but if you want the App API to support tracking app url opens, make sure to keep this call
|
|
||||||
return ApplicationDelegateProxy.shared.application(app, open: url, options: options)
|
|
||||||
}
|
|
||||||
|
|
||||||
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
|
|
||||||
// Called when the app was launched with an activity, including Universal Links.
|
|
||||||
// Feel free to add additional processing here, but if you want the App API to support
|
|
||||||
// tracking app url opens, make sure to keep this call
|
|
||||||
return ApplicationDelegateProxy.shared.application(application, continue: userActivity, restorationHandler: restorationHandler)
|
|
||||||
}
|
|
||||||
|
|
||||||
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
|
|
||||||
super.touchesBegan(touches, with: event)
|
|
||||||
|
|
||||||
let statusBarRect = UIApplication.shared.statusBarFrame
|
|
||||||
guard let touchPoint = event?.allTouches?.first?.location(in: self.window) else { return }
|
|
||||||
|
|
||||||
if statusBarRect.contains(touchPoint) {
|
|
||||||
NotificationCenter.default.post(name: .capacitorStatusBarTapped, object: nil)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 774 B |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 11 KiB |
@@ -1,116 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-20x20@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-20x20@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-29x29@2x-1.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-29x29@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-40x40@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-40x40@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "60x60",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-60x60@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "60x60",
|
|
||||||
"idiom" : "iphone",
|
|
||||||
"filename" : "AppIcon-60x60@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-20x20@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "20x20",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-20x20@2x-1.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-29x29@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "29x29",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-29x29@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-40x40@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "40x40",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-40x40@2x-1.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "76x76",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-76x76@1x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "76x76",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-76x76@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "83.5x83.5",
|
|
||||||
"idiom" : "ipad",
|
|
||||||
"filename" : "AppIcon-83.5x83.5@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"size" : "1024x1024",
|
|
||||||
"idiom" : "ios-marketing",
|
|
||||||
"filename" : "AppIcon-512@2x.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
{
|
|
||||||
"images" : [
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"filename" : "splash-2732x2732-2.png",
|
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"filename" : "splash-2732x2732-1.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"filename" : "splash-2732x2732.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 40 KiB |
@@ -1,32 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17132" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
|
|
||||||
<device id="retina4_7" orientation="portrait" appearance="light"/>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17105"/>
|
|
||||||
<capability name="System colors in document resources" minToolsVersion="11.0"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
|
||||||
</dependencies>
|
|
||||||
<scenes>
|
|
||||||
<!--View Controller-->
|
|
||||||
<scene sceneID="EHf-IW-A2E">
|
|
||||||
<objects>
|
|
||||||
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
|
|
||||||
<imageView key="view" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Splash" id="snD-IY-ifK">
|
|
||||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
|
||||||
<color key="backgroundColor" systemColor="systemBackgroundColor"/>
|
|
||||||
</imageView>
|
|
||||||
</viewController>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
|
||||||
</objects>
|
|
||||||
<point key="canvasLocation" x="53" y="375"/>
|
|
||||||
</scene>
|
|
||||||
</scenes>
|
|
||||||
<resources>
|
|
||||||
<image name="Splash" width="1366" height="1366"/>
|
|
||||||
<systemColor name="systemBackgroundColor">
|
|
||||||
<color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
|
||||||
</systemColor>
|
|
||||||
</resources>
|
|
||||||
</document>
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14111" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
|
||||||
<device id="retina4_7" orientation="portrait">
|
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
|
||||||
<deployment identifier="iOS"/>
|
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
|
||||||
</dependencies>
|
|
||||||
<scenes>
|
|
||||||
<!--Bridge View Controller-->
|
|
||||||
<scene sceneID="tne-QT-ifu">
|
|
||||||
<objects>
|
|
||||||
<viewController id="BYZ-38-t0r" customClass="CAPBridgeViewController" customModule="Capacitor" sceneMemberID="viewController"/>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
|
|
||||||
</objects>
|
|
||||||
</scene>
|
|
||||||
</scenes>
|
|
||||||
</document>
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>en</string>
|
|
||||||
<key>CFBundleDisplayName</key>
|
|
||||||
<string>gabinete-digital</string>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>$(EXECUTABLE_NAME)</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>$(PRODUCT_NAME)</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>APPL</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>1</string>
|
|
||||||
<key>LSRequiresIPhoneOS</key>
|
|
||||||
<true/>
|
|
||||||
<key>NSAppTransportSecurity</key>
|
|
||||||
<dict>
|
|
||||||
<key>NSAllowsArbitraryLoads</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
<key>UILaunchStoryboardName</key>
|
|
||||||
<string>LaunchScreen</string>
|
|
||||||
<key>UIMainStoryboardFile</key>
|
|
||||||
<string>Main</string>
|
|
||||||
<key>UIRequiredDeviceCapabilities</key>
|
|
||||||
<array>
|
|
||||||
<string>armv7</string>
|
|
||||||
</array>
|
|
||||||
<key>UISupportedInterfaceOrientations</key>
|
|
||||||
<array>
|
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
|
||||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
|
||||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
|
||||||
</array>
|
|
||||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
|
||||||
<array>
|
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
|
||||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
|
||||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
|
||||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
|
||||||
</array>
|
|
||||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
|
||||||
<true/>
|
|
||||||
<key>NSMicrophoneUsageDescription</key>
|
|
||||||
<string>We want to record some audio from you</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"appId": "com.gpr.gabinetedigital",
|
|
||||||
"appName": "gabinete-digital",
|
|
||||||
"webDir": "www",
|
|
||||||
"npmClient": "npm",
|
|
||||||
"linuxAndroidStudioPath": "/snap/android-studio/current/android-studio/bin/studio.sh",
|
|
||||||
"cordova": {
|
|
||||||
"preferences": {
|
|
||||||
"ScrollEnabled": "false",
|
|
||||||
"BackupWebStorage": "none",
|
|
||||||
"SplashMaintainAspectRatio": "true",
|
|
||||||
"FadeSplashScreenDuration": "300",
|
|
||||||
"SplashShowOnlyFirstTime": "false",
|
|
||||||
"SplashScreen": "screen",
|
|
||||||
"SplashScreenDelay": "3000"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"android": {
|
|
||||||
"allowMixedContent": true
|
|
||||||
},
|
|
||||||
"bundledWebRuntime": false
|
|
||||||
}
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<widget version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
|
||||||
<access origin="*" />
|
|
||||||
|
|
||||||
<feature name="sqlDB">
|
|
||||||
<param name="ios-package" value="sqlDB"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="SQLitePlugin">
|
|
||||||
<param name="ios-package" value="SQLitePlugin"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="PhotoViewer">
|
|
||||||
<param name="ios-package" value="PhotoViewer"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Device">
|
|
||||||
<param name="ios-package" value="CDVDevice"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Notification">
|
|
||||||
<param name="ios-package" value="CDVNotification"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="File">
|
|
||||||
<param name="ios-package" value="CDVFile"/>
|
|
||||||
<param name="onload" value="true"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Fingerprint">
|
|
||||||
<param name="ios-package" value="Fingerprint"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Globalization">
|
|
||||||
<param name="ios-package" value="CDVGlobalization"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="InAppBrowser">
|
|
||||||
<param name="ios-package" value="CDVWKInAppBrowser"/>
|
|
||||||
<param name="onload" value="true"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Media">
|
|
||||||
<param name="ios-package" value="CDVSound"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="Capture">
|
|
||||||
<param name="ios-package" value="CDVCapture"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
<feature name="NetworkStatus">
|
|
||||||
<param name="ios-package" value="CDVConnection"/>
|
|
||||||
</feature>
|
|
||||||
|
|
||||||
|
|
||||||
<preference name="ScrollEnabled" value="false" />
|
|
||||||
<preference name="BackupWebStorage" value="none" />
|
|
||||||
<preference name="SplashMaintainAspectRatio" value="true" />
|
|
||||||
<preference name="FadeSplashScreenDuration" value="300" />
|
|
||||||
<preference name="SplashShowOnlyFirstTime" value="false" />
|
|
||||||
<preference name="SplashScreen" value="screen" />
|
|
||||||
<preference name="SplashScreenDelay" value="3000" />
|
|
||||||
</widget>
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
platform :ios, '12.0'
|
|
||||||
use_frameworks!
|
|
||||||
|
|
||||||
# workaround to avoid Xcode caching of Pods that requires
|
|
||||||
# Product -> Clean Build Folder after new Cordova plugins installed
|
|
||||||
# Requires CocoaPods 1.6 or newer
|
|
||||||
install! 'cocoapods', :disable_input_output_paths => true
|
|
||||||
|
|
||||||
def capacitor_pods
|
|
||||||
pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
|
|
||||||
pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
|
|
||||||
pod 'CapacitorApp', :path => '..\..\node_modules\@capacitor\app'
|
|
||||||
pod 'CapacitorCamera', :path => '..\..\node_modules\@capacitor\camera'
|
|
||||||
pod 'CapacitorHaptics', :path => '..\..\node_modules\@capacitor\haptics'
|
|
||||||
pod 'CapacitorKeyboard', :path => '..\..\node_modules\@capacitor\keyboard'
|
|
||||||
pod 'CapacitorNetwork', :path => '..\..\node_modules\@capacitor\network'
|
|
||||||
pod 'CapacitorFilesystem', :path => '..\..\node_modules\@capacitor\filesystem'
|
|
||||||
pod 'CapacitorPushNotifications', :path => '..\..\node_modules\@capacitor\push-notifications'
|
|
||||||
pod 'CapacitorVoiceRecorder', :path => '..\..\node_modules\capacitor-voice-recorder'
|
|
||||||
pod 'CordovaPlugins', :path => '../capacitor-cordova-ios-plugins'
|
|
||||||
pod 'CordovaPluginsResources', :path => '../capacitor-cordova-ios-plugins'
|
|
||||||
end
|
|
||||||
|
|
||||||
target 'App' do
|
|
||||||
capacitor_pods
|
|
||||||
# Add your Pods here
|
|
||||||
end
|
|
||||||
@@ -2030,16 +2030,39 @@
|
|||||||
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
|
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@capacitor-community/camera-preview": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@capacitor-community/camera-preview/-/camera-preview-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-rskj/12TR4X8cUzvkWvygf7A/4TFUld9BU5nAc1gc3LXU06FGP0R/6MxZKQdf20qqRaTRLPrF3HFAlkz7xb6yg==",
|
||||||
|
"requires": {
|
||||||
|
"@capacitor/core": "^3.3.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@capacitor/core": {
|
||||||
|
"version": "3.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.3.2.tgz",
|
||||||
|
"integrity": "sha512-pyI3dQdQjA1L5iEw0jkeKCogx9t5d5kIFTB5M3CJRg9Uj5MIpU2J5CRj+74A7BflvZJo8IBd6IfMJaOArRumaw==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@capacitor/android": {
|
"@capacitor/android": {
|
||||||
"version": "3.3.1",
|
"version": "3.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.3.2.tgz",
|
||||||
"integrity": "sha512-TB9UJh6/e6CV6KDpu/lNHKhgVvnDL2d3crNYtfKzp64CzeZhttQGIQShXSdMb3DG4kk7Zi/qBlfSaWBBD95NhQ=="
|
"integrity": "sha512-TG+tGz0KxkT/BgvSLQfbQwQ9c4Budub5TRijIGdmMbB1ZYB76TFhwvVuwWZ52HFSlKS3sx/UYLlbULL7UQ2aug=="
|
||||||
},
|
},
|
||||||
"@capacitor/app": {
|
"@capacitor/app": {
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/@capacitor/app/-/app-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/@capacitor/app/-/app-1.0.5.tgz",
|
||||||
"integrity": "sha512-U0dAw1CAjKyguSRxKDabszsQ4dj679RnxaUZrSHDR5Jnt5x308oQuKXFP++wnMBbw72D02iqjG0a+/Ujye7C9g=="
|
"integrity": "sha512-U0dAw1CAjKyguSRxKDabszsQ4dj679RnxaUZrSHDR5Jnt5x308oQuKXFP++wnMBbw72D02iqjG0a+/Ujye7C9g=="
|
||||||
},
|
},
|
||||||
|
"@capacitor/browser": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@capacitor/browser/-/browser-1.0.6.tgz",
|
||||||
|
"integrity": "sha512-ZDx+HNPRQZKHpWxbYEyDz34Ge4fwhiiGg2UEnA+ol+pmdvHyYxw/c8HafCEVRJutHrXcVdSNoBNAeEPkQeabrQ=="
|
||||||
|
},
|
||||||
"@capacitor/camera": {
|
"@capacitor/camera": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@capacitor/camera/-/camera-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/@capacitor/camera/-/camera-1.2.0.tgz",
|
||||||
@@ -2157,6 +2180,11 @@
|
|||||||
"tslib": "^2.1.0"
|
"tslib": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@capacitor/device": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@capacitor/device/-/device-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-HCFwOxmK7igEgNm20y+zYi+XQ0OlZYnE4oCaI82TGmA7sehlDpBBKbjmI2Bd8aM09+BXFbAAtq7JCxkEfY8nIg=="
|
||||||
|
},
|
||||||
"@capacitor/filesystem": {
|
"@capacitor/filesystem": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-1.0.6.tgz",
|
||||||
@@ -2187,6 +2215,16 @@
|
|||||||
"resolved": "https://registry.npmjs.org/@capacitor/push-notifications/-/push-notifications-1.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/@capacitor/push-notifications/-/push-notifications-1.0.7.tgz",
|
||||||
"integrity": "sha512-vbvAptFq5cI6xKYYWMb7tsWvA88/PTG4v6ptxN0Ygtc1fQ4l/AzONQiYqdtFpbBhF2fML2kXQ/5eSAfn8HY9aw=="
|
"integrity": "sha512-vbvAptFq5cI6xKYYWMb7tsWvA88/PTG4v6ptxN0Ygtc1fQ4l/AzONQiYqdtFpbBhF2fML2kXQ/5eSAfn8HY9aw=="
|
||||||
},
|
},
|
||||||
|
"@capacitor/share": {
|
||||||
|
"version": "1.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/@capacitor/share/-/share-1.0.7.tgz",
|
||||||
|
"integrity": "sha512-v7FRld2SdV64YjrZrKGoDyfYqcoEC2I4tk6nkhbOI8ZOaqm6XNiqCWEeTdeb6XPwDftozmfILSzhCxbASrXKMg=="
|
||||||
|
},
|
||||||
|
"@capacitor/storage": {
|
||||||
|
"version": "1.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@capacitor/storage/-/storage-1.2.3.tgz",
|
||||||
|
"integrity": "sha512-Rc5CKS53sfxokF5dxzNQDhig4lnZonky6VqskHZKTe3Ltl37FKmrG+I8ttZCinFZ5MPWfGSuP44m93hsQqitjQ=="
|
||||||
|
},
|
||||||
"@cnakazawa/watch": {
|
"@cnakazawa/watch": {
|
||||||
"version": "1.0.4",
|
"version": "1.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz",
|
||||||
@@ -3096,6 +3134,21 @@
|
|||||||
"@types/cordova": "^0.0.34"
|
"@types/cordova": "^0.0.34"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@ionic-native/social-sharing": {
|
||||||
|
"version": "5.36.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ionic-native/social-sharing/-/social-sharing-5.36.0.tgz",
|
||||||
|
"integrity": "sha512-DTgEpSYJxgLri0Hry3PpohtVIyi5srMqfPhhGfqVHh20xtvC56sHMvm9xpRg9cH6xtfBCzJbB0S+aGBtrU9m8g==",
|
||||||
|
"requires": {
|
||||||
|
"@types/cordova": "^0.0.34"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@types/cordova": {
|
||||||
|
"version": "0.0.34",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz",
|
||||||
|
"integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@ionic-native/splash-screen": {
|
"@ionic-native/splash-screen": {
|
||||||
"version": "5.36.0",
|
"version": "5.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.36.0.tgz",
|
"resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.36.0.tgz",
|
||||||
@@ -3415,6 +3468,46 @@
|
|||||||
"tslib": "^1.10.0"
|
"tslib": "^1.10.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"localforage-cordovasqlitedriver": {
|
||||||
|
"version": "1.7.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/localforage-cordovasqlitedriver/-/localforage-cordovasqlitedriver-1.7.0.tgz",
|
||||||
|
"integrity": "sha1-i5OVd1nuaI06WNW6fAR39sy1ODg=",
|
||||||
|
"requires": {
|
||||||
|
"localforage": ">=1.5.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tslib": {
|
||||||
|
"version": "1.14.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||||
|
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@ionic/storage-angular": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ionic/storage-angular/-/storage-angular-3.0.6.tgz",
|
||||||
|
"integrity": "sha512-ZXlIFWGU27aCxVFgZb0KFJFtWwnn6+HK6v0rMGzjN8f7oV2ewXaQ2dl1gTw/A8YoozTVPOFxwfFHCjhWLFR1Fw==",
|
||||||
|
"requires": {
|
||||||
|
"@ionic/storage": "^3.0.4",
|
||||||
|
"tslib": "^1.10.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@ionic/storage": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ionic/storage/-/storage-3.0.6.tgz",
|
||||||
|
"integrity": "sha512-sw+zSJINIpbQCGZR9mEtb9N0WmZLuhcMVqOZJBqLuDACAMdXqG39zmp5nSVqhGI1/9X3nd0K5gVn6icyVfUnUg==",
|
||||||
|
"requires": {
|
||||||
|
"localforage": "^1.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"localforage": {
|
||||||
|
"version": "1.10.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
|
||||||
|
"integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
|
||||||
|
"requires": {
|
||||||
|
"lie": "3.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tslib": {
|
"tslib": {
|
||||||
"version": "1.14.1",
|
"version": "1.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
|
||||||
@@ -5318,6 +5411,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"angular-cropperjs": {
|
||||||
|
"version": "0.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/angular-cropperjs/-/angular-cropperjs-0.1.5.tgz",
|
||||||
|
"integrity": "sha512-3SekYbl7uuS8/ypa2xCwv04SY55HCvWmpAnSwVCA7GTdanKuu3rjODIhJiEnSpouG+xEOOUY83qt/+2kRR/nEA==",
|
||||||
|
"requires": {
|
||||||
|
"cropperjs": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"angular-draggable-droppable": {
|
"angular-draggable-droppable": {
|
||||||
"version": "4.6.0",
|
"version": "4.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/angular-draggable-droppable/-/angular-draggable-droppable-4.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/angular-draggable-droppable/-/angular-draggable-droppable-4.6.0.tgz",
|
||||||
@@ -5993,6 +6094,16 @@
|
|||||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
||||||
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
|
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
|
||||||
},
|
},
|
||||||
|
"bindings": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
|
||||||
|
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"file-uri-to-path": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"bl": {
|
"bl": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
||||||
@@ -7814,6 +7925,11 @@
|
|||||||
"integrity": "sha1-C8ZXVyduvZIMASzpIOJ0F3V2Nz4=",
|
"integrity": "sha1-C8ZXVyduvZIMASzpIOJ0F3V2Nz4=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"cordova-plugin-crop": {
|
||||||
|
"version": "0.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/cordova-plugin-crop/-/cordova-plugin-crop-0.4.0.tgz",
|
||||||
|
"integrity": "sha1-TZ6Jgsz7OOBPqQnIe0vsBuLR2Ss="
|
||||||
|
},
|
||||||
"cordova-plugin-dbcopy": {
|
"cordova-plugin-dbcopy": {
|
||||||
"version": "git+https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git#861f585e4313db828d6b8c7d354c32c83373d0d2",
|
"version": "git+https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git#861f585e4313db828d6b8c7d354c32c83373d0d2",
|
||||||
"from": "git+https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git"
|
"from": "git+https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git"
|
||||||
@@ -7894,6 +8010,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/cordova-plugin-okhttp/-/cordova-plugin-okhttp-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/cordova-plugin-okhttp/-/cordova-plugin-okhttp-2.0.0.tgz",
|
||||||
"integrity": "sha1-6GT2C//zQqHZJHeugvckmqYIXIA="
|
"integrity": "sha1-6GT2C//zQqHZJHeugvckmqYIXIA="
|
||||||
},
|
},
|
||||||
|
"cordova-plugin-screen-orientation": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/cordova-plugin-screen-orientation/-/cordova-plugin-screen-orientation-3.0.2.tgz",
|
||||||
|
"integrity": "sha512-2w6CMC+HGvbhogJetalwGurL2Fx8DQCCPy3wlSZHN1/W7WoQ5n9ujVozcoKrY4VaagK6bxrPFih+ElkO8Uqfzg=="
|
||||||
|
},
|
||||||
"cordova-plugin-splashscreen": {
|
"cordova-plugin-splashscreen": {
|
||||||
"version": "5.0.4",
|
"version": "5.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-5.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-5.0.4.tgz",
|
||||||
@@ -7994,19 +8115,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cordova-sqlite-storage": {
|
|
||||||
"version": "5.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/cordova-sqlite-storage/-/cordova-sqlite-storage-5.1.0.tgz",
|
|
||||||
"integrity": "sha512-UmHe9yQiYblDBToh3z91WHuD6ZgmCm3VX+1QFseYQs4WVQ3+ndj22qyGby/NV0uyCgok91gB1obLjLM+9vYJEw==",
|
|
||||||
"requires": {
|
|
||||||
"cordova-sqlite-storage-dependencies": "3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cordova-sqlite-storage-dependencies": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/cordova-sqlite-storage-dependencies/-/cordova-sqlite-storage-dependencies-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-A7gV5lQZc0oPrJ/a+lsZmMZr7vYou4MXyQFOY+b/dwuCMsagLT0EsL7oY54tqzpvjtzLfh0aZGGm9i8DMAIFSA=="
|
|
||||||
},
|
|
||||||
"core-js": {
|
"core-js": {
|
||||||
"version": "3.18.1",
|
"version": "3.18.1",
|
||||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.1.tgz",
|
||||||
@@ -8084,6 +8192,11 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"cropperjs": {
|
||||||
|
"version": "1.5.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.12.tgz",
|
||||||
|
"integrity": "sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw=="
|
||||||
|
},
|
||||||
"cross-env": {
|
"cross-env": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
|
||||||
@@ -10097,6 +10210,13 @@
|
|||||||
"escape-string-regexp": "^1.0.5"
|
"escape-string-regexp": "^1.0.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"file-uri-to-path": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"fill-range": {
|
"fill-range": {
|
||||||
"version": "7.0.1",
|
"version": "7.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||||
@@ -15307,14 +15427,6 @@
|
|||||||
"lie": "3.1.1"
|
"lie": "3.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"localforage-cordovasqlitedriver": {
|
|
||||||
"version": "1.7.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/localforage-cordovasqlitedriver/-/localforage-cordovasqlitedriver-1.7.0.tgz",
|
|
||||||
"integrity": "sha1-i5OVd1nuaI06WNW6fAR39sy1ODg=",
|
|
||||||
"requires": {
|
|
||||||
"localforage": ">=1.5.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"localtunnel": {
|
"localtunnel": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz",
|
||||||
@@ -15989,6 +16101,13 @@
|
|||||||
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
|
||||||
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
|
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
|
||||||
},
|
},
|
||||||
|
"nan": {
|
||||||
|
"version": "2.15.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz",
|
||||||
|
"integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"nanocolors": {
|
"nanocolors": {
|
||||||
"version": "0.2.12",
|
"version": "0.2.12",
|
||||||
"resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz",
|
"resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz",
|
||||||
@@ -16157,6 +16276,14 @@
|
|||||||
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
|
||||||
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
|
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
|
||||||
},
|
},
|
||||||
|
"ng-lazyload-image": {
|
||||||
|
"version": "9.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ng-lazyload-image/-/ng-lazyload-image-9.1.0.tgz",
|
||||||
|
"integrity": "sha512-ZdfCXMTaehfzxcSRRThpz9YZbEA+8LPA086Od6JiylrGj0yNM7Aq830A1x6NE/M8o2VuVq93emH9m8T6SFBHlA==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ng2-pdf-viewer": {
|
"ng2-pdf-viewer": {
|
||||||
"version": "7.0.1",
|
"version": "7.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-7.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-7.0.1.tgz",
|
||||||
@@ -16181,6 +16308,22 @@
|
|||||||
"tslib": "^2.0.0"
|
"tslib": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"ngx-image-compress": {
|
||||||
|
"version": "11.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/ngx-image-compress/-/ngx-image-compress-11.0.3.tgz",
|
||||||
|
"integrity": "sha512-F1+93cBosm9bNEUmuQM3LvfBg9lzhEITfh8tEhqYb5+OH1HYsjW/nZLQGu5rDS4YCDEA8TQKwmYrrsYjR1t/WA==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ngx-image-cropper": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ngx-image-cropper/-/ngx-image-cropper-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-WGfDJsYizOq3VE82JJkqjSjfvp+o2xrzsOwwm2rVtqNO64SvNJ8/PHP7ctkIjZmEkfjBfFE+eNZR82lLJJ+47w==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ngx-socket-io": {
|
"ngx-socket-io": {
|
||||||
"version": "3.4.0",
|
"version": "3.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/ngx-socket-io/-/ngx-socket-io-3.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/ngx-socket-io/-/ngx-socket-io-3.4.0.tgz",
|
||||||
@@ -22040,7 +22183,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
|
||||||
"integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
|
"integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"bindings": "^1.5.0",
|
||||||
|
"nan": "^2.12.1"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"has-flag": {
|
"has-flag": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
@@ -23685,7 +23832,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
|
||||||
"integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
|
"integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"optional": true
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"bindings": "^1.5.0",
|
||||||
|
"nan": "^2.12.1"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"glob-parent": {
|
"glob-parent": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
|
|||||||
@@ -31,16 +31,21 @@
|
|||||||
"@angular/platform-browser": "~12.1.2",
|
"@angular/platform-browser": "~12.1.2",
|
||||||
"@angular/platform-browser-dynamic": "~12.1.2",
|
"@angular/platform-browser-dynamic": "~12.1.2",
|
||||||
"@angular/router": "~12.1.2",
|
"@angular/router": "~12.1.2",
|
||||||
"@capacitor/android": "^3.3.1",
|
"@capacitor-community/camera-preview": "^1.2.1",
|
||||||
|
"@capacitor/android": "^3.3.2",
|
||||||
"@capacitor/app": "^1.0.5",
|
"@capacitor/app": "^1.0.5",
|
||||||
|
"@capacitor/browser": "1.0.6",
|
||||||
"@capacitor/camera": "^1.2.0",
|
"@capacitor/camera": "^1.2.0",
|
||||||
"@capacitor/core": "^3.3.0",
|
"@capacitor/core": "^3.3.0",
|
||||||
|
"@capacitor/device": "^1.1.0",
|
||||||
"@capacitor/filesystem": "^1.0.6",
|
"@capacitor/filesystem": "^1.0.6",
|
||||||
"@capacitor/haptics": "^1.1.2",
|
"@capacitor/haptics": "^1.1.2",
|
||||||
"@capacitor/ios": "3.3.0",
|
"@capacitor/ios": "3.3.0",
|
||||||
"@capacitor/keyboard": "^1.1.2",
|
"@capacitor/keyboard": "^1.1.2",
|
||||||
"@capacitor/network": "^1.0.6",
|
"@capacitor/network": "^1.0.6",
|
||||||
"@capacitor/push-notifications": "^1.0.7",
|
"@capacitor/push-notifications": "^1.0.7",
|
||||||
|
"@capacitor/share": "^1.0.7",
|
||||||
|
"@capacitor/storage": "^1.2.3",
|
||||||
"@fortawesome/angular-fontawesome": "^0.9.0",
|
"@fortawesome/angular-fontawesome": "^0.9.0",
|
||||||
"@fortawesome/fontawesome-free": "^5.15.3",
|
"@fortawesome/fontawesome-free": "^5.15.3",
|
||||||
"@fortawesome/fontawesome-svg-core": "^1.2.35",
|
"@fortawesome/fontawesome-svg-core": "^1.2.35",
|
||||||
@@ -66,6 +71,7 @@
|
|||||||
"@ionic-native/network": "^5.36.0",
|
"@ionic-native/network": "^5.36.0",
|
||||||
"@ionic-native/photo-viewer": "^5.36.0",
|
"@ionic-native/photo-viewer": "^5.36.0",
|
||||||
"@ionic-native/screen-orientation": "^5.35.0",
|
"@ionic-native/screen-orientation": "^5.35.0",
|
||||||
|
"@ionic-native/social-sharing": "^5.36.0",
|
||||||
"@ionic-native/splash-screen": "^5.31.1",
|
"@ionic-native/splash-screen": "^5.31.1",
|
||||||
"@ionic-native/sqlite": "^5.36.0",
|
"@ionic-native/sqlite": "^5.36.0",
|
||||||
"@ionic-native/sqlite-porter": "^4.20.0",
|
"@ionic-native/sqlite-porter": "^4.20.0",
|
||||||
@@ -76,6 +82,7 @@
|
|||||||
"@ionic/core": "^5.8.1",
|
"@ionic/core": "^5.8.1",
|
||||||
"@ionic/pwa-elements": "^3.0.2",
|
"@ionic/pwa-elements": "^3.0.2",
|
||||||
"@ionic/storage": "^2.3.1",
|
"@ionic/storage": "^2.3.1",
|
||||||
|
"@ionic/storage-angular": "^3.0.6",
|
||||||
"@logisticinfotech/ionic4-datepicker": "^1.4.4",
|
"@logisticinfotech/ionic4-datepicker": "^1.4.4",
|
||||||
"@ng-bootstrap/ng-bootstrap": "^9.1.2",
|
"@ng-bootstrap/ng-bootstrap": "^9.1.2",
|
||||||
"@ngx-translate/core": "^13.0.0",
|
"@ngx-translate/core": "^13.0.0",
|
||||||
@@ -83,6 +90,7 @@
|
|||||||
"@types/jest-environment-puppeteer": "^4.4.1",
|
"@types/jest-environment-puppeteer": "^4.4.1",
|
||||||
"@types/puppeteer": "^5.4.4",
|
"@types/puppeteer": "^5.4.4",
|
||||||
"angular-calendar": "^0.28.22",
|
"angular-calendar": "^0.28.22",
|
||||||
|
"angular-cropperjs": "^0.1.5",
|
||||||
"angular-svg-icon": "^12.0.0",
|
"angular-svg-icon": "^12.0.0",
|
||||||
"angular-tag-cloud-module": "^5.2.2",
|
"angular-tag-cloud-module": "^5.2.2",
|
||||||
"bootstrap": "^4.5.0",
|
"bootstrap": "^4.5.0",
|
||||||
@@ -90,11 +98,12 @@
|
|||||||
"capacitor-voice-recorder": "^2.0.0",
|
"capacitor-voice-recorder": "^2.0.0",
|
||||||
"ci": "^2.1.1",
|
"ci": "^2.1.1",
|
||||||
"cordova": "^10.0.0",
|
"cordova": "^10.0.0",
|
||||||
|
"cordova-plugin-crop": "^0.4.0",
|
||||||
"cordova-plugin-dbcopy": "git+https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git",
|
"cordova-plugin-dbcopy": "git+https://github.com/an-rahulpandey/cordova-plugin-dbcopy.git",
|
||||||
"cordova-plugin-filepath": "^1.5.8",
|
"cordova-plugin-filepath": "^1.5.8",
|
||||||
"cordova-plugin-okhttp": "^2.0.0",
|
"cordova-plugin-okhttp": "^2.0.0",
|
||||||
|
"cordova-plugin-screen-orientation": "^3.0.2",
|
||||||
"cordova-res": "^0.15.3",
|
"cordova-res": "^0.15.3",
|
||||||
"cordova-sqlite-storage": "^5.1.0",
|
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"crypto-js": "^4.0.0",
|
"crypto-js": "^4.0.0",
|
||||||
"date-fns": "^2.17.0",
|
"date-fns": "^2.17.0",
|
||||||
@@ -115,8 +124,11 @@
|
|||||||
"jetifier": "^1.6.8",
|
"jetifier": "^1.6.8",
|
||||||
"lite-server": "^2.6.1",
|
"lite-server": "^2.6.1",
|
||||||
"moment": "^2.29.1",
|
"moment": "^2.29.1",
|
||||||
|
"ng-lazyload-image": "^9.1.0",
|
||||||
"ng2-pdf-viewer": "^7.0.1",
|
"ng2-pdf-viewer": "^7.0.1",
|
||||||
"ngx-cookie-service": "^12.0.3",
|
"ngx-cookie-service": "^12.0.3",
|
||||||
|
"ngx-image-compress": "^11.0.3",
|
||||||
|
"ngx-image-cropper": "^5.0.1",
|
||||||
"ngx-socket-io": "^3.2.0",
|
"ngx-socket-io": "^3.2.0",
|
||||||
"pdfjs": "^2.4.6",
|
"pdfjs": "^2.4.6",
|
||||||
"pdfjs-dist": "^2.9.359",
|
"pdfjs-dist": "^2.9.359",
|
||||||
|
|||||||
@@ -232,7 +232,7 @@ export class DespachoService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async getList({updateStore = false}): Promise<customTask[]> | null {
|
async getList({updateStore = false}) {
|
||||||
|
|
||||||
if (this.LoaderService.loading) {
|
if (this.LoaderService.loading) {
|
||||||
return this.despachoStore.list
|
return this.despachoStore.list
|
||||||
@@ -253,10 +253,7 @@ export class DespachoService {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log(despachoList);
|
despachoList = this.sortService.sortDate(despachoList, 'CreateDate')
|
||||||
|
|
||||||
|
|
||||||
despachoList = this.sortService.sortArrayISODate(despachoList).reverse();
|
|
||||||
|
|
||||||
if(updateStore) {
|
if(updateStore) {
|
||||||
this.despachoStore.reset(despachoList);
|
this.despachoStore.reset(despachoList);
|
||||||
|
|||||||
@@ -203,6 +203,26 @@ const routes = [
|
|||||||
{
|
{
|
||||||
path: 'event-details-documents-options',
|
path: 'event-details-documents-options',
|
||||||
loadChildren: () => import('./shared/popover/event-details-documents-options/event-details-documents-options.module').then( m => m.EventDetailsDocumentsOptionsPageModule)
|
loadChildren: () => import('./shared/popover/event-details-documents-options/event-details-documents-options.module').then( m => m.EventDetailsDocumentsOptionsPageModule)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'preview-camera',
|
||||||
|
loadChildren: () => import('./modals/preview-camera/preview-camera.module').then( m => m.PreviewCameraPageModule)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'group-icons',
|
||||||
|
loadChildren: () => import('./modals/group-icons/group-icons.module').then( m => m.GroupIconsPageModule)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'video-allowed',
|
||||||
|
loadChildren: () => import('./modals/video-allowed/video-allowed.module').then( m => m.VideoAllowedPageModule)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'preview-photo',
|
||||||
|
loadChildren: () => import('./modals/preview-photo/preview-photo.module').then( m => m.PreviewPhotoPageModule)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'custom-image-cache',
|
||||||
|
loadChildren: () => import('./services/file/custom-image-cache/custom-image-cache.module').then( m => m.CustomImageCachePageModule)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,9 @@ import { NgxMatDateFormats } from '@angular-material-components/datetime-picker'
|
|||||||
const moment = _rollupMoment || _moment;
|
const moment = _rollupMoment || _moment;
|
||||||
import { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';
|
import { NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';
|
||||||
import { SqliteService } from 'src/app/services/sqlite.service';
|
import { SqliteService } from 'src/app/services/sqlite.service';
|
||||||
|
import { BackgroundService } from 'src/app/services/background.service';
|
||||||
import { ScreenOrientation } from '@ionic-native/screen-orientation/ngx';
|
import { ScreenOrientation } from '@ionic-native/screen-orientation/ngx';
|
||||||
|
import { StorageService } from 'src/app/services/storage.service';
|
||||||
|
|
||||||
|
|
||||||
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
const CUSTOM_DATE_FORMATS: NgxMatDateFormats = {
|
||||||
@@ -39,20 +41,30 @@ export class AppComponent {
|
|||||||
/* private splashScreen: SplashScreen, */
|
/* private splashScreen: SplashScreen, */
|
||||||
private statusBar: StatusBar,
|
private statusBar: StatusBar,
|
||||||
private screenOrientation: ScreenOrientation,
|
private screenOrientation: ScreenOrientation,
|
||||||
private sqliteservice: SqliteService
|
private sqliteservice: SqliteService,
|
||||||
|
private backgroundservice: BackgroundService,
|
||||||
|
private storageservice: StorageService
|
||||||
) {
|
) {
|
||||||
|
// this.createCacheFolder()
|
||||||
this.initializeApp();
|
this.initializeApp();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// async createCacheFolder(){
|
||||||
|
// await Filesystem.mkdir({
|
||||||
|
// directory: Directory.Cache,
|
||||||
|
// path: `CACHED-IMG`
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
|
||||||
initializeApp() {
|
initializeApp() {
|
||||||
this.platform.ready().then(() => {
|
this.platform.ready().then(() => {
|
||||||
this.statusBar.styleDefault();
|
this.statusBar.styleDefault();
|
||||||
/* this.splashScreen.hide(); */
|
/* this.splashScreen.hide(); */
|
||||||
|
|
||||||
if (this.platform.is("tablet")) {
|
if (this.platform.is("tablet")) {
|
||||||
this.screenOrientation.unlock();
|
window.screen.orientation.unlock();
|
||||||
} else if( this.platform.is("mobile")) {
|
} else if( this.platform.is("mobile")) {
|
||||||
this.screenOrientation.lock(this.screenOrientation.ORIENTATIONS.PORTRAIT_PRIMARY);
|
window.screen.orientation.lock('portrait');
|
||||||
console.log('Orientation locked')
|
console.log('Orientation locked')
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,6 +78,16 @@ export class AppComponent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.storageservice.get('networkCheckStore').then((network) => {
|
||||||
|
if(network === 'online') {
|
||||||
|
console.log('Network app componente check', network)
|
||||||
|
this.backgroundservice.online()
|
||||||
|
} else {
|
||||||
|
console.log('Network app componente check', network)
|
||||||
|
this.backgroundservice.offline();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import { Network } from '@ionic-native/network/ngx';
|
|||||||
import { File } from '@ionic-native/file/ngx';
|
import { File } from '@ionic-native/file/ngx';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
NgxMatDatetimePickerModule,
|
NgxMatDatetimePickerModule,
|
||||||
NgxMatNativeDateModule,
|
NgxMatNativeDateModule,
|
||||||
@@ -64,6 +65,8 @@ import { MediaCapture } from '@ionic-native/media-capture/ngx';
|
|||||||
import { Media } from '@ionic-native/media/ngx';
|
import { Media } from '@ionic-native/media/ngx';
|
||||||
import { StreamingMedia } from '@ionic-native/streaming-media/ngx';
|
import { StreamingMedia } from '@ionic-native/streaming-media/ngx';
|
||||||
import { PhotoViewer } from '@ionic-native/photo-viewer/ngx';
|
import { PhotoViewer } from '@ionic-native/photo-viewer/ngx';
|
||||||
|
import {NgxImageCompressService} from 'ngx-image-compress';
|
||||||
|
import { CustomImageCachePageRoutingModule } from './services/file/custom-image-cache/custom-image-cache-routing.module';
|
||||||
|
|
||||||
/* import { FCM } from '@ionic-native/fcm/ngx';
|
/* import { FCM } from '@ionic-native/fcm/ngx';
|
||||||
import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */
|
import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */
|
||||||
@@ -80,7 +83,11 @@ import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */
|
|||||||
useFactory: adapterFactory
|
useFactory: adapterFactory
|
||||||
}),
|
}),
|
||||||
IonicModule.forRoot({animated: false}),
|
IonicModule.forRoot({animated: false}),
|
||||||
IonicStorageModule.forRoot(),
|
IonicStorageModule.forRoot({
|
||||||
|
name: '__mydb',
|
||||||
|
driverOrder: ['indexeddb', 'sqlite', 'websql']
|
||||||
|
}),
|
||||||
|
|
||||||
AppRoutingModule,
|
AppRoutingModule,
|
||||||
FontAwesomeModule,
|
FontAwesomeModule,
|
||||||
HttpClientModule,
|
HttpClientModule,
|
||||||
@@ -102,6 +109,9 @@ import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */
|
|||||||
//
|
//
|
||||||
PdfViewerModule,
|
PdfViewerModule,
|
||||||
HammerModule,
|
HammerModule,
|
||||||
|
CustomImageCachePageRoutingModule
|
||||||
|
|
||||||
|
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: MAT_DATE_LOCALE, useValue: 'pt' },
|
{ provide: MAT_DATE_LOCALE, useValue: 'pt' },
|
||||||
@@ -128,7 +138,8 @@ import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */
|
|||||||
MediaCapture,
|
MediaCapture,
|
||||||
Media,
|
Media,
|
||||||
StreamingMedia,
|
StreamingMedia,
|
||||||
PhotoViewer
|
PhotoViewer,
|
||||||
|
NgxImageCompressService
|
||||||
],
|
],
|
||||||
bootstrap: [AppComponent],
|
bootstrap: [AppComponent],
|
||||||
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<ion-tab-button tab="events">
|
<ion-tab-button tab="events">
|
||||||
<!-- <ion-icon name="home"></ion-icon> -->
|
<!-- <ion-icon name="home"></ion-icon> -->
|
||||||
<ion-icon class="nav-icon" src="assets/images/icons-nav-home.svg"></ion-icon>
|
<ion-icon class="nav-icon" src="assets/images/icons-nav-home.svg"></ion-icon>
|
||||||
<ion-badge color="danger">{{toDayEventStorage.eventsList.length + expedienteGdStore.count}}</ion-badge>
|
<!-- <ion-badge color="danger">{{toDayEventStorage.eventsList.length + expedienteGdStore.count}}</ion-badge> -->
|
||||||
<ion-label>Início</ion-label>
|
<ion-label>Início</ion-label>
|
||||||
</ion-tab-button>
|
</ion-tab-button>
|
||||||
|
|
||||||
@@ -15,8 +15,8 @@
|
|||||||
<ion-tab-button (click)="goto('/home/gabinete-digital')">
|
<ion-tab-button (click)="goto('/home/gabinete-digital')">
|
||||||
<!-- <ion-icon name="file-tray-stacked"></ion-icon> -->
|
<!-- <ion-icon name="file-tray-stacked"></ion-icon> -->
|
||||||
<ion-icon class="nav-icon" src="assets/images/icons-nav-gabinete-inactive.svg"></ion-icon>
|
<ion-icon class="nav-icon" src="assets/images/icons-nav-gabinete-inactive.svg"></ion-icon>
|
||||||
<ion-badge color="danger" *ngIf="!p.userRole(['PR'])" >{{ documentCounterService.mdTotalDocument }}</ion-badge>
|
<!-- <ion-badge color="danger" *ngIf="!p.userRole(['PR'])" >{{ documentCounterService.mdTotalDocument }}</ion-badge>
|
||||||
<ion-badge color="danger" *ngIf="p.userRole(['PR'])" >{{ documentCounterService.prTotalDocument }}</ion-badge>
|
<ion-badge color="danger" *ngIf="p.userRole(['PR'])" >{{ documentCounterService.prTotalDocument }}</ion-badge> -->
|
||||||
<ion-label>Gabinete</ion-label>
|
<ion-label>Gabinete</ion-label>
|
||||||
</ion-tab-button>
|
</ion-tab-button>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { Component, OnInit, NgZone } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { Event } from '../models/event.model';
|
import { Event } from '../models/event.model';
|
||||||
import { NotificationsService } from '../services/notifications.service';
|
import { NotificationsService } from '../services/notifications.service';
|
||||||
/*import { WebNotificationsService } from '../services/webnotifications.service'; */
|
/*import { WebNotificationsService } from '../services/webnotifications.service'; */
|
||||||
@@ -22,7 +22,10 @@ import { BackgroundService } from 'src/app/services/background.service';
|
|||||||
import { OfflineManagerService } from 'src/app/services/offline-manager.service';
|
import { OfflineManagerService } from 'src/app/services/offline-manager.service';
|
||||||
import { Storage } from '@ionic/storage';
|
import { Storage } from '@ionic/storage';
|
||||||
import { EventsService } from 'src/app/services/events.service';
|
import { EventsService } from 'src/app/services/events.service';
|
||||||
|
import { ProcessesService } from 'src/app/services/processes.service';
|
||||||
import { ScreenOrientation } from '@ionic-native/screen-orientation/ngx';
|
import { ScreenOrientation } from '@ionic-native/screen-orientation/ngx';
|
||||||
|
import { SqliteService } from 'src/app/services/sqlite.service';
|
||||||
|
import { Device } from '@capacitor/device';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-home',
|
selector: 'app-home',
|
||||||
@@ -66,7 +69,6 @@ export class HomePage implements OnInit {
|
|||||||
status: string = "";
|
status: string = "";
|
||||||
audioName: string = "";
|
audioName: string = "";
|
||||||
constructor(
|
constructor(
|
||||||
private zone: NgZone,
|
|
||||||
private router: Router,
|
private router: Router,
|
||||||
public modalCtrl: AlertController,
|
public modalCtrl: AlertController,
|
||||||
private notificationsService: NotificationsService,
|
private notificationsService: NotificationsService,
|
||||||
@@ -83,19 +85,26 @@ export class HomePage implements OnInit {
|
|||||||
private offlinemanager: OfflineManagerService,
|
private offlinemanager: OfflineManagerService,
|
||||||
private storage: Storage,
|
private storage: Storage,
|
||||||
private eventservice: EventsService,
|
private eventservice: EventsService,
|
||||||
private screenOrientation: ScreenOrientation,) {
|
private processservice: ProcessesService,
|
||||||
|
private screenOrientation: ScreenOrientation,
|
||||||
|
private sqliteservice: SqliteService) {
|
||||||
|
|
||||||
/* this.webNotificationPopupService.askNotificationPermission() */
|
/* this.webNotificationPopupService.askNotificationPermission() */
|
||||||
|
|
||||||
this.router.events.subscribe((val) => {
|
this.router.events.subscribe((val) => {
|
||||||
document.querySelectorAll('ion-modal').forEach((e: any) => e.remove())
|
document.querySelectorAll('ion-modal').forEach((e: any) => e.remove())
|
||||||
|
document.querySelectorAll('popover-viewport').forEach((e: any) => e.remove())
|
||||||
});
|
});
|
||||||
|
|
||||||
window['platform'] = platform
|
window['platform'] = platform
|
||||||
|
|
||||||
window['inactivity/function'] = () => {
|
window['inactivity/function'] = () => {
|
||||||
|
|
||||||
if (window.location.pathname != '/inactivity') {
|
if (window.location.pathname != '/inactivity') {
|
||||||
|
|
||||||
|
document.querySelectorAll('ion-modal').forEach((e: any) => e.remove())
|
||||||
|
document.querySelectorAll('.popover-viewport').forEach((e: any) => e.remove())
|
||||||
|
|
||||||
const pathname = window.location.pathname
|
const pathname = window.location.pathname
|
||||||
SessionStore.setUrlBeforeInactivity(pathname)
|
SessionStore.setUrlBeforeInactivity(pathname)
|
||||||
this.router.navigate(['/inactivity']);
|
this.router.navigate(['/inactivity']);
|
||||||
@@ -103,6 +112,7 @@ export class HomePage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
goto(url) {
|
goto(url) {
|
||||||
@@ -113,6 +123,8 @@ export class HomePage implements OnInit {
|
|||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
|
||||||
|
this.logDeviceInfo();
|
||||||
|
|
||||||
this.notificationsService.onReciveForeground();
|
this.notificationsService.onReciveForeground();
|
||||||
this.notificationsService.onReciveBackground();
|
this.notificationsService.onReciveBackground();
|
||||||
|
|
||||||
@@ -121,8 +133,7 @@ export class HomePage implements OnInit {
|
|||||||
this.backgroundservice.online()
|
this.backgroundservice.online()
|
||||||
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
|
if (this.platform.is('desktop') || this.platform.is('mobileweb')) {
|
||||||
} else {
|
} else {
|
||||||
/* this.notificationsService.onReceviNotification(); */
|
this.synchWhenOnline()
|
||||||
this.offlinemanager.synchnize()
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
window.addEventListener('offline', () => {
|
window.addEventListener('offline', () => {
|
||||||
@@ -141,6 +152,12 @@ export class HomePage implements OnInit {
|
|||||||
myWorker.postMessage('ali'); */
|
myWorker.postMessage('ali'); */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logDeviceInfo = async () => {
|
||||||
|
const info = await Device.getInfo();
|
||||||
|
|
||||||
|
console.log('Device info',info);
|
||||||
|
};
|
||||||
|
|
||||||
updateList() {
|
updateList() {
|
||||||
|
|
||||||
/* this.notificationsService.registerCallback(
|
/* this.notificationsService.registerCallback(
|
||||||
@@ -160,4 +177,50 @@ export class HomePage implements OnInit {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async synchWhenOnline() {
|
||||||
|
try {
|
||||||
|
await this.storage.get('eventEdit').then((req) => {
|
||||||
|
JSON.parse(req).forEach(element => {
|
||||||
|
this.eventservice.editEvent(element, 2, 3).subscribe((res) => {
|
||||||
|
this.storage.remove('eventEdit')
|
||||||
|
this.sqliteservice.deleteEventTable();
|
||||||
|
console.log('eventEdit synchnize', res)
|
||||||
|
})
|
||||||
|
});
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.log('error synch eventedit')
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await this.storage.get('eventDelete').then((req) => {
|
||||||
|
JSON.parse(req).forEach(element => {
|
||||||
|
console.log('DELETE data SYNC', element)
|
||||||
|
this.eventservice.deleteEvent(element.eventid, element.eventDeleteType, element.calendarName).subscribe((res) => {
|
||||||
|
this.storage.remove('eventDelete')
|
||||||
|
this.sqliteservice.deleteEventTable();
|
||||||
|
console.log('eventDelete synchnize', res)
|
||||||
|
})
|
||||||
|
});
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.log('error delete event synch')
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await this.storage.get('event-listRever').then((req) => {
|
||||||
|
JSON.parse(req).forEach(element => {
|
||||||
|
console.log('REVER data SYNC', element)
|
||||||
|
this.processservice.PostTaskAction(element).subscribe((res) => {
|
||||||
|
this.storage.remove('event-listRever')
|
||||||
|
this.sqliteservice.deleteEventTable();
|
||||||
|
console.log('event-listRever synchnize', res)
|
||||||
|
})
|
||||||
|
});
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
console.log('error event-list rever synch')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -291,7 +291,7 @@ export class CreateProcessPage implements OnInit {
|
|||||||
|
|
||||||
this.modalController.dismiss();
|
this.modalController.dismiss();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.toastService.badRequest('Processo não efectuado');
|
this.toastService._badRequest('Processo não efectuado');
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
loader.remove()
|
loader.remove()
|
||||||
@@ -319,10 +319,10 @@ export class CreateProcessPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.modalController.dismiss();
|
this.modalController.dismiss();
|
||||||
this.toastService.successMessage('Pedido de Parecer enviado');
|
this.toastService._successMessage('Pedido de Parecer enviado');
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
this.toastService.badRequest('Processo não efectuado');
|
this.toastService._badRequest('Processo não efectuado');
|
||||||
} finally {
|
} finally {
|
||||||
loader.remove()
|
loader.remove()
|
||||||
}
|
}
|
||||||
@@ -344,10 +344,10 @@ export class CreateProcessPage implements OnInit {
|
|||||||
await this.pedidoService.taskCompleteDeferimento({serialNumber:this.task.serialNumber}).toPromise();
|
await this.pedidoService.taskCompleteDeferimento({serialNumber:this.task.serialNumber}).toPromise();
|
||||||
|
|
||||||
this.modalController.dismiss();
|
this.modalController.dismiss();
|
||||||
this.toastService.successMessage('Pedido de Deferimento criado');
|
this.toastService._successMessage('Pedido de Deferimento criado');
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
this.toastService.badRequest('Processo não efectuado');
|
this.toastService._badRequest('Processo não efectuado');
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
loader.remove()
|
loader.remove()
|
||||||
@@ -376,16 +376,16 @@ export class CreateProcessPage implements OnInit {
|
|||||||
await this.despachoService.CompleteTask({serialNumber: this.task.serialNumber}).toPromise();
|
await this.despachoService.CompleteTask({serialNumber: this.task.serialNumber}).toPromise();
|
||||||
|
|
||||||
this.modalController.dismiss();
|
this.modalController.dismiss();
|
||||||
this.toastService.successMessage('Despacho criado');
|
this.toastService._successMessage('Despacho criado');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.toastService.badRequest('Processo não efectuado');
|
this.toastService._badRequest('Processo não efectuado');
|
||||||
} finally {
|
} finally {
|
||||||
//loader.remove();
|
//loader.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
this.validateField = true;
|
this.validateField = true;
|
||||||
this.toastService.badRequest('Por favor adicione uma descrição');
|
this.toastService._badRequest('Por favor adicione uma descrição');
|
||||||
}
|
}
|
||||||
loader.remove();
|
loader.remove();
|
||||||
break;
|
break;
|
||||||
@@ -411,10 +411,10 @@ export class CreateProcessPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.modalController.dismiss();
|
this.modalController.dismiss();
|
||||||
this.toastService.successMessage('Pedido de Parecer criado');
|
this.toastService._successMessage('Pedido de Parecer criado');
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
this.toastService.badRequest('Processo não efectuado');
|
this.toastService._badRequest('Processo não efectuado');
|
||||||
} finally {
|
} finally {
|
||||||
loader.remove()
|
loader.remove()
|
||||||
}
|
}
|
||||||
@@ -436,10 +436,10 @@ export class CreateProcessPage implements OnInit {
|
|||||||
await this.pedidoService.taskCompleteDeferimento({serialNumber:this.task.serialNumber}).toPromise();
|
await this.pedidoService.taskCompleteDeferimento({serialNumber:this.task.serialNumber}).toPromise();
|
||||||
|
|
||||||
this.modalController.dismiss();
|
this.modalController.dismiss();
|
||||||
this.toastService.successMessage('Pedido de Deferimento criado');
|
this.toastService._successMessage('Pedido de Deferimento criado');
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
this.toastService.badRequest('Processo não efectuado');
|
this.toastService._badRequest('Processo não efectuado');
|
||||||
} finally {
|
} finally {
|
||||||
loader.remove()
|
loader.remove()
|
||||||
}
|
}
|
||||||
@@ -494,9 +494,9 @@ export class CreateProcessPage implements OnInit {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
await this.processes.CompleteTask(body).toPromise();
|
await this.processes.CompleteTask(body).toPromise();
|
||||||
this.toastService.successMessage(message);
|
this.toastService._successMessage(message);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.toastService.badRequest('Processo não efectuado');
|
this.toastService._badRequest('Processo não efectuado');
|
||||||
} finally {
|
} finally {
|
||||||
loader.remove()
|
loader.remove()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,9 +69,9 @@ export class DarParecerPage implements OnInit {
|
|||||||
try {
|
try {
|
||||||
await this.processes.CompleteTask(body).toPromise();
|
await this.processes.CompleteTask(body).toPromise();
|
||||||
this.modalController.dismiss();
|
this.modalController.dismiss();
|
||||||
this.toastService.successMessage('Parecer enviado');
|
this.toastService._successMessage('Parecer enviado');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.toastService.badRequest("Parecer não solicitado");
|
this.toastService._badRequest("Parecer não solicitado");
|
||||||
} finally {
|
} finally {
|
||||||
loader.remove()
|
loader.remove()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,10 +88,10 @@ export class DelegarPage implements OnInit {
|
|||||||
|
|
||||||
async saveTask() {
|
async saveTask() {
|
||||||
if(this.taskParticipants.length < 1){
|
if(this.taskParticipants.length < 1){
|
||||||
this.toastService.badRequest("Selecione um destinatário");
|
this.toastService._badRequest("Selecione um destinatário");
|
||||||
}
|
}
|
||||||
else if(this.taskParticipants.length > 1){
|
else if(this.taskParticipants.length > 1){
|
||||||
this.toastService.badRequest("Selecione apenas um destinatário");
|
this.toastService._badRequest("Selecione apenas um destinatário");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let body = {
|
let body = {
|
||||||
@@ -109,11 +109,11 @@ export class DelegarPage implements OnInit {
|
|||||||
this.processes.DelegateTask(body).subscribe(res=>{
|
this.processes.DelegateTask(body).subscribe(res=>{
|
||||||
|
|
||||||
console.log(res);
|
console.log(res);
|
||||||
this.toastService.successMessage('Processo delegado')
|
this.toastService._successMessage('Processo delegado')
|
||||||
this.close();
|
this.close();
|
||||||
},
|
},
|
||||||
(error)=>{
|
(error)=>{
|
||||||
this.toastService.badRequest("Processo não delegado")
|
this.toastService._badRequest("Processo não delegado")
|
||||||
},
|
},
|
||||||
()=>{
|
()=>{
|
||||||
loader.remove()
|
loader.remove()
|
||||||
|
|||||||
@@ -224,11 +224,11 @@ export class DocumentSetUpMeetingPage implements OnInit {
|
|||||||
|
|
||||||
this.eventService.create({ body: postEvent, calendar: this.postData.CalendarName }).subscribe(async (respose) => {
|
this.eventService.create({ body: postEvent, calendar: this.postData.CalendarName }).subscribe(async (respose) => {
|
||||||
laoder.remove()
|
laoder.remove()
|
||||||
this.toastService.successMessage('Reunião criada')
|
this.toastService._successMessage('Reunião criada')
|
||||||
this.modalController.dismiss()
|
this.modalController.dismiss()
|
||||||
}, (error) => {
|
}, (error) => {
|
||||||
laoder.remove()
|
laoder.remove()
|
||||||
this.toastService.badRequest('Não foi possível marcar a reunião');
|
this.toastService._badRequest('Não foi possível marcar a reunião');
|
||||||
}, ()=>{
|
}, ()=>{
|
||||||
laoder.remove()
|
laoder.remove()
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ export class ForwardPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(this.taskParticipants.length < 1){
|
if(this.taskParticipants.length < 1){
|
||||||
this.toastService.badRequest("Selecione um destinatário");
|
this.toastService._badRequest("Selecione um destinatário");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
@@ -150,11 +150,11 @@ export class ForwardPage implements OnInit {
|
|||||||
console.log(body);
|
console.log(body);
|
||||||
this.processes.CompleteParecerPrTask(body).subscribe(res=>{
|
this.processes.CompleteParecerPrTask(body).subscribe(res=>{
|
||||||
console.log(res);
|
console.log(res);
|
||||||
this.toastService.successMessage('Processo delegado');
|
this.toastService._successMessage('Processo delegado');
|
||||||
this.goBack();
|
this.goBack();
|
||||||
},
|
},
|
||||||
(error)=>{
|
(error)=>{
|
||||||
this.toastService.badRequest("Processo não delegado")
|
this.toastService._badRequest("Processo não delegado")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { GroupIconsPage } from './group-icons.page';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: GroupIconsPage
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule],
|
||||||
|
})
|
||||||
|
export class GroupIconsPageRoutingModule {}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { GroupIconsPageRoutingModule } from './group-icons-routing.module';
|
||||||
|
|
||||||
|
import { GroupIconsPage } from './group-icons.page';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
FormsModule,
|
||||||
|
IonicModule,
|
||||||
|
GroupIconsPageRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [GroupIconsPage]
|
||||||
|
})
|
||||||
|
export class GroupIconsPageModule {}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
<ion-card class="cardconteudo" (click)= "dismiss()" >
|
||||||
|
<ion-card-header>
|
||||||
|
</ion-card-header>
|
||||||
|
<ion-card-content >
|
||||||
|
<ion-row>
|
||||||
|
<ion-item>Tem certeza que apagar imagem?</ion-item>
|
||||||
|
</ion-row>
|
||||||
|
<ion-row>
|
||||||
|
<ion-item ><ion-chip>
|
||||||
|
<ion-label color="danger">Sim</ion-label>
|
||||||
|
</ion-chip>
|
||||||
|
|
||||||
|
<ion-chip class="placed">
|
||||||
|
<ion-label color="secondary" (click)= "dismiss()">Não</ion-label>
|
||||||
|
</ion-chip >
|
||||||
|
</ion-item>
|
||||||
|
</ion-row>
|
||||||
|
</ion-card-content>
|
||||||
|
</ion-card>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
// .animated{
|
||||||
|
// animation: duration 5s;
|
||||||
|
// animation-fill-mode: both;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// @keyframes bounceInUp{
|
||||||
|
// 0%{
|
||||||
|
// opacity:0;
|
||||||
|
// transform: translateY(300px);
|
||||||
|
|
||||||
|
// }
|
||||||
|
// 60%{
|
||||||
|
// opacity:0;
|
||||||
|
// transform: translateY(-30px);
|
||||||
|
// }
|
||||||
|
// 80%{
|
||||||
|
// opacity:0;
|
||||||
|
// transform: translateY(10px);
|
||||||
|
// }
|
||||||
|
// 100%{
|
||||||
|
// opacity:0;
|
||||||
|
// transform: translateY(0);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// .bounceInUp{
|
||||||
|
// animation-name: bounceInUp;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// @keyframes bounceInUp{
|
||||||
|
// from{down:0px}
|
||||||
|
// 30% {top: 100px !important;} /* ignored */
|
||||||
|
// from{down:200px}
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
.rollover {
|
||||||
|
position: relative;
|
||||||
|
animation: mymove 5s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes mymove {
|
||||||
|
from {bottom: 0px; }
|
||||||
|
to {bottom: 100px;}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (min-height: 600px) and (min-width: 768px)
|
||||||
|
{
|
||||||
|
.custom-modal {
|
||||||
|
.modal-wrapper {
|
||||||
|
|
||||||
|
position: absolute !important;
|
||||||
|
height: 500px !important;
|
||||||
|
top: calc(100% - (500px));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.redla{
|
||||||
|
|
||||||
|
color: rgb(255, 38, 0);
|
||||||
|
// background-color: rgb(255, 72, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.placed{
|
||||||
|
float:right
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { GroupIconsPage } from './group-icons.page';
|
||||||
|
|
||||||
|
describe('GroupIconsPage', () => {
|
||||||
|
let component: GroupIconsPage;
|
||||||
|
let fixture: ComponentFixture<GroupIconsPage>;
|
||||||
|
|
||||||
|
beforeEach(waitForAsync(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ GroupIconsPage ],
|
||||||
|
imports: [IonicModule.forRoot()]
|
||||||
|
}).compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(GroupIconsPage);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { IonSlides, ModalController, NavParams } from '@ionic/angular';
|
||||||
|
import { PublicationsService } from 'src/app/services/publications.service';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-group-icons',
|
||||||
|
templateUrl: './group-icons.page.html',
|
||||||
|
styleUrls: ['./group-icons.page.scss'],
|
||||||
|
})
|
||||||
|
export class GroupIconsPage implements OnInit {
|
||||||
|
|
||||||
|
constructor( private modalController: ModalController,
|
||||||
|
private navParams:NavParams,
|
||||||
|
private publicService:PublicationsService ) { }
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
}
|
||||||
|
|
||||||
|
removerIcone(){
|
||||||
|
|
||||||
|
}
|
||||||
|
openGaleria(){
|
||||||
|
|
||||||
|
}
|
||||||
|
OpenCamera(){
|
||||||
|
|
||||||
|
}
|
||||||
|
pesquizarWeb(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
dismiss() {
|
||||||
|
// using the injected ModalController this page
|
||||||
|
// can "dismiss" itself and optionally pass back data
|
||||||
|
this.modalController.dismiss({
|
||||||
|
'dismissed': true
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
// delete(){
|
||||||
|
// this.publicService.DeletePublication()
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { PreviewCameraPage } from './preview-camera.page';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: PreviewCameraPage
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule],
|
||||||
|
})
|
||||||
|
export class PreviewCameraPageRoutingModule {}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { PreviewCameraPageRoutingModule } from './preview-camera-routing.module';
|
||||||
|
|
||||||
|
import { PreviewCameraPage } from './preview-camera.page';
|
||||||
|
import { ImageCropperModule } from 'ngx-image-cropper';
|
||||||
|
import { GroupIconsPage } from '../group-icons/group-icons.page';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
FormsModule,
|
||||||
|
IonicModule,
|
||||||
|
ImageCropperModule,
|
||||||
|
PreviewCameraPageRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [PreviewCameraPage],
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
export class PreviewCameraPageModule {}
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
|
||||||
|
|
||||||
|
<ion-card class="cardconteudo" >
|
||||||
|
|
||||||
|
<ion-card-content >
|
||||||
|
<ion-card-header >
|
||||||
|
|
||||||
|
|
||||||
|
<ion-text color="dark" size="6">{{username}} <span>{{_updatedAt | date}}</span><div class="right" (click)="getIconGallery()"><ion-icon name="pencil-outline" ></ion-icon></div></ion-text>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ion-card-header>
|
||||||
|
|
||||||
|
<img src="{{image}}" />
|
||||||
|
|
||||||
|
</ion-card-content>
|
||||||
|
<!-- <image-cropper [imageBase64]="myimage"
|
||||||
|
[maintainAspectRatio]="true"
|
||||||
|
[aspectRatio]="4 / 3"
|
||||||
|
outputType = "base64"
|
||||||
|
format="png"
|
||||||
|
[resizeToWidth]="true"
|
||||||
|
(imageCropped)="imageCropped($event)"
|
||||||
|
|
||||||
|
></image-cropper> -->
|
||||||
|
|
||||||
|
<ion-footer color="light">
|
||||||
|
<ion-row>
|
||||||
|
<ion-col size="3" class="ion-text-center">
|
||||||
|
<ion-button (click)="close()" fill="clear" color="light">
|
||||||
|
<!-- <ion-icon name="remove" slot="start"></ion-icon> -->
|
||||||
|
<ion-icon src="assets/icon/chat/circle-xmark-solid 1.svg" ></ion-icon>
|
||||||
|
</ion-button>
|
||||||
|
</ion-col>
|
||||||
|
<ion-col size="3" class="ion-text-center">
|
||||||
|
<ion-button (click)="deleteImage()" fill="clear" color="light">
|
||||||
|
<ion-icon src="assets/icon/chat/Ellipse 8.svg" ></ion-icon>
|
||||||
|
<!-- <ion-icon class="redla" name="flower-outline"></ion-icon> -->
|
||||||
|
</ion-button>
|
||||||
|
</ion-col>
|
||||||
|
<ion-col size="3" class="ion-text-center">
|
||||||
|
<ion-button (click)="redirPage()" fill="clear" color="light">
|
||||||
|
|
||||||
|
<ion-icon src="assets/icon/chat/Ellipselast.svg" ></ion-icon>
|
||||||
|
|
||||||
|
|
||||||
|
</ion-button>
|
||||||
|
</ion-col>
|
||||||
|
<ion-col size="3" class="ion-text-center">
|
||||||
|
|
||||||
|
<ion-button (click)="getIconShare()" fill="clear" color="light">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ion-icon src="assets/icon/chat/Ellipse 9.svg" ></ion-icon>
|
||||||
|
|
||||||
|
|
||||||
|
</ion-button>
|
||||||
|
|
||||||
|
</ion-col>
|
||||||
|
<!-- <ion-col size="3" class="ion-text-center">
|
||||||
|
<ion-button (click)="zoom(true)" fill="clear" color="light">
|
||||||
|
<ion-icon class="redla" name="alert-circle"></ion-icon>
|
||||||
|
|
||||||
|
</ion-button>
|
||||||
|
</ion-col> -->
|
||||||
|
</ion-row>
|
||||||
|
</ion-footer>
|
||||||
|
</ion-card>
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
ion-footer {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ion-slides {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.redla{
|
||||||
|
color: rgb(250, 250, 4);
|
||||||
|
background-color: rgb(255, 238, 0);
|
||||||
|
border-radius: 120px;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
.blacking{
|
||||||
|
background-color: rgb(168, 41, 41);
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardconteudo {
|
||||||
|
background: rgb(253, 252, 252);
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.whiter{
|
||||||
|
color: white;
|
||||||
|
|
||||||
|
}
|
||||||
|
.right{
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.center{
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
circle-xmark-solid{
|
||||||
|
|
||||||
|
// position: relative;
|
||||||
|
width: 512px;
|
||||||
|
height: 515px;
|
||||||
|
position: absolute;
|
||||||
|
left: 0%;
|
||||||
|
right: 0%;
|
||||||
|
top: 0%;
|
||||||
|
bottom: 0%;
|
||||||
|
|
||||||
|
background: #FCD13A;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Vector */
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { PreviewCameraPage } from './preview-camera.page';
|
||||||
|
|
||||||
|
describe('PreviewCameraPage', () => {
|
||||||
|
let component: PreviewCameraPage;
|
||||||
|
let fixture: ComponentFixture<PreviewCameraPage>;
|
||||||
|
|
||||||
|
beforeEach(waitForAsync(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ PreviewCameraPage ],
|
||||||
|
imports: [IonicModule.forRoot()]
|
||||||
|
}).compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(PreviewCameraPage);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,148 @@
|
|||||||
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
|
import { IonSlides, ModalController, NavParams } from '@ionic/angular';
|
||||||
|
import { ImageCroppedEvent } from 'ngx-image-cropper';
|
||||||
|
import { PublicationsService } from 'src/app/services/publications.service';
|
||||||
|
import { GroupIconsPage } from '../group-icons/group-icons.page';
|
||||||
|
import { Share } from '@capacitor/share';
|
||||||
|
import { Router } from '@angular/router';
|
||||||
|
import { Directory, Filesystem } from '@capacitor/filesystem';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-preview-camera',
|
||||||
|
templateUrl: './preview-camera.page.html',
|
||||||
|
styleUrls: ['./preview-camera.page.scss'],
|
||||||
|
})
|
||||||
|
export class PreviewCameraPage implements OnInit {
|
||||||
|
|
||||||
|
constructor( private modalController: ModalController,
|
||||||
|
private navParams:NavParams,
|
||||||
|
public router: Router,
|
||||||
|
private publicService: PublicationsService) { }
|
||||||
|
|
||||||
|
|
||||||
|
@ViewChild(IonSlides) slides : IonSlides
|
||||||
|
image: any;
|
||||||
|
username: string
|
||||||
|
_updatedAt: string
|
||||||
|
|
||||||
|
|
||||||
|
// myimage: null
|
||||||
|
// croppedImageBase64: any
|
||||||
|
|
||||||
|
// @Input('img') img: any
|
||||||
|
// @Input() username: string;
|
||||||
|
// @Input() date: string;
|
||||||
|
|
||||||
|
slideOpts = {
|
||||||
|
zoom: true
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
this.image = this.navParams.get('image')
|
||||||
|
this.username = this.navParams.get('username')
|
||||||
|
this._updatedAt = this.navParams.get('_updatedAt')
|
||||||
|
console.log(this.image)
|
||||||
|
// this.image = this.myimage
|
||||||
|
}
|
||||||
|
|
||||||
|
ionViewDidEnter(){
|
||||||
|
this.slides.update()
|
||||||
|
}
|
||||||
|
|
||||||
|
async zoom(zoomIn: boolean){
|
||||||
|
const slider = await this.slides.getSwiper() //is swipper =!
|
||||||
|
const zoom = slider.zoom
|
||||||
|
zoomIn ? zoom.in(): zoom.out()
|
||||||
|
}
|
||||||
|
|
||||||
|
close(){
|
||||||
|
this.modalController.dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
|
// imageCropped(ev: ImageCroppedEvent){
|
||||||
|
// this.croppedImageBase64 = ev.base64
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// async grupo(){
|
||||||
|
// const modal = await this.modalController.create({
|
||||||
|
// component: GroupIconsPage,
|
||||||
|
// cssClass: 'transparent-modal',
|
||||||
|
// });
|
||||||
|
// modal.present();
|
||||||
|
// }
|
||||||
|
|
||||||
|
async getIconGallery(){
|
||||||
|
|
||||||
|
const modal = await this.modalController.create({
|
||||||
|
component: GroupIconsPage ,
|
||||||
|
animated: true,
|
||||||
|
cssClass: 'transparent-modal',
|
||||||
|
});
|
||||||
|
modal.present();
|
||||||
|
}
|
||||||
|
|
||||||
|
openChat(){
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
clear() {
|
||||||
|
this.getIconGallery()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
openChatVideo(){
|
||||||
|
|
||||||
|
}
|
||||||
|
deleteImage(){
|
||||||
|
document.addEventListener('DOMContentLoaded', ()=>{
|
||||||
|
document.querySelector('img').addEventListener('click',removeImage)
|
||||||
|
})
|
||||||
|
function removeImage(ev){
|
||||||
|
console.log(ev.target, ev.currentTarget)
|
||||||
|
let img = ev.currentTarget
|
||||||
|
let src = ev.target.closest('.img')
|
||||||
|
src?.parentElement.removeChild(src)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
async getIconShare(){
|
||||||
|
|
||||||
|
|
||||||
|
await Share.share({
|
||||||
|
title: 'See cool stuff',
|
||||||
|
text: 'Really awesome thing you need to see right meow',
|
||||||
|
url: this.image,
|
||||||
|
dialogTitle: 'Share with buddies',
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
redirPage(){
|
||||||
|
this.router.navigateByUrl('/chat')
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteFile(entry){
|
||||||
|
if(entry.isFile){
|
||||||
|
await Filesystem.deleteFile({
|
||||||
|
directory: Directory.Documents,
|
||||||
|
path: this.image.src + '/' + entry.name
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
await Filesystem.rmdir({
|
||||||
|
directory: Directory.Documents,
|
||||||
|
path: this.image.src + '/' + entry.name,
|
||||||
|
recursive:true //remove all file as well
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { PreviewPhotoPage } from './preview-photo.page';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: PreviewPhotoPage
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule],
|
||||||
|
})
|
||||||
|
export class PreviewPhotoPageRoutingModule {}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { PreviewPhotoPageRoutingModule } from './preview-photo-routing.module';
|
||||||
|
|
||||||
|
import { PreviewPhotoPage } from './preview-photo.page';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
FormsModule,
|
||||||
|
IonicModule,
|
||||||
|
PreviewPhotoPageRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [PreviewPhotoPage]
|
||||||
|
})
|
||||||
|
export class PreviewPhotoPageModule {}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<ion-header>
|
||||||
|
<ion-toolbar>
|
||||||
|
<ion-title>
|
||||||
|
<ion-icon></ion-icon>
|
||||||
|
</ion-title>
|
||||||
|
</ion-toolbar>
|
||||||
|
</ion-header>
|
||||||
|
|
||||||
|
<ion-content>
|
||||||
|
<img src="{{image}}" />
|
||||||
|
<ion-footer>
|
||||||
|
<ion-icon></ion-icon>
|
||||||
|
<ion-icon></ion-icon>
|
||||||
|
</ion-footer>
|
||||||
|
</ion-content>
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { PreviewPhotoPage } from './preview-photo.page';
|
||||||
|
|
||||||
|
describe('PreviewPhotoPage', () => {
|
||||||
|
let component: PreviewPhotoPage;
|
||||||
|
let fixture: ComponentFixture<PreviewPhotoPage>;
|
||||||
|
|
||||||
|
beforeEach(waitForAsync(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ PreviewPhotoPage ],
|
||||||
|
imports: [IonicModule.forRoot()]
|
||||||
|
}).compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(PreviewPhotoPage);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
import { ModalController, NavParams } from '@ionic/angular';
|
||||||
|
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-preview-photo',
|
||||||
|
templateUrl: './preview-photo.page.html',
|
||||||
|
styleUrls: ['./preview-photo.page.scss'],
|
||||||
|
})
|
||||||
|
export class PreviewPhotoPage implements OnInit {
|
||||||
|
|
||||||
|
constructor(private modalController: ModalController,
|
||||||
|
private navParams:NavParams) { }
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
}
|
||||||
|
|
||||||
|
image: any;
|
||||||
|
|
||||||
|
exit( ){ this.modalController.dismiss()
|
||||||
|
|
||||||
|
}
|
||||||
|
save(img){
|
||||||
|
var canvas = document.createElement('canvas');
|
||||||
|
var ctx = canvas.getContext('2d');
|
||||||
|
canvas.width=300
|
||||||
|
canvas.height=234
|
||||||
|
ctx.drawImage(img.attachments[0].image_url, 0, 0, 300, 234);
|
||||||
|
document.body.appendChild(canvas);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -72,9 +72,9 @@
|
|||||||
<img style="width: 40px;" src="assets/images/logo-removebg-preview.png"/>
|
<img style="width: 40px;" src="assets/images/logo-removebg-preview.png"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div hidden class="btn-close d-flex cursor-pointer pr-10" (click)="changeTheme('tribunal')" >
|
<!-- <div hidden class="btn-close d-flex cursor-pointer pr-10" (click)="changeTheme('tribunal')" >
|
||||||
<img style="width: 40px;" src="assets/images/theme/tribunal/tribunal-constitucional-logo.png"/>
|
<img style="width: 40px;" src="assets/images/theme/tribunal/tribunal-constitucional-logo.png"/>
|
||||||
</div>
|
</div> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
<div class="approve-event-detail">
|
<div class="approve-event-detail">
|
||||||
<p *ngIf = "item.Service == 'agenda'">{{item.Location}}</p>
|
<p *ngIf = "item.Service == 'agenda'">{{item.Location}}</p>
|
||||||
<h3 id="profile-title">{{item.title}}</h3>
|
<h3 id="profile-title">{{item.title}}</h3>
|
||||||
<p *ngIf = "item.Service != 'agenda'">{{item.body}}</p>
|
<p id="profile-title" *ngIf = "item.Service != 'agenda'">{{item.body}}</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="notification-label-MD-official" *ngIf = "item.Service == 'agenda' && item.TypeAgenda == 'official' && item.Role == '100000011'" ></div>
|
<!-- <div class="notification-label-MD-official" *ngIf = "item.Service == 'agenda' && item.TypeAgenda == 'official' && item.Role == '100000011'" ></div>
|
||||||
<div class="notification-label-MD-pessoal" *ngIf = "item.Service == 'agenda' && item.TypeAgenda == 'pessoal' && item.Role == '100000011'" ></div>
|
<div class="notification-label-MD-pessoal" *ngIf = "item.Service == 'agenda' && item.TypeAgenda == 'pessoal' && item.Role == '100000011'" ></div>
|
||||||
|
|||||||
@@ -1,60 +1,58 @@
|
|||||||
.profile-header{
|
.profile-header {
|
||||||
margin: 0 em(20px);
|
margin: 0 em(20px);
|
||||||
// background-color: #0782c9;
|
// background-color: #0782c9;
|
||||||
padding: 20px 20px;
|
padding: 20px 20px;
|
||||||
border: 0!important;
|
border: 0 !important;
|
||||||
|
|
||||||
.div-logo{
|
.div-logo {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
width: calc(100% - 40px) !important;
|
width: calc(100% - 40px) !important;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
float: left;
|
float: left;
|
||||||
|
|
||||||
.logo{
|
.logo {
|
||||||
width: 140px;
|
width: 140px;
|
||||||
.img{
|
.img {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 0px auto;
|
margin: 0px auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.btn-close{
|
.btn-close {
|
||||||
float: right !important;
|
float: right !important;
|
||||||
}
|
}
|
||||||
.profile-content{
|
.profile-content {
|
||||||
padding: 20px 20px;
|
padding: 20px 20px;
|
||||||
//color: var(--profile-text-color) !important;
|
//color: var(--profile-text-color) !important;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon{
|
.icon {
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile-title{
|
.profile-title {
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-size: 20px !important;
|
font-size: 20px !important;
|
||||||
margin-bottom: 40px !important;
|
margin-bottom: 40px !important;
|
||||||
color: var(--profile-text-color) !important;
|
color: var(--profile-text-color) !important;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.line{
|
.line {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
border-top: 1px solid #d8d8d8;
|
border-top: 1px solid #d8d8d8;
|
||||||
color: var(--profile-title-color-RoleDescription) !important;
|
color: var(--profile-title-color-RoleDescription) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-delete{
|
.btn-delete {
|
||||||
background:#ffe0e0 !important;
|
background: #ffe0e0 !important;
|
||||||
width: 40% !important;
|
width: 40% !important;
|
||||||
margin-left: 0 !important;
|
margin-left: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-cancel{
|
.btn-cancel {
|
||||||
width: 40% !important;
|
width: 40% !important;
|
||||||
margin-right: 0 !important;
|
margin-right: 0 !important;
|
||||||
}
|
}
|
||||||
@@ -63,14 +61,13 @@
|
|||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
ion-list{
|
ion-list {
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.notifications-content {
|
||||||
.notifications-content{
|
|
||||||
padding: 0px 20px;
|
padding: 0px 20px;
|
||||||
.item{
|
.item {
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07);
|
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.07);
|
||||||
border: solid 1px #e9e9e9;
|
border: solid 1px #e9e9e9;
|
||||||
@@ -81,37 +78,38 @@ ion-list{
|
|||||||
color: #000;
|
color: #000;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
.notification-item{
|
.notification-item {
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
float: left;
|
float: left;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
.notification-icon{
|
.notification-icon {
|
||||||
font-size: 35px !important;
|
font-size: 35px !important;
|
||||||
}
|
}
|
||||||
.approve-event-time{
|
.approve-event-time {
|
||||||
width: fit-content !important;
|
width: fit-content !important;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
.approve-event-detail{
|
.approve-event-detail {
|
||||||
width: calc(100% - 115px) !important;
|
width: calc(100% - 115px) !important;
|
||||||
float: left;
|
float: left;
|
||||||
#profile-title{
|
#profile-title {
|
||||||
width: 250px;
|
width: 250px;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.notification-label-MD-official{
|
.notification-label-MD-official {
|
||||||
float: right;
|
float: right;
|
||||||
width: 5px;
|
width: 5px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border-radius: 0% 100% 100% 0%;
|
border-radius: 0% 100% 100% 0%;
|
||||||
background-color: #ffb703;
|
background-color: #ffb703;
|
||||||
}
|
}
|
||||||
.notification-label-MD-pessoal{
|
.notification-label-MD-pessoal {
|
||||||
float: right;
|
float: right;
|
||||||
width: 5px;
|
width: 5px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -119,21 +117,19 @@ ion-list{
|
|||||||
background-color: #ff0303;
|
background-color: #ff0303;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-conten{
|
.item-conten {
|
||||||
border-right: 5px solid var(--notificationtypeagenda);
|
border-right: 5px solid var(--notificationtypeagenda);
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.notification-label-PR-official {
|
||||||
|
|
||||||
.notification-label-PR-official{
|
|
||||||
float: right;
|
float: right;
|
||||||
width: 5px;
|
width: 5px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border-radius: 0% 100% 100% 0%;
|
border-radius: 0% 100% 100% 0%;
|
||||||
background-color: #03d838;
|
background-color: #03d838;
|
||||||
}
|
}
|
||||||
.notification-label-PR-pessoal{
|
.notification-label-PR-pessoal {
|
||||||
float: right;
|
float: right;
|
||||||
width: 5px;
|
width: 5px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -141,8 +137,7 @@ ion-list{
|
|||||||
background-color: #8b0ae0;
|
background-color: #8b0ae0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
.item-inner{
|
.item-inner {
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import { NotificationsService } from '../../services/notifications.service';
|
|||||||
import { SessionStore } from 'src/app/store/session.service';
|
import { SessionStore } from 'src/app/store/session.service';
|
||||||
import { EventTrigger } from '../../services/eventTrigger.service';
|
import { EventTrigger } from '../../services/eventTrigger.service';
|
||||||
import { ThemeService } from 'src/app/services/theme.service'
|
import { ThemeService } from 'src/app/services/theme.service'
|
||||||
|
import { SortService } from 'src/app/services/functions/sort.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-profile',
|
selector: 'app-profile',
|
||||||
@@ -41,7 +42,8 @@ export class ProfilePage implements OnInit {
|
|||||||
private notificationservice: NotificationsService,
|
private notificationservice: NotificationsService,
|
||||||
private platform: Platform,
|
private platform: Platform,
|
||||||
private eventtrigger: EventTrigger,
|
private eventtrigger: EventTrigger,
|
||||||
public ThemeService: ThemeService
|
public ThemeService: ThemeService,
|
||||||
|
private sortService: SortService,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
this.loggeduser = authService.ValidatedUser;
|
this.loggeduser = authService.ValidatedUser;
|
||||||
@@ -134,7 +136,7 @@ export class ProfilePage implements OnInit {
|
|||||||
|
|
||||||
getFormatedTime(dateString) {
|
getFormatedTime(dateString) {
|
||||||
var date = new Date(dateString);
|
var date = new Date(dateString);
|
||||||
var hours = date.getHours() > 12 ? date.getHours() - 12 : date.getHours();
|
var hours = date.getHours() /* > 12 ? date.getHours() - 12 : date.getHours() */;
|
||||||
var am_pm = date.getHours() >= 12 ? "pm" : "am";
|
var am_pm = date.getHours() >= 12 ? "pm" : "am";
|
||||||
var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
|
var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
|
||||||
let time = hours + ":" + minutes /* + " " + am_pm */;
|
let time = hours + ":" + minutes /* + " " + am_pm */;
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
import { VideoAllowedPage } from './video-allowed.page';
|
||||||
|
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
component: VideoAllowedPage
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule],
|
||||||
|
})
|
||||||
|
export class VideoAllowedPageRoutingModule {}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { FormsModule } from '@angular/forms';
|
||||||
|
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { VideoAllowedPageRoutingModule } from './video-allowed-routing.module';
|
||||||
|
|
||||||
|
import { VideoAllowedPage } from './video-allowed.page';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
FormsModule,
|
||||||
|
IonicModule,
|
||||||
|
VideoAllowedPageRoutingModule
|
||||||
|
],
|
||||||
|
declarations: [VideoAllowedPage]
|
||||||
|
})
|
||||||
|
export class VideoAllowedPageModule {}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<ion-header>
|
||||||
|
<ion-toolbar>
|
||||||
|
<ion-title>videoAllowed</ion-title>
|
||||||
|
</ion-toolbar>
|
||||||
|
</ion-header>
|
||||||
|
|
||||||
|
<ion-content>
|
||||||
|
|
||||||
|
</ion-content>
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
|
import { IonicModule } from '@ionic/angular';
|
||||||
|
|
||||||
|
import { VideoAllowedPage } from './video-allowed.page';
|
||||||
|
|
||||||
|
describe('VideoAllowedPage', () => {
|
||||||
|
let component: VideoAllowedPage;
|
||||||
|
let fixture: ComponentFixture<VideoAllowedPage>;
|
||||||
|
|
||||||
|
beforeEach(waitForAsync(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ VideoAllowedPage ],
|
||||||
|
imports: [IonicModule.forRoot()]
|
||||||
|
}).compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(VideoAllowedPage);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component, OnInit } from '@angular/core';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-video-allowed',
|
||||||
|
templateUrl: './video-allowed.page.html',
|
||||||
|
styleUrls: ['./video-allowed.page.scss'],
|
||||||
|
})
|
||||||
|
export class VideoAllowedPage implements OnInit {
|
||||||
|
modalController: any;
|
||||||
|
|
||||||
|
constructor() { }
|
||||||
|
|
||||||
|
ngOnInit() {
|
||||||
|
}
|
||||||
|
|
||||||
|
dismiss() {
|
||||||
|
// using the injected ModalController this page
|
||||||
|
// can "dismiss" itself and optionally pass back data
|
||||||
|
this.modalController.dismiss({
|
||||||
|
'dismissed': true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -123,8 +123,6 @@ export class customTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export interface expedienteTask {
|
export interface expedienteTask {
|
||||||
SerialNumber: string
|
SerialNumber: string
|
||||||
Folio : string
|
Folio : string
|
||||||
@@ -143,8 +141,6 @@ export interface expedienteTask {
|
|||||||
InstanceID: any
|
InstanceID: any
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export interface ExpedienteTask {
|
export interface ExpedienteTask {
|
||||||
SerialNumber: string
|
SerialNumber: string
|
||||||
Senders : string
|
Senders : string
|
||||||
|
|||||||
@@ -216,9 +216,9 @@
|
|||||||
|
|
||||||
<!-- List -->
|
<!-- List -->
|
||||||
<ul *ngIf="showTimelineFilterState">
|
<ul *ngIf="showTimelineFilterState">
|
||||||
<li [class.active]="segment == 'Combinado' " (click)="changeSegment('Combinado')" class="cursor-pointer">Todos</li>
|
<li class="changeText" [class.active]="segment == 'Combinado' " (click)="changeSegment('Combinado')" class="cursor-pointer">Todos</li>
|
||||||
<li [class.active]="segment == 'Oficial' " (click)="changeSegment('Oficial')" class="cursor-pointer">Oficial</li>
|
<li class="changeText" [class.active]="segment == 'Oficial' " (click)="changeSegment('Oficial')" class="cursor-pointer">Oficial</li>
|
||||||
<li [class.active]="segment == 'Pessoal' " (click)="changeSegment('Pessoal')" class="cursor-pointer">Pessoal</li>
|
<li class="changeText" [class.active]="segment == 'Pessoal' " (click)="changeSegment('Pessoal')" class="cursor-pointer">Pessoal</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</ion-row>
|
</ion-row>
|
||||||
|
|||||||
@@ -292,6 +292,11 @@ td.monthview-primary-with-event {
|
|||||||
|
|
||||||
.segment {
|
.segment {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
div ion-raw > ul > li{
|
||||||
|
font-size: 11pt;
|
||||||
|
font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Timeline */
|
/* Timeline */
|
||||||
@@ -795,3 +800,16 @@ app-approve-event{
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
|
||||||
|
$font-size: 11pt;
|
||||||
|
|
||||||
|
.changeText{
|
||||||
|
font-family: $font-family;
|
||||||
|
font-size: $font-size;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -161,6 +161,7 @@ export class AgendaPage implements OnInit {
|
|||||||
dropdownScrollWeal = false
|
dropdownScrollWeal = false
|
||||||
CalendarStore = CalendarStore
|
CalendarStore = CalendarStore
|
||||||
listToPresent
|
listToPresent
|
||||||
|
array = []
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private alertCtrl: AlertController,
|
private alertCtrl: AlertController,
|
||||||
@@ -232,6 +233,8 @@ export class AgendaPage implements OnInit {
|
|||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
|
|
||||||
|
this.getFromDB();
|
||||||
|
|
||||||
const pathname = window.location.pathname
|
const pathname = window.location.pathname
|
||||||
let realoadCounter = 0
|
let realoadCounter = 0
|
||||||
this.router.events.forEach((event) => {
|
this.router.events.forEach((event) => {
|
||||||
@@ -240,14 +243,14 @@ export class AgendaPage implements OnInit {
|
|||||||
this.segment = "Combinado";
|
this.segment = "Combinado";
|
||||||
}
|
}
|
||||||
if (realoadCounter != 0) {
|
if (realoadCounter != 0) {
|
||||||
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
//this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
||||||
}
|
}
|
||||||
realoadCounter++;
|
realoadCounter++;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.backgroundservice.registerBackService('Online', () => {
|
this.backgroundservice.registerBackService('Online', () => {
|
||||||
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
//this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
||||||
});
|
});
|
||||||
|
|
||||||
window.onresize = (event) => {
|
window.onresize = (event) => {
|
||||||
@@ -487,6 +490,7 @@ export class AgendaPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
loadRangeEvents(startTime: Date, endTime: Date) {
|
loadRangeEvents(startTime: Date, endTime: Date) {
|
||||||
|
this.array = [];
|
||||||
|
|
||||||
this.rangeStartDate = startTime
|
this.rangeStartDate = startTime
|
||||||
this.rangeEndDate = endTime
|
this.rangeEndDate = endTime
|
||||||
@@ -514,6 +518,7 @@ export class AgendaPage implements OnInit {
|
|||||||
|
|
||||||
this.TimelineMDList = this.listBoxService.list(this.listToPresent, 'md', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
this.TimelineMDList = this.listBoxService.list(this.listToPresent, 'md', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
||||||
|
|
||||||
|
console.log('check list to present data', this.listToPresent);
|
||||||
this.myCal.update();
|
this.myCal.update();
|
||||||
this.myCal.loadEvents();
|
this.myCal.loadEvents();
|
||||||
|
|
||||||
@@ -540,13 +545,17 @@ export class AgendaPage implements OnInit {
|
|||||||
|
|
||||||
this.TimelineMDList = this.listBoxService.list(this.listToPresent, 'pr', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
this.TimelineMDList = this.listBoxService.list(this.listToPresent, 'pr', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
||||||
|
|
||||||
|
console.log('check list to present data', this.listToPresent);
|
||||||
this.myCal.update();
|
this.myCal.update();
|
||||||
this.myCal.loadEvents();
|
this.myCal.loadEvents();
|
||||||
|
|
||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
this.showTimeline = true;
|
this.showTimeline = true;
|
||||||
|
|
||||||
}).finally(() => {
|
}).catch((error) => {
|
||||||
|
this.getFromDB()
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -567,6 +576,7 @@ export class AgendaPage implements OnInit {
|
|||||||
|
|
||||||
this.TimelineMDList = this.listBoxService.list(this.listToPresent, 'pr', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
this.TimelineMDList = this.listBoxService.list(this.listToPresent, 'pr', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
||||||
|
|
||||||
|
console.log('check list to present data', this.listToPresent);
|
||||||
|
|
||||||
this.myCal.update();
|
this.myCal.update();
|
||||||
this.myCal.loadEvents();
|
this.myCal.loadEvents();
|
||||||
@@ -603,6 +613,7 @@ export class AgendaPage implements OnInit {
|
|||||||
|
|
||||||
this.TimelineMDList = this.listBoxService.list(this.listToPresent, 'md', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
this.TimelineMDList = this.listBoxService.list(this.listToPresent, 'md', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
||||||
|
|
||||||
|
console.log('check list to present data', this.listToPresent);
|
||||||
this.myCal.update();
|
this.myCal.update();
|
||||||
this.myCal.loadEvents();
|
this.myCal.loadEvents();
|
||||||
|
|
||||||
@@ -614,7 +625,10 @@ export class AgendaPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}).finally(() => {
|
}).catch((error) => {
|
||||||
|
this.getFromDB()
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
counter++;
|
counter++;
|
||||||
if (counter == 2) {
|
if (counter == 2) {
|
||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
@@ -633,6 +647,8 @@ export class AgendaPage implements OnInit {
|
|||||||
|
|
||||||
this.TimelinePRList = this.listBoxService.list(this.listToPresent, 'pr', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
this.TimelinePRList = this.listBoxService.list(this.listToPresent, 'pr', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
||||||
|
|
||||||
|
console.log('check list to present data', this.listToPresent);
|
||||||
|
|
||||||
this.myCal.update();
|
this.myCal.update();
|
||||||
this.myCal.loadEvents();
|
this.myCal.loadEvents();
|
||||||
|
|
||||||
@@ -644,7 +660,10 @@ export class AgendaPage implements OnInit {
|
|||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}).finally(() => {
|
}).catch((error) => {
|
||||||
|
this.getFromDB()
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
counter++;
|
counter++;
|
||||||
if (counter == 2) {
|
if (counter == 2) {
|
||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
@@ -674,6 +693,7 @@ export class AgendaPage implements OnInit {
|
|||||||
this.TimelinePRList = this.listBoxService.list(this.listToPresent, 'pr', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
this.TimelinePRList = this.listBoxService.list(this.listToPresent, 'pr', this.rangeStartDate, this.rangeEndDate, { segment: this.segment, selectedDate: this.eventSelectedDate })
|
||||||
|
|
||||||
|
|
||||||
|
console.log('check list to present data', this.listToPresent);
|
||||||
this.myCal.update();
|
this.myCal.update();
|
||||||
this.myCal.loadEvents();
|
this.myCal.loadEvents();
|
||||||
|
|
||||||
@@ -685,7 +705,10 @@ export class AgendaPage implements OnInit {
|
|||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}).finally(() => {
|
}).catch((error) => {
|
||||||
|
this.getFromDB()
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
if (counter == 1 || this.loggeduser.Profile == 'PR') {
|
if (counter == 1 || this.loggeduser.Profile == 'PR') {
|
||||||
this.showLoader = false;
|
this.showLoader = false;
|
||||||
}
|
}
|
||||||
@@ -697,7 +720,6 @@ export class AgendaPage implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
trasnformData(response,profile) {
|
trasnformData(response,profile) {
|
||||||
let array = []
|
|
||||||
response.forEach(element => {
|
response.forEach(element => {
|
||||||
let event = {
|
let event = {
|
||||||
startTime: new Date(element.StartDate),
|
startTime: new Date(element.StartDate),
|
||||||
@@ -708,10 +730,9 @@ export class AgendaPage implements OnInit {
|
|||||||
profile: profile,
|
profile: profile,
|
||||||
id: element.EventId,
|
id: element.EventId,
|
||||||
}
|
}
|
||||||
array.push(event)
|
this.array.push(event)
|
||||||
});
|
});
|
||||||
|
this.listToPresent = this.array;
|
||||||
this.listToPresent = array;
|
|
||||||
console.log('LIST TO PRESET', this.listToPresent)
|
console.log('LIST TO PRESET', this.listToPresent)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -952,7 +973,7 @@ export class AgendaPage implements OnInit {
|
|||||||
// });
|
// });
|
||||||
this.myCal.update();
|
this.myCal.update();
|
||||||
this.myCal.loadEvents();
|
this.myCal.loadEvents();
|
||||||
// this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.cloneAllmobileComponent();
|
this.cloneAllmobileComponent();
|
||||||
@@ -992,7 +1013,6 @@ export class AgendaPage implements OnInit {
|
|||||||
this.postEvent = data.event;
|
this.postEvent = data.event;
|
||||||
|
|
||||||
this.mobileComponent.showEditEvent = true;
|
this.mobileComponent.showEditEvent = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
||||||
@@ -1147,6 +1167,7 @@ export class AgendaPage implements OnInit {
|
|||||||
async closeComponentEditEventOrAdd() {
|
async closeComponentEditEventOrAdd() {
|
||||||
|
|
||||||
if (this.IsEvent = 'edit') {
|
if (this.IsEvent = 'edit') {
|
||||||
|
this.loadRangeEvents(this.rangeStartDate, this.rangeEndDate);
|
||||||
this.eventClicked(this.viewingEventObject);
|
this.eventClicked(this.viewingEventObject);
|
||||||
} else if (this.IsEvent = 'add') {
|
} else if (this.IsEvent = 'add') {
|
||||||
this.cloneAllmobileComponent();
|
this.cloneAllmobileComponent();
|
||||||
|
|||||||
@@ -281,12 +281,12 @@ export class NewEventPage implements OnInit {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
this.toastService.successMessage()
|
this.toastService._successMessage()
|
||||||
this.modalController.dismiss(this.postEvent);
|
this.modalController.dismiss(this.postEvent);
|
||||||
|
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.toastService.badRequest()
|
this.toastService._badRequest()
|
||||||
} finally {
|
} finally {
|
||||||
loader.remove()
|
loader.remove()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,9 +171,9 @@ export class ViewEventPage implements OnInit {
|
|||||||
loader.remove()
|
loader.remove()
|
||||||
}, (error) => {
|
}, (error) => {
|
||||||
|
|
||||||
console.log('errorstatus',error.status)
|
console.log('errorstatus ss',error.status)
|
||||||
|
|
||||||
if (error.status == 0) {
|
if (error.status === 0) {
|
||||||
this.getFromDb();
|
this.getFromDb();
|
||||||
} else {
|
} else {
|
||||||
this.toastService.badRequest('Este evento já não existe na sua agenda')
|
this.toastService.badRequest('Este evento já não existe na sua agenda')
|
||||||
@@ -205,6 +205,8 @@ export class ViewEventPage implements OnInit {
|
|||||||
() => {
|
() => {
|
||||||
loader.remove();
|
loader.remove();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
loader.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -421,8 +423,9 @@ export class ViewEventPage implements OnInit {
|
|||||||
const loader = this.toastService.loading();
|
const loader = this.toastService.loading();
|
||||||
this.sqliteservice.getEventById(this.eventId).then((event) => {
|
this.sqliteservice.getEventById(this.eventId).then((event) => {
|
||||||
let arrayevent = [];
|
let arrayevent = [];
|
||||||
|
console.log('EVENT ATTENDEES',event[0].Attendees)
|
||||||
let elemet = {
|
let elemet = {
|
||||||
Attendees: JSON.parse(event[0].Attendees) || "",
|
Attendees: (typeof JSON.parse(event[0].Attendees) === 'undefined') ? "" : JSON.parse(event[0].Attendees),
|
||||||
Body: JSON.parse(event[0].Body) || "",
|
Body: JSON.parse(event[0].Body) || "",
|
||||||
CalendarId: event[0].CalendarId,
|
CalendarId: event[0].CalendarId,
|
||||||
CalendarName: event[0].CalendarName,
|
CalendarName: event[0].CalendarName,
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import { HeaderPageModule } from 'src/app/shared/header/header.module';
|
|||||||
import { NewEventPageModule } from 'src/app/shared/agenda/new-event/new-event.module';
|
import { NewEventPageModule } from 'src/app/shared/agenda/new-event/new-event.module';
|
||||||
import { AttendeeModalPageModule } from 'src/app/shared/event/attendee-modal/attendee-modal.module';
|
import { AttendeeModalPageModule } from 'src/app/shared/event/attendee-modal/attendee-modal.module';
|
||||||
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
||||||
|
import { ImageCropperModule } from 'ngx-image-cropper';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -48,6 +49,7 @@ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|||||||
GroupContactsPageModule,
|
GroupContactsPageModule,
|
||||||
EmptyChatPageModule,
|
EmptyChatPageModule,
|
||||||
NewEventPageModule,
|
NewEventPageModule,
|
||||||
|
ImageCropperModule,
|
||||||
AttendeeModalPageModule,
|
AttendeeModalPageModule,
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
|
|||||||
@@ -97,8 +97,6 @@
|
|||||||
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon" slot="start" src="assets/images/icons-chat-group-chat-40.svg"></ion-icon>
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="icon" slot="start" src="assets/images/icons-chat-group-chat-40.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && group._id != idSelected " class="icon" slot="start" src="assets/images/theme/gov/icons-chat-group-chat-40.svg"></ion-icon>
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && group._id != idSelected " class="icon" slot="start" src="assets/images/theme/gov/icons-chat-group-chat-40.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && group._id == idSelected " class="icon" slot="start" src="assets/images/theme/gov/icons-chat-group-chat-40-hover.svg"></ion-icon>
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' && group._id == idSelected " class="icon" slot="start" src="assets/images/theme/gov/icons-chat-group-chat-40-hover.svg"></ion-icon>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
(click)="openGroupMessagesPage(group._id)" class="item-content flex-grow-1 cursor-pointer">
|
(click)="openGroupMessagesPage(group._id)" class="item-content flex-grow-1 cursor-pointer">
|
||||||
@@ -125,6 +123,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ion-item-sliding>
|
</ion-item-sliding>
|
||||||
|
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</div>
|
</div>
|
||||||
<!-- <button (click)="sendMsg()" style="height: 41px;">Send message</button> -->
|
<!-- <button (click)="sendMsg()" style="height: 41px;">Send message</button> -->
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import { ThemeService } from 'src/app/services/theme.service'
|
|||||||
import { DataService } from 'src/app/services/data.service';
|
import { DataService } from 'src/app/services/data.service';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-chat',
|
selector: 'app-chat',
|
||||||
templateUrl: './chat.page.html',
|
templateUrl: './chat.page.html',
|
||||||
@@ -119,6 +120,7 @@ export class ChatPage implements OnInit {
|
|||||||
public ThemeService: ThemeService,
|
public ThemeService: ThemeService,
|
||||||
private dataService:DataService,
|
private dataService:DataService,
|
||||||
private router: Router,
|
private router: Router,
|
||||||
|
|
||||||
){
|
){
|
||||||
this.loggedUserChat = authService.ValidatedUserChat['data'];
|
this.loggedUserChat = authService.ValidatedUserChat['data'];
|
||||||
this.headers = new HttpHeaders();
|
this.headers = new HttpHeaders();
|
||||||
@@ -549,4 +551,10 @@ hideRefreshButton(){
|
|||||||
modal.onDidDismiss();
|
modal.onDidDismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
// this.crop.crop('path/to/image.jpg', {quality: 75})
|
||||||
|
// .then(
|
||||||
|
// newImage => console.log('new image path is: ' + newImage),
|
||||||
|
// error => console.error('Error cropping image', error)
|
||||||
|
// );
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -29,9 +29,6 @@
|
|||||||
</ion-refresher-content>
|
</ion-refresher-content>
|
||||||
</ion-refresher>
|
</ion-refresher>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
<div *ngIf="members">
|
<div *ngIf="members">
|
||||||
<ion-label class="members-label">Contactos selecção:</ion-label>
|
<ion-label class="members-label">Contactos selecção:</ion-label>
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import { ChatPopoverPageModule } from 'src/app/shared/popover/chat-popover/chat-
|
|||||||
import { BtnModalDismissPageModule } from 'src/app/shared/btn-modal-dismiss/btn-modal-dismiss.module';
|
import { BtnModalDismissPageModule } from 'src/app/shared/btn-modal-dismiss/btn-modal-dismiss.module';
|
||||||
|
|
||||||
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
||||||
|
import { ImageCropperModule } from 'ngx-image-cropper';
|
||||||
|
import { AngularCropperjsModule } from 'angular-cropperjs';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -24,6 +26,9 @@ import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|||||||
GroupMessagesPageRoutingModule,
|
GroupMessagesPageRoutingModule,
|
||||||
ChatPopoverPageModule,
|
ChatPopoverPageModule,
|
||||||
BtnModalDismissPageModule,
|
BtnModalDismissPageModule,
|
||||||
|
ImageCropperModule,
|
||||||
|
AngularCropperjsModule
|
||||||
|
|
||||||
],
|
],
|
||||||
declarations: [GroupMessagesPage]
|
declarations: [GroupMessagesPage]
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
<ion-label>A conversa original mantêm-se como chat individual</ion-label>
|
<ion-label>A conversa original mantêm-se como chat individual</ion-label>
|
||||||
</div>
|
</div>
|
||||||
<div class="messages-list-item-wrapper container-width-100" *ngFor="let msg of messages; let last = last" [class.messages-list-item-wrapper-active]="msg._id == selectedMsgId">
|
<div class="messages-list-item-wrapper container-width-100" *ngFor="let msg of messages; let last = last" [class.messages-list-item-wrapper-active]="msg._id == selectedMsgId">
|
||||||
<div *ngIf="msg.t != 'r' && msg.t != 'ul' && msg.t != 'ru'" (press)="handlePress(msg._id)" class='message-container incoming-{{msg.u.username!=loggedUser.me.username}}'>
|
<div *ngIf="msg.t != 'r' && msg.t != 'ul' && msg.t != 'ru'" (press)="handlePress(msg._id)" class='message-container incoming-{{msg.u.username!=loggedUser.me.username}}' (click)="openPreview(msg)">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<ion-label>{{msg.u.name}}</ion-label>
|
<ion-label>{{msg.u.name}}</ion-label>
|
||||||
<span class="time">{{showDateDuration(msg._updatedAt)}}</span>
|
<span class="time">{{showDateDuration(msg._updatedAt)}}</span>
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
<ion-label>{{msg.msg}}</ion-label>
|
<ion-label>{{msg.msg}}</ion-label>
|
||||||
<div *ngIf="msg.attachments" class="message-attachments">
|
<div *ngIf="msg.attachments" class="message-attachments">
|
||||||
<div *ngFor="let file of msg.attachments">
|
<div *ngFor="let file of msg.attachments">
|
||||||
<img *ngIf="file.image_url" src="{{file.image_url}}" alt="image">
|
<img *ngIf="file.image_url" src="{{file.image_url}}" alt="image" >
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<div class="file">
|
<div class="file">
|
||||||
@@ -90,7 +90,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{{last ? scrollToBottom() : ''}}
|
{{last ? scrollToBottom() : ''}}
|
||||||
</div>
|
</div>
|
||||||
@@ -152,4 +154,5 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</ion-footer>
|
</ion-footer>
|
||||||
|
|||||||
@@ -278,3 +278,36 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
.preview-slides {
|
||||||
|
margin-top: 20%;
|
||||||
|
background: #e6e6e6;
|
||||||
|
|
||||||
|
img {
|
||||||
|
padding-top: 20px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.transparent-modal {
|
||||||
|
.modal-wrapper {
|
||||||
|
--background: rgba(44, 39, 45, 0.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.image-slide,
|
||||||
|
.image-card {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-card {
|
||||||
|
z-index: 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.backdrop {
|
||||||
|
height: 200%;
|
||||||
|
width: 100%;
|
||||||
|
background: black;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Component, ElementRef, OnInit, ViewChild, AfterViewChecked, AfterViewInit, OnDestroy, } from '@angular/core';
|
import { Component, ElementRef, OnInit, ViewChild, AfterViewChecked, AfterViewInit, OnDestroy, ChangeDetectorRef, } from '@angular/core';
|
||||||
import { ActionSheetController, MenuController, ModalController, NavParams, PopoverController } from '@ionic/angular';
|
import { ActionSheetController, IonSlides, MenuController, ModalController, NavParams, PopoverController } from '@ionic/angular';
|
||||||
import { AlertService } from 'src/app/services/alert.service';
|
import { AlertService } from 'src/app/services/alert.service';
|
||||||
import { AuthService } from 'src/app/services/auth.service';
|
import { AuthService } from 'src/app/services/auth.service';
|
||||||
import { ChatService } from 'src/app/services/chat.service';
|
import { ChatService } from 'src/app/services/chat.service';
|
||||||
@@ -20,6 +20,7 @@ import { NewEventPage } from '../../agenda/new-event/new-event.page';
|
|||||||
import { EventPerson } from 'src/app/models/eventperson.model';
|
import { EventPerson } from 'src/app/models/eventperson.model';
|
||||||
import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page';
|
import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page';
|
||||||
import { ThemeService } from 'src/app/services/theme.service'
|
import { ThemeService } from 'src/app/services/theme.service'
|
||||||
|
import { PreviewCameraPage } from 'src/app/modals/preview-camera/preview-camera.page';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-group-messages',
|
selector: 'app-group-messages',
|
||||||
@@ -27,6 +28,9 @@ import { ThemeService } from 'src/app/services/theme.service'
|
|||||||
styleUrls: ['./group-messages.page.scss'],
|
styleUrls: ['./group-messages.page.scss'],
|
||||||
})
|
})
|
||||||
export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
showLoader: boolean;
|
showLoader: boolean;
|
||||||
isGroupCreated:boolean;
|
isGroupCreated:boolean;
|
||||||
loggedUser: any;
|
loggedUser: any;
|
||||||
@@ -75,7 +79,8 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
private fileToBase64Service: FileToBase64Service,
|
private fileToBase64Service: FileToBase64Service,
|
||||||
private fileService: FileService,
|
private fileService: FileService,
|
||||||
private toastService: ToastService,
|
private toastService: ToastService,
|
||||||
public ThemeService: ThemeService
|
public ThemeService: ThemeService,
|
||||||
|
private changeDetectorRef: ChangeDetectorRef
|
||||||
) {
|
) {
|
||||||
this.loggedUserChat = authService.ValidatedUserChat['data'];
|
this.loggedUserChat = authService.ValidatedUserChat['data'];
|
||||||
this.isGroupCreated = true;
|
this.isGroupCreated = true;
|
||||||
@@ -464,7 +469,7 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
//this.loadPicture();
|
//this.loadPicture();
|
||||||
}
|
}
|
||||||
else if(res['data'] == 'add-picture'){
|
else if(res['data'] == 'add-picture'){
|
||||||
this.fileService.addPictureToChat(this.roomId);
|
this.fileService.addPictureToChatMobile(this.roomId);
|
||||||
//this.loadPicture();
|
//this.loadPicture();
|
||||||
}
|
}
|
||||||
else if(res['data'] == 'add-document'){
|
else if(res['data'] == 'add-document'){
|
||||||
@@ -580,4 +585,59 @@ export class GroupMessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sliderOpts = {
|
||||||
|
zoom: false,
|
||||||
|
slidesPerView: 1.5,
|
||||||
|
spaceBetween: 20,
|
||||||
|
centeredSlides: true
|
||||||
|
};
|
||||||
|
zoomActive = false;
|
||||||
|
zoomScale = 1;
|
||||||
|
|
||||||
|
sliderZoomOpts = {
|
||||||
|
allowSlidePrev: false,
|
||||||
|
allowSlideNext: false,
|
||||||
|
zoom: {
|
||||||
|
maxRatio: 5
|
||||||
|
},
|
||||||
|
on: {
|
||||||
|
zoomChange: (scale, imageEl, slideEl) => {
|
||||||
|
this.zoomActive = true;
|
||||||
|
this.zoomScale = scale/5;
|
||||||
|
this.changeDetectorRef.detectChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async touchEnd(zoomslides: IonSlides, card) {
|
||||||
|
// Zoom back to normal
|
||||||
|
const slider = await zoomslides.getSwiper();
|
||||||
|
const zoom = slider.zoom;
|
||||||
|
zoom.out();
|
||||||
|
|
||||||
|
// Card back to normal
|
||||||
|
card.el.style['z-index'] = 9;
|
||||||
|
|
||||||
|
this.zoomActive = false;
|
||||||
|
this.changeDetectorRef.detectChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
touchStart(card) {
|
||||||
|
// Make card appear above backdrop
|
||||||
|
card.el.style['z-index'] = 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
async openPreview(img) {
|
||||||
|
const modal = await this.modalController.create({
|
||||||
|
component: PreviewCameraPage,
|
||||||
|
cssClass: 'transparent-modal',
|
||||||
|
componentProps: {
|
||||||
|
image: img.attachments[0].image_url,
|
||||||
|
username: img.u.username,
|
||||||
|
_updatedAt: img._updatedAt
|
||||||
|
}
|
||||||
|
});
|
||||||
|
modal.present();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,8 +50,8 @@
|
|||||||
</ion-refresher> -->
|
</ion-refresher> -->
|
||||||
<div (click)="handleClick()" class="messages" #scrollMe>
|
<div (click)="handleClick()" class="messages" #scrollMe>
|
||||||
<div class="messages-list-item-wrapper container-width-100" *ngFor="let msg of chatMessageStore.message[roomId]; let last = last"
|
<div class="messages-list-item-wrapper container-width-100" *ngFor="let msg of chatMessageStore.message[roomId]; let last = last"
|
||||||
[class.messages-list-item-wrapper-active]="msg._id == selectedMsgId">
|
[class.messages-list-item-wrapper-active]="msg._id == selectedMsgId" >
|
||||||
<div (press)="handlePress(msg._id)" class='message-container incoming-{{msg.u.username!=loggedUser.me.username}}'>
|
<div (press)="handlePress(msg._id)" class='message-container incoming-{{msg.u.username!=loggedUser.me.username}}' (click)="openPreview(msg)">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<ion-label>{{msg.u.name}}</ion-label>
|
<ion-label>{{msg.u.name}}</ion-label>
|
||||||
<span class="time">{{showDateDuration(msg._updatedAt)}}</span>
|
<span class="time">{{showDateDuration(msg._updatedAt)}}</span>
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
<ion-label>{{msg.msg}}</ion-label>
|
<ion-label>{{msg.msg}}</ion-label>
|
||||||
<div *ngIf="msg.attachments" class="message-attachments">
|
<div *ngIf="msg.attachments" class="message-attachments">
|
||||||
<div *ngFor="let file of msg.attachments let i = index">
|
<div *ngFor="let file of msg.attachments let i = index">
|
||||||
<img *ngIf="file.image_url" src="{{file.image_url}}" alt="image">
|
<img *ngIf="file.image_url" src="{{file.image_url}}" alt="image" (click)="imageSize(file.image_url)">
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<div class="file">
|
<div class="file">
|
||||||
@@ -138,6 +138,7 @@
|
|||||||
<button (click)="stopRecording()">Stop Recording</button> -->
|
<button (click)="stopRecording()">Stop Recording</button> -->
|
||||||
<div class="container width-100 d-flex">
|
<div class="container width-100 d-flex">
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<button class="btn-no-color" (click)="openChatOptions()">
|
<button class="btn-no-color" (click)="openChatOptions()">
|
||||||
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="chat-icon-options" src="assets/images/icons-add.svg"></ion-icon>
|
<ion-icon *ngIf="ThemeService.currentTheme == 'default' " class="chat-icon-options" src="assets/images/icons-add.svg"></ion-icon>
|
||||||
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="chat-icon-options" src="assets/images/theme/gov/icons-add.svg"></ion-icon>
|
<ion-icon *ngIf="ThemeService.currentTheme == 'gov' " class="chat-icon-options" src="assets/images/theme/gov/icons-add.svg"></ion-icon>
|
||||||
@@ -163,4 +164,5 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</ion-footer>
|
</ion-footer>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { AfterViewChecked, AfterViewInit, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';
|
import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';
|
||||||
import {ActivatedRoute, Router} from '@angular/router'
|
import {ActivatedRoute, Router} from '@angular/router'
|
||||||
import { GestureController, Gesture, ModalController, NavParams, PopoverController } from '@ionic/angular';
|
import { GestureController, Gesture, ModalController, NavParams, PopoverController, IonSlides } from '@ionic/angular';
|
||||||
import { map } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page';
|
import { ViewDocumentPage } from 'src/app/modals/view-document/view-document.page';
|
||||||
import { EventPerson } from 'src/app/models/eventperson.model';
|
import { EventPerson } from 'src/app/models/eventperson.model';
|
||||||
@@ -23,6 +23,11 @@ import { ThemeService } from 'src/app/services/theme.service'
|
|||||||
import { Filesystem, Directory, Encoding } from '@capacitor/filesystem';
|
import { Filesystem, Directory, Encoding } from '@capacitor/filesystem';
|
||||||
import { VoiceRecorder, VoiceRecorderPlugin, RecordingData, GenericResponse, CurrentRecordingStatus } from 'capacitor-voice-recorder';
|
import { VoiceRecorder, VoiceRecorderPlugin, RecordingData, GenericResponse, CurrentRecordingStatus } from 'capacitor-voice-recorder';
|
||||||
import { Haptics, ImpactStyle } from '@capacitor/haptics';
|
import { Haptics, ImpactStyle } from '@capacitor/haptics';
|
||||||
|
import { PreviewCameraPage } from 'src/app/modals/preview-camera/preview-camera.page';
|
||||||
|
// import { SocialSharing } from '@ionic-native/social-sharing/ngx';
|
||||||
|
//import { Share } from '@capacitor/share';
|
||||||
|
|
||||||
|
const IMAGE_DIR = 'stored-images';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-messages',
|
selector: 'app-messages',
|
||||||
@@ -36,8 +41,9 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
/* @ViewChild('messageContainer') messageContainer: ElementRef; */
|
/* @ViewChild('messageContainer') messageContainer: ElementRef; */
|
||||||
@ViewChild('rectangle') private rectangle: ElementRef;
|
@ViewChild('rectangle') private rectangle: ElementRef;
|
||||||
|
|
||||||
|
canvas: any
|
||||||
|
ctx: any
|
||||||
loggedUser: any;
|
loggedUser: any;
|
||||||
|
|
||||||
message = '';
|
message = '';
|
||||||
messages:any;
|
messages:any;
|
||||||
userPresence='';
|
userPresence='';
|
||||||
@@ -83,7 +89,9 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
private fileService: FileService,
|
private fileService: FileService,
|
||||||
private gestureController: GestureController,
|
private gestureController: GestureController,
|
||||||
private processes: ProcessesService,
|
private processes: ProcessesService,
|
||||||
public ThemeService: ThemeService
|
public ThemeService: ThemeService,
|
||||||
|
private changeDetectorRef: ChangeDetectorRef,
|
||||||
|
// private socialSharing: SocialSharing
|
||||||
) {
|
) {
|
||||||
this.loggedUser = authService.ValidatedUserChat['data'];
|
this.loggedUser = authService.ValidatedUserChat['data'];
|
||||||
this.roomId = this.navParams.get('roomId');
|
this.roomId = this.navParams.get('roomId');
|
||||||
@@ -101,6 +109,11 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
|
|
||||||
this.loadFiles();
|
this.loadFiles();
|
||||||
VoiceRecorder.requestAudioRecordingPermission();
|
VoiceRecorder.requestAudioRecordingPermission();
|
||||||
|
Filesystem.mkdir({
|
||||||
|
path: IMAGE_DIR,
|
||||||
|
directory: Directory.Data,
|
||||||
|
recursive: true
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ngAfterViewInit() {
|
ngAfterViewInit() {
|
||||||
@@ -583,8 +596,95 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
openPreview(){
|
|
||||||
|
sliderOpts = {
|
||||||
|
zoom: false,
|
||||||
|
slidesPerView: 1.5,
|
||||||
|
spaceBetween: 20,
|
||||||
|
centeredSlides: true
|
||||||
|
};
|
||||||
|
zoomActive = false;
|
||||||
|
zoomScale = 1;
|
||||||
|
|
||||||
|
sliderZoomOpts = {
|
||||||
|
allowSlidePrev: false,
|
||||||
|
allowSlideNext: false,
|
||||||
|
zoom: {
|
||||||
|
maxRatio: 5
|
||||||
|
},
|
||||||
|
on: {
|
||||||
|
zoomChange: (scale, imageEl, slideEl) => {
|
||||||
|
this.zoomActive = true;
|
||||||
|
this.zoomScale = scale/5;
|
||||||
|
this.changeDetectorRef.detectChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async touchEnd(zoomslides: IonSlides, card) {
|
||||||
|
// Zoom back to normal
|
||||||
|
const slider = await zoomslides.getSwiper();
|
||||||
|
const zoom = slider.zoom;
|
||||||
|
zoom.out();
|
||||||
|
|
||||||
|
// Card back to normal
|
||||||
|
card.el.style['z-index'] = 9;
|
||||||
|
|
||||||
|
this.zoomActive = false;
|
||||||
|
this.changeDetectorRef.detectChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
touchStart(card) {
|
||||||
|
// Make card appear above backdrop
|
||||||
|
card.el.style['z-index'] = 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async openPreview(msg) {
|
||||||
|
const modal = await this.modalController.create({
|
||||||
|
component: PreviewCameraPage,
|
||||||
|
cssClass: 'transparent-modal',
|
||||||
|
componentProps: {
|
||||||
|
image: msg.attachments[0].image_url,
|
||||||
|
username: msg.u.username,
|
||||||
|
_updatedAt: msg._updatedAt,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
modal.present();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
imageSize(img){
|
||||||
|
var canvas = document.createElement('canvas');
|
||||||
|
var ctx = canvas.getContext('2d');
|
||||||
|
canvas.width=300
|
||||||
|
canvas.height=234
|
||||||
|
ctx.drawImage(img.attachments[0].image_url, 0, 0, 300, 234);
|
||||||
|
document.body.appendChild(canvas);
|
||||||
|
}
|
||||||
|
|
||||||
|
getPicture(img){
|
||||||
|
var canvas = document.createElement('canvas');
|
||||||
|
var ctx = canvas.getContext('2d');
|
||||||
|
canvas.width=300
|
||||||
|
canvas.height=234
|
||||||
|
ctx.drawImage(img.attachments[0].image_url, 0, 0, 300, 234);
|
||||||
|
document.body.appendChild(canvas);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// async ShareEmail(msg){
|
||||||
|
// // Check if sharing via email is supported
|
||||||
|
// await Share.share({
|
||||||
|
// title: msg.u.username,
|
||||||
|
// text: msg._updatedAt,
|
||||||
|
// url: msg.attachments[0].image_url,
|
||||||
|
// dialogTitle: 'Share with buddies',
|
||||||
|
// });
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<ion-header class="ion-no-border ">
|
<ion-header class="ion-no-border">
|
||||||
<app-header></app-header>
|
<app-header></app-header>
|
||||||
</ion-header>
|
</ion-header>
|
||||||
|
|
||||||
<ion-header class="ion-no-border text-white">
|
<ion-header class="ion-no-border init-event-header">
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<p class="time ion-text-center">{{customDate}}</p>
|
<p class="time ion-text-center">{{customDate}}</p>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
|
|||||||
@@ -275,6 +275,7 @@ ion-toolbar{
|
|||||||
// new
|
// new
|
||||||
.main{
|
.main{
|
||||||
padding: 0px em(20px);
|
padding: 0px em(20px);
|
||||||
|
background: linear-gradient(270deg, var(--color2) 100%, var(--color3) 100%, var(--color4) 100%, var(--color5) 100%) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.event-number{
|
.event-number{
|
||||||
@@ -402,8 +403,8 @@ ion-toolbar{
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: transparent !important;
|
background-color: transparent;
|
||||||
--background: transparent !important;
|
--background: transparent;
|
||||||
.schedule-time{
|
.schedule-time{
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
.time-start{
|
.time-start{
|
||||||
|
|||||||