added WSItem

This commit is contained in:
Lucio Lelii 2023-02-23 18:11:45 +01:00
parent 6b7ad8b96d
commit 49cca47038
52 changed files with 1227 additions and 118 deletions

View File

@ -0,0 +1,22 @@
// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
}
apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle"
dependencies {
implementation project(':capacitor-app')
implementation project(':capacitor-haptics')
implementation project(':capacitor-keyboard')
implementation project(':capacitor-status-bar')
}
if (hasProperty('postBuildExtras')) {
postBuildExtras()
}

View File

@ -0,0 +1,15 @@
// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN
include ':capacitor-android'
project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor')
include ':capacitor-app'
project(':capacitor-app').projectDir = new File('../node_modules/@capacitor/app/android')
include ':capacitor-haptics'
project(':capacitor-haptics').projectDir = new File('../node_modules/@capacitor/haptics/android')
include ':capacitor-keyboard'
project(':capacitor-keyboard').projectDir = new File('../node_modules/@capacitor/keyboard/android')
include ':capacitor-status-bar'
project(':capacitor-status-bar').projectDir = new File('../node_modules/@capacitor/status-bar/android')

View File

@ -1,6 +1,6 @@
{
"appId": "io.ionic.starter",
"appName": "workspace",
"appId": "gcube.workspace.starter",
"appName": "d4sworkspace",
"webDir": "www",
"bundledWebRuntime": false
}

View File

@ -55,7 +55,7 @@
504EC2FB1FED79650016851F = {
isa = PBXGroup;
children = (
504EC3061FED79650016851F /* Appreciate */,
504EC3061FED79650016851F /* App */,
504EC3051FED79650016851F /* Products */,
7F8756D8B27F46E3366F6CEA /* Pods */,
27E2DDA53C4D2A4D1A88CE4A /* Frameworks */,
@ -70,7 +70,7 @@
name = Products;
sourceTree = "<group>";
};
504EC3061FED79650016851F /* Appreciate */ = {
504EC3061FED79650016851F /* App */ = {
isa = PBXGroup;
children = (
50379B222058CBB4000EE86E /* capacitor.config.json */,
@ -82,7 +82,7 @@
2FAD9762203C412B000D30F8 /* config.xml */,
50B271D01FEDC1A000F3C39B /* public */,
);
path = Appreciate;
path = App;
sourceTree = "<group>";
};
7F8756D8B27F46E3366F6CEA /* Pods */ = {
@ -347,7 +347,6 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 4RW9XSSSMV;
INFOPLIST_FILE = App/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -368,7 +367,6 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 4RW9XSSSMV;
INFOPLIST_FILE = App/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";

View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1 +0,0 @@
{}

View File

@ -1,3 +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">
</widget>

View File

@ -11,6 +11,11 @@ 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 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'
pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard'
pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'
pod 'CordovaPlugins', :path => '../capacitor-cordova-ios-plugins'
end
target 'App' do

891
package-lock.json generated
View File

@ -11,6 +11,7 @@
"@angular/common": "^15.0.0",
"@angular/core": "^15.0.0",
"@angular/forms": "^15.0.0",
"@angular/material": "^15.1.5",
"@angular/platform-browser": "^15.0.0",
"@angular/platform-browser-dynamic": "^15.0.0",
"@angular/router": "^15.0.0",
@ -28,7 +29,9 @@
"@fortawesome/free-solid-svg-icons": "^6.3.0",
"@ionic/angular": "^6.5.4",
"cordova-plugin-file-opener2": "^4.0.0",
"cordova-plugin-preview-any-file": "^0.2.9",
"ionicons": "^6.1.3",
"material-icons": "^1.13.1",
"node-angular-http-client": "^1.1.7",
"rxjs": "~7.5.0",
"tslib": "^2.3.0",
@ -439,6 +442,64 @@
"typescript": "*"
}
},
"node_modules/@angular/animations": {
"version": "15.1.5",
"resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.1.5.tgz",
"integrity": "sha512-yac9PHy5Y72MtKQhaBSQFOdIxEJIacmJrYNRFoa82z0YCa3VrEYjvuG0x5JewBN4gQGC5IOpj2C7c9zdXZv5HA==",
"peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
"engines": {
"node": "^14.20.0 || ^16.13.0 || >=18.10.0"
},
"peerDependencies": {
"@angular/core": "15.1.5"
}
},
"node_modules/@angular/cdk": {
"version": "15.1.5",
"resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-15.1.5.tgz",
"integrity": "sha512-hybUkjvLJcr+WKMMN4uo8aa+kwg4ExTrSBDgUUqsCD0zvcpNwWPRgHeXTNawAZVWV6iBOaHgX6O3XZmsWcs5Rg==",
"peer": true,
"dependencies": {
"tslib": "^2.3.0"
},
"optionalDependencies": {
"parse5": "^7.1.2"
},
"peerDependencies": {
"@angular/common": "^15.0.0 || ^16.0.0",
"@angular/core": "^15.0.0 || ^16.0.0",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/cdk/node_modules/entities": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
"integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
"optional": true,
"peer": true,
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/@angular/cdk/node_modules/parse5": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
"integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
"optional": true,
"peer": true,
"dependencies": {
"entities": "^4.4.0"
},
"funding": {
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
"node_modules/@angular/cli": {
"version": "15.1.6",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.1.6.tgz",
@ -617,6 +678,70 @@
"node": "^14.20.0 || ^16.13.0 || >=18.10.0"
}
},
"node_modules/@angular/material": {
"version": "15.1.5",
"resolved": "https://registry.npmjs.org/@angular/material/-/material-15.1.5.tgz",
"integrity": "sha512-1N+pylZ7aoyh8/+kbiE/ks2IFUqzCtEyZTohTCm+MEXISUr2fU5c3k7uW5jRF3mjkmBeKycGe5haaOA8N2VZkw==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/auto-init": "15.0.0-canary.684e33d25.0",
"@material/banner": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/button": "15.0.0-canary.684e33d25.0",
"@material/card": "15.0.0-canary.684e33d25.0",
"@material/checkbox": "15.0.0-canary.684e33d25.0",
"@material/chips": "15.0.0-canary.684e33d25.0",
"@material/circular-progress": "15.0.0-canary.684e33d25.0",
"@material/data-table": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dialog": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/drawer": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/fab": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/floating-label": "15.0.0-canary.684e33d25.0",
"@material/form-field": "15.0.0-canary.684e33d25.0",
"@material/icon-button": "15.0.0-canary.684e33d25.0",
"@material/image-list": "15.0.0-canary.684e33d25.0",
"@material/layout-grid": "15.0.0-canary.684e33d25.0",
"@material/line-ripple": "15.0.0-canary.684e33d25.0",
"@material/linear-progress": "15.0.0-canary.684e33d25.0",
"@material/list": "15.0.0-canary.684e33d25.0",
"@material/menu": "15.0.0-canary.684e33d25.0",
"@material/menu-surface": "15.0.0-canary.684e33d25.0",
"@material/notched-outline": "15.0.0-canary.684e33d25.0",
"@material/radio": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/segmented-button": "15.0.0-canary.684e33d25.0",
"@material/select": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/slider": "15.0.0-canary.684e33d25.0",
"@material/snackbar": "15.0.0-canary.684e33d25.0",
"@material/switch": "15.0.0-canary.684e33d25.0",
"@material/tab": "15.0.0-canary.684e33d25.0",
"@material/tab-bar": "15.0.0-canary.684e33d25.0",
"@material/tab-indicator": "15.0.0-canary.684e33d25.0",
"@material/tab-scroller": "15.0.0-canary.684e33d25.0",
"@material/textfield": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tooltip": "15.0.0-canary.684e33d25.0",
"@material/top-app-bar": "15.0.0-canary.684e33d25.0",
"@material/touch-target": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.3.0"
},
"peerDependencies": {
"@angular/animations": "^15.0.0 || ^16.0.0",
"@angular/cdk": "15.1.5",
"@angular/common": "^15.0.0 || ^16.0.0",
"@angular/core": "^15.0.0 || ^16.0.0",
"@angular/forms": "^15.0.0 || ^16.0.0",
"@angular/platform-browser": "^15.0.0 || ^16.0.0",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/platform-browser": {
"version": "15.1.5",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.1.5.tgz",
@ -3363,6 +3488,757 @@
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==",
"dev": true
},
"node_modules/@material/animation": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-5osi1z4JQIXcklPALbH/zTfOm2pDzHt9Fxm7ZyURy250xIZj6QjULRzPTnzOhC2ropfix9ra2Cfggbf0dcRbEQ==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/@material/auto-init": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-OigQTmrVzkcGvxNjOaIe5oItTFPgrO9xLewvharDI6m6yvO1z7OBnkcW+sFN6ggLNYNxd0O1u9v64vMsmeDABQ==",
"dependencies": {
"@material/base": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/banner": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-PqtGp3KWzdu58rWv/DIvSfe38m5YKOBbAAbBinSvgadBb/da+IE1t5F7YPNKE1T5lJsQBGVUYx6QBIeXm+aI/A==",
"dependencies": {
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/button": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/base": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-oOaqb/SfjWwTKsdJUZmeh/Qrs41nIJI0N+zELsxnvbGjSIN1ZMAKYZFPMahqvC68OJ6+5CvJM8PoTNs5l+B8IQ==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/@material/button": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-Nkekk4edeX+ObVOa7UlwavaHdmckPV5wU4SAJf3iA3R61cmz+KsgAgpzfcwv5WfNhIlc2nLu8QYEecpHdo9d/w==",
"dependencies": {
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/focus-ring": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/touch-target": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/card": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-xhyB7XX5KkEiCEqwSPkl58ZGYL6xFdnY62zimyBXJRG/Eaa0Swj3kW20hVCpt4f7c9Zmp8Se27rg8vnKmhvO3g==",
"dependencies": {
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/checkbox": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-NFpM3TS924PmVsk2KQLNU95OYCf8ZwYgzeqfnAexU0bEfjUJXINBun2Go0AaeOUMjuvWUe+byjrXgv8SFYbMUA==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/focus-ring": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/touch-target": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/chips": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-z4ajQ4NnsAQ/Si9tZ4xmxzjj2Qb+vW++4QjCjjjwAGIZbCe0xglAnMh2t66XLJUxt7RoKZuZVEO7ZqcFZpvJFQ==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/checkbox": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/focus-ring": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/touch-target": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"safevalues": "^0.3.4",
"tslib": "^2.1.0"
}
},
"node_modules/@material/circular-progress": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-G6qD0nGNtEUwWnAMJuA9INYFpZoKtx7KFjBaPF4Ol2YLHtmShALNAYyn54TMAK8AZ2IpW08PXjGS7Ye88vrdEQ==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/progress-indicator": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/data-table": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-+wDw1DDDFfAsKAMzs84f/5GCjux39zjNfW8tL4wFbkWNwewmQrG9zaQMJhBpVOtLCrM8Gj6SOgOANqgqoCjvGg==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/checkbox": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/icon-button": "15.0.0-canary.684e33d25.0",
"@material/linear-progress": "15.0.0-canary.684e33d25.0",
"@material/list": "15.0.0-canary.684e33d25.0",
"@material/menu": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/select": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/touch-target": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/density": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-661yEVRMGrlq6S6WuSbPRO+ZwpdUOg2glCc7y96doM6itSLOa3UEAldjOLfsYZVB74GnKCiuDp//QmfoRyYTfA==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/@material/dialog": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-szn0dHnfeQTSOC6SSRSGAzX6Tnx+4NnSMUwNkXm+3bwjds8ZVK26+DXwLrP5f3ID5F1K5sFsRf2INo5/TNTHyQ==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/button": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/icon-button": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/touch-target": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/dom": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-7pEJLYov+tGgfuD8mZxoVU6rWtPI8ppjTAhz+F27Hz9FG0JETMWTKpDPBXLnKvX7vhIxL83GvZ9geNHCe8Hfog==",
"dependencies": {
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/drawer": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-/KMckLf1PYU/H3PXnS4e0aFl03qG3JlSv4LGgX6juJufcONqGTl/m63EMO/L/eUy6H1CRrXmVDjik/jzHLyDhg==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/list": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/elevation": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-WDF8SsRtq3rXUbVVbd9K4DUijIPH0bUFSOreVYxudpuxAfTlDS5+aeS1EK9UIBFYLuba4u5wVT2tDv6e1RTfrQ==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/fab": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-KCu87rWOKEAe9vZcAm6K8XazYSWPNjMG+OhrbPjHW6bCO7as1YCgtmkBkhff7csY/rFmcVpIy884xtUfLmSudQ==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/focus-ring": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/touch-target": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/feature-targeting": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-HyH1erNTSjS63sigNSUMaCd0nJhTNdDFeC+myrxwtDaQm+uYJ8troCNtQM3g6mx0XATNtX5aTOoPmrM6yVVi1A==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/@material/floating-label": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-f7TPp6bKpGvV3sYYiZHSGlrixXKkXXITW3Esp7KB9jRq42c0H82novmdwvY0eTef4ootmA2JEysr78KQfHBUPg==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/focus-ring": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-ikw2RVUfgzXChpWIzPH1VzRvTjYb5ZKj4H+CZf7jqPUXMstFOZg90Bp7ARLZHqYiyNMuUq3zUTHozS6iHorSqg==",
"dependencies": {
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0"
}
},
"node_modules/@material/form-field": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-vpF9N/uq5no/7+8GAbEH0868FhOuBgxAWRr1Sfb+jthKfBr8OS/wPU/AHzZHdHdAm7PQynbeOXfDsX2dI//PDA==",
"dependencies": {
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/icon-button": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-wMI+XGzmIN/o2ePBKg2hLyx7H4pXCRAyyIKMQS1FMp1UKa2tYmiHVX/V8skhKwCqxg3i6Ls/LxMjfPxTR18WvQ==",
"dependencies": {
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/focus-ring": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/touch-target": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/image-list": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-Ol+uaHYBe5R/cgzlfh5ONnMVX0wO6fV74JMUcQCQlxP6lXau/edARo4tkRc7A7UJUkU3VRv0EpEjLoCRNUPGaA==",
"dependencies": {
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/layout-grid": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-ALXE1mqFNb/RB2lVRQ3/r1Aufw2mFZnOjRE+boYDVepmAG/xWyPCyaGoavELJF5l4GAb0tXi8wA/8HeGbLOpuA==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/@material/line-ripple": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-7hRx8C/e9i0P6pgQpNOMfTwSS2r1fwEvBL72QDVGLtLuoKKwsjjgP6Z0Jat/GeHJe87u9LQvGBoD4upt+of/HA==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/linear-progress": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-iJclt7mKmcMk6pqD7ocXKfCWZhqBoODp7N593jYlxVpTJuEz2wiVAjZUDn/YGj/Uz3CRH+2YFfOiLr9pwWjhDg==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/progress-indicator": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/list": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-rQ+FCSdzmwTcT00IYE0uRV3CS4oGSccKFl9hkcF+aHFW61L7ORh/SCGUDPrEfQFrFkMn5f8qroVJjpUAMXBz4g==",
"dependencies": {
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/menu": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-r7wzDLSGSI9629/mfpvsMzkVxpmV75kcD3IrW0Pcu6/Bv/1xi0EvjcUXzNJJoQlwN4Zj35Ymz/PCjZkIDIz68Q==",
"dependencies": {
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/list": "15.0.0-canary.684e33d25.0",
"@material/menu-surface": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/menu-surface": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-RVO5GAYcfWPaKwxsF/NhUAmrYXQCQBKvRQW0TIlbmAJz6lcFeTs6YZqF3u1C7qrL3ZQGz+sur/7ywj6QU0oMow==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/notched-outline": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-9YHcBkvJLPVYzkHcWoTpBZAFrEd+j1hjhGxLhh0LuNrZe8VroUkZD1TTnUAPHRG3os6EqEWWaKb0RN+aPIF2yQ==",
"dependencies": {
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/floating-label": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/progress-indicator": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-c0icji4faeNWUoqGENGC7Hav0Puxh0RwXIDVizffaUxKIGbajpIp5+4Zop73fK/xFLGMB/npg7TbP+aCGjQ3fw==",
"dependencies": {
"tslib": "^2.1.0"
}
},
"node_modules/@material/radio": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-U3Eh8sNUA8trDla1Bq8Bo02foxYvtoewaKeF8A8tAju81XZ4jRiftfOsOWZDZEHCVbbCB2QwvutvFlnay5n+Aw==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/focus-ring": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/touch-target": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/ripple": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-RyePu7SjIm/OuyyEieZ/gxiPYkNZOZHeid72WRcN9ofdlljj2pifcdPvcfZA+v/DMS33xo5GjG2L/Qj6ClWrKw==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/rtl": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-NqdJl8Ayupp1Th+vCNCpVQHbUFOuF7TCte9LD1norTIBUF/QizIxWby2W5uUEiPbnh5j9PmE1CJtfLwKun3pcw==",
"dependencies": {
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/segmented-button": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-bEGgg8vgXNLyukyV8HRjFMuQ6t6nm5LQ4Pgm22um61Yc8qyi0BOqV41OR4SVdUrUqZxh1aVD+p+4NN03+LfQXw==",
"dependencies": {
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/touch-target": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/select": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-kf178/2TeEinTv0mgmSBcmmExQ2h7a7dtR1E3WuqQgisJ/R6+zVLMkC2CnfIyzxYX2vkuUTG0ue3Reh/6XiqSg==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/floating-label": "15.0.0-canary.684e33d25.0",
"@material/line-ripple": "15.0.0-canary.684e33d25.0",
"@material/list": "15.0.0-canary.684e33d25.0",
"@material/menu": "15.0.0-canary.684e33d25.0",
"@material/menu-surface": "15.0.0-canary.684e33d25.0",
"@material/notched-outline": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/shape": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-aEelpaTFmpnCji3TUGP9bVCS/bRVjUmLTHBPZtuu1gOrUVVtJ6kYOg73dZNJF+XOoNL2yOX/LRcKwsop29tptA==",
"dependencies": {
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/slider": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-WVyK+2pSNSZmj07M2K/a3TADoQ9FBCndfNC/vE7/wGIg4dddJJK5KvQ+yruf9R2cSzTL/S1sZ5WpyyeM8E9HTw==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/snackbar": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-itO+DCkOannZzR1/cCHcqAm7ifhuFvXmDItNoA8qLEcAyJDJJRkhpwj3XQ01yuo9gBFcSctp7Txt7e+Hncm/Jg==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/button": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/icon-button": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/switch": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-Jxi0gl92yvvZZsAPxvVHzXx2ga+T/djMow98jvEczmpUorWnAhgiCr9CsSSRoosahWyRB8NLZOxUQrACxvffjw==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/focus-ring": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"safevalues": "^0.3.4",
"tslib": "^2.1.0"
}
},
"node_modules/@material/tab": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-WQL3wj9syHNcfe8KbgGGUcA34M8C/xZ+n0Fkkh8Kk6puVwaU+xqUNihsxPY6YzKpmh4PZ4oJaBdiN8zvFT1zqQ==",
"dependencies": {
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/focus-ring": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/tab-indicator": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/tab-bar": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-SW/cMaDsIGGkM1ag3A7GJRlmr8eXmObWsvitQJzh6Azr5zzZtSI+GQygkMesAEE1gbpqOVN8d40rh3H7VVIAcA==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/tab": "15.0.0-canary.684e33d25.0",
"@material/tab-indicator": "15.0.0-canary.684e33d25.0",
"@material/tab-scroller": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/tab-indicator": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-kKICqSPqOlaf0lzaFFCmuOqPXJC+cK48Qmsc+m5o6fJhkmuZRCYpIwB2JeP+uZSOq/bTH+SrPtCtnVlgWg6ksA==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/tab-scroller": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-H6EU/TSiK/M2DyyORX5GEtXD9rKYxTMHC2VxsNWARPMFJGzgeW2ugYkFv+rKI1/c0bs0CJ4e+qFnOlBsQXZvyQ==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/tab": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/textfield": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-OvgpDXjvpyJTtAWskO69IDybFvDNzr9w2PN/Fk7yFm+uNVupaWz1Ew8lZ4gGslaTNSVmh2XcsvmzxcLINSiiNg==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/density": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/floating-label": "15.0.0-canary.684e33d25.0",
"@material/line-ripple": "15.0.0-canary.684e33d25.0",
"@material/notched-outline": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/theme": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-AZxaXXAvRKzAi20RlMxzt2U5UmkCWyv7DMWEBXsxtG5Tk54mi1HsbVUp3fxDPTlmL7Pq8p1/DESg/o7TgRCVlw==",
"dependencies": {
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/tokens": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-wVwbQOTCXDPKYPdHQHLr026y36MMFelID1CmbfRk6mSol4O8yE9U0fXcShfRDW8Qo5E3X31w9c2A6T3neJY7wQ==",
"dependencies": {
"@material/elevation": "15.0.0-canary.684e33d25.0"
}
},
"node_modules/@material/tooltip": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-dtm26QjxyQdinc8btgz6yys07b7bUW4FZgNF2EBPeGrICrPg7jf+JEvDziz5g8VMaTBQLOQRSCGy0MKuRlOjLw==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/button": "15.0.0-canary.684e33d25.0",
"@material/dom": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/tokens": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"safevalues": "^0.3.4",
"tslib": "^2.1.0"
}
},
"node_modules/@material/top-app-bar": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-1M+oupUxflfW7u81P1XlxoLZB8bLzwtpKofIfDNRbEsiKhlLTERJR3Yak3BGE9xakNMysAaBHlkb5MrN5bNPFw==",
"dependencies": {
"@material/animation": "15.0.0-canary.684e33d25.0",
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/elevation": "15.0.0-canary.684e33d25.0",
"@material/ripple": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/shape": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"@material/typography": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/touch-target": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-zdE69Slg8+T7sTn1OwqZ6H7WBYac9mxJ/JlJqfTqthzIjZRcCxBSYymQJcDHjsrPnUojOtr9U4Tpm5YZ96TEkQ==",
"dependencies": {
"@material/base": "15.0.0-canary.684e33d25.0",
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/rtl": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@material/typography": {
"version": "15.0.0-canary.684e33d25.0",
"resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.684e33d25.0.tgz",
"integrity": "sha512-aVnvgMwcfNa/K4wujzpKDIxjGl2hbkEL+m+OKDSQqWYjKcP9QrbzCXJruJBqxrBoPRHLbqo47k5f9uT8raSgjw==",
"dependencies": {
"@material/feature-targeting": "15.0.0-canary.684e33d25.0",
"@material/theme": "15.0.0-canary.684e33d25.0",
"tslib": "^2.1.0"
}
},
"node_modules/@ngtools/webpack": {
"version": "15.1.6",
"resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.1.6.tgz",
@ -5701,6 +6577,11 @@
}
}
},
"node_modules/cordova-plugin-preview-any-file": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/cordova-plugin-preview-any-file/-/cordova-plugin-preview-any-file-0.2.9.tgz",
"integrity": "sha512-OXgbmbfH+jeUme5q4NM7KZMra05E8G2ddolWrAQYt2cBAspikqSCg43a0TfaTQp/dBP94mzG/WA3ea+f7KSoKg=="
},
"node_modules/core-js-compat": {
"version": "3.28.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.28.0.tgz",
@ -10034,6 +10915,11 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/material-icons": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/material-icons/-/material-icons-1.13.1.tgz",
"integrity": "sha512-6EwhlEa4rwydNSWw11ig1oz/h/KcarJXn4n50Wd69v5Eh026Y6xBo9zLPeX4iF8+qUZV862X0AUUA0m0VaihWg=="
},
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@ -12382,6 +13268,11 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
"node_modules/safevalues": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz",
"integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw=="
},
"node_modules/sass": {
"version": "1.57.1",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz",

View File

@ -16,6 +16,7 @@
"@angular/common": "^15.0.0",
"@angular/core": "^15.0.0",
"@angular/forms": "^15.0.0",
"@angular/material": "^15.1.5",
"@angular/platform-browser": "^15.0.0",
"@angular/platform-browser-dynamic": "^15.0.0",
"@angular/router": "^15.0.0",
@ -33,7 +34,9 @@
"@fortawesome/free-solid-svg-icons": "^6.3.0",
"@ionic/angular": "^6.5.4",
"cordova-plugin-file-opener2": "^4.0.0",
"cordova-plugin-preview-any-file": "^0.2.9",
"ionicons": "^6.1.3",
"material-icons": "^1.13.1",
"node-angular-http-client": "^1.1.7",
"rxjs": "~7.5.0",
"tslib": "^2.3.0",

View File

@ -7,19 +7,16 @@ import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';
import { fas } from '@fortawesome/free-solid-svg-icons'
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule, HttpClientModule, FontAwesomeModule],
imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule, HttpClientModule],
providers: [{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }],
bootstrap: [AppComponent]
})
export class AppModule {
constructor(library: FaIconLibrary) {
library.addIconPacks(fas);
constructor() {
}
}

View File

@ -26,6 +26,7 @@ export class Item {
public hidden: boolean,
public accounting: null,
public id: string,
public owner: string,
public content?: Content | undefined,
public externalRoot?: boolean | undefined,
public privilege?: null | undefined,

87
src/app/model/ws-item.ts Normal file
View File

@ -0,0 +1,87 @@
import { StoragehubService } from "../storagehub.service";
import { Item } from "./item.model";
export class WSItem {
item: Item;
storagehubService: StoragehubService;
type: string;
constructor(item: Item, storagehubService: StoragehubService) {
this.item = item;
this.storagehubService = storagehubService;
const tempType$ = this.getType(item);
this.type = tempType$ ? tempType$ :"";
}
getIconInfo(): string {
let retrievedName: string;
switch (this.type) {
case 'SharedFolder':
retrievedName = this.item ? "folder_special" : "folder_shared";
break;
case 'FolderItem':
retrievedName = "folder";
break;
case 'PDFFileItem':
retrievedName = "picture_as_pdf";
break;
case 'ImageFile':
retrievedName = "image";
break;
case 'ExternalLink':
retrievedName = 'link';
break;
default:
retrievedName = "description";
}
return retrievedName;
}
private getType(item: Item): string | undefined {
return item["@class"].split(".").pop();
}
isFolder(): boolean {
return this.type === 'SharedFolder' ||
this.type === 'ExternalFolder' ||
this.type === 'FolderItem';
}
getTitle(): string | undefined{
return this.item.vreFolder? this.item.displayName: this.item.title;
}
getActions(): Action[] {
return Actions.getActionsPerType(this.type);
}
}
export interface Action {
execute(): void;
getName(): string;
}
class Actions{
public static getActionsPerType(type:string): Action[] {
let actions: Action[] = [];
/*switch (type) {
case 'SharedFolder':
break;
case 'FolderItem':
break;
case 'PDFFileItem':
break;
case 'ImageFile':
break;
case 'ExternalLink':
break;
default:
}*/
return actions;
}
}

View File

@ -1,53 +1,44 @@
<ion-content class="padding">
<ion-toolbar>
<ion-buttons slot="start" *ngIf="parentItem">
<ion-back-button text="" defaultHref="/tabs/ws">
<mat-icon>arrow_back_ios_new</mat-icon>
</ion-back-button>
</ion-buttons>
<ion-title> {{ parentItem ? parentItem.getTitle() : tabName }} </ion-title>
</ion-toolbar>
<input hidden type="file" #filepicker (change)="fileSelected($event)" />
<ion-text color="medium" *ngIf="items.length == 0" class="ion-padding ion-text-center">
<p>Empty folder</p>
</ion-text>
<ion-list>
<ion-item *ngFor="let i of wsItems">
<mat-icon slot="start">{{ i.getIconInfo() }}</mat-icon>
<ion-label text-wrap (click)="itemClicked(i)">
{{ i.getTitle() }}
<p *ngIf="i.item.shared; else notShared">{{ i.item.owner }}</p>
<ng-template #notShared>
<p>{{i.item.lastModificationTime | date: 'dd MMM yyyy'}} </p>
</ng-template>
</ion-label>
<mat-icon (click)="presentActionSheet(i)" slot="end">more_horiz</mat-icon>
</ion-item>
</ion-list>
<ion-content>
<ion-header >
<ion-toolbar>
<ion-buttons slot="start" *ngIf="parentItem !== undefined">
<ion-back-button text="Previous" icon="caret-back"></ion-back-button>
</ion-buttons>
<ion-title> {{ parentItem ? parentItem.title : tabName }} </ion-title>
</ion-toolbar>
</ion-header>
<ion-text color="medium" *ngIf="items.length == 0" class="ion-padding ion-text-center">
<p>Empty folder</p>
</ion-text>
<ion-list>
<ion-item-sliding *ngFor="let i of items">
<ion-item (click)="itemClicked(i)">
<fa-icon [icon]="['fas',getIconInfo(i)]" slot="start"></fa-icon>
<ion-label text-wrap>
{{ i.title }}
<!--<p>{{ i.path }}</p> -->
</ion-label>
</ion-item>
<!--
<ion-item-options side="end">
<ion-item-option (click)="startCopy()" color="success">
Copy
</ion-item-option>
<ion-item-option (click)="startCopy(f, true)" color="primary">
Move
</ion-item-option>
</ion-item-options> -->
</ion-item-sliding>
</ion-list>
<ion-fab vertical="bottom" horizontal="end" slot="fixed">
<ion-fab vertical="top" horizontal="end" slot="fixed" size="small">
<ion-fab-button>
<ion-icon name="add"></ion-icon>
</ion-fab-button>
<ion-fab-list side="top">
<ion-fab-button >
<ion-icon name="folder"></ion-icon>
<ion-fab-list side="bottom">
<ion-fab-button (click)="createFolder()">
<mat-icon>create_new_folder</mat-icon>
</ion-fab-button>
<ion-fab-button>
<ion-icon name="document"></ion-icon>
<ion-fab-button (click)="addFile()">
<mat-icon>upload_file</mat-icon>
</ion-fab-button>
</ion-fab-list>
</ion-fab>

View File

@ -0,0 +1,9 @@
ion-fab-button {
--background: #b7f399;
--background-activated: #87d361;
--background-hover: #a3e681;
--border-radius: 15px;
--box-shadow: 0px 1px 2px 0px rgba(0,0,0,.3), 0px 1px 3px 1px rgba(0,0,0,.15);
--color: black;
}

View File

@ -1,6 +1,6 @@
import { Component, OnInit, Input, CUSTOM_ELEMENTS_SCHEMA, Output, EventEmitter } from '@angular/core';
import { Component, OnInit, Input, CUSTOM_ELEMENTS_SCHEMA, Output, EventEmitter, ElementRef, ViewChild } from '@angular/core';
import { Platform, AlertController, ToastController, IonicModule } from '@ionic/angular';
import { Platform, AlertController, ToastController, IonicModule, ActionSheetController, ActionSheetButton } from '@ionic/angular';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { Router, ActivatedRoute } from '@angular/router';
@ -8,8 +8,8 @@ import { Router, ActivatedRoute } from '@angular/router';
import { StoragehubService } from '../storagehub.service';
import { CommonModule } from '@angular/common';
import { Item } from '../model/item.model';
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
import { IconName } from '@fortawesome/fontawesome-svg-core';
import { MatIconModule } from '@angular/material/icon';
import { WSItem } from '../model/ws-item';
@Component({
standalone: true,
@ -19,71 +19,133 @@ import { IconName } from '@fortawesome/fontawesome-svg-core';
styleUrls: ['./show-folder.component.scss'],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
imports: [
CommonModule, IonicModule, FontAwesomeModule
CommonModule, IonicModule, MatIconModule
]
})
export class ShowFolderComponent implements OnInit {
@Output() folderClickedEvent = new EventEmitter<Item>();
@Input() items: Item[] = []
@Input() items: Item[] = [];
@Input() parentItem: Item | undefined;
wsItems: WSItem[] = [];
@Input() parentItem: WSItem | undefined;
@Input() tabName: string = "";
@ViewChild('filepicker') uploader!: ElementRef;
constructor(
private plt: Platform,
private alertCtrl: AlertController,
private fileOpener: FileOpener,
private router: Router,
private route: ActivatedRoute,
private toastCtrl: ToastController,
private storagehub: StoragehubService
private actionSheetCtrl: ActionSheetController,
private storagehub: StoragehubService,
private alertCtrl: AlertController
) { }
ngOnInit() {
ngOnInit(): void {
}
getType(item: Item): string | undefined {
return item["@class"].split(".").pop();
ngOnChanges() {
this.items.forEach(i => this.wsItems.push(new WSItem(i, this.storagehub)) );
}
isFolder(item: Item): boolean {
const type = this.getType(item);
return type === 'SharedFolder' ||
type === 'ExternalFolder' ||
type === 'FolderItem';
loadDocuments() {
if (this.parentItem)
this.storagehub.getChildren(this.parentItem.item.id, false).subscribe(
(res) => {
this.items = res;
this.items.forEach(i => this.wsItems.push(new WSItem(i, this.storagehub)) );
}
)
}
itemClicked(item: WSItem) {
if (item.isFolder()) {
this.folderClickedEvent.emit(item.item);
}
}
getIconInfo(item: Item): IconName {
addFile() {
console.log("add fiel called");
this.uploader.nativeElement.click();
}
async fileSelected($event: any) {
const selected = $event.target.files[0];
if (selected && this.parentItem) {
const upload$ = this.storagehub.uploadFile(this.parentItem.item.id, selected.name, selected);
upload$.subscribe(
suc => this.loadDocuments()
);
}
}
async createFolder() {
let alert = await this.alertCtrl.create({
header: 'Create folder',
message: 'Please specify the name of the new folder',
inputs: [
{
name: 'name',
type: 'text',
placeholder: 'new folder'
}
],
buttons: [
{
text: 'Cancel',
role: 'cancel'
},
{
text: 'Create',
handler: (data) => {
if (this.parentItem) {
const createFolder$ = this.storagehub.createFolder(this.parentItem.item.id, data.name, "");
createFolder$.subscribe(
suc => this.loadDocuments()
);
}
}
}
]
});
await alert.present();
}
async presentActionSheet(item: WSItem) {
let retrievedName: string;
switch (item["@class"].split(".").pop()) {
case 'SharedFolder':
retrievedName = !item.vreFolder ? "folder-plus" : "folder-plus";
break;
case 'FolderItem':
retrievedName = "folder";
break;
case 'PDFFileItem':
retrievedName = "file-pdf";
break;
case 'ImageFile':
retrievedName = "file-image";
break;
case 'ExternalLink':
retrievedName = 'link';
break;
default:
retrievedName = "file";
}
return retrievedName as IconName;
var buttons :ActionSheetButton<any>[] = [];
item.getActions().forEach( action => buttons.push({
text: action.name,
data: {
action: action.name,
},
handler: () => action.execute()
}));
buttons.push({
text: 'Cancel',
role: 'cancel',
data: {
action: 'cancel',
},
});
const actionSheet = await this.actionSheetCtrl.create({
header: `${item.item.title}`,
mode: 'ios',
translucent: true,
buttons: buttons,
cssClass: 'my-custom-class'
});
await actionSheet.present();
const result = await actionSheet.onDidDismiss();
}
itemClicked(item: Item){
if (this.isFolder(item)){
this.folderClickedEvent.emit(item);
}
}
}

View File

@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable, of, throwError } from 'rxjs';
import { catchError, map, retry, switchMap } from 'rxjs/operators';
import { HttpErrorResponse } from 'node-angular-http-client';
import { HttpErrorResponse, HttpHeaders } from 'node-angular-http-client';
import { Item } from './model/item.model';
import { ItemList } from './model/itemlist.model';
import { ItemWrapper } from './model/item-wrapper.model';
@ -55,7 +55,6 @@ export class StoragehubService {
let getWsURL = `${shURL}items/${id}/children?gcube-token=${token}&exclude=hl:accounting`;
if (onlyFolder)
getWsURL += '&onlyType=nthl:workspaceItem';
console.log("requested resource is "+id);
return this.http.get<ItemList>(getWsURL).pipe(
map(values => values.itemlist),
catchError(this.error)
@ -71,6 +70,26 @@ export class StoragehubService {
);
}
uploadFile(parentId: string, name: string, file: File){
let uploadURL = `${shURL}items/${parentId}/create/FILE?gcube-token=${token}`;
const formData = new FormData();
formData.append("name", name);
formData.append("description", "");
formData.append("file",file);
return this.http.post(uploadURL, formData, {observe: 'body', responseType: 'text'}).pipe(
catchError(this.error)
);
}
createFolder(parentId: string, name: string, description: string) : Observable<any> {
let createFolderURL = `${shURL}items/${parentId}/create/FOLDER?gcube-token=${token}`;
const formData = new FormData();
let body = `name=${name}&description=${description}`;
return this.http.post(createFolderURL, body, {observe: 'body', responseType: 'text' , headers: { 'Content-Type' : 'application/x-www-form-urlencoded' }}).pipe(
catchError(this.error)
);
}
error(error: HttpErrorResponse) {
let errorMessage = '';
if (error.error instanceof ErrorEvent) {

View File

@ -1,9 +1,15 @@
<ion-header [translucent]="false">
<ion-toolbar>
<ion-title class="ion-text-center"> D4Science Workspace </ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-tabs>
<ion-tab-bar slot="bottom">
<ion-tab-button tab="ws">
<ion-icon name="desktop-outline"></ion-icon>
<ion-label>Workspace</ion-label>
<ion-icon name="home"></ion-icon>
<ion-label>Home</ion-label>
</ion-tab-button>
<ion-tab-button tab="vres">
@ -18,3 +24,4 @@
</ion-tab-bar>
</ion-tabs>
</ion-content>

View File

@ -1,4 +1,4 @@
<ion-content [fullscreen]="true">
<show-folder [items]="getValues()" tabName="Trash"></show-folder>
<show-folder tabName="Trash" [items]="getValues()"></show-folder>
</ion-content>

View File

@ -1,6 +1,7 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Item } from '../model/item.model';
import { WSItem } from '../model/ws-item';
import { StoragehubService } from '../storagehub.service';
@Component({
@ -53,7 +54,9 @@ export class VresPage implements OnInit {
this.router.navigateByUrl(`tabs/vres/${item.id}`);
}
public getCurrentItem(): Item | undefined {
return this.item;
public getCurrentItem(): WSItem | undefined{
if (this.item)
return new WSItem(this.item, this.storagehub);
return undefined;
}
}

View File

@ -1,5 +1,5 @@
<ion-content [fullscreen]="true">
<show-folder [items]="getValues()" tabName="My Workspace" [parentItem]="getCurrentItem()" (folderClickedEvent)="openFolder($event)"></show-folder>
<show-folder tabName="My Workspace" [items]="getValues()" [parentItem]="getCurrentItem()" (folderClickedEvent)="openFolder($event)"></show-folder>
</ion-content>

View File

@ -4,6 +4,7 @@ import { Router, ActivatedRoute } from '@angular/router';
import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx';
import { Item } from '../model/item.model';
import { StoragehubService } from '../storagehub.service';
import { WSItem } from '../model/ws-item';
@Component({
selector: 'app-ws',
@ -53,8 +54,9 @@ export class WsPage implements OnInit {
this.router.navigateByUrl(`tabs/ws/${item.id}`);
}
public getCurrentItem() : Item | undefined{
console.log("item is "+this.item)
return this.item;
public getCurrentItem() : WSItem | undefined{
if (this.item)
return new WSItem(this.item, this.storagehub);
return undefined;
}
}

View File

@ -17,6 +17,7 @@
<!-- add to homescreen for ios -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>
<body>