Compare commits
	
		
			44 Commits
		
	
	
		
			7e4687853f
			...
			demo-alpr
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 857386962a | |||
| 76821e757f | |||
| 66b4a2b226 | |||
| 752446dd40 | |||
| 863a35b878 | |||
| 28510d0ba1 | |||
| 6991283dd4 | |||
| 6b6da966b6 | |||
| 72ec01938e | |||
| 3d6b4bf3b3 | |||
| 313ef43e9c | |||
| 058633742e | |||
| e1968e14b0 | |||
| 6b362d77f0 | |||
| 57c6d74ff5 | |||
| bed48b4cb4 | |||
| 05854c84d8 | |||
| 643fe4ba5d | |||
| f244d28433 | |||
| c7d6308c09 | |||
| 451c8aceec | |||
| 047591d031 | |||
| 2c86e90b76 | |||
| e73ca6b532 | |||
| 7fea931b63 | |||
| 2ceab090fd | |||
| d522a44029 | |||
| 06b13853db | |||
| 6be0fbac7d | |||
| 062042b590 | |||
| 1ca77b6611 | |||
| 685badc59a | |||
| dacda3b3a6 | |||
| 40a44848a8 | |||
| 0b294a782c | |||
| 8beddba367 | |||
| 6ba32a7dfa | |||
| 36a70db69f | |||
| 8f91a10331 | |||
| 1db9ef0794 | |||
| ceeebfc964 | |||
| 593f03648b | |||
| bef7f65363 | |||
| dce96e338c | 
							
								
								
									
										47
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
 # Miscellaneous
 | 
			
		||||
*.class
 | 
			
		||||
*.log
 | 
			
		||||
*.pyc
 | 
			
		||||
*.swp
 | 
			
		||||
.DS_Store
 | 
			
		||||
.atom/
 | 
			
		||||
.buildlog/
 | 
			
		||||
.history
 | 
			
		||||
.svn/
 | 
			
		||||
build/ 
 | 
			
		||||
migrate_working_dir/ 
 | 
			
		||||
 | 
			
		||||
# IntelliJ related
 | 
			
		||||
*.iml
 | 
			
		||||
*.ipr
 | 
			
		||||
*.iws
 | 
			
		||||
.idea/
 | 
			
		||||
 | 
			
		||||
# The .vscode folder contains launch configuration and tasks you configure in
 | 
			
		||||
# VS Code which you may wish to be included in version control, so th is line
 | 
			
		||||
# is commented out by default.
 | 
			
		||||
#.vscode/
 | 
			
		||||
 | 
			
		||||
# Flutter/Dart/Pub related
 | 
			
		||||
**/doc/api/
 | 
			
		||||
**/ios/Flutter/.last_build_id
 | 
			
		||||
.dart_tool/
 | 
			
		||||
.flutter-plugins
 | 
			
		||||
.flutter-plugins-dependencies
 | 
			
		||||
.packages
 | 
			
		||||
.pub-cache/
 | 
			
		||||
.pub/
 | 
			
		||||
/build/
 | 
			
		||||
 | 
			
		||||
# Symbolication related
 | 
			
		||||
app.*.symbols
 | 
			
		||||
 | 
			
		||||
# Obfuscation related
 | 
			
		||||
app.*.map.json
 | 
			
		||||
 | 
			
		||||
# Android Studio will place build artifacts here
 | 
			
		||||
/android/app/debug
 | 
			
		||||
/android/app/profile
 | 
			
		||||
/android/app/release
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -1,6 +1,9 @@
 | 
			
		||||
# Environemnt to install flutter and build web
 | 
			
		||||
FROM debian:latest AS build-env
 | 
			
		||||
 | 
			
		||||
ARG HOST=${HOST:-"http://localhost:8000"}
 | 
			
		||||
ARG AUTH_MODE=true
 | 
			
		||||
 | 
			
		||||
# install all needed stuff
 | 
			
		||||
RUN apt-get update
 | 
			
		||||
RUN apt-get install -y curl git unzip
 | 
			
		||||
@@ -32,7 +35,9 @@ WORKDIR $APP
 | 
			
		||||
# Run build: 1 - clean, 2 - pub get, 3 - build web
 | 
			
		||||
RUN flutter clean
 | 
			
		||||
RUN flutter pub get
 | 
			
		||||
RUN flutter build web
 | 
			
		||||
RUN flutter build web \ 
 | 
			
		||||
    --dart-define=AUTH_MODE=$AUTH_MODE \
 | 
			
		||||
    --dart-define=HOST=$HOST
 | 
			
		||||
 | 
			
		||||
# once heare the app will be compiled and ready to deploy
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
.DEFAULT_GOAL := all
 | 
			
		||||
 | 
			
		||||
all: clean docker publish-kind publish-registry
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
linux: 
 | 
			
		||||
	./local_run.sh
 | 
			
		||||
 | 
			
		||||
purge:
 | 
			
		||||
	lsof -t -i:8080 | xargs kill | true
 | 
			
		||||
 | 
			
		||||
run-dev: 
 | 
			
		||||
	flutter run -d linux --dart-define=AUTH_MODE=true
 | 
			
		||||
 | 
			
		||||
dev: purge run-dev
 | 
			
		||||
 | 
			
		||||
run:
 | 
			
		||||
	flutter run
 | 
			
		||||
 | 
			
		||||
build:
 | 
			
		||||
	flutter pub get
 | 
			
		||||
	flutter build linux
 | 
			
		||||
	flutter build web
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -rf build/
 | 
			
		||||
	flutter clean
 | 
			
		||||
 | 
			
		||||
docker:
 | 
			
		||||
	DOCKER_BUILDKIT=1 docker build -t oc/oc-front:0.0.1 --build-arg HOST=$(HOST) -f Dockerfile .
 | 
			
		||||
	docker tag oc/oc-front:0.0.1 oc/oc-front:latest
 | 
			
		||||
 | 
			
		||||
publish-kind:
 | 
			
		||||
	kind load docker-image oc/oc-front:0.0.1 --name opencloud
 | 
			
		||||
 | 
			
		||||
publish-registry:
 | 
			
		||||
	@echo "TODO"
 | 
			
		||||
 | 
			
		||||
.PHONY: build run clean docker publish-kind publish-registry
 | 
			
		||||
							
								
								
									
										40
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								README.md
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
# oc_front
 | 
			
		||||
 | 
			
		||||
A new Flutter project.
 | 
			
		||||
OpenCloud flutter frontend. 
 | 
			
		||||
 | 
			
		||||
## Getting Started
 | 
			
		||||
 | 
			
		||||
@@ -14,3 +14,41 @@ A few resources to get you started if this is your first Flutter project:
 | 
			
		||||
For help getting started with Flutter development, view the
 | 
			
		||||
[online documentation](https://docs.flutter.dev/), which offers tutorials,
 | 
			
		||||
samples, guidance on mobile development, and a full API reference.
 | 
			
		||||
 | 
			
		||||
## Install for local development 
 | 
			
		||||
 | 
			
		||||
### Install flutter
 | 
			
		||||
Our flutter version (in dockerfile & during development) is set to : 3.19.6
 | 
			
		||||
FLUTTER SDK PATH : /usr/local/flutter
 | 
			
		||||
- With snap (linux only) : `sudo snap install flutter --classic`
 | 
			
		||||
- With git (windows + linux) : 
 | 
			
		||||
        `git clone https://github.com/flutter/flutter.git -b <FLUTTER VERSION> <FLUTTER SDK PATH>`
 | 
			
		||||
        `export PATH="$PATH:<FLUTTER SDK PATH>/bin:<FLUTTER SDK PATH>/bin/cache/dart-sdk/bin"`
 | 
			
		||||
 | 
			
		||||
### Install flutter project dependencies
 | 
			
		||||
 | 
			
		||||
At the root of the project : 
 | 
			
		||||
- `flutter clean`
 | 
			
		||||
- `flutter pub get`
 | 
			
		||||
 | 
			
		||||
OR 
 | 
			
		||||
 | 
			
		||||
    make linux-traefik
 | 
			
		||||
    | make linux
 | 
			
		||||
 | 
			
		||||
## Run 
 | 
			
		||||
 | 
			
		||||
### Run locally (dev mode)
 | 
			
		||||
 | 
			
		||||
At the root of the project : `flutter run`
 | 
			
		||||
 | 
			
		||||
### Run containerized with Docker (aligned with OC stack)
 | 
			
		||||
For development purpose open a chrome without CORS : `google-chrome --disable-web-security`
 | 
			
		||||
At the root of the project :
 | 
			
		||||
    - `docker build . -t oc-front` 
 | 
			
		||||
    if localisation services change : `docker build -t oc-front --build-arg WORKSPACE_HOST=<SERVICE URL> --build-arg WORKFLOW_HOST=<SERVICE URL> --build-arg SEARCH_HOST=<SERVICE URL> --build-arg CATALOG_HOST=<SERVICE URL> .`
 | 
			
		||||
 | 
			
		||||
    - `docker-compose up -d --build --force-recreate` 
 | 
			
		||||
 | 
			
		||||
## HELP
 | 
			
		||||
sudo apt install libwebkit2gtk-4.0-dev
 | 
			
		||||
							
								
								
									
										10
									
								
								assets/config/front.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								assets/config/front.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
{
 | 
			
		||||
"WORKSPACE_HOST": "workspace",
 | 
			
		||||
"WORKFLOW_HOST": "workflow",
 | 
			
		||||
"CATALOG_HOST": "catalog",
 | 
			
		||||
"SCHEDULER_HOST": "scheduler",
 | 
			
		||||
"PEER_HOST": "peer",
 | 
			
		||||
"DATACENTER_HOST": "datacenter",
 | 
			
		||||
"COLLABORATIVE_AREA_HOST": "shared",
 | 
			
		||||
"AUTH_HOST": "auth"
 | 
			
		||||
}
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
0e42810c62c7d99e697db4e3ab779648
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1 +0,0 @@
 | 
			
		||||
{"inputs":[],"outputs":[]}
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
{"inputs":["/home/mr/Documents/OC/oc-front/oc_front/.dart_tool/package_config_subset"],"outputs":["/home/mr/Documents/OC/oc-front/oc_front/.dart_tool/flutter_build/dart_plugin_registrant.dart"]}
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
{"inputs":[],"outputs":[]}
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
{"assets/images/icon.svg":["assets/images/icon.svg"],"assets/images/logo.svg":["assets/images/logo.svg"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/flutter_map/lib/assets/flutter_map_logo.png":["packages/flutter_map/lib/assets/flutter_map_logo.png"]}
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}]
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,86 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<svg
 | 
			
		||||
   xmlns:dc="http://purl.org/dc/elements/1.1/"
 | 
			
		||||
   xmlns:cc="http://creativecommons.org/ns#"
 | 
			
		||||
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 | 
			
		||||
   xmlns:svg="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 | 
			
		||||
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 | 
			
		||||
   inkscape:export-ydpi="300.01099"
 | 
			
		||||
   inkscape:export-xdpi="300.01099"
 | 
			
		||||
   inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\O-cloud.png"
 | 
			
		||||
   sodipodi:docname="O-cloud.svg"
 | 
			
		||||
   inkscape:version="1.0beta2 (2b71d25, 2019-12-03)"
 | 
			
		||||
   version="1.1"
 | 
			
		||||
   id="svg2"
 | 
			
		||||
   viewBox="0 0 1052.3622 744.09448"
 | 
			
		||||
   height="210mm"
 | 
			
		||||
   width="297mm">
 | 
			
		||||
  <defs
 | 
			
		||||
     id="defs4" />
 | 
			
		||||
  <sodipodi:namedview
 | 
			
		||||
     inkscape:document-rotation="0"
 | 
			
		||||
     inkscape:window-maximized="1"
 | 
			
		||||
     inkscape:window-y="23"
 | 
			
		||||
     inkscape:window-x="0"
 | 
			
		||||
     inkscape:window-height="811"
 | 
			
		||||
     inkscape:window-width="1440"
 | 
			
		||||
     showgrid="false"
 | 
			
		||||
     inkscape:current-layer="layer1"
 | 
			
		||||
     inkscape:document-units="px"
 | 
			
		||||
     inkscape:cy="479.06704"
 | 
			
		||||
     inkscape:cx="674.21441"
 | 
			
		||||
     inkscape:zoom="0.35"
 | 
			
		||||
     inkscape:pageshadow="2"
 | 
			
		||||
     inkscape:pageopacity="0.0"
 | 
			
		||||
     borderopacity="1.0"
 | 
			
		||||
     bordercolor="#666666"
 | 
			
		||||
     pagecolor="#ffffff"
 | 
			
		||||
     id="base" />
 | 
			
		||||
  <metadata
 | 
			
		||||
     id="metadata7">
 | 
			
		||||
    <rdf:RDF>
 | 
			
		||||
      <cc:Work
 | 
			
		||||
         rdf:about="">
 | 
			
		||||
        <dc:format>image/svg+xml</dc:format>
 | 
			
		||||
        <dc:type
 | 
			
		||||
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
 | 
			
		||||
        <dc:title />
 | 
			
		||||
      </cc:Work>
 | 
			
		||||
    </rdf:RDF>
 | 
			
		||||
  </metadata>
 | 
			
		||||
  <g
 | 
			
		||||
     transform="translate(0,-308.26772)"
 | 
			
		||||
     id="layer1"
 | 
			
		||||
     inkscape:groupmode="layer"
 | 
			
		||||
     inkscape:label="Layer 1">
 | 
			
		||||
    <path
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       inkscape:connector-curvature="0"
 | 
			
		||||
       id="path4146"
 | 
			
		||||
       d="m 589.87014,561.52541 101.65363,0"
 | 
			
		||||
       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:28.38233757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
 | 
			
		||||
    <text
 | 
			
		||||
       id="text4148"
 | 
			
		||||
       y="583.65143"
 | 
			
		||||
       x="375.77676"
 | 
			
		||||
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       xml:space="preserve"><tspan
 | 
			
		||||
         style="font-size:180px;line-height:1.25"
 | 
			
		||||
         y="583.65143"
 | 
			
		||||
         x="375.77676"
 | 
			
		||||
         id="tspan4150"
 | 
			
		||||
         sodipodi:role="line"> </tspan></text>
 | 
			
		||||
    <path
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       inkscape:connector-curvature="0"
 | 
			
		||||
       d="m 453.76672,412.20907 q 44.48935,0 77.01376,41.43523 32.69294,41.22909 32.69294,103.07272 0,63.69894 -32.86145,105.75261 -32.86146,42.05368 -79.54158,42.05368 -47.18568,0 -79.37304,-41.02295 -32.01886,-41.02294 -32.01886,-106.1649 0,-66.58497 37.07446,-108.63865 32.18738,-36.48774 77.01377,-36.48774 z m -3.20188,15.04861 q -30.6707,0 -49.20792,27.82964 -23.08729,34.63244 -23.08729,101.42355 0,68.4403 23.92989,105.34033 18.3687,28.03577 48.53383,28.03577 32.18738,0 53.0839,-30.71566 21.06503,-30.71567 21.06503,-96.88836 0,-71.73861 -23.08728,-106.98948 -18.53723,-28.03579 -51.23016,-28.03579 z"
 | 
			
		||||
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       id="path4203" />
 | 
			
		||||
  </g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 4.0 KiB  | 
@@ -1,115 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<svg
 | 
			
		||||
   xmlns:dc="http://purl.org/dc/elements/1.1/"
 | 
			
		||||
   xmlns:cc="http://creativecommons.org/ns#"
 | 
			
		||||
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 | 
			
		||||
   xmlns:svg="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 | 
			
		||||
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 | 
			
		||||
   inkscape:export-ydpi="300.01099"
 | 
			
		||||
   inkscape:export-xdpi="300.01099"
 | 
			
		||||
   inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\O-cloud.png"
 | 
			
		||||
   sodipodi:docname="O-cloud.svg"
 | 
			
		||||
   inkscape:version="1.0beta2 (2b71d25, 2019-12-03)"
 | 
			
		||||
   version="1.1"
 | 
			
		||||
   id="svg2"
 | 
			
		||||
   viewBox="0 0 1052.3622 744.09448"
 | 
			
		||||
   height="210mm"
 | 
			
		||||
   width="297mm">
 | 
			
		||||
  <defs
 | 
			
		||||
     id="defs4" />
 | 
			
		||||
  <sodipodi:namedview
 | 
			
		||||
     inkscape:document-rotation="0"
 | 
			
		||||
     inkscape:window-maximized="1"
 | 
			
		||||
     inkscape:window-y="23"
 | 
			
		||||
     inkscape:window-x="0"
 | 
			
		||||
     inkscape:window-height="811"
 | 
			
		||||
     inkscape:window-width="1440"
 | 
			
		||||
     showgrid="false"
 | 
			
		||||
     inkscape:current-layer="layer1"
 | 
			
		||||
     inkscape:document-units="px"
 | 
			
		||||
     inkscape:cy="479.06704"
 | 
			
		||||
     inkscape:cx="674.21441"
 | 
			
		||||
     inkscape:zoom="0.35"
 | 
			
		||||
     inkscape:pageshadow="2"
 | 
			
		||||
     inkscape:pageopacity="0.0"
 | 
			
		||||
     borderopacity="1.0"
 | 
			
		||||
     bordercolor="#666666"
 | 
			
		||||
     pagecolor="#ffffff"
 | 
			
		||||
     id="base" />
 | 
			
		||||
  <metadata
 | 
			
		||||
     id="metadata7">
 | 
			
		||||
    <rdf:RDF>
 | 
			
		||||
      <cc:Work
 | 
			
		||||
         rdf:about="">
 | 
			
		||||
        <dc:format>image/svg+xml</dc:format>
 | 
			
		||||
        <dc:type
 | 
			
		||||
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
 | 
			
		||||
        <dc:title />
 | 
			
		||||
      </cc:Work>
 | 
			
		||||
    </rdf:RDF>
 | 
			
		||||
  </metadata>
 | 
			
		||||
  <g
 | 
			
		||||
     transform="translate(0,-308.26772)"
 | 
			
		||||
     id="layer1"
 | 
			
		||||
     inkscape:groupmode="layer"
 | 
			
		||||
     inkscape:label="Layer 1">
 | 
			
		||||
    <path
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       inkscape:connector-curvature="0"
 | 
			
		||||
       id="path4146"
 | 
			
		||||
       d="m 589.87014,561.52541 101.65363,0"
 | 
			
		||||
       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:28.38233757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
 | 
			
		||||
    <text
 | 
			
		||||
       id="text4148"
 | 
			
		||||
       y="583.65143"
 | 
			
		||||
       x="375.77676"
 | 
			
		||||
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       xml:space="preserve"><tspan
 | 
			
		||||
         style="font-size:180px;line-height:1.25"
 | 
			
		||||
         y="583.65143"
 | 
			
		||||
         x="375.77676"
 | 
			
		||||
         id="tspan4150"
 | 
			
		||||
         sodipodi:role="line"> </tspan></text>
 | 
			
		||||
    <path
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       inkscape:connector-curvature="0"
 | 
			
		||||
       d="m 453.76672,412.20907 q 44.48935,0 77.01376,41.43523 32.69294,41.22909 32.69294,103.07272 0,63.69894 -32.86145,105.75261 -32.86146,42.05368 -79.54158,42.05368 -47.18568,0 -79.37304,-41.02295 -32.01886,-41.02294 -32.01886,-106.1649 0,-66.58497 37.07446,-108.63865 32.18738,-36.48774 77.01377,-36.48774 z m -3.20188,15.04861 q -30.6707,0 -49.20792,27.82964 -23.08729,34.63244 -23.08729,101.42355 0,68.4403 23.92989,105.34033 18.3687,28.03577 48.53383,28.03577 32.18738,0 53.0839,-30.71566 21.06503,-30.71567 21.06503,-96.88836 0,-71.73861 -23.08728,-106.98948 -18.53723,-28.03579 -51.23016,-28.03579 z"
 | 
			
		||||
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       id="path4203" />
 | 
			
		||||
    <text
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       transform="scale(1.0549351,0.94792559)"
 | 
			
		||||
       id="text4240"
 | 
			
		||||
       y="880.93158"
 | 
			
		||||
       x="197.83252"
 | 
			
		||||
       style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       xml:space="preserve"><tspan
 | 
			
		||||
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:142.129px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif"
 | 
			
		||||
         y="880.93158"
 | 
			
		||||
         x="197.83252"
 | 
			
		||||
         id="tspan4242"
 | 
			
		||||
         sodipodi:role="line">CLOUD</tspan></text>
 | 
			
		||||
    <text
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       id="text4244"
 | 
			
		||||
       y="685.59955"
 | 
			
		||||
       x="554.62244"
 | 
			
		||||
       style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       xml:space="preserve"><tspan
 | 
			
		||||
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:90px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif"
 | 
			
		||||
         y="685.59955"
 | 
			
		||||
         x="554.62244"
 | 
			
		||||
         id="tspan4246"
 | 
			
		||||
         sodipodi:role="line">pen</tspan></text>
 | 
			
		||||
  </g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 5.8 KiB  | 
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 2.4 KiB  | 
										
											Binary file not shown.
										
									
								
							@@ -1 +0,0 @@
 | 
			
		||||
{"app_name":"oc_front","version":"1.0.0","build_number":"1","package_name":"oc_front"}
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,82 +0,0 @@
 | 
			
		||||
# ninja log v5
 | 
			
		||||
4837	4966	1719925438199633542	plugins/desktop_window/libdesktop_window_plugin.so	3d5ee8e4ec3cf1d0
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
4319	4837	1719925438067635324	plugins/desktop_window/CMakeFiles/desktop_window_plugin.dir/desktop_window_plugin.cc.o	f9f26580045750ab
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_value.h	9779dd0abe3f0b7c
 | 
			
		||||
5320	5755	1720106199968715516	CMakeFiles/oc_front.dir/my_application.cc.o	4ec87ad0095a5c67
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_view.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/flutter_linux.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h	9779dd0abe3f0b7c
 | 
			
		||||
5320	5739	1720106199952715806	CMakeFiles/oc_front.dir/flutter/generated_plugin_registrant.cc.o	3c63709113723fa9
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	flutter/_phony_	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
4316	4743	1719925437975636567	CMakeFiles/oc_front.dir/main.cc.o	c7cb056afffdd1c4
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_call.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_response.h	9779dd0abe3f0b7c
 | 
			
		||||
5755	5878	1720106200096713201	intermediates_do_not_run/oc_front	f9992acb89849d5e
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_engine.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
2	5320	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
5878	6034	0	CMakeFiles/install.util	50cfc09af436cf59
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_engine.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_call.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_response.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_value.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_view.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/flutter_linux.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5345	0	flutter/_phony_	9779dd0abe3f0b7c
 | 
			
		||||
5346	5771	1720106239132012480	CMakeFiles/oc_front.dir/flutter/generated_plugin_registrant.cc.o	3c63709113723fa9
 | 
			
		||||
5345	5788	1720106239148012195	CMakeFiles/oc_front.dir/my_application.cc.o	4ec87ad0095a5c67
 | 
			
		||||
5788	5916	1720106239276009914	intermediates_do_not_run/oc_front	f9992acb89849d5e
 | 
			
		||||
5916	6068	0	CMakeFiles/install.util	50cfc09af436cf59
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_engine.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_call.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_response.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_value.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_view.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/flutter_linux.h	9779dd0abe3f0b7c
 | 
			
		||||
3	5583	0	flutter/_phony_	9779dd0abe3f0b7c
 | 
			
		||||
5584	6002	1720106279707295237	CMakeFiles/oc_front.dir/flutter/generated_plugin_registrant.cc.o	3c63709113723fa9
 | 
			
		||||
5583	6040	1720106279743294606	CMakeFiles/oc_front.dir/my_application.cc.o	4ec87ad0095a5c67
 | 
			
		||||
6040	6224	1720106279931291307	intermediates_do_not_run/oc_front	f9992acb89849d5e
 | 
			
		||||
6224	6386	0	CMakeFiles/install.util	50cfc09af436cf59
 | 
			
		||||
@@ -1,525 +0,0 @@
 | 
			
		||||
# This is the CMakeCache file.
 | 
			
		||||
# For build in directory: /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug
 | 
			
		||||
# It was generated by CMake: /snap/flutter/145/usr/bin/cmake
 | 
			
		||||
# You can edit this file to change values found and used by cmake.
 | 
			
		||||
# If you do not want to change any of the values, simply exit the editor.
 | 
			
		||||
# If you do want to change a value, simply edit, save, and exit the editor.
 | 
			
		||||
# The syntax for the file is as follows:
 | 
			
		||||
# KEY:TYPE=VALUE
 | 
			
		||||
# KEY is the name of a variable in the cache.
 | 
			
		||||
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
 | 
			
		||||
# VALUE is the current value for the KEY.
 | 
			
		||||
 | 
			
		||||
########################
 | 
			
		||||
# EXTERNAL cache entries
 | 
			
		||||
########################
 | 
			
		||||
 | 
			
		||||
//Path to a program.
 | 
			
		||||
CMAKE_ADDR2LINE:FILEPATH=/snap/flutter/current/usr/bin/addr2line
 | 
			
		||||
 | 
			
		||||
//Path to a program.
 | 
			
		||||
CMAKE_AR:FILEPATH=/snap/flutter/current/usr/bin/ar
 | 
			
		||||
 | 
			
		||||
//Choose the type of build, options are: None Debug Release RelWithDebInfo
 | 
			
		||||
// MinSizeRel ...
 | 
			
		||||
CMAKE_BUILD_TYPE:STRING=Debug
 | 
			
		||||
 | 
			
		||||
//CXX compiler
 | 
			
		||||
CMAKE_CXX_COMPILER:FILEPATH=/snap/flutter/current/usr/bin/clang++
 | 
			
		||||
 | 
			
		||||
//LLVM archiver
 | 
			
		||||
CMAKE_CXX_COMPILER_AR:FILEPATH=CMAKE_CXX_COMPILER_AR-NOTFOUND
 | 
			
		||||
 | 
			
		||||
//Generate index for LLVM archive
 | 
			
		||||
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND
 | 
			
		||||
 | 
			
		||||
//Flags used by the CXX compiler during all build types.
 | 
			
		||||
CMAKE_CXX_FLAGS:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the CXX compiler during DEBUG builds.
 | 
			
		||||
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
 | 
			
		||||
 | 
			
		||||
//Flags used by the CXX compiler during MINSIZEREL builds.
 | 
			
		||||
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
 | 
			
		||||
 | 
			
		||||
//Flags used by the CXX compiler during RELEASE builds.
 | 
			
		||||
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
 | 
			
		||||
 | 
			
		||||
//Flags used by the CXX compiler during RELWITHDEBINFO builds.
 | 
			
		||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
 | 
			
		||||
 | 
			
		||||
//Path to a program.
 | 
			
		||||
CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during all build types.
 | 
			
		||||
CMAKE_EXE_LINKER_FLAGS:STRING=-B/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -B/snap/flutter/current/usr/lib/x86_64-linux-gnu -B/snap/flutter/current/lib/x86_64-linux-gnu -B/snap/flutter/current/usr/lib/ -L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu -L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib/ -lblkid -lgcrypt -llzma -llz4 -lgpg-error -luuid -lpthread -ldl -lepoxy -lfontconfig
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during DEBUG builds.
 | 
			
		||||
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during MINSIZEREL builds.
 | 
			
		||||
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during RELEASE builds.
 | 
			
		||||
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during RELWITHDEBINFO builds.
 | 
			
		||||
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
 | 
			
		||||
 | 
			
		||||
//Enable/Disable output of compile commands during generation.
 | 
			
		||||
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
 | 
			
		||||
 | 
			
		||||
//...
 | 
			
		||||
CMAKE_INSTALL_PREFIX:PATH=/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle
 | 
			
		||||
 | 
			
		||||
//Path to a program.
 | 
			
		||||
CMAKE_LINKER:FILEPATH=/snap/flutter/current/usr/bin/ld
 | 
			
		||||
 | 
			
		||||
//Program used to build from build.ninja files.
 | 
			
		||||
CMAKE_MAKE_PROGRAM:FILEPATH=/snap/flutter/current/usr/bin/ninja
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of modules during
 | 
			
		||||
// all build types.
 | 
			
		||||
CMAKE_MODULE_LINKER_FLAGS:STRING=-B/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -B/snap/flutter/current/usr/lib/x86_64-linux-gnu -B/snap/flutter/current/lib/x86_64-linux-gnu -B/snap/flutter/current/usr/lib/ -L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu -L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib/ -lblkid -lgcrypt -llzma -llz4 -lgpg-error -luuid -lpthread -ldl -lepoxy -lfontconfig
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of modules during
 | 
			
		||||
// DEBUG builds.
 | 
			
		||||
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of modules during
 | 
			
		||||
// MINSIZEREL builds.
 | 
			
		||||
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of modules during
 | 
			
		||||
// RELEASE builds.
 | 
			
		||||
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of modules during
 | 
			
		||||
// RELWITHDEBINFO builds.
 | 
			
		||||
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
 | 
			
		||||
 | 
			
		||||
//Path to a program.
 | 
			
		||||
CMAKE_NM:FILEPATH=/snap/flutter/current/usr/bin/nm
 | 
			
		||||
 | 
			
		||||
//Path to a program.
 | 
			
		||||
CMAKE_OBJCOPY:FILEPATH=/snap/flutter/current/usr/bin/objcopy
 | 
			
		||||
 | 
			
		||||
//Path to a program.
 | 
			
		||||
CMAKE_OBJDUMP:FILEPATH=/snap/flutter/current/usr/bin/objdump
 | 
			
		||||
 | 
			
		||||
//Value Computed by CMake
 | 
			
		||||
CMAKE_PROJECT_DESCRIPTION:STATIC=
 | 
			
		||||
 | 
			
		||||
//Value Computed by CMake
 | 
			
		||||
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
 | 
			
		||||
 | 
			
		||||
//Value Computed by CMake
 | 
			
		||||
CMAKE_PROJECT_NAME:STATIC=runner
 | 
			
		||||
 | 
			
		||||
//Path to a program.
 | 
			
		||||
CMAKE_RANLIB:FILEPATH=/snap/flutter/current/usr/bin/ranlib
 | 
			
		||||
 | 
			
		||||
//Path to a program.
 | 
			
		||||
CMAKE_READELF:FILEPATH=/snap/flutter/current/usr/bin/readelf
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of shared libraries
 | 
			
		||||
// during all build types.
 | 
			
		||||
CMAKE_SHARED_LINKER_FLAGS:STRING=-B/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -B/snap/flutter/current/usr/lib/x86_64-linux-gnu -B/snap/flutter/current/lib/x86_64-linux-gnu -B/snap/flutter/current/usr/lib/ -L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu -L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib/ -lblkid -lgcrypt -llzma -llz4 -lgpg-error -luuid -lpthread -ldl -lepoxy -lfontconfig
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of shared libraries
 | 
			
		||||
// during DEBUG builds.
 | 
			
		||||
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of shared libraries
 | 
			
		||||
// during MINSIZEREL builds.
 | 
			
		||||
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of shared libraries
 | 
			
		||||
// during RELEASE builds.
 | 
			
		||||
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of shared libraries
 | 
			
		||||
// during RELWITHDEBINFO builds.
 | 
			
		||||
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
 | 
			
		||||
 | 
			
		||||
//If set, runtime paths are not added when installing shared libraries,
 | 
			
		||||
// but are added when building.
 | 
			
		||||
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
 | 
			
		||||
 | 
			
		||||
//If set, runtime paths are not added when using shared libraries.
 | 
			
		||||
CMAKE_SKIP_RPATH:BOOL=NO
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of static libraries
 | 
			
		||||
// during all build types.
 | 
			
		||||
CMAKE_STATIC_LINKER_FLAGS:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of static libraries
 | 
			
		||||
// during DEBUG builds.
 | 
			
		||||
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of static libraries
 | 
			
		||||
// during MINSIZEREL builds.
 | 
			
		||||
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of static libraries
 | 
			
		||||
// during RELEASE builds.
 | 
			
		||||
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
 | 
			
		||||
 | 
			
		||||
//Flags used by the linker during the creation of static libraries
 | 
			
		||||
// during RELWITHDEBINFO builds.
 | 
			
		||||
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
 | 
			
		||||
 | 
			
		||||
//Path to a program.
 | 
			
		||||
CMAKE_STRIP:FILEPATH=/snap/flutter/current/usr/bin/strip
 | 
			
		||||
 | 
			
		||||
//If this value is on, makefiles will be generated without the
 | 
			
		||||
// .SILENT directive, and all commands will be echoed to the console
 | 
			
		||||
// during the make.  This is useful for debugging only. With Visual
 | 
			
		||||
// Studio IDE projects all commands are done without /nologo.
 | 
			
		||||
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
 | 
			
		||||
 | 
			
		||||
//No help, variable specified on the command line.
 | 
			
		||||
FLUTTER_TARGET_PLATFORM:UNINITIALIZED=linux-x64
 | 
			
		||||
 | 
			
		||||
//pkg-config executable
 | 
			
		||||
PKG_CONFIG_EXECUTABLE:FILEPATH=/snap/flutter/current/usr/bin/pkg-config
 | 
			
		||||
 | 
			
		||||
//Value Computed by CMake
 | 
			
		||||
desktop_window_BINARY_DIR:STATIC=/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window
 | 
			
		||||
 | 
			
		||||
//Value Computed by CMake
 | 
			
		||||
desktop_window_SOURCE_DIR:STATIC=/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/.plugin_symlinks/desktop_window/linux
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GIO_gio-2.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libgio-2.0.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GIO_glib-2.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libglib-2.0.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GIO_gobject-2.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libgobject-2.0.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GLIB_glib-2.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libglib-2.0.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_atk-1.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libatk-1.0.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_cairo:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_cairo-gobject:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo-gobject.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_gdk-3:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk-3.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_gdk_pixbuf-2.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_gio-2.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libgio-2.0.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_glib-2.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libglib-2.0.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_gobject-2.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libgobject-2.0.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_gtk-3:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libgtk-3.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_harfbuzz:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libharfbuzz.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_pango-1.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libpango-1.0.so
 | 
			
		||||
 | 
			
		||||
//Path to a library.
 | 
			
		||||
pkgcfg_lib_GTK_pangocairo-1.0:FILEPATH=/snap/flutter/current/usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so
 | 
			
		||||
 | 
			
		||||
//Value Computed by CMake
 | 
			
		||||
runner_BINARY_DIR:STATIC=/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug
 | 
			
		||||
 | 
			
		||||
//Value Computed by CMake
 | 
			
		||||
runner_SOURCE_DIR:STATIC=/home/mr/Documents/OC/oc-front/oc_front/linux
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
########################
 | 
			
		||||
# INTERNAL cache entries
 | 
			
		||||
########################
 | 
			
		||||
 | 
			
		||||
//ADVANCED property for variable: CMAKE_ADDR2LINE
 | 
			
		||||
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_AR
 | 
			
		||||
CMAKE_AR-ADVANCED:INTERNAL=1
 | 
			
		||||
//This is the directory where this CMakeCache.txt was created
 | 
			
		||||
CMAKE_CACHEFILE_DIR:INTERNAL=/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug
 | 
			
		||||
//Major version of cmake used to create the current loaded cache
 | 
			
		||||
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
 | 
			
		||||
//Minor version of cmake used to create the current loaded cache
 | 
			
		||||
CMAKE_CACHE_MINOR_VERSION:INTERNAL=16
 | 
			
		||||
//Patch version of cmake used to create the current loaded cache
 | 
			
		||||
CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
 | 
			
		||||
//Path to CMake executable.
 | 
			
		||||
CMAKE_COMMAND:INTERNAL=/snap/flutter/145/usr/bin/cmake
 | 
			
		||||
//Path to cpack program executable.
 | 
			
		||||
CMAKE_CPACK_COMMAND:INTERNAL=/snap/flutter/145/usr/bin/cpack
 | 
			
		||||
//Path to ctest program executable.
 | 
			
		||||
CMAKE_CTEST_COMMAND:INTERNAL=/snap/flutter/145/usr/bin/ctest
 | 
			
		||||
//ADVANCED property for variable: CMAKE_CXX_COMPILER
 | 
			
		||||
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
 | 
			
		||||
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
 | 
			
		||||
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS
 | 
			
		||||
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
 | 
			
		||||
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
 | 
			
		||||
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
 | 
			
		||||
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
 | 
			
		||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_DLLTOOL
 | 
			
		||||
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
 | 
			
		||||
//Executable file format
 | 
			
		||||
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
 | 
			
		||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
 | 
			
		||||
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
 | 
			
		||||
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
 | 
			
		||||
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
 | 
			
		||||
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
 | 
			
		||||
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
 | 
			
		||||
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
 | 
			
		||||
//Name of external makefile project generator.
 | 
			
		||||
CMAKE_EXTRA_GENERATOR:INTERNAL=
 | 
			
		||||
//Name of generator.
 | 
			
		||||
CMAKE_GENERATOR:INTERNAL=Ninja
 | 
			
		||||
//Generator instance identifier.
 | 
			
		||||
CMAKE_GENERATOR_INSTANCE:INTERNAL=
 | 
			
		||||
//Name of generator platform.
 | 
			
		||||
CMAKE_GENERATOR_PLATFORM:INTERNAL=
 | 
			
		||||
//Name of generator toolset.
 | 
			
		||||
CMAKE_GENERATOR_TOOLSET:INTERNAL=
 | 
			
		||||
//Source directory with the top level CMakeLists.txt file for this
 | 
			
		||||
// project
 | 
			
		||||
CMAKE_HOME_DIRECTORY:INTERNAL=/home/mr/Documents/OC/oc-front/oc_front/linux
 | 
			
		||||
//Install .so files without execute permission.
 | 
			
		||||
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_LINKER
 | 
			
		||||
CMAKE_LINKER-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
 | 
			
		||||
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
 | 
			
		||||
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
 | 
			
		||||
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
 | 
			
		||||
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
 | 
			
		||||
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
 | 
			
		||||
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_NM
 | 
			
		||||
CMAKE_NM-ADVANCED:INTERNAL=1
 | 
			
		||||
//number of local generators
 | 
			
		||||
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=3
 | 
			
		||||
//ADVANCED property for variable: CMAKE_OBJCOPY
 | 
			
		||||
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_OBJDUMP
 | 
			
		||||
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
 | 
			
		||||
//Platform information initialized
 | 
			
		||||
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_RANLIB
 | 
			
		||||
CMAKE_RANLIB-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_READELF
 | 
			
		||||
CMAKE_READELF-ADVANCED:INTERNAL=1
 | 
			
		||||
//Path to CMake installation.
 | 
			
		||||
CMAKE_ROOT:INTERNAL=/snap/flutter/145/usr/share/cmake-3.16
 | 
			
		||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
 | 
			
		||||
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
 | 
			
		||||
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
 | 
			
		||||
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
 | 
			
		||||
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
 | 
			
		||||
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
 | 
			
		||||
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_SKIP_RPATH
 | 
			
		||||
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
 | 
			
		||||
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
 | 
			
		||||
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
 | 
			
		||||
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
 | 
			
		||||
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
 | 
			
		||||
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: CMAKE_STRIP
 | 
			
		||||
CMAKE_STRIP-ADVANCED:INTERNAL=1
 | 
			
		||||
//uname command
 | 
			
		||||
CMAKE_UNAME:INTERNAL=/usr/bin/uname
 | 
			
		||||
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
 | 
			
		||||
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
 | 
			
		||||
//Details about finding PkgConfig
 | 
			
		||||
FIND_PACKAGE_MESSAGE_DETAILS_PkgConfig:INTERNAL=[/snap/flutter/current/usr/bin/pkg-config][v0.29.1()]
 | 
			
		||||
GIO_CFLAGS:INTERNAL=-pthread;-I/snap/flutter/current/usr/include/libmount;-I/snap/flutter/current/usr/include/blkid;-I/snap/flutter/current/usr/include/glib-2.0;-I/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GIO_CFLAGS_I:INTERNAL=
 | 
			
		||||
GIO_CFLAGS_OTHER:INTERNAL=-pthread
 | 
			
		||||
GIO_FOUND:INTERNAL=1
 | 
			
		||||
GIO_INCLUDEDIR:INTERNAL=/snap/flutter/current/usr/include
 | 
			
		||||
GIO_INCLUDE_DIRS:INTERNAL=/snap/flutter/current/usr/include/libmount;/snap/flutter/current/usr/include/blkid;/snap/flutter/current/usr/include/glib-2.0;/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GIO_LDFLAGS:INTERNAL=-L/snap/flutter/current/usr/lib/x86_64-linux-gnu;-lgio-2.0;-lgobject-2.0;-lglib-2.0
 | 
			
		||||
GIO_LDFLAGS_OTHER:INTERNAL=
 | 
			
		||||
GIO_LIBDIR:INTERNAL=/snap/flutter/current/usr/lib/x86_64-linux-gnu
 | 
			
		||||
GIO_LIBRARIES:INTERNAL=gio-2.0;gobject-2.0;glib-2.0
 | 
			
		||||
GIO_LIBRARY_DIRS:INTERNAL=/snap/flutter/current/usr/lib/x86_64-linux-gnu
 | 
			
		||||
GIO_LIBS:INTERNAL=
 | 
			
		||||
GIO_LIBS_L:INTERNAL=
 | 
			
		||||
GIO_LIBS_OTHER:INTERNAL=
 | 
			
		||||
GIO_LIBS_PATHS:INTERNAL=
 | 
			
		||||
GIO_MODULE_NAME:INTERNAL=gio-2.0
 | 
			
		||||
GIO_PREFIX:INTERNAL=/snap/flutter/current/usr
 | 
			
		||||
GIO_STATIC_CFLAGS:INTERNAL=-pthread;-I/snap/flutter/current/usr/include/libmount;-I/snap/flutter/current/usr/include/blkid;-I/snap/flutter/current/usr/include/glib-2.0;-I/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GIO_STATIC_CFLAGS_I:INTERNAL=
 | 
			
		||||
GIO_STATIC_CFLAGS_OTHER:INTERNAL=-pthread
 | 
			
		||||
GIO_STATIC_INCLUDE_DIRS:INTERNAL=/snap/flutter/current/usr/include/libmount;/snap/flutter/current/usr/include/blkid;/snap/flutter/current/usr/include/glib-2.0;/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GIO_STATIC_LDFLAGS:INTERNAL=-L/snap/flutter/current/usr/lib/x86_64-linux-gnu;-L/snap/flutter/current/usr/lib;-L/snap/flutter/current/usr/lib/x86_64-linux-gnu;-lgio-2.0;-ldl;-pthread;-lresolv;-lgmodule-2.0;-pthread;-ldl;-lz;-lmount;-lblkid;-lselinux;-lsepol;-lpcre2-8;-pthread;-lgobject-2.0;-pthread;-lffi;-lglib-2.0;-pthread;-lpcre;-pthread
 | 
			
		||||
GIO_STATIC_LDFLAGS_OTHER:INTERNAL=-pthread
 | 
			
		||||
GIO_STATIC_LIBDIR:INTERNAL=
 | 
			
		||||
GIO_STATIC_LIBRARIES:INTERNAL=gio-2.0;dl;resolv;gmodule-2.0;dl;z;mount;blkid;selinux;sepol;pcre2-8;gobject-2.0;ffi;glib-2.0;pcre
 | 
			
		||||
GIO_STATIC_LIBRARY_DIRS:INTERNAL=/snap/flutter/current/usr/lib/x86_64-linux-gnu;/snap/flutter/current/usr/lib;/snap/flutter/current/usr/lib/x86_64-linux-gnu
 | 
			
		||||
GIO_STATIC_LIBS:INTERNAL=
 | 
			
		||||
GIO_STATIC_LIBS_L:INTERNAL=
 | 
			
		||||
GIO_STATIC_LIBS_OTHER:INTERNAL=
 | 
			
		||||
GIO_STATIC_LIBS_PATHS:INTERNAL=
 | 
			
		||||
GIO_VERSION:INTERNAL=2.64.6
 | 
			
		||||
GIO_gio-2.0_INCLUDEDIR:INTERNAL=
 | 
			
		||||
GIO_gio-2.0_LIBDIR:INTERNAL=
 | 
			
		||||
GIO_gio-2.0_PREFIX:INTERNAL=
 | 
			
		||||
GIO_gio-2.0_VERSION:INTERNAL=
 | 
			
		||||
GLIB_CFLAGS:INTERNAL=-I/snap/flutter/current/usr/include/glib-2.0;-I/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GLIB_CFLAGS_I:INTERNAL=
 | 
			
		||||
GLIB_CFLAGS_OTHER:INTERNAL=
 | 
			
		||||
GLIB_FOUND:INTERNAL=1
 | 
			
		||||
GLIB_INCLUDEDIR:INTERNAL=/snap/flutter/current/usr/include
 | 
			
		||||
GLIB_INCLUDE_DIRS:INTERNAL=/snap/flutter/current/usr/include/glib-2.0;/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GLIB_LDFLAGS:INTERNAL=-L/snap/flutter/current/usr/lib/x86_64-linux-gnu;-lglib-2.0
 | 
			
		||||
GLIB_LDFLAGS_OTHER:INTERNAL=
 | 
			
		||||
GLIB_LIBDIR:INTERNAL=/snap/flutter/current/usr/lib/x86_64-linux-gnu
 | 
			
		||||
GLIB_LIBRARIES:INTERNAL=glib-2.0
 | 
			
		||||
GLIB_LIBRARY_DIRS:INTERNAL=/snap/flutter/current/usr/lib/x86_64-linux-gnu
 | 
			
		||||
GLIB_LIBS:INTERNAL=
 | 
			
		||||
GLIB_LIBS_L:INTERNAL=
 | 
			
		||||
GLIB_LIBS_OTHER:INTERNAL=
 | 
			
		||||
GLIB_LIBS_PATHS:INTERNAL=
 | 
			
		||||
GLIB_MODULE_NAME:INTERNAL=glib-2.0
 | 
			
		||||
GLIB_PREFIX:INTERNAL=/snap/flutter/current/usr
 | 
			
		||||
GLIB_STATIC_CFLAGS:INTERNAL=-I/snap/flutter/current/usr/include/glib-2.0;-I/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GLIB_STATIC_CFLAGS_I:INTERNAL=
 | 
			
		||||
GLIB_STATIC_CFLAGS_OTHER:INTERNAL=
 | 
			
		||||
GLIB_STATIC_INCLUDE_DIRS:INTERNAL=/snap/flutter/current/usr/include/glib-2.0;/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GLIB_STATIC_LDFLAGS:INTERNAL=-L/snap/flutter/current/usr/lib/x86_64-linux-gnu;-lglib-2.0;-pthread;-lpcre;-pthread
 | 
			
		||||
GLIB_STATIC_LDFLAGS_OTHER:INTERNAL=-pthread
 | 
			
		||||
GLIB_STATIC_LIBDIR:INTERNAL=
 | 
			
		||||
GLIB_STATIC_LIBRARIES:INTERNAL=glib-2.0;pcre
 | 
			
		||||
GLIB_STATIC_LIBRARY_DIRS:INTERNAL=/snap/flutter/current/usr/lib/x86_64-linux-gnu
 | 
			
		||||
GLIB_STATIC_LIBS:INTERNAL=
 | 
			
		||||
GLIB_STATIC_LIBS_L:INTERNAL=
 | 
			
		||||
GLIB_STATIC_LIBS_OTHER:INTERNAL=
 | 
			
		||||
GLIB_STATIC_LIBS_PATHS:INTERNAL=
 | 
			
		||||
GLIB_VERSION:INTERNAL=2.64.6
 | 
			
		||||
GLIB_glib-2.0_INCLUDEDIR:INTERNAL=
 | 
			
		||||
GLIB_glib-2.0_LIBDIR:INTERNAL=
 | 
			
		||||
GLIB_glib-2.0_PREFIX:INTERNAL=
 | 
			
		||||
GLIB_glib-2.0_VERSION:INTERNAL=
 | 
			
		||||
GTK_CFLAGS:INTERNAL=-pthread;-I/snap/flutter/current/usr/include/gtk-3.0;-I/snap/flutter/current/usr/include/at-spi2-atk/2.0;-I/snap/flutter/current/usr/include/at-spi-2.0;-I/snap/flutter/current/usr/include/dbus-1.0;-I/snap/flutter/current/usr/lib/x86_64-linux-gnu/dbus-1.0/include;-I/snap/flutter/current/usr/include/gtk-3.0;-I/snap/flutter/current/usr/include/gio-unix-2.0;-I/snap/flutter/current/usr/include/cairo;-I/snap/flutter/current/usr/include/pango-1.0;-I/snap/flutter/current/usr/include/fribidi;-I/snap/flutter/current/usr/include/harfbuzz;-I/snap/flutter/current/usr/include/atk-1.0;-I/snap/flutter/current/usr/include/cairo;-I/snap/flutter/current/usr/include/pixman-1;-I/snap/flutter/current/usr/include/uuid;-I/snap/flutter/current/usr/include/freetype2;-I/snap/flutter/current/usr/include/libpng16;-I/snap/flutter/current/usr/include/gdk-pixbuf-2.0;-I/snap/flutter/current/usr/include/libmount;-I/snap/flutter/current/usr/include/blkid;-I/snap/flutter/current/usr/include/glib-2.0;-I/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GTK_CFLAGS_I:INTERNAL=
 | 
			
		||||
GTK_CFLAGS_OTHER:INTERNAL=-pthread
 | 
			
		||||
GTK_FOUND:INTERNAL=1
 | 
			
		||||
GTK_INCLUDEDIR:INTERNAL=/snap/flutter/current/usr/include
 | 
			
		||||
GTK_INCLUDE_DIRS:INTERNAL=/snap/flutter/current/usr/include/gtk-3.0;/snap/flutter/current/usr/include/at-spi2-atk/2.0;/snap/flutter/current/usr/include/at-spi-2.0;/snap/flutter/current/usr/include/dbus-1.0;/snap/flutter/current/usr/lib/x86_64-linux-gnu/dbus-1.0/include;/snap/flutter/current/usr/include/gtk-3.0;/snap/flutter/current/usr/include/gio-unix-2.0;/snap/flutter/current/usr/include/cairo;/snap/flutter/current/usr/include/pango-1.0;/snap/flutter/current/usr/include/fribidi;/snap/flutter/current/usr/include/harfbuzz;/snap/flutter/current/usr/include/atk-1.0;/snap/flutter/current/usr/include/cairo;/snap/flutter/current/usr/include/pixman-1;/snap/flutter/current/usr/include/uuid;/snap/flutter/current/usr/include/freetype2;/snap/flutter/current/usr/include/libpng16;/snap/flutter/current/usr/include/gdk-pixbuf-2.0;/snap/flutter/current/usr/include/libmount;/snap/flutter/current/usr/include/blkid;/snap/flutter/current/usr/include/glib-2.0;/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GTK_LDFLAGS:INTERNAL=-L/snap/flutter/current/usr/lib/x86_64-linux-gnu;-lgtk-3;-lgdk-3;-lpangocairo-1.0;-lpango-1.0;-lharfbuzz;-latk-1.0;-lcairo-gobject;-lcairo;-lgdk_pixbuf-2.0;-lgio-2.0;-lgobject-2.0;-lglib-2.0
 | 
			
		||||
GTK_LDFLAGS_OTHER:INTERNAL=
 | 
			
		||||
GTK_LIBDIR:INTERNAL=/snap/flutter/current/usr/lib/x86_64-linux-gnu
 | 
			
		||||
GTK_LIBRARIES:INTERNAL=gtk-3;gdk-3;pangocairo-1.0;pango-1.0;harfbuzz;atk-1.0;cairo-gobject;cairo;gdk_pixbuf-2.0;gio-2.0;gobject-2.0;glib-2.0
 | 
			
		||||
GTK_LIBRARY_DIRS:INTERNAL=/snap/flutter/current/usr/lib/x86_64-linux-gnu
 | 
			
		||||
GTK_LIBS:INTERNAL=
 | 
			
		||||
GTK_LIBS_L:INTERNAL=
 | 
			
		||||
GTK_LIBS_OTHER:INTERNAL=
 | 
			
		||||
GTK_LIBS_PATHS:INTERNAL=
 | 
			
		||||
GTK_MODULE_NAME:INTERNAL=gtk+-3.0
 | 
			
		||||
GTK_PREFIX:INTERNAL=/snap/flutter/current/usr
 | 
			
		||||
GTK_STATIC_CFLAGS:INTERNAL=-pthread;-I/snap/flutter/current/usr/include/gtk-3.0;-I/snap/flutter/current/usr/include/at-spi2-atk/2.0;-I/snap/flutter/current/usr/include/at-spi-2.0;-I/snap/flutter/current/usr/include/dbus-1.0;-I/snap/flutter/current/usr/lib/x86_64-linux-gnu/dbus-1.0/include;-I/snap/flutter/current/usr/include/gtk-3.0;-I/snap/flutter/current/usr/include/gio-unix-2.0;-I/snap/flutter/current/usr/include/cairo;-I/snap/flutter/current/usr/include/pango-1.0;-I/snap/flutter/current/usr/include/fribidi;-I/snap/flutter/current/usr/include/harfbuzz;-I/snap/flutter/current/usr/include/atk-1.0;-I/snap/flutter/current/usr/include/cairo;-I/snap/flutter/current/usr/include/pixman-1;-I/snap/flutter/current/usr/include/uuid;-I/snap/flutter/current/usr/include/freetype2;-I/snap/flutter/current/usr/include/libpng16;-I/snap/flutter/current/usr/include/gdk-pixbuf-2.0;-I/snap/flutter/current/usr/include/libmount;-I/snap/flutter/current/usr/include/blkid;-I/snap/flutter/current/usr/include/glib-2.0;-I/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GTK_STATIC_CFLAGS_I:INTERNAL=
 | 
			
		||||
GTK_STATIC_CFLAGS_OTHER:INTERNAL=-pthread
 | 
			
		||||
GTK_STATIC_INCLUDE_DIRS:INTERNAL=/snap/flutter/current/usr/include/gtk-3.0;/snap/flutter/current/usr/include/at-spi2-atk/2.0;/snap/flutter/current/usr/include/at-spi-2.0;/snap/flutter/current/usr/include/dbus-1.0;/snap/flutter/current/usr/lib/x86_64-linux-gnu/dbus-1.0/include;/snap/flutter/current/usr/include/gtk-3.0;/snap/flutter/current/usr/include/gio-unix-2.0;/snap/flutter/current/usr/include/cairo;/snap/flutter/current/usr/include/pango-1.0;/snap/flutter/current/usr/include/fribidi;/snap/flutter/current/usr/include/harfbuzz;/snap/flutter/current/usr/include/atk-1.0;/snap/flutter/current/usr/include/cairo;/snap/flutter/current/usr/include/pixman-1;/snap/flutter/current/usr/include/uuid;/snap/flutter/current/usr/include/freetype2;/snap/flutter/current/usr/include/libpng16;/snap/flutter/current/usr/include/gdk-pixbuf-2.0;/snap/flutter/current/usr/include/libmount;/snap/flutter/current/usr/include/blkid;/snap/flutter/current/usr/include/glib-2.0;/snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
GTK_STATIC_LDFLAGS:INTERNAL=-L/snap/flutter/current/usr/lib/x86_64-linux-gnu;-L/snap/flutter/current/usr/lib;-L/snap/flutter/current/usr/lib/x86_64-linux-gnu;-lgtk-3;-latk-bridge-2.0;-latspi;-lXtst;-ldbus-1;-lpthread;-lsystemd;-Wl,--export-dynamic;-lgdk-3;-lXinerama;-lXi;-lXrandr;-lXcursor;-lXcomposite;-lXdamage;-lXfixes;-lxkbcommon;-lwayland-cursor;-lwayland-egl;-lwayland-client;-lepoxy;-ldl;-lGL;-lEGL;-lpangocairo-1.0;-lm;-lpangoft2-1.0;-lm;-lpango-1.0;-lm;-lfribidi;-lthai;-ldatrie;-lXft;-lharfbuzz;-lm;-lgraphite2;-latk-1.0;-lcairo-gobject;-lcairo;-lz;-lpixman-1;-lfontconfig;-luuid;-lexpat;-lfreetype;-lpng16;-lm;-lz;-lm;-lxcb-shm;-lxcb-render;-lXrender;-lXext;-lX11;-lpthread;-lxcb;-lXau;-lXdmcp;-lgdk_pixbuf-2.0;-lm;-lgio-2.0;-ldl;-pthread;-lresolv;-lgmodule-2.0;-pthread;-ldl;-lz;-lmount;-lblkid;-lselinux;-lsepol;-lpcre2-8;-pthread;-lgobject-2.0;-pthread;-lffi;-lglib-2.0;-pthread;-lpcre;-pthread
 | 
			
		||||
GTK_STATIC_LDFLAGS_OTHER:INTERNAL=-Wl,--export-dynamic;-pthread
 | 
			
		||||
GTK_STATIC_LIBDIR:INTERNAL=
 | 
			
		||||
GTK_STATIC_LIBRARIES:INTERNAL=gtk-3;atk-bridge-2.0;atspi;Xtst;dbus-1;pthread;systemd;gdk-3;Xinerama;Xi;Xrandr;Xcursor;Xcomposite;Xdamage;Xfixes;xkbcommon;wayland-cursor;wayland-egl;wayland-client;epoxy;dl;GL;EGL;pangocairo-1.0;m;pangoft2-1.0;m;pango-1.0;m;fribidi;thai;datrie;Xft;harfbuzz;m;graphite2;atk-1.0;cairo-gobject;cairo;z;pixman-1;fontconfig;uuid;expat;freetype;png16;m;z;m;xcb-shm;xcb-render;Xrender;Xext;X11;pthread;xcb;Xau;Xdmcp;gdk_pixbuf-2.0;m;gio-2.0;dl;resolv;gmodule-2.0;dl;z;mount;blkid;selinux;sepol;pcre2-8;gobject-2.0;ffi;glib-2.0;pcre
 | 
			
		||||
GTK_STATIC_LIBRARY_DIRS:INTERNAL=/snap/flutter/current/usr/lib/x86_64-linux-gnu;/snap/flutter/current/usr/lib;/snap/flutter/current/usr/lib/x86_64-linux-gnu
 | 
			
		||||
GTK_STATIC_LIBS:INTERNAL=
 | 
			
		||||
GTK_STATIC_LIBS_L:INTERNAL=
 | 
			
		||||
GTK_STATIC_LIBS_OTHER:INTERNAL=
 | 
			
		||||
GTK_STATIC_LIBS_PATHS:INTERNAL=
 | 
			
		||||
GTK_VERSION:INTERNAL=3.24.20
 | 
			
		||||
GTK_gtk+-3.0_INCLUDEDIR:INTERNAL=
 | 
			
		||||
GTK_gtk+-3.0_LIBDIR:INTERNAL=
 | 
			
		||||
GTK_gtk+-3.0_PREFIX:INTERNAL=
 | 
			
		||||
GTK_gtk+-3.0_VERSION:INTERNAL=
 | 
			
		||||
//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE
 | 
			
		||||
PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1
 | 
			
		||||
__pkg_config_arguments_GIO:INTERNAL=REQUIRED;IMPORTED_TARGET;gio-2.0
 | 
			
		||||
__pkg_config_arguments_GLIB:INTERNAL=REQUIRED;IMPORTED_TARGET;glib-2.0
 | 
			
		||||
__pkg_config_arguments_GTK:INTERNAL=REQUIRED;IMPORTED_TARGET;gtk+-3.0
 | 
			
		||||
__pkg_config_checked_GIO:INTERNAL=1
 | 
			
		||||
__pkg_config_checked_GLIB:INTERNAL=1
 | 
			
		||||
__pkg_config_checked_GTK:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GIO_gio-2.0
 | 
			
		||||
pkgcfg_lib_GIO_gio-2.0-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GIO_glib-2.0
 | 
			
		||||
pkgcfg_lib_GIO_glib-2.0-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GIO_gobject-2.0
 | 
			
		||||
pkgcfg_lib_GIO_gobject-2.0-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GLIB_glib-2.0
 | 
			
		||||
pkgcfg_lib_GLIB_glib-2.0-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_atk-1.0
 | 
			
		||||
pkgcfg_lib_GTK_atk-1.0-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_cairo
 | 
			
		||||
pkgcfg_lib_GTK_cairo-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_cairo-gobject
 | 
			
		||||
pkgcfg_lib_GTK_cairo-gobject-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_gdk-3
 | 
			
		||||
pkgcfg_lib_GTK_gdk-3-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_gdk_pixbuf-2.0
 | 
			
		||||
pkgcfg_lib_GTK_gdk_pixbuf-2.0-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_gio-2.0
 | 
			
		||||
pkgcfg_lib_GTK_gio-2.0-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_glib-2.0
 | 
			
		||||
pkgcfg_lib_GTK_glib-2.0-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_gobject-2.0
 | 
			
		||||
pkgcfg_lib_GTK_gobject-2.0-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_gtk-3
 | 
			
		||||
pkgcfg_lib_GTK_gtk-3-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_harfbuzz
 | 
			
		||||
pkgcfg_lib_GTK_harfbuzz-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_pango-1.0
 | 
			
		||||
pkgcfg_lib_GTK_pango-1.0-ADVANCED:INTERNAL=1
 | 
			
		||||
//ADVANCED property for variable: pkgcfg_lib_GTK_pangocairo-1.0
 | 
			
		||||
pkgcfg_lib_GTK_pangocairo-1.0-ADVANCED:INTERNAL=1
 | 
			
		||||
prefix_result:INTERNAL=/snap/flutter/current/usr/lib/x86_64-linux-gnu
 | 
			
		||||
 | 
			
		||||
@@ -1,88 +0,0 @@
 | 
			
		||||
set(CMAKE_CXX_COMPILER "/snap/flutter/current/usr/bin/clang++")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ARG1 "")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ID "Clang")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_VERSION "10.0.0")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_WRAPPER "")
 | 
			
		||||
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
 | 
			
		||||
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20")
 | 
			
		||||
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
 | 
			
		||||
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
 | 
			
		||||
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
 | 
			
		||||
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
 | 
			
		||||
set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_PLATFORM_ID "Linux")
 | 
			
		||||
set(CMAKE_CXX_SIMULATE_ID "")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
 | 
			
		||||
set(CMAKE_CXX_SIMULATE_VERSION "")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(CMAKE_AR "/snap/flutter/current/usr/bin/ar")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_AR "CMAKE_CXX_COMPILER_AR-NOTFOUND")
 | 
			
		||||
set(CMAKE_RANLIB "/snap/flutter/current/usr/bin/ranlib")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_RANLIB "CMAKE_CXX_COMPILER_RANLIB-NOTFOUND")
 | 
			
		||||
set(CMAKE_LINKER "/snap/flutter/current/usr/bin/ld")
 | 
			
		||||
set(CMAKE_MT "")
 | 
			
		||||
set(CMAKE_COMPILER_IS_GNUCXX )
 | 
			
		||||
set(CMAKE_CXX_COMPILER_LOADED 1)
 | 
			
		||||
set(CMAKE_CXX_COMPILER_WORKS TRUE)
 | 
			
		||||
set(CMAKE_CXX_ABI_COMPILED TRUE)
 | 
			
		||||
set(CMAKE_COMPILER_IS_MINGW )
 | 
			
		||||
set(CMAKE_COMPILER_IS_CYGWIN )
 | 
			
		||||
if(CMAKE_COMPILER_IS_CYGWIN)
 | 
			
		||||
  set(CYGWIN 1)
 | 
			
		||||
  set(UNIX 1)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
 | 
			
		||||
 | 
			
		||||
if(CMAKE_COMPILER_IS_MINGW)
 | 
			
		||||
  set(MINGW 1)
 | 
			
		||||
endif()
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ID_RUN 1)
 | 
			
		||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
 | 
			
		||||
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
 | 
			
		||||
 | 
			
		||||
foreach (lang C OBJC OBJCXX)
 | 
			
		||||
  if (CMAKE_${lang}_COMPILER_ID_RUN)
 | 
			
		||||
    foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
 | 
			
		||||
      list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
 | 
			
		||||
    endforeach()
 | 
			
		||||
  endif()
 | 
			
		||||
endforeach()
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_LINKER_PREFERENCE 30)
 | 
			
		||||
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
 | 
			
		||||
 | 
			
		||||
# Save compiler ABI information.
 | 
			
		||||
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
 | 
			
		||||
set(CMAKE_CXX_COMPILER_ABI "ELF")
 | 
			
		||||
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
 | 
			
		||||
 | 
			
		||||
if(CMAKE_CXX_SIZEOF_DATA_PTR)
 | 
			
		||||
  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(CMAKE_CXX_COMPILER_ABI)
 | 
			
		||||
  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
 | 
			
		||||
  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
 | 
			
		||||
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
 | 
			
		||||
  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/snap/flutter/current/usr/include/x86_64-linux-gnu/c++/9;/snap/flutter/current/usr/include/c++/9;/snap/flutter/current/usr/include;/snap/flutter/current/usr/include/x86_64-linux-gnu;/snap/flutter/current/usr/include/c++/10;/snap/flutter/current/usr/include/x86_64-linux-gnu/c++/10;/snap/flutter/current/usr/include/c++/10/backward;/usr/local/include;/snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0/include;/usr/include/x86_64-linux-gnu;/usr/include")
 | 
			
		||||
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "blkid;gcrypt;lzma;lz4;gpg-error;uuid;pthread;dl;epoxy;fontconfig;stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
 | 
			
		||||
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9;/snap/flutter/current/usr/lib/x86_64-linux-gnu;/snap/flutter/current/lib/x86_64-linux-gnu;/snap/flutter/current/usr/lib;/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/10;/lib/x86_64-linux-gnu;/lib64;/usr/lib/x86_64-linux-gnu;/usr/lib64;/snap/flutter/145/usr/lib/llvm-10/lib;/lib;/usr/lib")
 | 
			
		||||
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,15 +0,0 @@
 | 
			
		||||
set(CMAKE_HOST_SYSTEM "Linux-5.15.0-107-generic")
 | 
			
		||||
set(CMAKE_HOST_SYSTEM_NAME "Linux")
 | 
			
		||||
set(CMAKE_HOST_SYSTEM_VERSION "5.15.0-107-generic")
 | 
			
		||||
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
set(CMAKE_SYSTEM "Linux-5.15.0-107-generic")
 | 
			
		||||
set(CMAKE_SYSTEM_NAME "Linux")
 | 
			
		||||
set(CMAKE_SYSTEM_VERSION "5.15.0-107-generic")
 | 
			
		||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CROSSCOMPILING "FALSE")
 | 
			
		||||
 | 
			
		||||
set(CMAKE_SYSTEM_LOADED 1)
 | 
			
		||||
@@ -1,660 +0,0 @@
 | 
			
		||||
/* This source file must have a .cpp extension so that all C++ compilers
 | 
			
		||||
   recognize the extension without flags.  Borland does not know .cxx for
 | 
			
		||||
   example.  */
 | 
			
		||||
#ifndef __cplusplus
 | 
			
		||||
# error "A C compiler has been selected for C++."
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Version number components: V=Version, R=Revision, P=Patch
 | 
			
		||||
   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
 | 
			
		||||
 | 
			
		||||
#if defined(__COMO__)
 | 
			
		||||
# define COMPILER_ID "Comeau"
 | 
			
		||||
  /* __COMO_VERSION__ = VRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
 | 
			
		||||
 | 
			
		||||
#elif defined(__INTEL_COMPILER) || defined(__ICC)
 | 
			
		||||
# define COMPILER_ID "Intel"
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
#  define SIMULATE_ID "MSVC"
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC__)
 | 
			
		||||
#  define SIMULATE_ID "GNU"
 | 
			
		||||
# endif
 | 
			
		||||
  /* __INTEL_COMPILER = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
 | 
			
		||||
# if defined(__INTEL_COMPILER_UPDATE)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
 | 
			
		||||
# else
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
 | 
			
		||||
  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
 | 
			
		||||
#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
   /* _MSC_VER = VVRR */
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC__)
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
 | 
			
		||||
# elif defined(__GNUG__)
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_MINOR__)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_PATCHLEVEL__)
 | 
			
		||||
#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__PATHCC__)
 | 
			
		||||
# define COMPILER_ID "PathScale"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
 | 
			
		||||
# if defined(__PATHCC_PATCHLEVEL__)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
 | 
			
		||||
# define COMPILER_ID "Embarcadero"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
 | 
			
		||||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
 | 
			
		||||
 | 
			
		||||
#elif defined(__BORLANDC__)
 | 
			
		||||
# define COMPILER_ID "Borland"
 | 
			
		||||
  /* __BORLANDC__ = 0xVRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
 | 
			
		||||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
 | 
			
		||||
# define COMPILER_ID "Watcom"
 | 
			
		||||
   /* __WATCOMC__ = VVRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
 | 
			
		||||
# if (__WATCOMC__ % 10) > 0
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__)
 | 
			
		||||
# define COMPILER_ID "OpenWatcom"
 | 
			
		||||
   /* __WATCOMC__ = VVRP + 1100 */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
 | 
			
		||||
# if (__WATCOMC__ % 10) > 0
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__SUNPRO_CC)
 | 
			
		||||
# define COMPILER_ID "SunPro"
 | 
			
		||||
# if __SUNPRO_CC >= 0x5100
 | 
			
		||||
   /* __SUNPRO_CC = 0xVRRP */
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
 | 
			
		||||
# else
 | 
			
		||||
   /* __SUNPRO_CC = 0xVRP */
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__HP_aCC)
 | 
			
		||||
# define COMPILER_ID "HP"
 | 
			
		||||
  /* __HP_aCC = VVRRPP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
 | 
			
		||||
 | 
			
		||||
#elif defined(__DECCXX)
 | 
			
		||||
# define COMPILER_ID "Compaq"
 | 
			
		||||
  /* __DECCXX_VER = VVRRTPPPP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
 | 
			
		||||
# define COMPILER_ID "zOS"
 | 
			
		||||
  /* __IBMCPP__ = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
 | 
			
		||||
 | 
			
		||||
#elif defined(__ibmxl__) && defined(__clang__)
 | 
			
		||||
# define COMPILER_ID "XLClang"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
 | 
			
		||||
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
 | 
			
		||||
# define COMPILER_ID "XL"
 | 
			
		||||
  /* __IBMCPP__ = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
 | 
			
		||||
# define COMPILER_ID "VisualAge"
 | 
			
		||||
  /* __IBMCPP__ = VRP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
 | 
			
		||||
 | 
			
		||||
#elif defined(__PGI)
 | 
			
		||||
# define COMPILER_ID "PGI"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
 | 
			
		||||
# if defined(__PGIC_PATCHLEVEL__)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(_CRAYC)
 | 
			
		||||
# define COMPILER_ID "Cray"
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
 | 
			
		||||
 | 
			
		||||
#elif defined(__TI_COMPILER_VERSION__)
 | 
			
		||||
# define COMPILER_ID "TI"
 | 
			
		||||
  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
 | 
			
		||||
 | 
			
		||||
#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
 | 
			
		||||
# define COMPILER_ID "Fujitsu"
 | 
			
		||||
 | 
			
		||||
#elif defined(__ghs__)
 | 
			
		||||
# define COMPILER_ID "GHS"
 | 
			
		||||
/* __GHS_VERSION_NUMBER = VVVVRP */
 | 
			
		||||
# ifdef __GHS_VERSION_NUMBER
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__SCO_VERSION__)
 | 
			
		||||
# define COMPILER_ID "SCO"
 | 
			
		||||
 | 
			
		||||
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
 | 
			
		||||
# define COMPILER_ID "ARMCC"
 | 
			
		||||
#if __ARMCC_VERSION >= 1000000
 | 
			
		||||
  /* __ARMCC_VERSION = VRRPPPP */
 | 
			
		||||
  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
 | 
			
		||||
  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
 | 
			
		||||
  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
 | 
			
		||||
#else
 | 
			
		||||
  /* __ARMCC_VERSION = VRPPPP */
 | 
			
		||||
  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
 | 
			
		||||
  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
 | 
			
		||||
  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#elif defined(__clang__) && defined(__apple_build_version__)
 | 
			
		||||
# define COMPILER_ID "AppleClang"
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
#  define SIMULATE_ID "MSVC"
 | 
			
		||||
# endif
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
   /* _MSC_VER = VVRR */
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# endif
 | 
			
		||||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
 | 
			
		||||
 | 
			
		||||
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
 | 
			
		||||
# define COMPILER_ID "ARMClang"
 | 
			
		||||
  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
 | 
			
		||||
  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
 | 
			
		||||
  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
 | 
			
		||||
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
 | 
			
		||||
 | 
			
		||||
#elif defined(__clang__)
 | 
			
		||||
# define COMPILER_ID "Clang"
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
#  define SIMULATE_ID "MSVC"
 | 
			
		||||
# endif
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
 | 
			
		||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
 | 
			
		||||
# if defined(_MSC_VER)
 | 
			
		||||
   /* _MSC_VER = VVRR */
 | 
			
		||||
#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__GNUC__) || defined(__GNUG__)
 | 
			
		||||
# define COMPILER_ID "GNU"
 | 
			
		||||
# if defined(__GNUC__)
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC(__GNUC__)
 | 
			
		||||
# else
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC(__GNUG__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_MINOR__)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(__GNUC_PATCHLEVEL__)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(_MSC_VER)
 | 
			
		||||
# define COMPILER_ID "MSVC"
 | 
			
		||||
  /* _MSC_VER = VVRR */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
 | 
			
		||||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
 | 
			
		||||
# if defined(_MSC_FULL_VER)
 | 
			
		||||
#  if _MSC_VER >= 1400
 | 
			
		||||
    /* _MSC_FULL_VER = VVRRPPPPP */
 | 
			
		||||
#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
 | 
			
		||||
#  else
 | 
			
		||||
    /* _MSC_FULL_VER = VVRRPPPP */
 | 
			
		||||
#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
 | 
			
		||||
#  endif
 | 
			
		||||
# endif
 | 
			
		||||
# if defined(_MSC_BUILD)
 | 
			
		||||
#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
 | 
			
		||||
# define COMPILER_ID "ADSP"
 | 
			
		||||
#if defined(__VISUALDSPVERSION__)
 | 
			
		||||
  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
 | 
			
		||||
# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
 | 
			
		||||
# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
 | 
			
		||||
# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
 | 
			
		||||
# define COMPILER_ID "IAR"
 | 
			
		||||
# if defined(__VER__) && defined(__ICCARM__)
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
 | 
			
		||||
#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
 | 
			
		||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__))
 | 
			
		||||
#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
 | 
			
		||||
#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
 | 
			
		||||
#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
 | 
			
		||||
#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* These compilers are either not known or too old to define an
 | 
			
		||||
  identification macro.  Try to identify the platform and guess that
 | 
			
		||||
  it is the native compiler.  */
 | 
			
		||||
#elif defined(__hpux) || defined(__hpua)
 | 
			
		||||
# define COMPILER_ID "HP"
 | 
			
		||||
 | 
			
		||||
#else /* unknown compiler */
 | 
			
		||||
# define COMPILER_ID ""
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct the string literal in pieces to prevent the source from
 | 
			
		||||
   getting matched.  Store it in a pointer rather than an array
 | 
			
		||||
   because some compilers will just produce instructions to fill the
 | 
			
		||||
   array rather than assigning a pointer to a static array.  */
 | 
			
		||||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
 | 
			
		||||
#ifdef SIMULATE_ID
 | 
			
		||||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __QNXNTO__
 | 
			
		||||
char const* qnxnto = "INFO" ":" "qnxnto[]";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__CRAYXE) || defined(__CRAYXC)
 | 
			
		||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define STRINGIFY_HELPER(X) #X
 | 
			
		||||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
 | 
			
		||||
 | 
			
		||||
/* Identify known platforms by name.  */
 | 
			
		||||
#if defined(__linux) || defined(__linux__) || defined(linux)
 | 
			
		||||
# define PLATFORM_ID "Linux"
 | 
			
		||||
 | 
			
		||||
#elif defined(__CYGWIN__)
 | 
			
		||||
# define PLATFORM_ID "Cygwin"
 | 
			
		||||
 | 
			
		||||
#elif defined(__MINGW32__)
 | 
			
		||||
# define PLATFORM_ID "MinGW"
 | 
			
		||||
 | 
			
		||||
#elif defined(__APPLE__)
 | 
			
		||||
# define PLATFORM_ID "Darwin"
 | 
			
		||||
 | 
			
		||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
 | 
			
		||||
# define PLATFORM_ID "Windows"
 | 
			
		||||
 | 
			
		||||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
 | 
			
		||||
# define PLATFORM_ID "FreeBSD"
 | 
			
		||||
 | 
			
		||||
#elif defined(__NetBSD__) || defined(__NetBSD)
 | 
			
		||||
# define PLATFORM_ID "NetBSD"
 | 
			
		||||
 | 
			
		||||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
 | 
			
		||||
# define PLATFORM_ID "OpenBSD"
 | 
			
		||||
 | 
			
		||||
#elif defined(__sun) || defined(sun)
 | 
			
		||||
# define PLATFORM_ID "SunOS"
 | 
			
		||||
 | 
			
		||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
 | 
			
		||||
# define PLATFORM_ID "AIX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__hpux) || defined(__hpux__)
 | 
			
		||||
# define PLATFORM_ID "HP-UX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__HAIKU__)
 | 
			
		||||
# define PLATFORM_ID "Haiku"
 | 
			
		||||
 | 
			
		||||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
 | 
			
		||||
# define PLATFORM_ID "BeOS"
 | 
			
		||||
 | 
			
		||||
#elif defined(__QNX__) || defined(__QNXNTO__)
 | 
			
		||||
# define PLATFORM_ID "QNX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
 | 
			
		||||
# define PLATFORM_ID "Tru64"
 | 
			
		||||
 | 
			
		||||
#elif defined(__riscos) || defined(__riscos__)
 | 
			
		||||
# define PLATFORM_ID "RISCos"
 | 
			
		||||
 | 
			
		||||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
 | 
			
		||||
# define PLATFORM_ID "SINIX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__UNIX_SV__)
 | 
			
		||||
# define PLATFORM_ID "UNIX_SV"
 | 
			
		||||
 | 
			
		||||
#elif defined(__bsdos__)
 | 
			
		||||
# define PLATFORM_ID "BSDOS"
 | 
			
		||||
 | 
			
		||||
#elif defined(_MPRAS) || defined(MPRAS)
 | 
			
		||||
# define PLATFORM_ID "MP-RAS"
 | 
			
		||||
 | 
			
		||||
#elif defined(__osf) || defined(__osf__)
 | 
			
		||||
# define PLATFORM_ID "OSF1"
 | 
			
		||||
 | 
			
		||||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
 | 
			
		||||
# define PLATFORM_ID "SCO_SV"
 | 
			
		||||
 | 
			
		||||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
 | 
			
		||||
# define PLATFORM_ID "ULTRIX"
 | 
			
		||||
 | 
			
		||||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
 | 
			
		||||
# define PLATFORM_ID "Xenix"
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__)
 | 
			
		||||
# if defined(__LINUX__)
 | 
			
		||||
#  define PLATFORM_ID "Linux"
 | 
			
		||||
 | 
			
		||||
# elif defined(__DOS__)
 | 
			
		||||
#  define PLATFORM_ID "DOS"
 | 
			
		||||
 | 
			
		||||
# elif defined(__OS2__)
 | 
			
		||||
#  define PLATFORM_ID "OS2"
 | 
			
		||||
 | 
			
		||||
# elif defined(__WINDOWS__)
 | 
			
		||||
#  define PLATFORM_ID "Windows3x"
 | 
			
		||||
 | 
			
		||||
# else /* unknown platform */
 | 
			
		||||
#  define PLATFORM_ID
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__INTEGRITY)
 | 
			
		||||
# if defined(INT_178B)
 | 
			
		||||
#  define PLATFORM_ID "Integrity178"
 | 
			
		||||
 | 
			
		||||
# else /* regular Integrity */
 | 
			
		||||
#  define PLATFORM_ID "Integrity"
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#else /* unknown platform */
 | 
			
		||||
# define PLATFORM_ID
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* For windows compilers MSVC and Intel we can determine
 | 
			
		||||
   the architecture of the compiler being used.  This is because
 | 
			
		||||
   the compilers do not have flags that can change the architecture,
 | 
			
		||||
   but rather depend on which compiler is being used
 | 
			
		||||
*/
 | 
			
		||||
#if defined(_WIN32) && defined(_MSC_VER)
 | 
			
		||||
# if defined(_M_IA64)
 | 
			
		||||
#  define ARCHITECTURE_ID "IA64"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_X64) || defined(_M_AMD64)
 | 
			
		||||
#  define ARCHITECTURE_ID "x64"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_IX86)
 | 
			
		||||
#  define ARCHITECTURE_ID "X86"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_ARM64)
 | 
			
		||||
#  define ARCHITECTURE_ID "ARM64"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_ARM)
 | 
			
		||||
#  if _M_ARM == 4
 | 
			
		||||
#   define ARCHITECTURE_ID "ARMV4I"
 | 
			
		||||
#  elif _M_ARM == 5
 | 
			
		||||
#   define ARCHITECTURE_ID "ARMV5I"
 | 
			
		||||
#  else
 | 
			
		||||
#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_MIPS)
 | 
			
		||||
#  define ARCHITECTURE_ID "MIPS"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_SH)
 | 
			
		||||
#  define ARCHITECTURE_ID "SHx"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__WATCOMC__)
 | 
			
		||||
# if defined(_M_I86)
 | 
			
		||||
#  define ARCHITECTURE_ID "I86"
 | 
			
		||||
 | 
			
		||||
# elif defined(_M_IX86)
 | 
			
		||||
#  define ARCHITECTURE_ID "X86"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
 | 
			
		||||
# if defined(__ICCARM__)
 | 
			
		||||
#  define ARCHITECTURE_ID "ARM"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRX__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RX"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRH850__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RH850"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRL78__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RL78"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCRISCV__)
 | 
			
		||||
#  define ARCHITECTURE_ID "RISCV"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCAVR__)
 | 
			
		||||
#  define ARCHITECTURE_ID "AVR"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICC430__)
 | 
			
		||||
#  define ARCHITECTURE_ID "MSP430"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICCV850__)
 | 
			
		||||
#  define ARCHITECTURE_ID "V850"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ICC8051__)
 | 
			
		||||
#  define ARCHITECTURE_ID "8051"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__ghs__)
 | 
			
		||||
# if defined(__PPC64__)
 | 
			
		||||
#  define ARCHITECTURE_ID "PPC64"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ppc__)
 | 
			
		||||
#  define ARCHITECTURE_ID "PPC"
 | 
			
		||||
 | 
			
		||||
# elif defined(__ARM__)
 | 
			
		||||
#  define ARCHITECTURE_ID "ARM"
 | 
			
		||||
 | 
			
		||||
# elif defined(__x86_64__)
 | 
			
		||||
#  define ARCHITECTURE_ID "x64"
 | 
			
		||||
 | 
			
		||||
# elif defined(__i386__)
 | 
			
		||||
#  define ARCHITECTURE_ID "X86"
 | 
			
		||||
 | 
			
		||||
# else /* unknown architecture */
 | 
			
		||||
#  define ARCHITECTURE_ID ""
 | 
			
		||||
# endif
 | 
			
		||||
#else
 | 
			
		||||
#  define ARCHITECTURE_ID
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Convert integer to decimal digit literals.  */
 | 
			
		||||
#define DEC(n)                   \
 | 
			
		||||
  ('0' + (((n) / 10000000)%10)), \
 | 
			
		||||
  ('0' + (((n) / 1000000)%10)),  \
 | 
			
		||||
  ('0' + (((n) / 100000)%10)),   \
 | 
			
		||||
  ('0' + (((n) / 10000)%10)),    \
 | 
			
		||||
  ('0' + (((n) / 1000)%10)),     \
 | 
			
		||||
  ('0' + (((n) / 100)%10)),      \
 | 
			
		||||
  ('0' + (((n) / 10)%10)),       \
 | 
			
		||||
  ('0' +  ((n) % 10))
 | 
			
		||||
 | 
			
		||||
/* Convert integer to hex digit literals.  */
 | 
			
		||||
#define HEX(n)             \
 | 
			
		||||
  ('0' + ((n)>>28 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>24 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>20 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>16 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>12 & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>8  & 0xF)), \
 | 
			
		||||
  ('0' + ((n)>>4  & 0xF)), \
 | 
			
		||||
  ('0' + ((n)     & 0xF))
 | 
			
		||||
 | 
			
		||||
/* Construct a string literal encoding the version number components. */
 | 
			
		||||
#ifdef COMPILER_VERSION_MAJOR
 | 
			
		||||
char const info_version[] = {
 | 
			
		||||
  'I', 'N', 'F', 'O', ':',
 | 
			
		||||
  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
 | 
			
		||||
  COMPILER_VERSION_MAJOR,
 | 
			
		||||
# ifdef COMPILER_VERSION_MINOR
 | 
			
		||||
  '.', COMPILER_VERSION_MINOR,
 | 
			
		||||
#  ifdef COMPILER_VERSION_PATCH
 | 
			
		||||
   '.', COMPILER_VERSION_PATCH,
 | 
			
		||||
#   ifdef COMPILER_VERSION_TWEAK
 | 
			
		||||
    '.', COMPILER_VERSION_TWEAK,
 | 
			
		||||
#   endif
 | 
			
		||||
#  endif
 | 
			
		||||
# endif
 | 
			
		||||
  ']','\0'};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct a string literal encoding the internal version number. */
 | 
			
		||||
#ifdef COMPILER_VERSION_INTERNAL
 | 
			
		||||
char const info_version_internal[] = {
 | 
			
		||||
  'I', 'N', 'F', 'O', ':',
 | 
			
		||||
  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
 | 
			
		||||
  'i','n','t','e','r','n','a','l','[',
 | 
			
		||||
  COMPILER_VERSION_INTERNAL,']','\0'};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct a string literal encoding the version number components. */
 | 
			
		||||
#ifdef SIMULATE_VERSION_MAJOR
 | 
			
		||||
char const info_simulate_version[] = {
 | 
			
		||||
  'I', 'N', 'F', 'O', ':',
 | 
			
		||||
  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
 | 
			
		||||
  SIMULATE_VERSION_MAJOR,
 | 
			
		||||
# ifdef SIMULATE_VERSION_MINOR
 | 
			
		||||
  '.', SIMULATE_VERSION_MINOR,
 | 
			
		||||
#  ifdef SIMULATE_VERSION_PATCH
 | 
			
		||||
   '.', SIMULATE_VERSION_PATCH,
 | 
			
		||||
#   ifdef SIMULATE_VERSION_TWEAK
 | 
			
		||||
    '.', SIMULATE_VERSION_TWEAK,
 | 
			
		||||
#   endif
 | 
			
		||||
#  endif
 | 
			
		||||
# endif
 | 
			
		||||
  ']','\0'};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Construct the string literal in pieces to prevent the source from
 | 
			
		||||
   getting matched.  Store it in a pointer rather than an array
 | 
			
		||||
   because some compilers will just produce instructions to fill the
 | 
			
		||||
   array rather than assigning a pointer to a static array.  */
 | 
			
		||||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
 | 
			
		||||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
 | 
			
		||||
#  if defined(__INTEL_CXX11_MODE__)
 | 
			
		||||
#    if defined(__cpp_aggregate_nsdmi)
 | 
			
		||||
#      define CXX_STD 201402L
 | 
			
		||||
#    else
 | 
			
		||||
#      define CXX_STD 201103L
 | 
			
		||||
#    endif
 | 
			
		||||
#  else
 | 
			
		||||
#    define CXX_STD 199711L
 | 
			
		||||
#  endif
 | 
			
		||||
#elif defined(_MSC_VER) && defined(_MSVC_LANG)
 | 
			
		||||
#  define CXX_STD _MSVC_LANG
 | 
			
		||||
#else
 | 
			
		||||
#  define CXX_STD __cplusplus
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
const char* info_language_dialect_default = "INFO" ":" "dialect_default["
 | 
			
		||||
#if CXX_STD > 201703L
 | 
			
		||||
  "20"
 | 
			
		||||
#elif CXX_STD >= 201703L
 | 
			
		||||
  "17"
 | 
			
		||||
#elif CXX_STD >= 201402L
 | 
			
		||||
  "14"
 | 
			
		||||
#elif CXX_STD >= 201103L
 | 
			
		||||
  "11"
 | 
			
		||||
#else
 | 
			
		||||
  "98"
 | 
			
		||||
#endif
 | 
			
		||||
"]";
 | 
			
		||||
 | 
			
		||||
/*--------------------------------------------------------------------------*/
 | 
			
		||||
 | 
			
		||||
int main(int argc, char* argv[])
 | 
			
		||||
{
 | 
			
		||||
  int require = 0;
 | 
			
		||||
  require += info_compiler[argc];
 | 
			
		||||
  require += info_platform[argc];
 | 
			
		||||
#ifdef COMPILER_VERSION_MAJOR
 | 
			
		||||
  require += info_version[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef COMPILER_VERSION_INTERNAL
 | 
			
		||||
  require += info_version_internal[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef SIMULATE_ID
 | 
			
		||||
  require += info_simulate[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef SIMULATE_VERSION_MAJOR
 | 
			
		||||
  require += info_simulate_version[argc];
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(__CRAYXE) || defined(__CRAYXC)
 | 
			
		||||
  require += info_cray[argc];
 | 
			
		||||
#endif
 | 
			
		||||
  require += info_language_dialect_default[argc];
 | 
			
		||||
  (void)argv;
 | 
			
		||||
  return require;
 | 
			
		||||
}
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,228 +0,0 @@
 | 
			
		||||
The system is: Linux - 5.15.0-107-generic - x86_64
 | 
			
		||||
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
 | 
			
		||||
Compiler: /snap/flutter/current/usr/bin/clang++ 
 | 
			
		||||
Build flags: 
 | 
			
		||||
Id flags:  
 | 
			
		||||
 | 
			
		||||
The output was:
 | 
			
		||||
0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
 | 
			
		||||
 | 
			
		||||
The CXX compiler identification is Clang, found in "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/3.16.3/CompilerIdCXX/a.out"
 | 
			
		||||
 | 
			
		||||
Determining if the CXX compiler works passed with the following output:
 | 
			
		||||
Change Dir: /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/CMakeTmp
 | 
			
		||||
 | 
			
		||||
Run Build Command(s):/snap/flutter/current/usr/bin/ninja cmTC_bc15d && [1/2] Building CXX object CMakeFiles/cmTC_bc15d.dir/testCXXCompiler.cxx.o
 | 
			
		||||
[2/2] Linking CXX executable cmTC_bc15d
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Detecting CXX compiler ABI info compiled with the following output:
 | 
			
		||||
Change Dir: /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/CMakeTmp
 | 
			
		||||
 | 
			
		||||
Run Build Command(s):/snap/flutter/current/usr/bin/ninja cmTC_bc420 && [1/2] Building CXX object CMakeFiles/cmTC_bc420.dir/CMakeCXXCompilerABI.cpp.o
 | 
			
		||||
clang version 10.0.0-4ubuntu1 
 | 
			
		||||
Target: x86_64-pc-linux-gnu
 | 
			
		||||
Thread model: posix
 | 
			
		||||
InstalledDir: /snap/flutter/current/usr/bin
 | 
			
		||||
Found candidate GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10
 | 
			
		||||
Found candidate GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/9
 | 
			
		||||
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
 | 
			
		||||
Selected GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10
 | 
			
		||||
Candidate multilib: .;@m64
 | 
			
		||||
Selected multilib: .;@m64
 | 
			
		||||
 (in-process)
 | 
			
		||||
 "/snap/flutter/145/usr/lib/llvm-10/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -fno-rounding-math -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -dwarf-column-info -fno-split-dwarf-inlining -debugger-tuning=gdb -v -resource-dir /snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0 -cxx-isystem /snap/flutter/current/usr/include/x86_64-linux-gnu/c++/9 -cxx-isystem /snap/flutter/current/usr/include/c++/9 -cxx-isystem /snap/flutter/current/usr/include -cxx-isystem /snap/flutter/current/usr/include/x86_64-linux-gnu -cxx-isystem /snap/flutter/current/usr/include/c++/9 -internal-isystem /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10 -internal-isystem /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10 -internal-isystem /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10 -internal-isystem /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/backward -internal-isystem /usr/local/include -internal-isystem /snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/CMakeTmp -ferror-limit 19 -fmessage-length 0 -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o CMakeFiles/cmTC_bc420.dir/CMakeCXXCompilerABI.cpp.o -x c++ /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp
 | 
			
		||||
clang -cc1 version 10.0.0 based upon LLVM 10.0.0 default target x86_64-pc-linux-gnu
 | 
			
		||||
ignoring nonexistent directory "/include"
 | 
			
		||||
ignoring duplicate directory "/snap/flutter/current/usr/include/c++/9"
 | 
			
		||||
ignoring duplicate directory "/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10"
 | 
			
		||||
#include "..." search starts here:
 | 
			
		||||
#include <...> search starts here:
 | 
			
		||||
 /snap/flutter/current/usr/include/x86_64-linux-gnu/c++/9
 | 
			
		||||
 /snap/flutter/current/usr/include/c++/9
 | 
			
		||||
 /snap/flutter/current/usr/include
 | 
			
		||||
 /snap/flutter/current/usr/include/x86_64-linux-gnu
 | 
			
		||||
 /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10
 | 
			
		||||
 /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10
 | 
			
		||||
 /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/backward
 | 
			
		||||
 /usr/local/include
 | 
			
		||||
 /snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0/include
 | 
			
		||||
 /usr/include/x86_64-linux-gnu
 | 
			
		||||
 /usr/include
 | 
			
		||||
End of search list.
 | 
			
		||||
[2/2] Linking CXX executable cmTC_bc420
 | 
			
		||||
clang version 10.0.0-4ubuntu1 
 | 
			
		||||
Target: x86_64-pc-linux-gnu
 | 
			
		||||
Thread model: posix
 | 
			
		||||
InstalledDir: /snap/flutter/current/usr/bin
 | 
			
		||||
Found candidate GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10
 | 
			
		||||
Found candidate GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/9
 | 
			
		||||
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
 | 
			
		||||
Selected GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10
 | 
			
		||||
Candidate multilib: .;@m64
 | 
			
		||||
Selected multilib: .;@m64
 | 
			
		||||
 "/snap/flutter/current/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_bc420 /snap/flutter/current/usr/lib/x86_64-linux-gnu/crt1.o /snap/flutter/current/usr/lib/x86_64-linux-gnu/crti.o /snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9/crtbegin.o -L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu -L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib/ -L/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10 -L/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/usr/lib/x86_64-linux-gnu/../../lib64 -L/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../.. -L/snap/flutter/145/usr/lib/llvm-10/bin/../lib -L/lib -L/usr/lib -L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu -L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib -lblkid -lgcrypt -llzma -llz4 -lgpg-error -luuid -lpthread -ldl -lepoxy -lfontconfig CMakeFiles/cmTC_bc420.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9/crtend.o /snap/flutter/current/usr/lib/x86_64-linux-gnu/crtn.o
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Parsed CXX implicit include dir info from above output: rv=done
 | 
			
		||||
  found start of include info
 | 
			
		||||
  found start of implicit include info
 | 
			
		||||
    add: [/snap/flutter/current/usr/include/x86_64-linux-gnu/c++/9]
 | 
			
		||||
    add: [/snap/flutter/current/usr/include/c++/9]
 | 
			
		||||
    add: [/snap/flutter/current/usr/include]
 | 
			
		||||
    add: [/snap/flutter/current/usr/include/x86_64-linux-gnu]
 | 
			
		||||
    add: [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10]
 | 
			
		||||
    add: [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10]
 | 
			
		||||
    add: [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/backward]
 | 
			
		||||
    add: [/usr/local/include]
 | 
			
		||||
    add: [/snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0/include]
 | 
			
		||||
    add: [/usr/include/x86_64-linux-gnu]
 | 
			
		||||
    add: [/usr/include]
 | 
			
		||||
  end of search list found
 | 
			
		||||
  collapse include dir [/snap/flutter/current/usr/include/x86_64-linux-gnu/c++/9] ==> [/snap/flutter/current/usr/include/x86_64-linux-gnu/c++/9]
 | 
			
		||||
  collapse include dir [/snap/flutter/current/usr/include/c++/9] ==> [/snap/flutter/current/usr/include/c++/9]
 | 
			
		||||
  collapse include dir [/snap/flutter/current/usr/include] ==> [/snap/flutter/current/usr/include]
 | 
			
		||||
  collapse include dir [/snap/flutter/current/usr/include/x86_64-linux-gnu] ==> [/snap/flutter/current/usr/include/x86_64-linux-gnu]
 | 
			
		||||
  collapse include dir [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10] ==> [/snap/flutter/current/usr/include/c++/10]
 | 
			
		||||
  collapse include dir [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10] ==> [/snap/flutter/current/usr/include/x86_64-linux-gnu/c++/10]
 | 
			
		||||
  collapse include dir [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/backward] ==> [/snap/flutter/current/usr/include/c++/10/backward]
 | 
			
		||||
  collapse include dir [/usr/local/include] ==> [/usr/local/include]
 | 
			
		||||
  collapse include dir [/snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0/include] ==> [/snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0/include]
 | 
			
		||||
  collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu]
 | 
			
		||||
  collapse include dir [/usr/include] ==> [/usr/include]
 | 
			
		||||
  implicit include dirs: [/snap/flutter/current/usr/include/x86_64-linux-gnu/c++/9;/snap/flutter/current/usr/include/c++/9;/snap/flutter/current/usr/include;/snap/flutter/current/usr/include/x86_64-linux-gnu;/snap/flutter/current/usr/include/c++/10;/snap/flutter/current/usr/include/x86_64-linux-gnu/c++/10;/snap/flutter/current/usr/include/c++/10/backward;/usr/local/include;/snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0/include;/usr/include/x86_64-linux-gnu;/usr/include]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Parsed CXX implicit link information from above output:
 | 
			
		||||
  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
 | 
			
		||||
  ignore line: [Change Dir: /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/CMakeTmp]
 | 
			
		||||
  ignore line: []
 | 
			
		||||
  ignore line: [Run Build Command(s):/snap/flutter/current/usr/bin/ninja cmTC_bc420 && [1/2] Building CXX object CMakeFiles/cmTC_bc420.dir/CMakeCXXCompilerABI.cpp.o]
 | 
			
		||||
  ignore line: [clang version 10.0.0-4ubuntu1 ]
 | 
			
		||||
  ignore line: [Target: x86_64-pc-linux-gnu]
 | 
			
		||||
  ignore line: [Thread model: posix]
 | 
			
		||||
  ignore line: [InstalledDir: /snap/flutter/current/usr/bin]
 | 
			
		||||
  ignore line: [Found candidate GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10]
 | 
			
		||||
  ignore line: [Found candidate GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/9]
 | 
			
		||||
  ignore line: [Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9]
 | 
			
		||||
  ignore line: [Selected GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10]
 | 
			
		||||
  ignore line: [Candidate multilib: .]
 | 
			
		||||
  ignore line: [@m64]
 | 
			
		||||
  ignore line: [Selected multilib: .]
 | 
			
		||||
  ignore line: [@m64]
 | 
			
		||||
  ignore line: [ (in-process)]
 | 
			
		||||
  ignore line: [ "/snap/flutter/145/usr/lib/llvm-10/bin/clang" -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name CMakeCXXCompilerABI.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -fno-rounding-math -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -dwarf-column-info -fno-split-dwarf-inlining -debugger-tuning=gdb -v -resource-dir /snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0 -cxx-isystem /snap/flutter/current/usr/include/x86_64-linux-gnu/c++/9 -cxx-isystem /snap/flutter/current/usr/include/c++/9 -cxx-isystem /snap/flutter/current/usr/include -cxx-isystem /snap/flutter/current/usr/include/x86_64-linux-gnu -cxx-isystem /snap/flutter/current/usr/include/c++/9 -internal-isystem /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10 -internal-isystem /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10 -internal-isystem /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10 -internal-isystem /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/backward -internal-isystem /usr/local/include -internal-isystem /snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/CMakeTmp -ferror-limit 19 -fmessage-length 0 -fgnuc-version=4.2.1 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o CMakeFiles/cmTC_bc420.dir/CMakeCXXCompilerABI.cpp.o -x c++ /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp]
 | 
			
		||||
  ignore line: [clang -cc1 version 10.0.0 based upon LLVM 10.0.0 default target x86_64-pc-linux-gnu]
 | 
			
		||||
  ignore line: [ignoring nonexistent directory "/include"]
 | 
			
		||||
  ignore line: [ignoring duplicate directory "/snap/flutter/current/usr/include/c++/9"]
 | 
			
		||||
  ignore line: [ignoring duplicate directory "/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10"]
 | 
			
		||||
  ignore line: [#include "..." search starts here:]
 | 
			
		||||
  ignore line: [#include <...> search starts here:]
 | 
			
		||||
  ignore line: [ /snap/flutter/current/usr/include/x86_64-linux-gnu/c++/9]
 | 
			
		||||
  ignore line: [ /snap/flutter/current/usr/include/c++/9]
 | 
			
		||||
  ignore line: [ /snap/flutter/current/usr/include]
 | 
			
		||||
  ignore line: [ /snap/flutter/current/usr/include/x86_64-linux-gnu]
 | 
			
		||||
  ignore line: [ /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10]
 | 
			
		||||
  ignore line: [ /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/x86_64-linux-gnu/c++/10]
 | 
			
		||||
  ignore line: [ /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/backward]
 | 
			
		||||
  ignore line: [ /usr/local/include]
 | 
			
		||||
  ignore line: [ /snap/flutter/145/usr/lib/llvm-10/lib/clang/10.0.0/include]
 | 
			
		||||
  ignore line: [ /usr/include/x86_64-linux-gnu]
 | 
			
		||||
  ignore line: [ /usr/include]
 | 
			
		||||
  ignore line: [End of search list.]
 | 
			
		||||
  ignore line: [[2/2] Linking CXX executable cmTC_bc420]
 | 
			
		||||
  ignore line: [clang version 10.0.0-4ubuntu1 ]
 | 
			
		||||
  ignore line: [Target: x86_64-pc-linux-gnu]
 | 
			
		||||
  ignore line: [Thread model: posix]
 | 
			
		||||
  ignore line: [InstalledDir: /snap/flutter/current/usr/bin]
 | 
			
		||||
  ignore line: [Found candidate GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10]
 | 
			
		||||
  ignore line: [Found candidate GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/9]
 | 
			
		||||
  ignore line: [Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9]
 | 
			
		||||
  ignore line: [Selected GCC installation: /snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10]
 | 
			
		||||
  ignore line: [Candidate multilib: .]
 | 
			
		||||
  ignore line: [@m64]
 | 
			
		||||
  ignore line: [Selected multilib: .]
 | 
			
		||||
  ignore line: [@m64]
 | 
			
		||||
  link line: [ "/snap/flutter/current/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_bc420 /snap/flutter/current/usr/lib/x86_64-linux-gnu/crt1.o /snap/flutter/current/usr/lib/x86_64-linux-gnu/crti.o /snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9/crtbegin.o -L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu -L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib/ -L/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10 -L/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/usr/lib/x86_64-linux-gnu/../../lib64 -L/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../.. -L/snap/flutter/145/usr/lib/llvm-10/bin/../lib -L/lib -L/usr/lib -L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu -L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib -lblkid -lgcrypt -llzma -llz4 -lgpg-error -luuid -lpthread -ldl -lepoxy -lfontconfig CMakeFiles/cmTC_bc420.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9/crtend.o /snap/flutter/current/usr/lib/x86_64-linux-gnu/crtn.o]
 | 
			
		||||
    arg [/snap/flutter/current/usr/bin/ld] ==> ignore
 | 
			
		||||
    arg [-zrelro] ==> ignore
 | 
			
		||||
    arg [--hash-style=gnu] ==> ignore
 | 
			
		||||
    arg [--build-id] ==> ignore
 | 
			
		||||
    arg [--eh-frame-hdr] ==> ignore
 | 
			
		||||
    arg [-m] ==> ignore
 | 
			
		||||
    arg [elf_x86_64] ==> ignore
 | 
			
		||||
    arg [-dynamic-linker] ==> ignore
 | 
			
		||||
    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
 | 
			
		||||
    arg [-o] ==> ignore
 | 
			
		||||
    arg [cmTC_bc420] ==> ignore
 | 
			
		||||
    arg [/snap/flutter/current/usr/lib/x86_64-linux-gnu/crt1.o] ==> ignore
 | 
			
		||||
    arg [/snap/flutter/current/usr/lib/x86_64-linux-gnu/crti.o] ==> ignore
 | 
			
		||||
    arg [/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9/crtbegin.o] ==> ignore
 | 
			
		||||
    arg [-L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9]
 | 
			
		||||
    arg [-L/snap/flutter/current/usr/lib/x86_64-linux-gnu] ==> dir [/snap/flutter/current/usr/lib/x86_64-linux-gnu]
 | 
			
		||||
    arg [-L/snap/flutter/current/lib/x86_64-linux-gnu] ==> dir [/snap/flutter/current/lib/x86_64-linux-gnu]
 | 
			
		||||
    arg [-L/snap/flutter/current/usr/lib/] ==> dir [/snap/flutter/current/usr/lib/]
 | 
			
		||||
    arg [-L/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10] ==> dir [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10]
 | 
			
		||||
    arg [-L/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu] ==> dir [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu]
 | 
			
		||||
    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
 | 
			
		||||
    arg [-L/lib/../lib64] ==> dir [/lib/../lib64]
 | 
			
		||||
    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
 | 
			
		||||
    arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64]
 | 
			
		||||
    arg [-L/usr/lib/x86_64-linux-gnu/../../lib64] ==> dir [/usr/lib/x86_64-linux-gnu/../../lib64]
 | 
			
		||||
    arg [-L/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../..] ==> dir [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../..]
 | 
			
		||||
    arg [-L/snap/flutter/145/usr/lib/llvm-10/bin/../lib] ==> dir [/snap/flutter/145/usr/lib/llvm-10/bin/../lib]
 | 
			
		||||
    arg [-L/lib] ==> dir [/lib]
 | 
			
		||||
    arg [-L/usr/lib] ==> dir [/usr/lib]
 | 
			
		||||
    arg [-L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9]
 | 
			
		||||
    arg [-L/snap/flutter/current/usr/lib/x86_64-linux-gnu] ==> dir [/snap/flutter/current/usr/lib/x86_64-linux-gnu]
 | 
			
		||||
    arg [-L/snap/flutter/current/lib/x86_64-linux-gnu] ==> dir [/snap/flutter/current/lib/x86_64-linux-gnu]
 | 
			
		||||
    arg [-L/snap/flutter/current/usr/lib] ==> dir [/snap/flutter/current/usr/lib]
 | 
			
		||||
    arg [-lblkid] ==> lib [blkid]
 | 
			
		||||
    arg [-lgcrypt] ==> lib [gcrypt]
 | 
			
		||||
    arg [-llzma] ==> lib [lzma]
 | 
			
		||||
    arg [-llz4] ==> lib [lz4]
 | 
			
		||||
    arg [-lgpg-error] ==> lib [gpg-error]
 | 
			
		||||
    arg [-luuid] ==> lib [uuid]
 | 
			
		||||
    arg [-lpthread] ==> lib [pthread]
 | 
			
		||||
    arg [-ldl] ==> lib [dl]
 | 
			
		||||
    arg [-lepoxy] ==> lib [epoxy]
 | 
			
		||||
    arg [-lfontconfig] ==> lib [fontconfig]
 | 
			
		||||
    arg [CMakeFiles/cmTC_bc420.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
 | 
			
		||||
    arg [-lstdc++] ==> lib [stdc++]
 | 
			
		||||
    arg [-lm] ==> lib [m]
 | 
			
		||||
    arg [-lgcc_s] ==> lib [gcc_s]
 | 
			
		||||
    arg [-lgcc] ==> lib [gcc]
 | 
			
		||||
    arg [-lc] ==> lib [c]
 | 
			
		||||
    arg [-lgcc_s] ==> lib [gcc_s]
 | 
			
		||||
    arg [-lgcc] ==> lib [gcc]
 | 
			
		||||
    arg [/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9/crtend.o] ==> ignore
 | 
			
		||||
    arg [/snap/flutter/current/usr/lib/x86_64-linux-gnu/crtn.o] ==> ignore
 | 
			
		||||
  collapse library dir [/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9]
 | 
			
		||||
  collapse library dir [/snap/flutter/current/usr/lib/x86_64-linux-gnu] ==> [/snap/flutter/current/usr/lib/x86_64-linux-gnu]
 | 
			
		||||
  collapse library dir [/snap/flutter/current/lib/x86_64-linux-gnu] ==> [/snap/flutter/current/lib/x86_64-linux-gnu]
 | 
			
		||||
  collapse library dir [/snap/flutter/current/usr/lib/] ==> [/snap/flutter/current/usr/lib]
 | 
			
		||||
  collapse library dir [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10] ==> [/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/10]
 | 
			
		||||
  collapse library dir [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu] ==> [/snap/flutter/current/usr/lib/x86_64-linux-gnu]
 | 
			
		||||
  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
 | 
			
		||||
  collapse library dir [/lib/../lib64] ==> [/lib64]
 | 
			
		||||
  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
 | 
			
		||||
  collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64]
 | 
			
		||||
  collapse library dir [/usr/lib/x86_64-linux-gnu/../../lib64] ==> [/usr/lib64]
 | 
			
		||||
  collapse library dir [/snap/flutter/current/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../..] ==> [/snap/flutter/current/usr/lib]
 | 
			
		||||
  collapse library dir [/snap/flutter/145/usr/lib/llvm-10/bin/../lib] ==> [/snap/flutter/145/usr/lib/llvm-10/lib]
 | 
			
		||||
  collapse library dir [/lib] ==> [/lib]
 | 
			
		||||
  collapse library dir [/usr/lib] ==> [/usr/lib]
 | 
			
		||||
  collapse library dir [/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9]
 | 
			
		||||
  collapse library dir [/snap/flutter/current/usr/lib/x86_64-linux-gnu] ==> [/snap/flutter/current/usr/lib/x86_64-linux-gnu]
 | 
			
		||||
  collapse library dir [/snap/flutter/current/lib/x86_64-linux-gnu] ==> [/snap/flutter/current/lib/x86_64-linux-gnu]
 | 
			
		||||
  collapse library dir [/snap/flutter/current/usr/lib] ==> [/snap/flutter/current/usr/lib]
 | 
			
		||||
  implicit libs: [blkid;gcrypt;lzma;lz4;gpg-error;uuid;pthread;dl;epoxy;fontconfig;stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
 | 
			
		||||
  implicit dirs: [/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9;/snap/flutter/current/usr/lib/x86_64-linux-gnu;/snap/flutter/current/lib/x86_64-linux-gnu;/snap/flutter/current/usr/lib;/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/10;/lib/x86_64-linux-gnu;/lib64;/usr/lib/x86_64-linux-gnu;/usr/lib64;/snap/flutter/145/usr/lib/llvm-10/lib;/lib;/usr/lib]
 | 
			
		||||
  implicit fwks: []
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -1,21 +0,0 @@
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/install/strip.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/install.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/list_install_components.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/rebuild_cache.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/edit_cache.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/install/local.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/CMakeFiles/oc_front.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter/CMakeFiles/install/strip.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter/CMakeFiles/install/local.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter/CMakeFiles/install.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter/CMakeFiles/list_install_components.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter/CMakeFiles/rebuild_cache.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter/CMakeFiles/edit_cache.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter/CMakeFiles/flutter_assemble.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window/CMakeFiles/install/strip.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window/CMakeFiles/install/local.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window/CMakeFiles/install.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window/CMakeFiles/list_install_components.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window/CMakeFiles/rebuild_cache.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window/CMakeFiles/edit_cache.dir
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window/CMakeFiles/desktop_window_plugin.dir
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1,413 +0,0 @@
 | 
			
		||||
# CMAKE generated file: DO NOT EDIT!
 | 
			
		||||
# Generated by "Ninja" Generator, CMake Version 3.16
 | 
			
		||||
 | 
			
		||||
# This file contains all the build statements describing the
 | 
			
		||||
# compilation DAG.
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Write statements declared in CMakeLists.txt:
 | 
			
		||||
# 
 | 
			
		||||
# Which is the root file.
 | 
			
		||||
# =============================================================================
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Project: runner
 | 
			
		||||
# Configuration: Debug
 | 
			
		||||
# =============================================================================
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Minimal version of Ninja required by this file
 | 
			
		||||
 | 
			
		||||
ninja_required_version = 1.5
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Include auxiliary files.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Include rules file.
 | 
			
		||||
 | 
			
		||||
include rules.ninja
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for install/strip
 | 
			
		||||
 | 
			
		||||
build CMakeFiles/install/strip.util: CUSTOM_COMMAND all
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug && /snap/flutter/145/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
 | 
			
		||||
  DESC = Installing the project stripped...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build install/strip: phony CMakeFiles/install/strip.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for install
 | 
			
		||||
 | 
			
		||||
build CMakeFiles/install.util: CUSTOM_COMMAND all
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug && /snap/flutter/145/usr/bin/cmake -P cmake_install.cmake
 | 
			
		||||
  DESC = Install the project...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build install: phony CMakeFiles/install.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for list_install_components
 | 
			
		||||
 | 
			
		||||
build list_install_components: phony
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for rebuild_cache
 | 
			
		||||
 | 
			
		||||
build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug && /snap/flutter/145/usr/bin/cmake -S/home/mr/Documents/OC/oc-front/oc_front/linux -B/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug
 | 
			
		||||
  DESC = Running CMake to regenerate build system...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build rebuild_cache: phony CMakeFiles/rebuild_cache.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for edit_cache
 | 
			
		||||
 | 
			
		||||
build CMakeFiles/edit_cache.util: CUSTOM_COMMAND
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug && /snap/flutter/145/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
 | 
			
		||||
  DESC = No interactive CMake dialog available...
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build edit_cache: phony CMakeFiles/edit_cache.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for install/local
 | 
			
		||||
 | 
			
		||||
build CMakeFiles/install/local.util: CUSTOM_COMMAND all
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug && /snap/flutter/145/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
 | 
			
		||||
  DESC = Installing only the local directory...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build install/local: phony CMakeFiles/install/local.util
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Object build statements for EXECUTABLE target oc_front
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Order-only phony target for oc_front
 | 
			
		||||
 | 
			
		||||
build cmake_object_order_depends_target_oc_front: phony || cmake_object_order_depends_target_desktop_window_plugin flutter/flutter_assemble
 | 
			
		||||
 | 
			
		||||
build CMakeFiles/oc_front.dir/main.cc.o: CXX_COMPILER__oc_front /home/mr/Documents/OC/oc-front/oc_front/linux/main.cc || cmake_object_order_depends_target_oc_front
 | 
			
		||||
  DEFINES = -DAPPLICATION_ID=\"com.example.oc_front\"
 | 
			
		||||
  DEP_FILE = CMakeFiles/oc_front.dir/main.cc.o.d
 | 
			
		||||
  FLAGS = -g   -Wall -Werror -pthread
 | 
			
		||||
  INCLUDES = -I/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral -I/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/.plugin_symlinks/desktop_window/linux/include -isystem /snap/flutter/current/usr/include/gtk-3.0 -isystem /snap/flutter/current/usr/include/at-spi2-atk/2.0 -isystem /snap/flutter/current/usr/include/at-spi-2.0 -isystem /snap/flutter/current/usr/include/dbus-1.0 -isystem /snap/flutter/current/usr/lib/x86_64-linux-gnu/dbus-1.0/include -isystem /snap/flutter/current/usr/include/gio-unix-2.0 -isystem /snap/flutter/current/usr/include/cairo -isystem /snap/flutter/current/usr/include/pango-1.0 -isystem /snap/flutter/current/usr/include/fribidi -isystem /snap/flutter/current/usr/include/harfbuzz -isystem /snap/flutter/current/usr/include/atk-1.0 -isystem /snap/flutter/current/usr/include/pixman-1 -isystem /snap/flutter/current/usr/include/uuid -isystem /snap/flutter/current/usr/include/freetype2 -isystem /snap/flutter/current/usr/include/libpng16 -isystem /snap/flutter/current/usr/include/gdk-pixbuf-2.0 -isystem /snap/flutter/current/usr/include/libmount -isystem /snap/flutter/current/usr/include/blkid -isystem /snap/flutter/current/usr/include/glib-2.0 -isystem /snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
  OBJECT_DIR = CMakeFiles/oc_front.dir
 | 
			
		||||
  OBJECT_FILE_DIR = CMakeFiles/oc_front.dir
 | 
			
		||||
 | 
			
		||||
build CMakeFiles/oc_front.dir/my_application.cc.o: CXX_COMPILER__oc_front /home/mr/Documents/OC/oc-front/oc_front/linux/my_application.cc || cmake_object_order_depends_target_oc_front
 | 
			
		||||
  DEFINES = -DAPPLICATION_ID=\"com.example.oc_front\"
 | 
			
		||||
  DEP_FILE = CMakeFiles/oc_front.dir/my_application.cc.o.d
 | 
			
		||||
  FLAGS = -g   -Wall -Werror -pthread
 | 
			
		||||
  INCLUDES = -I/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral -I/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/.plugin_symlinks/desktop_window/linux/include -isystem /snap/flutter/current/usr/include/gtk-3.0 -isystem /snap/flutter/current/usr/include/at-spi2-atk/2.0 -isystem /snap/flutter/current/usr/include/at-spi-2.0 -isystem /snap/flutter/current/usr/include/dbus-1.0 -isystem /snap/flutter/current/usr/lib/x86_64-linux-gnu/dbus-1.0/include -isystem /snap/flutter/current/usr/include/gio-unix-2.0 -isystem /snap/flutter/current/usr/include/cairo -isystem /snap/flutter/current/usr/include/pango-1.0 -isystem /snap/flutter/current/usr/include/fribidi -isystem /snap/flutter/current/usr/include/harfbuzz -isystem /snap/flutter/current/usr/include/atk-1.0 -isystem /snap/flutter/current/usr/include/pixman-1 -isystem /snap/flutter/current/usr/include/uuid -isystem /snap/flutter/current/usr/include/freetype2 -isystem /snap/flutter/current/usr/include/libpng16 -isystem /snap/flutter/current/usr/include/gdk-pixbuf-2.0 -isystem /snap/flutter/current/usr/include/libmount -isystem /snap/flutter/current/usr/include/blkid -isystem /snap/flutter/current/usr/include/glib-2.0 -isystem /snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
  OBJECT_DIR = CMakeFiles/oc_front.dir
 | 
			
		||||
  OBJECT_FILE_DIR = CMakeFiles/oc_front.dir
 | 
			
		||||
 | 
			
		||||
build CMakeFiles/oc_front.dir/flutter/generated_plugin_registrant.cc.o: CXX_COMPILER__oc_front /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/generated_plugin_registrant.cc || cmake_object_order_depends_target_oc_front
 | 
			
		||||
  DEFINES = -DAPPLICATION_ID=\"com.example.oc_front\"
 | 
			
		||||
  DEP_FILE = CMakeFiles/oc_front.dir/flutter/generated_plugin_registrant.cc.o.d
 | 
			
		||||
  FLAGS = -g   -Wall -Werror -pthread
 | 
			
		||||
  INCLUDES = -I/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral -I/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/.plugin_symlinks/desktop_window/linux/include -isystem /snap/flutter/current/usr/include/gtk-3.0 -isystem /snap/flutter/current/usr/include/at-spi2-atk/2.0 -isystem /snap/flutter/current/usr/include/at-spi-2.0 -isystem /snap/flutter/current/usr/include/dbus-1.0 -isystem /snap/flutter/current/usr/lib/x86_64-linux-gnu/dbus-1.0/include -isystem /snap/flutter/current/usr/include/gio-unix-2.0 -isystem /snap/flutter/current/usr/include/cairo -isystem /snap/flutter/current/usr/include/pango-1.0 -isystem /snap/flutter/current/usr/include/fribidi -isystem /snap/flutter/current/usr/include/harfbuzz -isystem /snap/flutter/current/usr/include/atk-1.0 -isystem /snap/flutter/current/usr/include/pixman-1 -isystem /snap/flutter/current/usr/include/uuid -isystem /snap/flutter/current/usr/include/freetype2 -isystem /snap/flutter/current/usr/include/libpng16 -isystem /snap/flutter/current/usr/include/gdk-pixbuf-2.0 -isystem /snap/flutter/current/usr/include/libmount -isystem /snap/flutter/current/usr/include/blkid -isystem /snap/flutter/current/usr/include/glib-2.0 -isystem /snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
  OBJECT_DIR = CMakeFiles/oc_front.dir
 | 
			
		||||
  OBJECT_FILE_DIR = CMakeFiles/oc_front.dir/flutter
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Link build statements for EXECUTABLE target oc_front
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Link the executable intermediates_do_not_run/oc_front
 | 
			
		||||
 | 
			
		||||
build intermediates_do_not_run/oc_front: CXX_EXECUTABLE_LINKER__oc_front CMakeFiles/oc_front.dir/main.cc.o CMakeFiles/oc_front.dir/my_application.cc.o CMakeFiles/oc_front.dir/flutter/generated_plugin_registrant.cc.o | plugins/desktop_window/libdesktop_window_plugin.so /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgtk-3.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk-3.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libpango-1.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libharfbuzz.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libatk-1.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo-gobject.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgio-2.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgobject-2.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libglib-2.0.so || flutter/flutter_assemble plugins/desktop_window/libdesktop_window_plugin.so
 | 
			
		||||
  FLAGS = -g
 | 
			
		||||
  LINK_FLAGS = -B/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -B/snap/flutter/current/usr/lib/x86_64-linux-gnu -B/snap/flutter/current/lib/x86_64-linux-gnu -B/snap/flutter/current/usr/lib/ -L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu -L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib/ -lblkid -lgcrypt -llzma -llz4 -lgpg-error -luuid -lpthread -ldl -lepoxy -lfontconfig
 | 
			
		||||
  LINK_LIBRARIES = -Wl,-rpath,/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window:/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral:  plugins/desktop_window/libdesktop_window_plugin.so  /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgtk-3.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk-3.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libpango-1.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libharfbuzz.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libatk-1.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo-gobject.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgio-2.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgobject-2.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libglib-2.0.so
 | 
			
		||||
  OBJECT_DIR = CMakeFiles/oc_front.dir
 | 
			
		||||
  POST_BUILD = :
 | 
			
		||||
  PRE_LINK = :
 | 
			
		||||
  TARGET_FILE = intermediates_do_not_run/oc_front
 | 
			
		||||
  TARGET_PDB = oc_front.dbg
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Write statements declared in CMakeLists.txt:
 | 
			
		||||
# /home/mr/Documents/OC/oc-front/oc_front/linux/CMakeLists.txt
 | 
			
		||||
# =============================================================================
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for install/strip
 | 
			
		||||
 | 
			
		||||
build flutter/CMakeFiles/install/strip.util: CUSTOM_COMMAND flutter/all
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter && /snap/flutter/145/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
 | 
			
		||||
  DESC = Installing the project stripped...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build flutter/install/strip: phony flutter/CMakeFiles/install/strip.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for install/local
 | 
			
		||||
 | 
			
		||||
build flutter/CMakeFiles/install/local.util: CUSTOM_COMMAND flutter/all
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter && /snap/flutter/145/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
 | 
			
		||||
  DESC = Installing only the local directory...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build flutter/install/local: phony flutter/CMakeFiles/install/local.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for install
 | 
			
		||||
 | 
			
		||||
build flutter/CMakeFiles/install.util: CUSTOM_COMMAND flutter/all
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter && /snap/flutter/145/usr/bin/cmake -P cmake_install.cmake
 | 
			
		||||
  DESC = Install the project...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build flutter/install: phony flutter/CMakeFiles/install.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for list_install_components
 | 
			
		||||
 | 
			
		||||
build flutter/list_install_components: phony
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for rebuild_cache
 | 
			
		||||
 | 
			
		||||
build flutter/CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter && /snap/flutter/145/usr/bin/cmake -S/home/mr/Documents/OC/oc-front/oc_front/linux -B/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug
 | 
			
		||||
  DESC = Running CMake to regenerate build system...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build flutter/rebuild_cache: phony flutter/CMakeFiles/rebuild_cache.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for edit_cache
 | 
			
		||||
 | 
			
		||||
build flutter/CMakeFiles/edit_cache.util: CUSTOM_COMMAND
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter && /snap/flutter/145/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
 | 
			
		||||
  DESC = No interactive CMake dialog available...
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build flutter/edit_cache: phony flutter/CMakeFiles/edit_cache.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for flutter_assemble
 | 
			
		||||
 | 
			
		||||
build flutter/flutter_assemble: phony flutter/CMakeFiles/flutter_assemble /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_engine.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_call.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_response.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_value.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_view.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/flutter_linux.h flutter/_phony_
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Phony custom command for flutter/CMakeFiles/flutter_assemble
 | 
			
		||||
 | 
			
		||||
build flutter/CMakeFiles/flutter_assemble: phony /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_engine.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_call.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_response.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_value.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_view.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/flutter_linux.h
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Custom command for /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so
 | 
			
		||||
 | 
			
		||||
build /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_engine.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_call.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_response.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_value.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_view.h /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/flutter_linux.h flutter/_phony_: CUSTOM_COMMAND
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter && /snap/flutter/145/usr/bin/cmake -E env FLUTTER_ROOT=/home/mr/snap/flutter/common/flutter PROJECT_DIR=/home/mr/Documents/OC/oc-front/oc_front DART_DEFINES=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==,RkxVVFRFUl9XRUJfQ0FOVkFTS0lUX1VSTD1odHRwczovL3d3dy5nc3RhdGljLmNvbS9mbHV0dGVyLWNhbnZhc2tpdC9jNGNkNDhlMTg2NDYwYjMyZDQ0NTg1Y2UzYzEwMzI3MWFiNjc2MzU1Lw== DART_OBFUSCATION=false TRACK_WIDGET_CREATION=true TREE_SHAKE_ICONS=false PACKAGE_CONFIG=/home/mr/Documents/OC/oc-front/oc_front/.dart_tool/package_config.json FLUTTER_TARGET=/home/mr/Documents/OC/oc-front/oc_front/lib/main.dart /home/mr/snap/flutter/common/flutter/packages/flutter_tools/bin/tool_backend.sh linux-x64 Debug
 | 
			
		||||
  DESC = Generating /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_basic_message_channel.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_codec.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_binary_messenger.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_dart_project.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_engine.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_message_codec.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_json_method_codec.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_message_codec.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_call.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_channel.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_codec.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_method_response.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registrar.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_plugin_registry.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_message_codec.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_standard_method_codec.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_string_codec.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_value.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/fl_view.h, /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/flutter_linux/flutter_linux.h, _phony_
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Write statements declared in CMakeLists.txt:
 | 
			
		||||
# /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/generated_plugins.cmake
 | 
			
		||||
# =============================================================================
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for install/strip
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/CMakeFiles/install/strip.util: CUSTOM_COMMAND plugins/desktop_window/all
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window && /snap/flutter/145/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
 | 
			
		||||
  DESC = Installing the project stripped...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/install/strip: phony plugins/desktop_window/CMakeFiles/install/strip.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for install/local
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/CMakeFiles/install/local.util: CUSTOM_COMMAND plugins/desktop_window/all
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window && /snap/flutter/145/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
 | 
			
		||||
  DESC = Installing only the local directory...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/install/local: phony plugins/desktop_window/CMakeFiles/install/local.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for install
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/CMakeFiles/install.util: CUSTOM_COMMAND plugins/desktop_window/all
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window && /snap/flutter/145/usr/bin/cmake -P cmake_install.cmake
 | 
			
		||||
  DESC = Install the project...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/install: phony plugins/desktop_window/CMakeFiles/install.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for list_install_components
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/list_install_components: phony
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for rebuild_cache
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window && /snap/flutter/145/usr/bin/cmake -S/home/mr/Documents/OC/oc-front/oc_front/linux -B/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug
 | 
			
		||||
  DESC = Running CMake to regenerate build system...
 | 
			
		||||
  pool = console
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/rebuild_cache: phony plugins/desktop_window/CMakeFiles/rebuild_cache.util
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Utility command for edit_cache
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/CMakeFiles/edit_cache.util: CUSTOM_COMMAND
 | 
			
		||||
  COMMAND = cd /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window && /snap/flutter/145/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
 | 
			
		||||
  DESC = No interactive CMake dialog available...
 | 
			
		||||
  restat = 1
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/edit_cache: phony plugins/desktop_window/CMakeFiles/edit_cache.util
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Object build statements for SHARED_LIBRARY target desktop_window_plugin
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Order-only phony target for desktop_window_plugin
 | 
			
		||||
 | 
			
		||||
build cmake_object_order_depends_target_desktop_window_plugin: phony || flutter/flutter_assemble
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/CMakeFiles/desktop_window_plugin.dir/desktop_window_plugin.cc.o: CXX_COMPILER__desktop_window_plugin /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/.plugin_symlinks/desktop_window/linux/desktop_window_plugin.cc || cmake_object_order_depends_target_desktop_window_plugin
 | 
			
		||||
  DEFINES = -DAPPLICATION_ID=\"com.example.oc_front\" -DFLUTTER_PLUGIN_IMPL -Ddesktop_window_plugin_EXPORTS
 | 
			
		||||
  DEP_FILE = plugins/desktop_window/CMakeFiles/desktop_window_plugin.dir/desktop_window_plugin.cc.o.d
 | 
			
		||||
  FLAGS = -g -fPIC -fvisibility=hidden   -Wall -Werror -pthread
 | 
			
		||||
  INCLUDES = -I/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral -isystem /snap/flutter/current/usr/include/gtk-3.0 -isystem /snap/flutter/current/usr/include/at-spi2-atk/2.0 -isystem /snap/flutter/current/usr/include/at-spi-2.0 -isystem /snap/flutter/current/usr/include/dbus-1.0 -isystem /snap/flutter/current/usr/lib/x86_64-linux-gnu/dbus-1.0/include -isystem /snap/flutter/current/usr/include/gio-unix-2.0 -isystem /snap/flutter/current/usr/include/cairo -isystem /snap/flutter/current/usr/include/pango-1.0 -isystem /snap/flutter/current/usr/include/fribidi -isystem /snap/flutter/current/usr/include/harfbuzz -isystem /snap/flutter/current/usr/include/atk-1.0 -isystem /snap/flutter/current/usr/include/pixman-1 -isystem /snap/flutter/current/usr/include/uuid -isystem /snap/flutter/current/usr/include/freetype2 -isystem /snap/flutter/current/usr/include/libpng16 -isystem /snap/flutter/current/usr/include/gdk-pixbuf-2.0 -isystem /snap/flutter/current/usr/include/libmount -isystem /snap/flutter/current/usr/include/blkid -isystem /snap/flutter/current/usr/include/glib-2.0 -isystem /snap/flutter/current/usr/lib/x86_64-linux-gnu/glib-2.0/include
 | 
			
		||||
  OBJECT_DIR = plugins/desktop_window/CMakeFiles/desktop_window_plugin.dir
 | 
			
		||||
  OBJECT_FILE_DIR = plugins/desktop_window/CMakeFiles/desktop_window_plugin.dir
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Link build statements for SHARED_LIBRARY target desktop_window_plugin
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Link the shared library plugins/desktop_window/libdesktop_window_plugin.so
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/libdesktop_window_plugin.so: CXX_SHARED_LIBRARY_LINKER__desktop_window_plugin plugins/desktop_window/CMakeFiles/desktop_window_plugin.dir/desktop_window_plugin.cc.o | /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgtk-3.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk-3.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libpango-1.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libharfbuzz.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libatk-1.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo-gobject.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgio-2.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgobject-2.0.so /snap/flutter/current/usr/lib/x86_64-linux-gnu/libglib-2.0.so || flutter/flutter_assemble
 | 
			
		||||
  LANGUAGE_COMPILE_FLAGS = -g
 | 
			
		||||
  LINK_FLAGS = -B/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -B/snap/flutter/current/usr/lib/x86_64-linux-gnu -B/snap/flutter/current/lib/x86_64-linux-gnu -B/snap/flutter/current/usr/lib/ -L/snap/flutter/current/usr/lib/gcc/x86_64-linux-gnu/9 -L/snap/flutter/current/usr/lib/x86_64-linux-gnu -L/snap/flutter/current/lib/x86_64-linux-gnu -L/snap/flutter/current/usr/lib/ -lblkid -lgcrypt -llzma -llz4 -lgpg-error -luuid -lpthread -ldl -lepoxy -lfontconfig
 | 
			
		||||
  LINK_LIBRARIES = -Wl,-rpath,/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral  /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgtk-3.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk-3.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libpango-1.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libharfbuzz.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libatk-1.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo-gobject.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libcairo.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgio-2.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libgobject-2.0.so  /snap/flutter/current/usr/lib/x86_64-linux-gnu/libglib-2.0.so
 | 
			
		||||
  OBJECT_DIR = plugins/desktop_window/CMakeFiles/desktop_window_plugin.dir
 | 
			
		||||
  POST_BUILD = :
 | 
			
		||||
  PRE_LINK = :
 | 
			
		||||
  SONAME = libdesktop_window_plugin.so
 | 
			
		||||
  SONAME_FLAG = -Wl,-soname,
 | 
			
		||||
  TARGET_FILE = plugins/desktop_window/libdesktop_window_plugin.so
 | 
			
		||||
  TARGET_PDB = desktop_window_plugin.so.dbg
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Target aliases.
 | 
			
		||||
 | 
			
		||||
build desktop_window_plugin: phony plugins/desktop_window/libdesktop_window_plugin.so
 | 
			
		||||
 | 
			
		||||
build flutter_assemble: phony flutter/flutter_assemble
 | 
			
		||||
 | 
			
		||||
build libdesktop_window_plugin.so: phony plugins/desktop_window/libdesktop_window_plugin.so
 | 
			
		||||
 | 
			
		||||
build oc_front: phony intermediates_do_not_run/oc_front
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Folder targets.
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Folder: /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug
 | 
			
		||||
 | 
			
		||||
build all: phony intermediates_do_not_run/oc_front flutter/all plugins/desktop_window/all
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Folder: /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter
 | 
			
		||||
 | 
			
		||||
build flutter/all: phony
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Folder: /home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window
 | 
			
		||||
 | 
			
		||||
build plugins/desktop_window/all: phony plugins/desktop_window/libdesktop_window_plugin.so
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Built-in targets
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Make the all target the default.
 | 
			
		||||
 | 
			
		||||
default all
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Re-run CMake if any of its inputs changed.
 | 
			
		||||
 | 
			
		||||
build build.ninja: RERUN_CMAKE | /home/mr/Documents/OC/oc-front/oc_front/linux/CMakeLists.txt /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/CMakeLists.txt /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/.plugin_symlinks/desktop_window/linux/CMakeLists.txt /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/generated_config.cmake /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/generated_plugins.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Compiler/Clang-CXX.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Compiler/Clang.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/FindPkgConfig.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Platform/Linux-Clang-CXX.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Platform/Linux.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.16.3/CMakeCXXCompiler.cmake CMakeFiles/3.16.3/CMakeSystem.cmake
 | 
			
		||||
  pool = console
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# A missing CMake input file is not an error.
 | 
			
		||||
 | 
			
		||||
build /home/mr/Documents/OC/oc-front/oc_front/linux/CMakeLists.txt /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/CMakeLists.txt /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/.plugin_symlinks/desktop_window/linux/CMakeLists.txt /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/generated_config.cmake /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/generated_plugins.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Compiler/Clang-CXX.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Compiler/Clang.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/FindPkgConfig.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Platform/Linux-Clang-CXX.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Platform/Linux.cmake /snap/flutter/145/usr/share/cmake-3.16/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.16.3/CMakeCXXCompiler.cmake CMakeFiles/3.16.3/CMakeSystem.cmake: phony
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Clean all the built files.
 | 
			
		||||
 | 
			
		||||
build clean: CLEAN
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Print all primary targets available.
 | 
			
		||||
 | 
			
		||||
build help: HELP
 | 
			
		||||
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
{"assets/images/icon.svg":["assets/images/icon.svg"],"assets/images/logo.svg":["assets/images/logo.svg"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/flutter_map/lib/assets/flutter_map_logo.png":["packages/flutter_map/lib/assets/flutter_map_logo.png"]}
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]}]
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,86 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<svg
 | 
			
		||||
   xmlns:dc="http://purl.org/dc/elements/1.1/"
 | 
			
		||||
   xmlns:cc="http://creativecommons.org/ns#"
 | 
			
		||||
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 | 
			
		||||
   xmlns:svg="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 | 
			
		||||
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 | 
			
		||||
   inkscape:export-ydpi="300.01099"
 | 
			
		||||
   inkscape:export-xdpi="300.01099"
 | 
			
		||||
   inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\O-cloud.png"
 | 
			
		||||
   sodipodi:docname="O-cloud.svg"
 | 
			
		||||
   inkscape:version="1.0beta2 (2b71d25, 2019-12-03)"
 | 
			
		||||
   version="1.1"
 | 
			
		||||
   id="svg2"
 | 
			
		||||
   viewBox="0 0 1052.3622 744.09448"
 | 
			
		||||
   height="210mm"
 | 
			
		||||
   width="297mm">
 | 
			
		||||
  <defs
 | 
			
		||||
     id="defs4" />
 | 
			
		||||
  <sodipodi:namedview
 | 
			
		||||
     inkscape:document-rotation="0"
 | 
			
		||||
     inkscape:window-maximized="1"
 | 
			
		||||
     inkscape:window-y="23"
 | 
			
		||||
     inkscape:window-x="0"
 | 
			
		||||
     inkscape:window-height="811"
 | 
			
		||||
     inkscape:window-width="1440"
 | 
			
		||||
     showgrid="false"
 | 
			
		||||
     inkscape:current-layer="layer1"
 | 
			
		||||
     inkscape:document-units="px"
 | 
			
		||||
     inkscape:cy="479.06704"
 | 
			
		||||
     inkscape:cx="674.21441"
 | 
			
		||||
     inkscape:zoom="0.35"
 | 
			
		||||
     inkscape:pageshadow="2"
 | 
			
		||||
     inkscape:pageopacity="0.0"
 | 
			
		||||
     borderopacity="1.0"
 | 
			
		||||
     bordercolor="#666666"
 | 
			
		||||
     pagecolor="#ffffff"
 | 
			
		||||
     id="base" />
 | 
			
		||||
  <metadata
 | 
			
		||||
     id="metadata7">
 | 
			
		||||
    <rdf:RDF>
 | 
			
		||||
      <cc:Work
 | 
			
		||||
         rdf:about="">
 | 
			
		||||
        <dc:format>image/svg+xml</dc:format>
 | 
			
		||||
        <dc:type
 | 
			
		||||
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
 | 
			
		||||
        <dc:title />
 | 
			
		||||
      </cc:Work>
 | 
			
		||||
    </rdf:RDF>
 | 
			
		||||
  </metadata>
 | 
			
		||||
  <g
 | 
			
		||||
     transform="translate(0,-308.26772)"
 | 
			
		||||
     id="layer1"
 | 
			
		||||
     inkscape:groupmode="layer"
 | 
			
		||||
     inkscape:label="Layer 1">
 | 
			
		||||
    <path
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       inkscape:connector-curvature="0"
 | 
			
		||||
       id="path4146"
 | 
			
		||||
       d="m 589.87014,561.52541 101.65363,0"
 | 
			
		||||
       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:28.38233757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
 | 
			
		||||
    <text
 | 
			
		||||
       id="text4148"
 | 
			
		||||
       y="583.65143"
 | 
			
		||||
       x="375.77676"
 | 
			
		||||
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       xml:space="preserve"><tspan
 | 
			
		||||
         style="font-size:180px;line-height:1.25"
 | 
			
		||||
         y="583.65143"
 | 
			
		||||
         x="375.77676"
 | 
			
		||||
         id="tspan4150"
 | 
			
		||||
         sodipodi:role="line"> </tspan></text>
 | 
			
		||||
    <path
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       inkscape:connector-curvature="0"
 | 
			
		||||
       d="m 453.76672,412.20907 q 44.48935,0 77.01376,41.43523 32.69294,41.22909 32.69294,103.07272 0,63.69894 -32.86145,105.75261 -32.86146,42.05368 -79.54158,42.05368 -47.18568,0 -79.37304,-41.02295 -32.01886,-41.02294 -32.01886,-106.1649 0,-66.58497 37.07446,-108.63865 32.18738,-36.48774 77.01377,-36.48774 z m -3.20188,15.04861 q -30.6707,0 -49.20792,27.82964 -23.08729,34.63244 -23.08729,101.42355 0,68.4403 23.92989,105.34033 18.3687,28.03577 48.53383,28.03577 32.18738,0 53.0839,-30.71566 21.06503,-30.71567 21.06503,-96.88836 0,-71.73861 -23.08728,-106.98948 -18.53723,-28.03579 -51.23016,-28.03579 z"
 | 
			
		||||
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       id="path4203" />
 | 
			
		||||
  </g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 4.0 KiB  | 
@@ -1,115 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<svg
 | 
			
		||||
   xmlns:dc="http://purl.org/dc/elements/1.1/"
 | 
			
		||||
   xmlns:cc="http://creativecommons.org/ns#"
 | 
			
		||||
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 | 
			
		||||
   xmlns:svg="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
 | 
			
		||||
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
 | 
			
		||||
   inkscape:export-ydpi="300.01099"
 | 
			
		||||
   inkscape:export-xdpi="300.01099"
 | 
			
		||||
   inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\O-cloud.png"
 | 
			
		||||
   sodipodi:docname="O-cloud.svg"
 | 
			
		||||
   inkscape:version="1.0beta2 (2b71d25, 2019-12-03)"
 | 
			
		||||
   version="1.1"
 | 
			
		||||
   id="svg2"
 | 
			
		||||
   viewBox="0 0 1052.3622 744.09448"
 | 
			
		||||
   height="210mm"
 | 
			
		||||
   width="297mm">
 | 
			
		||||
  <defs
 | 
			
		||||
     id="defs4" />
 | 
			
		||||
  <sodipodi:namedview
 | 
			
		||||
     inkscape:document-rotation="0"
 | 
			
		||||
     inkscape:window-maximized="1"
 | 
			
		||||
     inkscape:window-y="23"
 | 
			
		||||
     inkscape:window-x="0"
 | 
			
		||||
     inkscape:window-height="811"
 | 
			
		||||
     inkscape:window-width="1440"
 | 
			
		||||
     showgrid="false"
 | 
			
		||||
     inkscape:current-layer="layer1"
 | 
			
		||||
     inkscape:document-units="px"
 | 
			
		||||
     inkscape:cy="479.06704"
 | 
			
		||||
     inkscape:cx="674.21441"
 | 
			
		||||
     inkscape:zoom="0.35"
 | 
			
		||||
     inkscape:pageshadow="2"
 | 
			
		||||
     inkscape:pageopacity="0.0"
 | 
			
		||||
     borderopacity="1.0"
 | 
			
		||||
     bordercolor="#666666"
 | 
			
		||||
     pagecolor="#ffffff"
 | 
			
		||||
     id="base" />
 | 
			
		||||
  <metadata
 | 
			
		||||
     id="metadata7">
 | 
			
		||||
    <rdf:RDF>
 | 
			
		||||
      <cc:Work
 | 
			
		||||
         rdf:about="">
 | 
			
		||||
        <dc:format>image/svg+xml</dc:format>
 | 
			
		||||
        <dc:type
 | 
			
		||||
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
 | 
			
		||||
        <dc:title />
 | 
			
		||||
      </cc:Work>
 | 
			
		||||
    </rdf:RDF>
 | 
			
		||||
  </metadata>
 | 
			
		||||
  <g
 | 
			
		||||
     transform="translate(0,-308.26772)"
 | 
			
		||||
     id="layer1"
 | 
			
		||||
     inkscape:groupmode="layer"
 | 
			
		||||
     inkscape:label="Layer 1">
 | 
			
		||||
    <path
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       inkscape:connector-curvature="0"
 | 
			
		||||
       id="path4146"
 | 
			
		||||
       d="m 589.87014,561.52541 101.65363,0"
 | 
			
		||||
       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:28.38233757;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
 | 
			
		||||
    <text
 | 
			
		||||
       id="text4148"
 | 
			
		||||
       y="583.65143"
 | 
			
		||||
       x="375.77676"
 | 
			
		||||
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       xml:space="preserve"><tspan
 | 
			
		||||
         style="font-size:180px;line-height:1.25"
 | 
			
		||||
         y="583.65143"
 | 
			
		||||
         x="375.77676"
 | 
			
		||||
         id="tspan4150"
 | 
			
		||||
         sodipodi:role="line"> </tspan></text>
 | 
			
		||||
    <path
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       inkscape:connector-curvature="0"
 | 
			
		||||
       d="m 453.76672,412.20907 q 44.48935,0 77.01376,41.43523 32.69294,41.22909 32.69294,103.07272 0,63.69894 -32.86145,105.75261 -32.86146,42.05368 -79.54158,42.05368 -47.18568,0 -79.37304,-41.02295 -32.01886,-41.02294 -32.01886,-106.1649 0,-66.58497 37.07446,-108.63865 32.18738,-36.48774 77.01377,-36.48774 z m -3.20188,15.04861 q -30.6707,0 -49.20792,27.82964 -23.08729,34.63244 -23.08729,101.42355 0,68.4403 23.92989,105.34033 18.3687,28.03577 48.53383,28.03577 32.18738,0 53.0839,-30.71566 21.06503,-30.71567 21.06503,-96.88836 0,-71.73861 -23.08728,-106.98948 -18.53723,-28.03579 -51.23016,-28.03579 z"
 | 
			
		||||
       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman, ';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       id="path4203" />
 | 
			
		||||
    <text
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       transform="scale(1.0549351,0.94792559)"
 | 
			
		||||
       id="text4240"
 | 
			
		||||
       y="880.93158"
 | 
			
		||||
       x="197.83252"
 | 
			
		||||
       style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       xml:space="preserve"><tspan
 | 
			
		||||
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:142.129px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif"
 | 
			
		||||
         y="880.93158"
 | 
			
		||||
         x="197.83252"
 | 
			
		||||
         id="tspan4242"
 | 
			
		||||
         sodipodi:role="line">CLOUD</tspan></text>
 | 
			
		||||
    <text
 | 
			
		||||
       inkscape:export-filename="C:\Users\yves.cerezal\Documents\IRT\Plateformes\Projets\OpenCloud\text4244.png"
 | 
			
		||||
       inkscape:export-ydpi="300.01099"
 | 
			
		||||
       inkscape:export-xdpi="300.01099"
 | 
			
		||||
       id="text4244"
 | 
			
		||||
       y="685.59955"
 | 
			
		||||
       x="554.62244"
 | 
			
		||||
       style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
 | 
			
		||||
       xml:space="preserve"><tspan
 | 
			
		||||
         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:90px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif"
 | 
			
		||||
         y="685.59955"
 | 
			
		||||
         x="554.62244"
 | 
			
		||||
         id="tspan4246"
 | 
			
		||||
         sodipodi:role="line">pen</tspan></text>
 | 
			
		||||
  </g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 5.8 KiB  | 
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 2.4 KiB  | 
										
											Binary file not shown.
										
									
								
							@@ -1 +0,0 @@
 | 
			
		||||
{"app_name":"oc_front","version":"1.0.0","build_number":"1","package_name":"oc_front"}
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1,156 +0,0 @@
 | 
			
		||||
# Install script for directory: /home/mr/Documents/OC/oc-front/oc_front/linux
 | 
			
		||||
 | 
			
		||||
# Set the install prefix
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
 | 
			
		||||
  set(CMAKE_INSTALL_PREFIX "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle")
 | 
			
		||||
endif()
 | 
			
		||||
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
 | 
			
		||||
 | 
			
		||||
# Set the install configuration name.
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
 | 
			
		||||
  if(BUILD_TYPE)
 | 
			
		||||
    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
 | 
			
		||||
           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
 | 
			
		||||
  else()
 | 
			
		||||
    set(CMAKE_INSTALL_CONFIG_NAME "Debug")
 | 
			
		||||
  endif()
 | 
			
		||||
  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Set the component getting installed.
 | 
			
		||||
if(NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  if(COMPONENT)
 | 
			
		||||
    message(STATUS "Install component: \"${COMPONENT}\"")
 | 
			
		||||
    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
 | 
			
		||||
  else()
 | 
			
		||||
    set(CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Install shared libraries without execute permission?
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
 | 
			
		||||
  set(CMAKE_INSTALL_SO_NO_EXE "1")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Is this installation the result of a crosscompile?
 | 
			
		||||
if(NOT DEFINED CMAKE_CROSSCOMPILING)
 | 
			
		||||
  set(CMAKE_CROSSCOMPILING "FALSE")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xRuntimex" OR NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  
 | 
			
		||||
  file(REMOVE_RECURSE "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/")
 | 
			
		||||
  
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xRuntimex" OR NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  if(EXISTS "$ENV{DESTDIR}/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/oc_front" AND
 | 
			
		||||
     NOT IS_SYMLINK "$ENV{DESTDIR}/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/oc_front")
 | 
			
		||||
    file(RPATH_CHECK
 | 
			
		||||
         FILE "$ENV{DESTDIR}/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/oc_front"
 | 
			
		||||
         RPATH "$ORIGIN/lib")
 | 
			
		||||
  endif()
 | 
			
		||||
  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
 | 
			
		||||
   "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/oc_front")
 | 
			
		||||
  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
file(INSTALL DESTINATION "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle" TYPE EXECUTABLE FILES "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/intermediates_do_not_run/oc_front")
 | 
			
		||||
  if(EXISTS "$ENV{DESTDIR}/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/oc_front" AND
 | 
			
		||||
     NOT IS_SYMLINK "$ENV{DESTDIR}/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/oc_front")
 | 
			
		||||
    file(RPATH_CHANGE
 | 
			
		||||
         FILE "$ENV{DESTDIR}/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/oc_front"
 | 
			
		||||
         OLD_RPATH "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window:/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral:"
 | 
			
		||||
         NEW_RPATH "$ORIGIN/lib")
 | 
			
		||||
    if(CMAKE_INSTALL_DO_STRIP)
 | 
			
		||||
      execute_process(COMMAND "/snap/flutter/current/usr/bin/strip" "$ENV{DESTDIR}/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/oc_front")
 | 
			
		||||
    endif()
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xRuntimex" OR NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
 | 
			
		||||
   "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/icudtl.dat")
 | 
			
		||||
  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
file(INSTALL DESTINATION "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data" TYPE FILE FILES "/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/icudtl.dat")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xRuntimex" OR NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
 | 
			
		||||
   "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/lib/libflutter_linux_gtk.so")
 | 
			
		||||
  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
file(INSTALL DESTINATION "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/lib" TYPE FILE FILES "/home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/libflutter_linux_gtk.so")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xRuntimex" OR NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
 | 
			
		||||
   "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/lib/libdesktop_window_plugin.so")
 | 
			
		||||
  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
file(INSTALL DESTINATION "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/lib" TYPE FILE FILES "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window/libdesktop_window_plugin.so")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xRuntimex" OR NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
 | 
			
		||||
   "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/lib/")
 | 
			
		||||
  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
file(INSTALL DESTINATION "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/lib" TYPE DIRECTORY FILES "/home/mr/Documents/OC/oc-front/oc_front/build/native_assets/linux/")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xRuntimex" OR NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  
 | 
			
		||||
  file(REMOVE_RECURSE "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets")
 | 
			
		||||
  
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xRuntimex" OR NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES
 | 
			
		||||
   "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets")
 | 
			
		||||
  if(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(WARNING "ABSOLUTE path INSTALL DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
  if(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)
 | 
			
		||||
    message(FATAL_ERROR "ABSOLUTE path INSTALL DESTINATION forbidden (by caller): ${CMAKE_ABSOLUTE_DESTINATION_FILES}")
 | 
			
		||||
  endif()
 | 
			
		||||
file(INSTALL DESTINATION "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data" TYPE DIRECTORY FILES "/home/mr/Documents/OC/oc-front/oc_front/build//flutter_assets")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
 | 
			
		||||
  # Include the install script for each subdirectory.
 | 
			
		||||
  include("/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/flutter/cmake_install.cmake")
 | 
			
		||||
  include("/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/plugins/desktop_window/cmake_install.cmake")
 | 
			
		||||
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if(CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
 | 
			
		||||
else()
 | 
			
		||||
  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
 | 
			
		||||
       "${CMAKE_INSTALL_MANIFEST_FILES}")
 | 
			
		||||
file(WRITE "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/${CMAKE_INSTALL_MANIFEST}"
 | 
			
		||||
     "${CMAKE_INSTALL_MANIFEST_CONTENT}")
 | 
			
		||||
@@ -1,39 +0,0 @@
 | 
			
		||||
# Install script for directory: /home/mr/Documents/OC/oc-front/oc_front/linux/flutter
 | 
			
		||||
 | 
			
		||||
# Set the install prefix
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
 | 
			
		||||
  set(CMAKE_INSTALL_PREFIX "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle")
 | 
			
		||||
endif()
 | 
			
		||||
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
 | 
			
		||||
 | 
			
		||||
# Set the install configuration name.
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
 | 
			
		||||
  if(BUILD_TYPE)
 | 
			
		||||
    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
 | 
			
		||||
           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
 | 
			
		||||
  else()
 | 
			
		||||
    set(CMAKE_INSTALL_CONFIG_NAME "Debug")
 | 
			
		||||
  endif()
 | 
			
		||||
  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Set the component getting installed.
 | 
			
		||||
if(NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  if(COMPONENT)
 | 
			
		||||
    message(STATUS "Install component: \"${COMPONENT}\"")
 | 
			
		||||
    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
 | 
			
		||||
  else()
 | 
			
		||||
    set(CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Install shared libraries without execute permission?
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
 | 
			
		||||
  set(CMAKE_INSTALL_SO_NO_EXE "1")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Is this installation the result of a crosscompile?
 | 
			
		||||
if(NOT DEFINED CMAKE_CROSSCOMPILING)
 | 
			
		||||
  set(CMAKE_CROSSCOMPILING "FALSE")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
@@ -1,16 +0,0 @@
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/oc_front
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/icudtl.dat
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/lib/libflutter_linux_gtk.so
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/lib/libdesktop_window_plugin.so
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/AssetManifest.json
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/assets/images/icon.svg
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/assets/images/logo.svg
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/kernel_blob.bin
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/fonts/MaterialIcons-Regular.otf
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/shaders/ink_sparkle.frag
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/NOTICES.Z
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/packages/cupertino_icons/assets/CupertinoIcons.ttf
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/packages/flutter_map/lib/assets/flutter_map_logo.png
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/version.json
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/FontManifest.json
 | 
			
		||||
/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle/data/flutter_assets/AssetManifest.bin
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							@@ -1,39 +0,0 @@
 | 
			
		||||
# Install script for directory: /home/mr/Documents/OC/oc-front/oc_front/linux/flutter/ephemeral/.plugin_symlinks/desktop_window/linux
 | 
			
		||||
 | 
			
		||||
# Set the install prefix
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
 | 
			
		||||
  set(CMAKE_INSTALL_PREFIX "/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug/bundle")
 | 
			
		||||
endif()
 | 
			
		||||
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
 | 
			
		||||
 | 
			
		||||
# Set the install configuration name.
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
 | 
			
		||||
  if(BUILD_TYPE)
 | 
			
		||||
    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
 | 
			
		||||
           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
 | 
			
		||||
  else()
 | 
			
		||||
    set(CMAKE_INSTALL_CONFIG_NAME "Debug")
 | 
			
		||||
  endif()
 | 
			
		||||
  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Set the component getting installed.
 | 
			
		||||
if(NOT CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  if(COMPONENT)
 | 
			
		||||
    message(STATUS "Install component: \"${COMPONENT}\"")
 | 
			
		||||
    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
 | 
			
		||||
  else()
 | 
			
		||||
    set(CMAKE_INSTALL_COMPONENT)
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Install shared libraries without execute permission?
 | 
			
		||||
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
 | 
			
		||||
  set(CMAKE_INSTALL_SO_NO_EXE "1")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Is this installation the result of a crosscompile?
 | 
			
		||||
if(NOT DEFINED CMAKE_CROSSCOMPILING)
 | 
			
		||||
  set(CMAKE_CROSSCOMPILING "FALSE")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							@@ -1,83 +0,0 @@
 | 
			
		||||
# CMAKE generated file: DO NOT EDIT!
 | 
			
		||||
# Generated by "Ninja" Generator, CMake Version 3.16
 | 
			
		||||
 | 
			
		||||
# This file contains all the rules used to get the outputs files
 | 
			
		||||
# built from the input files.
 | 
			
		||||
# It is included in the main 'build.ninja'.
 | 
			
		||||
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# Project: runner
 | 
			
		||||
# Configuration: Debug
 | 
			
		||||
# =============================================================================
 | 
			
		||||
# =============================================================================
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Rule for running custom commands.
 | 
			
		||||
 | 
			
		||||
rule CUSTOM_COMMAND
 | 
			
		||||
  command = $COMMAND
 | 
			
		||||
  description = $DESC
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Rule for compiling CXX files.
 | 
			
		||||
 | 
			
		||||
rule CXX_COMPILER__oc_front
 | 
			
		||||
  depfile = $DEP_FILE
 | 
			
		||||
  deps = gcc
 | 
			
		||||
  command = /snap/flutter/current/usr/bin/clang++  $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
 | 
			
		||||
  description = Building CXX object $out
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Rule for linking CXX executable.
 | 
			
		||||
 | 
			
		||||
rule CXX_EXECUTABLE_LINKER__oc_front
 | 
			
		||||
  command = $PRE_LINK && /snap/flutter/current/usr/bin/clang++  $FLAGS  $LINK_FLAGS $in  -o $TARGET_FILE $LINK_PATH $LINK_LIBRARIES && $POST_BUILD
 | 
			
		||||
  description = Linking CXX executable $TARGET_FILE
 | 
			
		||||
  restat = $RESTAT
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Rule for compiling CXX files.
 | 
			
		||||
 | 
			
		||||
rule CXX_COMPILER__desktop_window_plugin
 | 
			
		||||
  depfile = $DEP_FILE
 | 
			
		||||
  deps = gcc
 | 
			
		||||
  command = /snap/flutter/current/usr/bin/clang++  $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in
 | 
			
		||||
  description = Building CXX object $out
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Rule for linking CXX shared library.
 | 
			
		||||
 | 
			
		||||
rule CXX_SHARED_LIBRARY_LINKER__desktop_window_plugin
 | 
			
		||||
  command = $PRE_LINK && /snap/flutter/current/usr/bin/clang++ -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD
 | 
			
		||||
  description = Linking CXX shared library $TARGET_FILE
 | 
			
		||||
  restat = $RESTAT
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Rule for re-running cmake.
 | 
			
		||||
 | 
			
		||||
rule RERUN_CMAKE
 | 
			
		||||
  command = /snap/flutter/145/usr/bin/cmake -S/home/mr/Documents/OC/oc-front/oc_front/linux -B/home/mr/Documents/OC/oc-front/oc_front/build/linux/x64/debug
 | 
			
		||||
  description = Re-running CMake...
 | 
			
		||||
  generator = 1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Rule for cleaning all built files.
 | 
			
		||||
 | 
			
		||||
rule CLEAN
 | 
			
		||||
  command = /snap/flutter/current/usr/bin/ninja -t clean
 | 
			
		||||
  description = Cleaning all built files...
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#############################################
 | 
			
		||||
# Rule for printing all primary targets available.
 | 
			
		||||
 | 
			
		||||
rule HELP
 | 
			
		||||
  command = /snap/flutter/current/usr/bin/ninja -t targets
 | 
			
		||||
  description = All primary targets available:
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										21
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
version: '3.4'
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  oc-front:
 | 
			
		||||
    image: oc-front
 | 
			
		||||
    container_name: oc-front
 | 
			
		||||
    ports: 
 | 
			
		||||
      - 8080:80
 | 
			
		||||
    networks:
 | 
			
		||||
      - catalog
 | 
			
		||||
    labels:
 | 
			
		||||
        - "traefik.enable=true"
 | 
			
		||||
        - "traefik.http.routers.front.entrypoints=web"
 | 
			
		||||
        - "traefik.http.routers.front.rule=PathPrefix(`/`)"
 | 
			
		||||
        - "traefik.http.services.front.loadbalancer.server.port=80"
 | 
			
		||||
        - "traefik.http.middlewares.front-stripprefix.stripprefix.prefixes=/"
 | 
			
		||||
        - "traefik.http.routers.front.middlewares=front-stripprefix"
 | 
			
		||||
        - "traefik.http.middlewares.front.forwardauth.address=http://oc-auth:8080/oc/forward"
 | 
			
		||||
networks:
 | 
			
		||||
  catalog:
 | 
			
		||||
    external: true
 | 
			
		||||
							
								
								
									
										4
									
								
								env.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								env.env
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
KUBERNETES_SERVICE_HOST=192.168.1.169
 | 
			
		||||
KUBE_CA="LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUzTWpNeE1USXdNell3SGhjTk1qUXdPREE0TVRBeE16VTJXaGNOTXpRd09EQTJNVEF4TXpVMgpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUzTWpNeE1USXdNell3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFTVlk3ZHZhNEdYTVdkMy9jMlhLN3JLYjlnWXgyNSthaEE0NmkyNVBkSFAKRktQL2UxSVMyWVF0dzNYZW1TTUQxaStZdzJSaVppNUQrSVZUamNtNHdhcnFvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVWtlUVJpNFJiODduME5yRnZaWjZHClc2SU55NnN3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUlnRXA5ck04WmdNclRZSHYxZjNzOW5DZXZZeWVVa3lZUk4KWjUzazdoaytJS1FDSVFDbk05TnVGKzlTakIzNDFacGZ5ays2NEpWdkpSM3BhcmVaejdMd2lhNm9kdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
 | 
			
		||||
KUBE_CERT="LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrVENDQVRlZ0F3SUJBZ0lJWUxWNkFPQkdrU1F3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOekl6TVRFeU1ETTJNQjRYRFRJME1EZ3dPREV3TVRNMU5sb1hEVEkxTURndwpPREV3TVRNMU5sb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJGQ2Q1MFdPeWdlQ2syQzcKV2FrOWY4MVAvSkJieVRIajRWOXBsTEo0ck5HeHFtSjJOb2xROFYxdUx5RjBtOTQ2Nkc0RmRDQ2dqaXFVSk92Swp3NVRPNnd5alNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCVFJkOFI5cXVWK2pjeUVmL0ovT1hQSzMyS09XekFLQmdncWhrak9QUVFEQWdOSUFEQkYKQWlFQTArbThqTDBJVldvUTZ0dnB4cFo4NVlMalF1SmpwdXM0aDdnSXRxS3NmUVVDSUI2M2ZNdzFBMm5OVWU1TgpIUGZOcEQwSEtwcVN0Wnk4djIyVzliYlJUNklZCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlRENDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUzTWpNeE1USXdNell3SGhjTk1qUXdPREE0TVRBeE16VTJXaGNOTXpRd09EQTJNVEF4TXpVMgpXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUzTWpNeE1USXdNell3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFRc3hXWk9pbnIrcVp4TmFEQjVGMGsvTDF5cE01VHAxOFRaeU92ektJazQKRTFsZWVqUm9STW0zNmhPeVljbnN3d3JoNnhSUnBpMW5RdGhyMzg0S0Z6MlBvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVTBYZkVmYXJsZm8zTWhIL3lmemx6Cnl0OWlqbHN3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUxJL2dNYnNMT3MvUUpJa3U2WHVpRVMwTEE2cEJHMXgKcnBlTnpGdlZOekZsQWlFQW1wdjBubjZqN3M0MVI0QzFNMEpSL0djNE53MHdldlFmZWdEVGF1R2p3cFk9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"
 | 
			
		||||
KUBE_DATA="LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSU5ZS1BFb1dhd1NKUzJlRW5oWmlYMk5VZlY1ZlhKV2krSVNnV09TNFE5VTlvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFVUozblJZN0tCNEtUWUx0WnFUMS96VS84a0Z2Sk1lUGhYMm1Vc25pczBiR3FZblkyaVZEeApYVzR2SVhTYjNqcm9iZ1YwSUtDT0twUWs2OHJEbE03ckRBPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo="
 | 
			
		||||
							
								
								
									
										20
									
								
								lib/core/conf/conf_reader.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								lib/core/conf/conf_reader.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
import 'dart:convert';
 | 
			
		||||
import 'package:flutter/services.dart';
 | 
			
		||||
 | 
			
		||||
class AppConfig {
 | 
			
		||||
  static final AppConfig _instance = AppConfig._internal();
 | 
			
		||||
  Map<String, String> _config = {};
 | 
			
		||||
 | 
			
		||||
  AppConfig._internal();
 | 
			
		||||
 | 
			
		||||
  factory AppConfig() => _instance;
 | 
			
		||||
 | 
			
		||||
  Future<void> loadConfig() async {
 | 
			
		||||
    final response = await rootBundle.loadString('assets/config/front.json');
 | 
			
		||||
    _config = Map<String, String>.from(json.decode(response));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  String get(String key, {String defaultValue = ''}) {
 | 
			
		||||
    return _config[key] ?? defaultValue;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,66 +0,0 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/models/search.dart';
 | 
			
		||||
import 'package:oc_front/models/workspace.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/item_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/workspace_service.dart';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class WorkspaceLocal {
 | 
			
		||||
  static Workspace? workspace;
 | 
			
		||||
  static final WorkspaceService _service = WorkspaceService();
 | 
			
		||||
  static List<AbstractItem> items = [];
 | 
			
		||||
  static void init(BuildContext context) {
 | 
			
		||||
    _service.all(context).then((value) { 
 | 
			
		||||
      workspace = value.data; 
 | 
			
		||||
      if (workspace != null) {
 | 
			
		||||
        if (workspace!.data.isNotEmpty) {
 | 
			
		||||
          ItemService<DataItem, DataItem> dataService = ItemService<DataItem, DataItem>();
 | 
			
		||||
          dataService.get(context, workspace!.data.join(",")).then(
 | 
			
		||||
            (value) { if (value.data != null) { items.add(value.data!);  } }
 | 
			
		||||
          );
 | 
			
		||||
        }
 | 
			
		||||
        if (workspace!.computing.isNotEmpty) {
 | 
			
		||||
          ItemService<ComputingItem, ComputingItem> computingService = ItemService<ComputingItem, ComputingItem>();
 | 
			
		||||
          computingService.get(context, workspace!.computing.join(",")).then(
 | 
			
		||||
            (value) { if (value.data != null) { items.add(value.data!);  } }
 | 
			
		||||
          );
 | 
			
		||||
        }
 | 
			
		||||
        if (workspace!.datacenter.isNotEmpty) {
 | 
			
		||||
          ItemService<DataCenterItem, DataCenterItem> dataCenterService = ItemService<DataCenterItem, DataCenterItem>();
 | 
			
		||||
          dataCenterService.get(context, workspace!.datacenter.join(",")).then(
 | 
			
		||||
            (value) { if (value.data != null) { items.add(value.data!);  } }
 | 
			
		||||
          );
 | 
			
		||||
        }
 | 
			
		||||
        if (workspace!.storage.isNotEmpty) {
 | 
			
		||||
          ItemService<StorageItem, StorageItem> storageService = ItemService<StorageItem, StorageItem>();
 | 
			
		||||
          storageService.get(context, workspace!.storage.join(",")).then(
 | 
			
		||||
            (value) { if (value.data != null) { items.add(value.data!); } }
 | 
			
		||||
          );
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
  static AbstractItem? getItem(String id) {
 | 
			
		||||
    var found = WorkspaceLocal.items.where((element) => element.id.toString() == id);
 | 
			
		||||
    return found.isEmpty ? null : found.first;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void addItem(AbstractItem item) {
 | 
			
		||||
    if (!WorkspaceLocal.hasItem(item)) { 
 | 
			
		||||
      items.add(item); 
 | 
			
		||||
      try {
 | 
			
		||||
        _service.post(null, {}, { "id" : item.id.toString(), "rtype" : item.type.toString() });
 | 
			
		||||
      } catch (e) { /* */ }
 | 
			
		||||
      
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  static void removeItem(AbstractItem item) {
 | 
			
		||||
    items = items.where((element) => element.name != item.name).toList();
 | 
			
		||||
    try { _service.delete(null, { "id" : item.id.toString(), "rtype" : item.type.toString() });
 | 
			
		||||
    } catch (e) { /* */ }
 | 
			
		||||
  }
 | 
			
		||||
  static bool hasItem(AbstractItem item) { 
 | 
			
		||||
    return items.where((element) => element.name == item.name).isNotEmpty;
 | 
			
		||||
  }
 | 
			
		||||
  static void clear() => items.clear();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										77
									
								
								lib/core/models/shared_workspace_local.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								lib/core/models/shared_workspace_local.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/end_drawer.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/shared_service.dart';
 | 
			
		||||
import 'package:oc_front/models/shared.dart';
 | 
			
		||||
import 'package:oc_front/models/workspace.dart';
 | 
			
		||||
import 'package:oc_front/pages/catalog.dart';
 | 
			
		||||
import 'package:oc_front/pages/catalog_item.dart';
 | 
			
		||||
import 'package:oc_front/pages/workflow.dart';
 | 
			
		||||
 | 
			
		||||
class WorkSpaceItem {
 | 
			
		||||
  String? id;
 | 
			
		||||
  String? name;
 | 
			
		||||
  WorkSpaceItem({this.id, this.name});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class CollaborativeAreaLocal {
 | 
			
		||||
  static String? current;
 | 
			
		||||
  static Map<String, CollaborativeArea> workspaces = {};
 | 
			
		||||
  static final SharedService _service = SharedService();
 | 
			
		||||
 | 
			
		||||
  static Future<void> init(BuildContext context, bool changeCurrent) async {
 | 
			
		||||
      await _service.all(context).then((value) {
 | 
			
		||||
      if (value.data != null && value.data!.values.isNotEmpty ) {
 | 
			
		||||
        var vals = value.data!.values;
 | 
			
		||||
        for (var element in vals) {
 | 
			
		||||
          var ws = CollaborativeArea().deserialize(element);
 | 
			
		||||
          if (ws.id == null) { continue; }
 | 
			
		||||
          workspaces[ws.id!] = ws;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }).catchError((e) => print(e));    
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static CollaborativeArea? getCollaborativeArea(String id) {
 | 
			
		||||
    return workspaces[id];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Future<void> deleteCollaborativeArea(String id) async {
 | 
			
		||||
    if (workspaces.containsKey(id) && workspaces.length == 1) { return; }
 | 
			
		||||
    workspaces.remove(id);
 | 
			
		||||
    await _service.delete(null, id, {});
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Future<void> createCollaborativeArea(BuildContext context, String name) async {
 | 
			
		||||
    Workspace n = Workspace(name: name);
 | 
			
		||||
    await _service.post(context, n.serialize(), {}).then((value) {
 | 
			
		||||
      if (value.data != null) {
 | 
			
		||||
        workspaces[value.data!.id!] = value.data!;
 | 
			
		||||
        endDrawerKey.currentState?.setState(() {});
 | 
			
		||||
        CatalogFactory.key.currentState?.setState(() {});
 | 
			
		||||
        CatalogItemFactory.key.currentState?.setState(() {});
 | 
			
		||||
        WorkflowFactory.key.currentState?.setState(() {});
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void changeWorkspaceByName(String name) {
 | 
			
		||||
    var id = workspaces.entries.firstWhere((element) => element.value.name == "${name}_workspace").key;
 | 
			
		||||
    changeWorkspace(id);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void changeWorkspace(String id) {
 | 
			
		||||
    _service.put(null, id, { "active" : true }, {});
 | 
			
		||||
    endDrawerKey.currentState?.setState(() {});
 | 
			
		||||
    CatalogFactory.key.currentState?.setState(() {});
 | 
			
		||||
    CatalogItemFactory.key.currentState?.setState(() {});
 | 
			
		||||
    WorkflowFactory.key.currentState?.setState(() {});
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static List<WorkSpaceItem> getCollaborativeAreasIDS() {
 | 
			
		||||
    List<WorkSpaceItem> res = [];
 | 
			
		||||
    for (var element in workspaces.entries) {
 | 
			
		||||
      res.add(WorkSpaceItem(id: element.key, name: element.value.name));
 | 
			
		||||
    }
 | 
			
		||||
    return res;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										228
									
								
								lib/core/models/workspace_local.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										228
									
								
								lib/core/models/workspace_local.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,228 @@
 | 
			
		||||
import 'dart:math';
 | 
			
		||||
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/end_drawer.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/header/header.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/compute.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/data.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/processing.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/resources.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/storage.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/workflow.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/models/workspace.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/workspace_service.dart';
 | 
			
		||||
import 'package:oc_front/pages/catalog.dart';
 | 
			
		||||
import 'package:oc_front/pages/catalog_item.dart';
 | 
			
		||||
import 'package:oc_front/pages/workflow.dart';
 | 
			
		||||
 | 
			
		||||
class WorkSpaceItem {
 | 
			
		||||
  String? id;
 | 
			
		||||
  String? name;
 | 
			
		||||
  WorkSpaceItem({this.id, this.name});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class WorkspaceLocal {
 | 
			
		||||
  static String? current;
 | 
			
		||||
  static Map<String, Workspace> workspaces = {};
 | 
			
		||||
  static final WorkspaceService _service = WorkspaceService();
 | 
			
		||||
  static List<AbstractItem> items = [];
 | 
			
		||||
 | 
			
		||||
  static Future<void> init(BuildContext? context, bool changeCurrent) async {
 | 
			
		||||
    WorkspaceLocal.createWorkspace("default workspace", null);
 | 
			
		||||
    var value = await _service.all(context);
 | 
			
		||||
    if (value.data != null && value.data!.values.isNotEmpty ) {
 | 
			
		||||
      var vals = value.data!.values;
 | 
			
		||||
      for (var element in vals) {
 | 
			
		||||
        var ws = Workspace().deserialize(element);
 | 
			
		||||
        if (ws.id == null) { continue; }
 | 
			
		||||
        workspaces[ws.id!] = ws;
 | 
			
		||||
        if (current == null) {
 | 
			
		||||
          current ??= ws.id;
 | 
			
		||||
          workspaces[current!] = ws; 
 | 
			
		||||
          _service.put(context, ws.id!, { "active" : true }, {});
 | 
			
		||||
        }
 | 
			
		||||
        if (ws.active == true && changeCurrent) {
 | 
			
		||||
          current = ws.id;
 | 
			
		||||
        }
 | 
			
		||||
        fill();      
 | 
			
		||||
        HeaderConstants.headerKey.currentState?.setState(() {});
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void fill() {
 | 
			
		||||
    items = [];
 | 
			
		||||
    if (workspaces[current] != null) {
 | 
			
		||||
              for (var element in workspaces[current]!.datas) { 
 | 
			
		||||
                if (WorkspaceLocal.hasItemByID(element.getID())) { continue; }
 | 
			
		||||
                items.add(element);
 | 
			
		||||
              }
 | 
			
		||||
              for (var element in workspaces[current]!.processings) { 
 | 
			
		||||
                if (WorkspaceLocal.hasItemByID(element.getID())) { continue; }
 | 
			
		||||
                items.add(element);  } 
 | 
			
		||||
              for (var element in workspaces[current]!.computes) { 
 | 
			
		||||
                if (WorkspaceLocal.hasItemByID(element.getID())) { continue; }
 | 
			
		||||
                items.add(element);
 | 
			
		||||
              }
 | 
			
		||||
              for (var element in workspaces[current]!.storages) { 
 | 
			
		||||
                if (WorkspaceLocal.hasItemByID(element.getID())) { continue; }
 | 
			
		||||
                items.add(element); 
 | 
			
		||||
              } 
 | 
			
		||||
              for (var element in workspaces[current]!.workflows) { 
 | 
			
		||||
                if (WorkspaceLocal.hasItemByID(element.getID())) { continue; }
 | 
			
		||||
                items.add(element);
 | 
			
		||||
              } 
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Workspace? getCurrentWorkspace() {
 | 
			
		||||
    return workspaces[current];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static bool hasWorkspace(String workspaceName) {
 | 
			
		||||
    for (var element in workspaces.values) {
 | 
			
		||||
      if (element.name == workspaceName) { return true; }
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Future<void> deleteWorkspace(String id) async {
 | 
			
		||||
    if (workspaces.containsKey(id) && workspaces.length == 1) { return; }
 | 
			
		||||
    workspaces.remove(id);
 | 
			
		||||
    await _service.delete(null, id, {});
 | 
			
		||||
    current = workspaces.keys.first;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Future<void> createWorkspace(String name, BuildContext? context) async {
 | 
			
		||||
    Workspace n = Workspace(name: name);
 | 
			
		||||
    await _service.post(null, n.serialize(), {}).then((value) {
 | 
			
		||||
      if (value.data != null) {
 | 
			
		||||
        workspaces[value.data!.id!] = value.data!;
 | 
			
		||||
        current = value.data!.id;
 | 
			
		||||
        fill();
 | 
			
		||||
        endDrawerKey.currentState?.setState(() {});
 | 
			
		||||
        CatalogFactory.key.currentState?.setState(() {});
 | 
			
		||||
        CatalogItemFactory.key.currentState?.setState(() {});
 | 
			
		||||
        WorkflowFactory.key.currentState?.setState(() {});
 | 
			
		||||
        HeaderConstants.headerKey.currentState?.setState(() {});
 | 
			
		||||
      }
 | 
			
		||||
    }).catchError( (e) {});
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void changeWorkspaceByName(String name) {
 | 
			
		||||
    try {
 | 
			
		||||
      var id = workspaces.entries.firstWhere((element) => element.value.name == "${name}_workspace").key;  
 | 
			
		||||
      changeWorkspace(id);
 | 
			
		||||
    } catch (e) {} 
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void changeWorkspace(String id) {
 | 
			
		||||
    _service.put(null, id, { "active" : true }, {});
 | 
			
		||||
    current = id;
 | 
			
		||||
    fill();
 | 
			
		||||
    HeaderConstants.headerKey.currentState?.setState(() {});
 | 
			
		||||
    endDrawerKey.currentState?.setState(() {});
 | 
			
		||||
    CatalogFactory.key.currentState?.setState(() {});
 | 
			
		||||
    CatalogItemFactory.key.currentState?.setState(() {});
 | 
			
		||||
    WorkflowFactory.key.currentState?.setState(() {});
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static String getWorkspaceName(String id) {
 | 
			
		||||
    return workspaces[id]?.name ?? "";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static List<WorkSpaceItem> getWorkspacesIDS() {
 | 
			
		||||
    List<WorkSpaceItem> res = [];
 | 
			
		||||
    for (var element in workspaces.entries) {
 | 
			
		||||
      res.add(WorkSpaceItem(id: element.key, name: element.value.name));
 | 
			
		||||
    }
 | 
			
		||||
    return res;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static List<Shallow> getWorkspacesShallow() {
 | 
			
		||||
    List<Shallow> res = [];
 | 
			
		||||
    for (var element in workspaces.values) {
 | 
			
		||||
      res.add(Shallow(id: element.id ?? "", name: element.name ?? ""));
 | 
			
		||||
    }
 | 
			
		||||
    return res;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static List<AbstractItem> byWorkspace(String id) {
 | 
			
		||||
    List<AbstractItem> d = [];
 | 
			
		||||
    var w = workspaces[id]!;
 | 
			
		||||
    d = [ ...d, ...w.datas.where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
    d = [ ...d, ...w.computes.where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
    d = [ ...d, ...w.processings.where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
    d = [ ...d, ...w.storages.where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
    d = [ ...d, ...w.workflows.where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
    return d;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  static List<AbstractItem> byTopic(String topic, bool all) {
 | 
			
		||||
    if (all) {
 | 
			
		||||
      List<AbstractItem> d = [];
 | 
			
		||||
      for (var w in workspaces.values) {
 | 
			
		||||
        d = [ ...d, ...w.datas.where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
        d = [ ...d, ...w.computes.where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
        d = [ ...d, ...w.processings.where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
        d = [ ...d, ...w.storages.where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
        d = [ ...d, ...w.workflows.where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
      }
 | 
			
		||||
      return d.where((element) => element.topic.toString() == topic).toList();
 | 
			
		||||
    }
 | 
			
		||||
    return WorkspaceLocal.items.where((element) => element.topic.toString() == topic).toList();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static AbstractItem? getItem(String id, bool all) {
 | 
			
		||||
    if (all) {
 | 
			
		||||
      List<AbstractItem> d = [];
 | 
			
		||||
      for (var w in workspaces.values) {
 | 
			
		||||
        d = [ ...d, ...w.datas.where((element) => element.id.toString() == id).where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
        d = [ ...d, ...w.computes.where((element) => element.id.toString() == id).where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
        d = [ ...d, ...w.processings.where((element) => element.id.toString() == id).where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
        d = [ ...d, ...w.storages.where((element) => element.id.toString() == id).where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
        d = [ ...d, ...w.workflows.where((element) => element.id.toString() == id).where((element) => !d.map( (d2) => d2.id).contains(element.id)) ];
 | 
			
		||||
      }
 | 
			
		||||
      return d.isEmpty ? null : d.first;
 | 
			
		||||
    }
 | 
			
		||||
    var found = WorkspaceLocal.items.where((element) => element.id.toString() == id);
 | 
			
		||||
    return found.isEmpty ? null : found.first;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void addItem(AbstractItem item) {
 | 
			
		||||
    if (!WorkspaceLocal.hasItem(item) && workspaces[current] != null && workspaces[current]!.id != null) { 
 | 
			
		||||
      items.add(item); 
 | 
			
		||||
      if (item.topic == "data") { workspaces[current]!.datas.add(item as DataItem); }
 | 
			
		||||
      if (item.topic == "processing") {  workspaces[current]!.processings.add(item as ProcessingItem); }
 | 
			
		||||
      if (item.topic == "compute") { workspaces[current]!.computes.add(item as ComputeItem); }
 | 
			
		||||
      if (item.topic == "storage") { workspaces[current]!.storages.add(item as StorageItem); }
 | 
			
		||||
      if (item.topic == "workflow") { workspaces[current]!.workflows.add(item as WorkflowItem); }
 | 
			
		||||
      try { 
 | 
			
		||||
        _service.put(null, workspaces[current]!.id!, workspaces[current]!.serialize(), {});
 | 
			
		||||
      } catch (e) { 
 | 
			
		||||
        _service.put(null, item.id ?? "", workspaces[current]!.serialize(), {});
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  static void removeItem(AbstractItem item) {
 | 
			
		||||
    items = items.where((element) => element.name != item.name).toList();
 | 
			
		||||
    if (item.topic == "data") { workspaces[current]!.datas.removeWhere( (e) => e.id == item.id); }
 | 
			
		||||
    if (item.topic == "processing") { workspaces[current]!.processings.removeWhere( (e) => e.id == item.id); }
 | 
			
		||||
    if (item.topic == "compute") { workspaces[current]!.computes.removeWhere( (e) => e.id == item.id); }
 | 
			
		||||
    if (item.topic == "storage") { workspaces[current]!.storages.removeWhere( (e) => e.id == item.id); }
 | 
			
		||||
    if (item.topic == "workflow") { workspaces[current]!.workflows.removeWhere( (e) => e.id == item.id); }
 | 
			
		||||
    try { 
 | 
			
		||||
      _service.put(null, workspaces[current]!.id!, workspaces[current]!.serialize(), {});
 | 
			
		||||
    } catch (e) { 
 | 
			
		||||
      _service.put(null, item.id ?? "", workspaces[current]!.serialize(), {});
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  static bool hasItemByID(String id) { 
 | 
			
		||||
    return items.where((element) => element.id == id).isNotEmpty;
 | 
			
		||||
  }
 | 
			
		||||
  static bool hasItem(AbstractItem item) { 
 | 
			
		||||
    return items.where((element) => element.id == item.id).isNotEmpty;
 | 
			
		||||
  }
 | 
			
		||||
  static void clear() => items.clear();
 | 
			
		||||
}
 | 
			
		||||
@@ -1,8 +1,14 @@
 | 
			
		||||
import 'package:oc_front/main.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/models/search.dart';
 | 
			
		||||
import 'package:oc_front/pages/shared.dart';
 | 
			
		||||
import 'package:oc_front/pages/catalog.dart';
 | 
			
		||||
import 'package:oc_front/core/models/cart.dart';
 | 
			
		||||
import 'package:oc_front/widgets/items/item_row.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/resources.dart';
 | 
			
		||||
import 'package:oc_front/core/models/workspace_local.dart';
 | 
			
		||||
import 'package:oc_front/widgets/inputs/shallow_text_input.dart';
 | 
			
		||||
import 'package:oc_front/core/models/shared_workspace_local.dart';
 | 
			
		||||
import 'package:oc_front/widgets/inputs/shallow_dropdown_input.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/workspace_service.dart';
 | 
			
		||||
 | 
			
		||||
GlobalKey<EndDrawerWidgetState> endDrawerKey = GlobalKey<EndDrawerWidgetState>();
 | 
			
		||||
class EndDrawerWidget extends StatefulWidget {
 | 
			
		||||
@@ -14,35 +20,83 @@ class EndDrawerWidgetState extends State<EndDrawerWidget> {
 | 
			
		||||
  @override Widget build(BuildContext context) {
 | 
			
		||||
    List<ItemRowWidget> itemRows = WorkspaceLocal.items.map(
 | 
			
		||||
      (e) => ItemRowWidget(contextWidth: 400, item: e, keys: [endDrawerKey, CatalogFactory.key],)).toList();
 | 
			
		||||
    return Container( 
 | 
			
		||||
      color: Colors.white,
 | 
			
		||||
      width: 400,
 | 
			
		||||
        height: MediaQuery.of(context).size.height,
 | 
			
		||||
      child: SingleChildScrollView(
 | 
			
		||||
    return Stack( children: [ 
 | 
			
		||||
      Container( 
 | 
			
		||||
        color: Colors.white,
 | 
			
		||||
        width: 400,
 | 
			
		||||
        height: getHeight(context),
 | 
			
		||||
        child: Column( children: [
 | 
			
		||||
          Container( 
 | 
			
		||||
            width: 400,
 | 
			
		||||
            height: 50,
 | 
			
		||||
            decoration: const BoxDecoration(color: Color.fromRGBO(38, 166, 154, 1)),
 | 
			
		||||
            child: const Center( 
 | 
			
		||||
              child: Row( mainAxisAlignment: MainAxisAlignment.center,
 | 
			
		||||
                children: [
 | 
			
		||||
                  Padding(padding: EdgeInsets.only(right: 20), child: Icon(Icons.shopping_cart_outlined, size: 18, color: Colors.white)),
 | 
			
		||||
                  Text("Workspace", style: TextStyle(fontSize: 18, color: Colors.white, fontWeight: FontWeight.w600))
 | 
			
		||||
              ])
 | 
			
		||||
            Container( 
 | 
			
		||||
              width: 400,
 | 
			
		||||
              height: 50,
 | 
			
		||||
              decoration: BoxDecoration(color: lightColor ),
 | 
			
		||||
              child: const Center( 
 | 
			
		||||
                child: Row( mainAxisAlignment: MainAxisAlignment.center,
 | 
			
		||||
                  children: [
 | 
			
		||||
                    Padding(padding: EdgeInsets.only(right: 20), child: Icon(Icons.shopping_cart_outlined, size: 18, color: Colors.white)),
 | 
			
		||||
                    Text("Workspace", style: TextStyle(fontSize: 18, color: Colors.white, fontWeight: FontWeight.w600))
 | 
			
		||||
                ])
 | 
			
		||||
                
 | 
			
		||||
              ),
 | 
			
		||||
            ),
 | 
			
		||||
          ),
 | 
			
		||||
          itemRows.isEmpty ? Container( height: MediaQuery.of(context).size.height - 50, 
 | 
			
		||||
            color: Colors.grey.shade300,
 | 
			
		||||
            child: const Center(child: Text("WORKSPACE IS EMPTY", 
 | 
			
		||||
              style: TextStyle(fontSize: 25, fontWeight: FontWeight.w600, color: Colors.white)))) 
 | 
			
		||||
          : Container( child: SingleChildScrollView(
 | 
			
		||||
            scrollDirection: Axis.horizontal,
 | 
			
		||||
            child: Row( children: itemRows)
 | 
			
		||||
          )),
 | 
			
		||||
        ])
 | 
			
		||||
      )
 | 
			
		||||
            ShallowDropdownInputWidget(
 | 
			
		||||
                current: WorkspaceLocal.current,
 | 
			
		||||
                filled: Colors.white,
 | 
			
		||||
                width: 400,
 | 
			
		||||
                all: () async => WorkspaceLocal.getWorkspacesShallow(),
 | 
			
		||||
                canRemove: (p0) => p0 != null,
 | 
			
		||||
                remove: (p0) async {
 | 
			
		||||
                  await WorkspaceService().delete(context, p0, {}).then( (e) => WorkspaceLocal.deleteWorkspace(p0));
 | 
			
		||||
                },
 | 
			
		||||
                type: CollaborativeAreaType.workspace,
 | 
			
		||||
                change: (String? change) {
 | 
			
		||||
                  WorkspaceLocal.changeWorkspace(change.toString());
 | 
			
		||||
                }
 | 
			
		||||
            ),
 | 
			
		||||
            Container(
 | 
			
		||||
              width: 400,
 | 
			
		||||
              height: 40,
 | 
			
		||||
              decoration: BoxDecoration(
 | 
			
		||||
                color: Colors.white,
 | 
			
		||||
                border: Border(bottom: BorderSide(color: midColor), top: BorderSide(color: midColor)),
 | 
			
		||||
              ),
 | 
			
		||||
              child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ 
 | 
			
		||||
                Padding(padding: EdgeInsets.only(right: 5), child: Icon(Icons.share, size: 12, color: Colors.grey)),
 | 
			
		||||
                Text(  (WorkspaceLocal.workspaces[WorkspaceLocal.current]?.shared) == null ? 
 | 
			
		||||
                  "actually not shared" : "share with ${CollaborativeAreaLocal.workspaces[WorkspaceLocal.workspaces[WorkspaceLocal.current]!.shared!]}",
 | 
			
		||||
                style: TextStyle( fontSize: 14, color: Colors.grey ),),
 | 
			
		||||
              ]),
 | 
			
		||||
            ),
 | 
			
		||||
            Column( children: [
 | 
			
		||||
            itemRows.isEmpty ? Container( height: getHeight(context) - 140, 
 | 
			
		||||
              color: Colors.white,
 | 
			
		||||
              child: Center(child: Text("WORKSPACE IS EMPTY", 
 | 
			
		||||
                style: TextStyle(fontSize: 25, fontWeight: FontWeight.w600, color: midColor)))) 
 | 
			
		||||
            : Container( height: getHeight(context) - 140,  child: SingleChildScrollView(
 | 
			
		||||
              scrollDirection: Axis.vertical,
 | 
			
		||||
              child: Column( children: [ ...itemRows, Container(height: 50)])
 | 
			
		||||
            )),
 | 
			
		||||
            ])
 | 
			
		||||
          ])
 | 
			
		||||
        ), 
 | 
			
		||||
      Positioned( bottom: 0, left: 0, 
 | 
			
		||||
        child: Tooltip( message: "create workspace", child: ShallowTextInputWidget(
 | 
			
		||||
                width: 400,
 | 
			
		||||
                tooltipLoad: "create workspace",
 | 
			
		||||
                iconLoad: Icons.create_new_folder_sharp,
 | 
			
		||||
                type: CollaborativeAreaType.workspace,
 | 
			
		||||
                color: Colors.white,
 | 
			
		||||
                filled: midColor,
 | 
			
		||||
                hint: "enter workspace name",
 | 
			
		||||
                hintColor: Colors.grey,
 | 
			
		||||
                canLoad: (String? remove) => remove != null,
 | 
			
		||||
                load: (Map<String?, dynamic> add) async {
 | 
			
		||||
                  if (add["name"] == null) { return; }
 | 
			
		||||
                  WorkspaceLocal.createWorkspace(add["name"], context);
 | 
			
		||||
                },
 | 
			
		||||
            ),
 | 
			
		||||
          ))
 | 
			
		||||
      ]
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										49
									
								
								lib/core/sections/header/default.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								lib/core/sections/header/default.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:flutter_svg/svg.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/header/header.dart';
 | 
			
		||||
import 'package:oc_front/core/services/perms_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/router.dart';
 | 
			
		||||
import 'package:oc_front/main.dart';
 | 
			
		||||
import 'package:oc_front/pages/shared.dart';
 | 
			
		||||
import 'package:oc_front/widgets/inputs/shallow_text_input.dart';
 | 
			
		||||
 | 
			
		||||
class DefaultWidget extends StatefulWidget{
 | 
			
		||||
  const DefaultWidget (): super(key: null);
 | 
			
		||||
  @override DefaultWidgetState createState() => DefaultWidgetState();
 | 
			
		||||
}
 | 
			
		||||
class DefaultWidgetState extends State<DefaultWidget> {
 | 
			
		||||
 | 
			
		||||
  @override Widget build(BuildContext context) {
 | 
			
		||||
    return Container(
 | 
			
		||||
      width: getMainWidth(context),
 | 
			
		||||
      height: getHeight(context) - 50,
 | 
			
		||||
      color: midColor,
 | 
			
		||||
      padding: EdgeInsets.only(top: 50),
 | 
			
		||||
      child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: getMainHeight(context) < 600 ? MainAxisAlignment.center : MainAxisAlignment.start,  
 | 
			
		||||
          children: [ getMainHeight(context) < 600 ? Container() : Container(
 | 
			
		||||
              margin: EdgeInsets.only(left: 40), 
 | 
			
		||||
              child:  SvgPicture.asset("assets/images/logo.svg", width: 300, height: (getMainHeight(context) / (1.8) ), semanticsLabel: 'OpenCloud Logo')
 | 
			
		||||
            ),
 | 
			
		||||
          ShallowTextInputWidget(
 | 
			
		||||
                    alignment: MainAxisAlignment.center,
 | 
			
		||||
                    width: getMainWidth(context) / 1.5,
 | 
			
		||||
                    type: CollaborativeAreaType.workspace,
 | 
			
		||||
                    hint: "search in resources...",
 | 
			
		||||
                    iconLoad: PermsService.getPerm(Perms.SEARCH_INTERNAL) ? Icons.search : null,
 | 
			
		||||
                    iconRemove: PermsService.getPerm(Perms.SEARCH_EXTERNAL) ? Icons.screen_search_desktop_outlined : null,
 | 
			
		||||
                    tooltipLoad: PermsService.getPerm(Perms.SEARCH_INTERNAL) ? "search" : null,
 | 
			
		||||
                    tooltipRemove: PermsService.getPerm(Perms.SEARCH_EXTERNAL) ? "distributed search" : null,
 | 
			
		||||
                    canLoad: PermsService.getPerm(Perms.SEARCH_INTERNAL) ? (String? str) => str != null && str.isNotEmpty : null,
 | 
			
		||||
                    canRemove: PermsService.getPerm(Perms.SEARCH_EXTERNAL) ? (String? str) => str != null && str.isNotEmpty : null,
 | 
			
		||||
                    change: (value) => SearchConstants.set(value),
 | 
			
		||||
                    loadStr: PermsService.getPerm(Perms.SEARCH_INTERNAL) ? (String val) async {
 | 
			
		||||
                      AppRouter.currentRoute.factory.search(context, false); 
 | 
			
		||||
                    } : null,
 | 
			
		||||
                    remove: PermsService.getPerm(Perms.SEARCH_EXTERNAL) ? (String val) async {
 | 
			
		||||
                      AppRouter.currentRoute.factory.search(context, true); 
 | 
			
		||||
                    } : null,
 | 
			
		||||
          )
 | 
			
		||||
        ])
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,20 +1,140 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:localstorage/localstorage.dart';
 | 
			
		||||
import 'package:oc_front/core/models/workspace_local.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/header/default.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/header/menu.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/header/search.dart';
 | 
			
		||||
import 'package:oc_front/utils/clipper_menu.dart';
 | 
			
		||||
import 'package:oc_front/core/services/perms_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/router.dart';
 | 
			
		||||
import 'package:oc_front/main.dart';
 | 
			
		||||
import 'package:oc_front/pages/shared.dart';
 | 
			
		||||
import 'package:oc_front/widgets/inputs/shallow_dropdown_input.dart';
 | 
			
		||||
import 'package:oc_front/widgets/inputs/shallow_text_input.dart';
 | 
			
		||||
 | 
			
		||||
class SearchConstants {
 | 
			
		||||
  static final Map<String, String?> _searchHost = {};
 | 
			
		||||
  static String? get() { return _searchHost[AppRouter.currentRoute.route]; }
 | 
			
		||||
  static void set(String? search) { _searchHost[AppRouter.currentRoute.route] = search; }
 | 
			
		||||
  static void remove() { _searchHost.remove(AppRouter.currentRoute.route); }
 | 
			
		||||
  static void clear() { 
 | 
			
		||||
    localStorage.setItem("search", "");
 | 
			
		||||
    _searchHost.clear(); 
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class HeaderConstants {
 | 
			
		||||
  static GlobalKey<HeaderMenuWidgetState> headerKey = GlobalKey<HeaderMenuWidgetState>();
 | 
			
		||||
  static final List<RouterItem> noHeader = [
 | 
			
		||||
    AppRouter.scheduler,
 | 
			
		||||
    AppRouter.compute,
 | 
			
		||||
    AppRouter.shared,
 | 
			
		||||
    AppRouter.workflowItem,
 | 
			
		||||
    AppRouter.workflowIDItem,
 | 
			
		||||
  ];
 | 
			
		||||
  static HeaderWidgetState? headerWidget;
 | 
			
		||||
  static double height = 200;
 | 
			
		||||
  static String? title;
 | 
			
		||||
  static String? description;
 | 
			
		||||
 | 
			
		||||
  static getKey() {
 | 
			
		||||
    headerKey = GlobalKey<HeaderMenuWidgetState>();
 | 
			
		||||
    return headerKey;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static setTitle(String? v) {
 | 
			
		||||
    title = v;
 | 
			
		||||
    Future.delayed(Duration(milliseconds: 100), () {
 | 
			
		||||
      HeaderConstants.headerWidget?.setState(() {});
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static setDescription(String? v) {
 | 
			
		||||
    description = v;
 | 
			
		||||
    Future.delayed(Duration(milliseconds: 100), () {
 | 
			
		||||
      HeaderConstants.headerWidget?.setState(() {});
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static bool isNoHeader(String route) {
 | 
			
		||||
    return noHeader.where((element) => element.route == route).isNotEmpty;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
GlobalKey<HeaderWidgetState> headerWidgetKey = GlobalKey<HeaderWidgetState>();
 | 
			
		||||
class HeaderWidget extends StatefulWidget {
 | 
			
		||||
  HeaderWidget () : super(key: headerWidgetKey);
 | 
			
		||||
  const HeaderWidget () : super(key: null);
 | 
			
		||||
  @override HeaderWidgetState createState() => HeaderWidgetState();
 | 
			
		||||
}
 | 
			
		||||
class HeaderWidgetState extends State<HeaderWidget> {
 | 
			
		||||
  @override Widget build(BuildContext context) {
 | 
			
		||||
    headerWidgetKey = GlobalKey<HeaderWidgetState>();
 | 
			
		||||
    headerMenuKey.currentState?.closeMenu();
 | 
			
		||||
    HeaderConstants.headerWidget = this;
 | 
			
		||||
    if (HeaderConstants.isNoHeader(AppRouter.currentRoute.route)) {
 | 
			
		||||
      return Container();
 | 
			
		||||
    }
 | 
			
		||||
    if (AppRouter.currentRoute.factory.searchFill()) {
 | 
			
		||||
      return DefaultWidget();
 | 
			
		||||
    }
 | 
			
		||||
    HeaderConstants.height = HeaderConstants.isNoHeader(AppRouter.currentRoute.route) || !AppRouter.currentRoute.factory.searchFill() ? 50 : 100;
 | 
			
		||||
    return Column( children: [
 | 
			
		||||
      const HeaderMenuWidget(),
 | 
			
		||||
      SearchWidget()
 | 
			
		||||
      AppRouter.currentRoute.factory.searchFill() ? Container() : Container( 
 | 
			
		||||
        height: 50, width: getMainWidth(context),
 | 
			
		||||
        decoration: BoxDecoration(
 | 
			
		||||
          color: midColor,
 | 
			
		||||
          border: Border(bottom: BorderSide(color: Colors.white, width: 1),)
 | 
			
		||||
        ),
 | 
			
		||||
        child: Row(crossAxisAlignment: CrossAxisAlignment.stretch, 
 | 
			
		||||
            mainAxisAlignment: MainAxisAlignment.end,
 | 
			
		||||
            children: [
 | 
			
		||||
              InkWell( onTap: () {
 | 
			
		||||
                  AppRouter.currentRoute.factory.back(context);
 | 
			
		||||
                },
 | 
			
		||||
                child:
 | 
			
		||||
                  Container(width: 50, height: 50, 
 | 
			
		||||
                    color: Colors.black,
 | 
			
		||||
                    child: Center(child: Icon(Icons.keyboard_backspace, color: Colors.white))
 | 
			
		||||
                  ),
 | 
			
		||||
              ),
 | 
			
		||||
                ShallowTextInputWidget(
 | 
			
		||||
                  filled: midColor,
 | 
			
		||||
                  current: AppRouter.currentRoute.factory.getSearch(),
 | 
			
		||||
                  width: getMainWidth(context) - 501,
 | 
			
		||||
                  type: CollaborativeAreaType.workspace,
 | 
			
		||||
                  hint: "search in resources...",
 | 
			
		||||
                  iconLoad: PermsService.getPerm(Perms.SEARCH_INTERNAL) ? Icons.search : null,
 | 
			
		||||
                  iconRemove: PermsService.getPerm(Perms.SEARCH_EXTERNAL) ? Icons.screen_search_desktop_outlined : null,
 | 
			
		||||
                  tooltipLoad: PermsService.getPerm(Perms.SEARCH_INTERNAL) ? "search" : null,
 | 
			
		||||
                  tooltipRemove: PermsService.getPerm(Perms.SEARCH_EXTERNAL) ? "distributed search" : null,
 | 
			
		||||
                  canLoad: PermsService.getPerm(Perms.SEARCH_INTERNAL) ? (String? str) => str != null && str.isNotEmpty : null,
 | 
			
		||||
                  canRemove: PermsService.getPerm(Perms.SEARCH_EXTERNAL) ? (String? str) => str != null && str.isNotEmpty : null,
 | 
			
		||||
                  change: (value) => SearchConstants.set(value),
 | 
			
		||||
                  loadStr: PermsService.getPerm(Perms.SEARCH_INTERNAL) ? (String val) async {
 | 
			
		||||
                    AppRouter.currentRoute.factory.search(context, false); 
 | 
			
		||||
                  } : null,
 | 
			
		||||
                  remove: PermsService.getPerm(Perms.SEARCH_EXTERNAL) ? (String val) async {
 | 
			
		||||
                    AppRouter.currentRoute.factory.search(context, true); 
 | 
			
		||||
                  } : null,
 | 
			
		||||
              ),
 | 
			
		||||
              Container( padding: EdgeInsets.only(left: 50),
 | 
			
		||||
                decoration: BoxDecoration( border: Border( left: BorderSide( color: Colors.white ))),
 | 
			
		||||
                child: ShallowDropdownInputWidget(
 | 
			
		||||
                  prefixIcon: Padding( padding: EdgeInsets.only(right: 10), child: Icon(Icons.shopping_cart, color: Colors.grey)),
 | 
			
		||||
                  current: WorkspaceLocal.current,
 | 
			
		||||
                  width: 350,
 | 
			
		||||
                  all: () async => WorkspaceLocal.getWorkspacesShallow(),
 | 
			
		||||
                  type: CollaborativeAreaType.workspace,
 | 
			
		||||
                  change: (String? change) {
 | 
			
		||||
                    WorkspaceLocal.changeWorkspace(change.toString());
 | 
			
		||||
                  },
 | 
			
		||||
                  canLoad: (p0) => true,
 | 
			
		||||
                  load: (p0) async {
 | 
			
		||||
                    scaffoldKey.currentState?.openEndDrawer(); 
 | 
			
		||||
                  },
 | 
			
		||||
                  tooltipLoad: "open workspace manager",
 | 
			
		||||
                  iconLoad: Icons.remove_red_eye,
 | 
			
		||||
                  color: Colors.black,
 | 
			
		||||
                  filled: midColor,
 | 
			
		||||
                  hintColor: Colors.grey,
 | 
			
		||||
          )) 
 | 
			
		||||
        ])
 | 
			
		||||
      ),
 | 
			
		||||
    ],);
 | 
			
		||||
  } 
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,52 +1,61 @@
 | 
			
		||||
import 'package:flutter_svg/svg.dart';
 | 
			
		||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/header/header.dart';
 | 
			
		||||
import 'package:oc_front/core/services/auth.service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/router.dart';
 | 
			
		||||
import 'package:oc_front/main.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/utils/clipper_menu.dart';
 | 
			
		||||
import 'package:oc_front/utils/dialog/login.dart';
 | 
			
		||||
import 'package:oc_front/pages/catalog.dart';
 | 
			
		||||
 | 
			
		||||
class HeaderMenuWidget extends StatefulWidget{
 | 
			
		||||
  const HeaderMenuWidget ({ super.key });
 | 
			
		||||
  HeaderMenuWidget (): super(key: HeaderConstants.getKey());
 | 
			
		||||
  @override HeaderMenuWidgetState createState() => HeaderMenuWidgetState();
 | 
			
		||||
}
 | 
			
		||||
class HeaderMenuWidgetState extends State<HeaderMenuWidget> {
 | 
			
		||||
  @override Widget build(BuildContext context) {
 | 
			
		||||
    return Container( 
 | 
			
		||||
        width: MediaQuery.of(context).size.width,
 | 
			
		||||
        width: getWidth(context),
 | 
			
		||||
        height: 50,
 | 
			
		||||
        decoration: BoxDecoration(
 | 
			
		||||
          border: Border(bottom: BorderSide(color: Colors.grey.shade300))
 | 
			
		||||
          color: Colors.white,
 | 
			
		||||
          border: Border(bottom: BorderSide(color: midColor))
 | 
			
		||||
        ),
 | 
			
		||||
        child: Padding(padding: const EdgeInsets.only(top: 5, bottom: 5, left: 50, right: 50), 
 | 
			
		||||
          child: Stack(children: [
 | 
			
		||||
            /*...(searchWidgetKey.currentState == null ? [Positioned( left: -20, top: -5,
 | 
			
		||||
              child: SvgPicture.asset("assets/images/icon.svg", height: 70, semanticsLabel: 'OpenCloud Logo'))] : []),*/
 | 
			
		||||
            Row(crossAxisAlignment: CrossAxisAlignment.stretch, 
 | 
			
		||||
        child: Stack(children: [  
 | 
			
		||||
          AppRouter.currentRoute.factory.searchFill() ? Container() : Positioned( top: 0, left: 30, 
 | 
			
		||||
            child: InkWell( onTap: () {
 | 
			
		||||
              CatalogFactory.key.currentState?.widget.isSearch = true;
 | 
			
		||||
              CatalogFactory.key.currentState?.widget.items = [];
 | 
			
		||||
              AppRouter.zones.first.go(context, {});
 | 
			
		||||
              AppRouter.zones.first.factory.getKey().currentState?.setState(() {});
 | 
			
		||||
              HeaderConstants.headerKey.currentState?.setState(() {});
 | 
			
		||||
            }, 
 | 
			
		||||
            child: Wrap( alignment: WrapAlignment.center, children: [ 
 | 
			
		||||
              SvgPicture.asset("assets/images/icon.svg", width: 70, height: 70, semanticsLabel: 'OpenCloud Logo'),
 | 
			
		||||
              Container( height: 50, alignment: Alignment.centerLeft, margin: const EdgeInsets.only(left: 20),
 | 
			
		||||
                child: Text(AppRouter.currentRoute.label ?? "Where am I ?", style: TextStyle( color: Colors.grey)))
 | 
			
		||||
          ]))),
 | 
			
		||||
          Padding( padding: const EdgeInsets.only(left: 50), 
 | 
			
		||||
          child: Row(crossAxisAlignment: CrossAxisAlignment.stretch, 
 | 
			
		||||
            mainAxisAlignment: MainAxisAlignment.end,
 | 
			
		||||
            children: [
 | 
			
		||||
              Tooltip( message: "workspace/cart", child:  Padding(padding: const EdgeInsets.only(left: 10), 
 | 
			
		||||
                child: IconButton(
 | 
			
		||||
                      icon: const Icon(Icons.shopping_cart_outlined),
 | 
			
		||||
                      onPressed: () { 
 | 
			
		||||
                        headerMenuKey.currentState?.closeMenu();
 | 
			
		||||
                        scaffoldKey.currentState?.openEndDrawer(); 
 | 
			
		||||
                      },
 | 
			
		||||
                  )
 | 
			
		||||
              Center(child: Text("hello \"${AuthService.getUsername() ?? ""}\"", style: const TextStyle(color: Colors.grey, fontSize: 15))),
 | 
			
		||||
              Padding(padding: const EdgeInsets.only(top: 5, bottom: 5, right: 50, left: 20), 
 | 
			
		||||
              child: Row(crossAxisAlignment: CrossAxisAlignment.stretch, 
 | 
			
		||||
                mainAxisAlignment: MainAxisAlignment.end,
 | 
			
		||||
                children: [
 | 
			
		||||
                  Tooltip( message: "logout", child:  Padding(padding: const EdgeInsets.only(left: 10), 
 | 
			
		||||
                    child: IconButton(
 | 
			
		||||
                          icon: const Icon(FontAwesomeIcons.powerOff),
 | 
			
		||||
                          onPressed: () async { 
 | 
			
		||||
                            await AuthService.logout();
 | 
			
		||||
                            mainKey?.currentState?.setState(() {});
 | 
			
		||||
                          },
 | 
			
		||||
                      )
 | 
			
		||||
              )),
 | 
			
		||||
              Tooltip( message: "login", child: Padding(padding: const EdgeInsets.only(left: 10), 
 | 
			
		||||
                child: IconButton(
 | 
			
		||||
                      icon: const Icon(Icons.login_outlined),
 | 
			
		||||
                      onPressed: () { showDialog(context: context, builder: (context) => LoginWidget()); },
 | 
			
		||||
                  )
 | 
			
		||||
              )),
 | 
			
		||||
               Tooltip( message: "navigation", child: Padding(padding: const EdgeInsets.only(left: 10), 
 | 
			
		||||
                child:  ClipperMenuWidget(
 | 
			
		||||
                  borderRadius: BorderRadius.circular(4),
 | 
			
		||||
                  iconColor: Colors.white,
 | 
			
		||||
                )
 | 
			
		||||
              ))
 | 
			
		||||
            ]
 | 
			
		||||
          )
 | 
			
		||||
          ))
 | 
			
		||||
        ])
 | 
			
		||||
      )
 | 
			
		||||
      )])
 | 
			
		||||
    );
 | 
			
		||||
  } 
 | 
			
		||||
}
 | 
			
		||||
@@ -1,125 +0,0 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:flutter_svg/svg.dart';
 | 
			
		||||
import 'package:oc_front/core/services/router.dart';
 | 
			
		||||
 | 
			
		||||
class SearchConstants {
 | 
			
		||||
  static final Map<String, String?> _searchHost = {};
 | 
			
		||||
  static String? get() { return _searchHost[AppRouter.currentRoute.route]; }
 | 
			
		||||
  static void set(String? search) { _searchHost[AppRouter.currentRoute.route] = search; }
 | 
			
		||||
  static void remove() { _searchHost.remove(AppRouter.currentRoute.route); }
 | 
			
		||||
  static void clear() { _searchHost.clear(); }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
GlobalKey<SearchWidgetState> searchWidgetKey = GlobalKey<SearchWidgetState>();
 | 
			
		||||
class SearchWidget extends StatefulWidget {
 | 
			
		||||
  SearchWidget (): super(key: GlobalKey<SearchWidgetState>());
 | 
			
		||||
  @override SearchWidgetState createState() => SearchWidgetState();
 | 
			
		||||
}
 | 
			
		||||
class SearchWidgetState extends State<SearchWidget> {
 | 
			
		||||
  @override Widget build(BuildContext context) {
 | 
			
		||||
    searchWidgetKey = widget.key as GlobalKey<SearchWidgetState>;
 | 
			
		||||
    List<Widget> widgets = [
 | 
			
		||||
          ...(MediaQuery.of(context).size.width > 600 || AppRouter.currentRoute.factory.searchFill()  
 | 
			
		||||
          ? [InkWell( 
 | 
			
		||||
            mouseCursor: SystemMouseCursors.click,
 | 
			
		||||
            onTap: () => AppRouter.zones.first.go(context, {}),
 | 
			
		||||
            child: Container(
 | 
			
		||||
              margin: EdgeInsets.only(top: 20, left: AppRouter.currentRoute.factory.searchFill() ? 40 : 0), 
 | 
			
		||||
              child:  SvgPicture.asset(
 | 
			
		||||
                width: 300,
 | 
			
		||||
                height: AppRouter.currentRoute.factory.searchFill() ? 
 | 
			
		||||
                  ((MediaQuery.of(context).size.height - 50) / 2) : 150,
 | 
			
		||||
                "assets/images/logo.svg",
 | 
			
		||||
                semanticsLabel: 'OpenCloud Logo'
 | 
			
		||||
              )
 | 
			
		||||
            )
 | 
			
		||||
          )] : []),
 | 
			
		||||
          AppRouter.currentRoute.description != null ? 
 | 
			
		||||
            Column( 
 | 
			
		||||
              crossAxisAlignment: CrossAxisAlignment.start,
 | 
			
		||||
              mainAxisAlignment: MainAxisAlignment.center,
 | 
			
		||||
              children: [
 | 
			
		||||
                Text(AppRouter.currentRoute.description!, style: const TextStyle(
 | 
			
		||||
                  color: Color.fromRGBO(38, 166, 154, 1),
 | 
			
		||||
                  fontSize: 24,
 | 
			
		||||
                  fontWeight: FontWeight.w600
 | 
			
		||||
                )),
 | 
			
		||||
                Row(children: [
 | 
			
		||||
                  ...(AppRouter.currentRoute.help == null || AppRouter.currentRoute.help!.isEmpty ? [] 
 | 
			
		||||
                    : [ const Padding( padding: EdgeInsets.only(right: 10), 
 | 
			
		||||
                      child: Icon(Icons.help_outline, color: Colors.grey, size: 20)),
 | 
			
		||||
                    Text(AppRouter.currentRoute.help ?? "", style: const TextStyle(
 | 
			
		||||
                      color: Colors.grey,
 | 
			
		||||
                      fontSize: 14,
 | 
			
		||||
                      fontWeight: FontWeight.w400
 | 
			
		||||
                    )) ])
 | 
			
		||||
                ],)
 | 
			
		||||
                
 | 
			
		||||
              ],
 | 
			
		||||
            )
 | 
			
		||||
          : Row( 
 | 
			
		||||
          mainAxisAlignment: MainAxisAlignment.center,
 | 
			
		||||
          children: [ 
 | 
			
		||||
            Container(
 | 
			
		||||
              width: MediaQuery.of(context).size.width - 300 - 100,
 | 
			
		||||
              height: 50,
 | 
			
		||||
              color: Colors.white,
 | 
			
		||||
              child: TextField(
 | 
			
		||||
                onChanged: (value) => SearchConstants.set(value),
 | 
			
		||||
                decoration: InputDecoration(
 | 
			
		||||
                  hintText: "Search in ${AppRouter.currentRoute.route}...",
 | 
			
		||||
                  contentPadding: const EdgeInsets.symmetric(horizontal: 30),
 | 
			
		||||
                  hintStyle: const TextStyle(
 | 
			
		||||
                    color: Colors.black,
 | 
			
		||||
                    fontSize: 14,
 | 
			
		||||
                    fontWeight: FontWeight.w300
 | 
			
		||||
                  ),
 | 
			
		||||
                  border: InputBorder.none
 | 
			
		||||
                )
 | 
			
		||||
              )
 | 
			
		||||
            ),
 | 
			
		||||
            Tooltip(
 | 
			
		||||
              message: 'search',
 | 
			
		||||
              child: InkWell( 
 | 
			
		||||
                onTap: () { 
 | 
			
		||||
                  AppRouter.currentRoute.factory.search(context); 
 | 
			
		||||
                },
 | 
			
		||||
                child: Container(
 | 
			
		||||
                  width: 50,
 | 
			
		||||
                  height: 50,
 | 
			
		||||
                  decoration: BoxDecoration(
 | 
			
		||||
                    color: Colors.black,
 | 
			
		||||
                    border: Border(right: BorderSide(color: Colors.white)),
 | 
			
		||||
                  ),      
 | 
			
		||||
                  child: const Icon(Icons.search, color: Colors.white)
 | 
			
		||||
                )
 | 
			
		||||
              )
 | 
			
		||||
            ),
 | 
			
		||||
            Tooltip(
 | 
			
		||||
              message: 'distributed search',
 | 
			
		||||
              child: InkWell( 
 | 
			
		||||
                onTap: () { 
 | 
			
		||||
                  AppRouter.currentRoute.factory.search(context); 
 | 
			
		||||
                },
 | 
			
		||||
                child: Container(
 | 
			
		||||
                  width: 50,
 | 
			
		||||
                  height: 50,
 | 
			
		||||
                  color: Colors.black,
 | 
			
		||||
                  child: const Icon(Icons.screen_search_desktop_outlined, color: Colors.white)
 | 
			
		||||
                )
 | 
			
		||||
              )
 | 
			
		||||
            )
 | 
			
		||||
          ])
 | 
			
		||||
        ];
 | 
			
		||||
    return Container(
 | 
			
		||||
      width: MediaQuery.of(context).size.width,
 | 
			
		||||
      height: AppRouter.currentRoute.factory.searchFill() ? (MediaQuery.of(context).size.height - 50) : 150,
 | 
			
		||||
      color: Colors.grey.shade300,
 | 
			
		||||
      child: AppRouter.currentRoute.factory.searchFill() ? Column(
 | 
			
		||||
        crossAxisAlignment: CrossAxisAlignment.center,
 | 
			
		||||
        children: widgets) 
 | 
			
		||||
      : Row( mainAxisAlignment: MediaQuery.of(context).size.width < 600
 | 
			
		||||
          ? MainAxisAlignment.center : MainAxisAlignment.start, children: widgets)
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										20
									
								
								lib/core/sections/left_menu.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								lib/core/sections/left_menu.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/router.dart';
 | 
			
		||||
 | 
			
		||||
class LeftMenuWidget extends StatefulWidget {
 | 
			
		||||
  const LeftMenuWidget({Key? key}): super(key: key);
 | 
			
		||||
  @override LeftMenuWidgetState createState() => LeftMenuWidgetState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class LeftMenuWidgetState extends State<LeftMenuWidget> {
 | 
			
		||||
  @override Widget build(BuildContext context) {
 | 
			
		||||
    var routes = AppRouter.zones.where(  (e) => e.label != null && e.icon != null).toList();
 | 
			
		||||
    List<Widget> widgets = routes.map( (e) => Opacity(  opacity: AppRouter.currentRoute.route == e.route ?  1 : .5,
 | 
			
		||||
      child: Tooltip( message: e.label, child: SizedBox(  width: 50,  height: 50, child: InkWell(
 | 
			
		||||
        onTap: () { e.go(context, {}); },
 | 
			
		||||
        child: Center( child: Icon(e.icon, color:Colors.white) ),
 | 
			
		||||
      ),
 | 
			
		||||
    )))).toList();
 | 
			
		||||
    return Column( children: widgets);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,168 +1,223 @@
 | 
			
		||||
 | 
			
		||||
import 'dart:io';
 | 
			
		||||
import 'package:dio/dio.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:alert_banner/exports.dart';
 | 
			
		||||
import 'package:localstorage/localstorage.dart';
 | 
			
		||||
import 'package:oc_front/core/conf/conf_reader.dart';
 | 
			
		||||
import 'package:oc_front/models/abstract.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/utils/dialog/alert.dart';
 | 
			
		||||
import 'package:oc_front/core/services/html.dart' if (kIsWeb) 'dart:html' as http;
 | 
			
		||||
import 'package:oc_front/widgets/dialog/alert.dart';
 | 
			
		||||
import 'package:oc_front/core/services/html.dart' if (kIsWeb) 'dart:html'
 | 
			
		||||
    as http;
 | 
			
		||||
 | 
			
		||||
class APIService<T extends SerializerDeserializer> {
 | 
			
		||||
  static bool forceRequest = false;
 | 
			
		||||
  static Map<String, APIResponse<dynamic>> cache = <String, APIResponse<dynamic>>{};
 | 
			
		||||
  static String auth = "";
 | 
			
		||||
  static var config = AppConfig();
 | 
			
		||||
  static Map<String, APIResponse<dynamic>> cache =
 | 
			
		||||
      <String, APIResponse<dynamic>>{};
 | 
			
		||||
 | 
			
		||||
  Dio _dio = Dio(
 | 
			
		||||
    BaseOptions(
 | 
			
		||||
      baseUrl: const String.fromEnvironment('HOST', defaultValue: 'http://localhost:8080'), // you can keep this blank
 | 
			
		||||
      headers: { 'Content-Type': 'application/json; charset=UTF-8' },
 | 
			
		||||
      baseUrl: AppConfig().get('HOST', defaultValue: 'http://localhost:8000'), // you can keep this blank
 | 
			
		||||
      headers: { 'Content-Type': 'application/json; charset=UTF-8', 'Access-Control-Allow-Origin': '*' },
 | 
			
		||||
    ),
 | 
			
		||||
  )..interceptors.add(LogInterceptor( requestHeader: true, ),);
 | 
			
		||||
  )..interceptors.add(LogInterceptor(
 | 
			
		||||
      requestHeader: true,
 | 
			
		||||
    ));
 | 
			
		||||
 | 
			
		||||
  APIService({ required String baseURL }) {
 | 
			
		||||
  APIService({required String baseURL}) {
 | 
			
		||||
    _dio = Dio(
 | 
			
		||||
      BaseOptions(
 | 
			
		||||
        baseUrl: baseURL, // you can keep this blank
 | 
			
		||||
        headers: { 'Content-Type': 'application/json; charset=UTF-8' },
 | 
			
		||||
        headers: { 'Content-Type': 'application/json; charset=UTF-8', 'Access-Control-Allow-Origin': '*' },
 | 
			
		||||
      ),
 | 
			
		||||
    )..interceptors.add(LogInterceptor( requestHeader: true, ),);
 | 
			
		||||
    )..interceptors.add(
 | 
			
		||||
        LogInterceptor(
 | 
			
		||||
          requestHeader: true,
 | 
			
		||||
        ),
 | 
			
		||||
      );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> call(
 | 
			
		||||
    String url, String method, Map<String, dynamic>? body, bool force, BuildContext? context) async {
 | 
			
		||||
  Future<APIResponse<T>> call(String url, String method,
 | 
			
		||||
      Map<String, dynamic>? body, bool force, BuildContext? context) async {
 | 
			
		||||
    switch (method.toLowerCase()) {
 | 
			
		||||
      case 'get' : return await get(url, force, context);
 | 
			
		||||
      case 'post' : return await post(url, body!, context);
 | 
			
		||||
      case 'put' : return await put(url, body!, context);
 | 
			
		||||
      case 'delete' : return await delete(url, context);
 | 
			
		||||
      default : return await get(url, force, context);
 | 
			
		||||
      case 'get':
 | 
			
		||||
        return await get(url, force, context);
 | 
			
		||||
      case 'post':
 | 
			
		||||
        return await post(url, body!, context);
 | 
			
		||||
      case 'put':
 | 
			
		||||
        return await put(url, body!, context);
 | 
			
		||||
      case 'delete':
 | 
			
		||||
        return await delete(url, context);
 | 
			
		||||
      default:
 | 
			
		||||
        return await get(url, force, context);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  Future<Response> _request(String url, String method, dynamic body, Options? options) async {
 | 
			
		||||
 | 
			
		||||
  Future<Response> _request(
 | 
			
		||||
      String url, String method, dynamic body, Options? options) async {
 | 
			
		||||
    switch (method.toLowerCase()) {
 | 
			
		||||
      case 'get' : return await _dio.get(url, options: options);
 | 
			
		||||
      case 'post' : return await _dio.post(url, data:body, options: options);
 | 
			
		||||
      case 'put' : return await _dio.put(url, data: body!, options: options);
 | 
			
		||||
      case 'delete' : return await _dio.delete(url, options: options);
 | 
			
		||||
      default : return await _dio.get(url, options: options);
 | 
			
		||||
      case 'get':
 | 
			
		||||
        return await _dio.get(url, options: options);
 | 
			
		||||
      case 'post':
 | 
			
		||||
        return await _dio.post(url, data: body, options: options);
 | 
			
		||||
      case 'put':
 | 
			
		||||
        return await _dio.put(url, data: body!, options: options);
 | 
			
		||||
      case 'delete':
 | 
			
		||||
        return await _dio.delete(url, options: options);
 | 
			
		||||
      default:
 | 
			
		||||
        return await _dio.get(url, options: options);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ValueNotifier downloadProgressNotifier = ValueNotifier(0);
 | 
			
		||||
  Future _mainDownload(String url, String method, bool isFilter, String? extend, String savePath, bool isWeb, BuildContext context) async {
 | 
			
		||||
  Future _mainDownload(String url, String method, bool isFilter, String? extend,
 | 
			
		||||
      String savePath, bool isWeb, BuildContext context) async {
 | 
			
		||||
    try {
 | 
			
		||||
      downloadProgressNotifier.value = 0;
 | 
			
		||||
      // dio.options.headers["authorization"] = auth;
 | 
			
		||||
      if (isWeb) {
 | 
			
		||||
        _dio.get("$url${extend ?? ""}").then((value) {
 | 
			
		||||
          var url = http.Url.createObjectUrlFromBlob(http.Blob([value.data]));
 | 
			
		||||
          http.AnchorElement(href: url)..setAttribute('download', savePath.split("/").last)..click();
 | 
			
		||||
          http.AnchorElement(href: url)
 | 
			
		||||
            ..setAttribute('download', savePath.split("/").last)
 | 
			
		||||
            ..click();
 | 
			
		||||
          downloadProgressNotifier.value = 100;
 | 
			
		||||
          Future.delayed(const Duration(seconds: 1), () { Navigator.of(context).pop(); });
 | 
			
		||||
          Future.delayed(const Duration(seconds: 1), () {
 | 
			
		||||
            Navigator.of(context).pop();
 | 
			
		||||
          });
 | 
			
		||||
        });
 | 
			
		||||
      } else {
 | 
			
		||||
        _dio.download("$url${extend ?? ""}", savePath, onReceiveProgress: (actualBytes, int totalBytes) {
 | 
			
		||||
        _dio.download("$url${extend ?? ""}", savePath,
 | 
			
		||||
            onReceiveProgress: (actualBytes, int totalBytes) {
 | 
			
		||||
          Future.delayed(const Duration(seconds: 1), () {
 | 
			
		||||
            downloadProgressNotifier.value = (actualBytes / totalBytes * 100).floor();
 | 
			
		||||
            if (downloadProgressNotifier.value == 100) { Navigator.of(context).pop(); }
 | 
			
		||||
            downloadProgressNotifier.value =
 | 
			
		||||
                (actualBytes / totalBytes * 100).floor();
 | 
			
		||||
            if (downloadProgressNotifier.value == 100) {
 | 
			
		||||
              Navigator.of(context).pop();
 | 
			
		||||
            }
 | 
			
		||||
          });
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
      
 | 
			
		||||
    } catch (e) { /* */ }
 | 
			
		||||
    } catch (e) {/* */}
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> _main(String url, dynamic body, String method, String succeed, bool force, 
 | 
			
		||||
                               BuildContext? context, Options? options) async {
 | 
			
		||||
    var err = ""; 
 | 
			
		||||
    
 | 
			
		||||
      if ((!force) && cache.containsKey(url) && cache[url] != null ) { 
 | 
			
		||||
        return cache[url]! as APIResponse<T>;
 | 
			
		||||
      }
 | 
			
		||||
      try {
 | 
			
		||||
        _dio.options.headers["authorization"] = auth;
 | 
			
		||||
        _dio.options.headers["Authorization"] = "Bearer ${localStorage.getItem('accessToken') ?? ""}";
 | 
			
		||||
        _dio.interceptors.clear(); 
 | 
			
		||||
        print("${_dio.options.baseUrl}$url" );
 | 
			
		||||
        var response = await _request(url, method, body, options);
 | 
			
		||||
        if (response.statusCode != null && response.statusCode! < 400) {
 | 
			
		||||
          if (method == "delete") { cache.remove(url); return APIResponse<T>(); }
 | 
			
		||||
          APIResponse<T> resp = APIResponse<T>().deserialize(response.data); 
 | 
			
		||||
          if (resp.error == "") { 
 | 
			
		||||
            if (method == "get") { cache[url]=resp; }
 | 
			
		||||
            if (context != null && succeed != "") {
 | 
			
		||||
              // ignore: use_build_context_synchronously
 | 
			
		||||
              showAlertBanner(context, () {}, InfoAlertBannerChild(text: succeed), // <-- Put any widget here you want!
 | 
			
		||||
              try {
 | 
			
		||||
                showAlertBanner(context, () {}, InfoAlertBannerChild(text: succeed), // <-- Put any widget here you want!
 | 
			
		||||
                alertBannerLocation:  AlertBannerLocation.bottom,);
 | 
			
		||||
              } catch (e) { /* */ }
 | 
			
		||||
            }
 | 
			
		||||
            try { return cache[url] as APIResponse<T>;
 | 
			
		||||
            } catch (e) { return APIResponse(); }
 | 
			
		||||
            return resp;
 | 
			
		||||
          }
 | 
			
		||||
          err = resp.error ?? "internal error";
 | 
			
		||||
        } 
 | 
			
		||||
        if (response.statusCode == 401) { err = "not authorized"; }
 | 
			
		||||
      } catch(e, s) {  
 | 
			
		||||
        print(e); 
 | 
			
		||||
        print(s);
 | 
			
		||||
        err = e.toString();
 | 
			
		||||
      }
 | 
			
		||||
        } else if (response.statusCode == 401) { err = "not authorized"; }
 | 
			
		||||
    } catch (e, s) {
 | 
			
		||||
      print(e);
 | 
			
		||||
      print(s);
 | 
			
		||||
      err = e.toString();
 | 
			
		||||
    }
 | 
			
		||||
    //if (err.contains("token") && err.contains("expired")) {  AuthService().unAuthenticate();  }
 | 
			
		||||
    if (context != null) {
 | 
			
		||||
      // ignore: use_build_context_synchronously
 | 
			
		||||
      showAlertBanner( context, () {}, AlertAlertBannerChild(text: err),// <-- Put any widget here you want!
 | 
			
		||||
      try {
 | 
			
		||||
        showAlertBanner( context, () {}, AlertAlertBannerChild(text: err),// <-- Put any widget here you want!
 | 
			
		||||
                       alertBannerLocation:  AlertBannerLocation.bottom,);
 | 
			
		||||
      } catch (e) { /* */ }
 | 
			
		||||
    } 
 | 
			
		||||
    throw Exception(err);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<RawData>> raw(String url, dynamic body, String method) async {
 | 
			
		||||
  Future<APIResponse<RawData>> raw(
 | 
			
		||||
      String url, dynamic body, String method) async {
 | 
			
		||||
    var err = "";
 | 
			
		||||
    if (url != "") {
 | 
			
		||||
      try {
 | 
			
		||||
        _dio.options.headers["authorization"] = auth;
 | 
			
		||||
        _dio.options.headers["Authorization"] =
 | 
			
		||||
            "Bearer ${localStorage.getItem('accessToken') ?? ""}";
 | 
			
		||||
        _dio.interceptors.clear();
 | 
			
		||||
        var response = await _request(url, method, body, null);
 | 
			
		||||
        if (response.statusCode != null && response.statusCode! < 400) {
 | 
			
		||||
          if (method == "delete") { cache.remove(url); return APIResponse<RawData>(); }
 | 
			
		||||
          APIResponse<RawData> resp = APIResponse<RawData>().deserialize(response.data); 
 | 
			
		||||
          if (resp.error == "") { return resp; }
 | 
			
		||||
          if (method == "delete") {
 | 
			
		||||
            cache.remove(url);
 | 
			
		||||
            return APIResponse<RawData>();
 | 
			
		||||
          }
 | 
			
		||||
          APIResponse<RawData> resp =
 | 
			
		||||
              APIResponse<RawData>().deserialize(response.data);
 | 
			
		||||
          if (resp.error == "") {
 | 
			
		||||
            return resp;
 | 
			
		||||
          }
 | 
			
		||||
          err = resp.error ?? "internal error";
 | 
			
		||||
        }
 | 
			
		||||
        if (response.statusCode == 401) { err = "not authorized"; }
 | 
			
		||||
      } catch(e, s) { print(e); print(s);
 | 
			
		||||
        err = "${e.toString()} ${const String.fromEnvironment('HOST', defaultValue: 'http://localhost:8080')}"; }
 | 
			
		||||
    } else { err = "no url"; }
 | 
			
		||||
    // if (err.contains("token") && err.contains("expired")) {  AuthService().unAuthenticate();  }
 | 
			
		||||
        if (response.statusCode == 401) {
 | 
			
		||||
          err = "not authorized";
 | 
			
		||||
        }
 | 
			
		||||
      } catch (e, s) {
 | 
			
		||||
        print(e);
 | 
			
		||||
        print(s);
 | 
			
		||||
        err =
 | 
			
		||||
            "${e.toString()} ${config.get('HOST', defaultValue: 'http://localhost:8080')}";
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      err = "no url";
 | 
			
		||||
    }
 | 
			
		||||
    throw Exception(err);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> sendFile(String url, File file, BuildContext context) async {
 | 
			
		||||
  Future<APIResponse<T>> sendFile(
 | 
			
		||||
      String url, File file, BuildContext context) async {
 | 
			
		||||
    FormData formData = FormData.fromMap({
 | 
			
		||||
        "file": await MultipartFile.fromFile(file.path, filename:file.path.split("/").last),
 | 
			
		||||
      "file": await MultipartFile.fromFile(file.path,
 | 
			
		||||
          filename: file.path.split("/").last),
 | 
			
		||||
    });
 | 
			
		||||
    // ignore: use_build_context_synchronously
 | 
			
		||||
    return _main(url, formData, "post", "send succeed", true, context, Options(contentType: 'multipart/form-data'));
 | 
			
		||||
    return _main(url, formData, "post", "send succeed", true, context,
 | 
			
		||||
        Options(contentType: 'multipart/form-data'));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future getWithDownload(String url, String format, Map<String,dynamic> cache, String savePath, bool isWeb, BuildContext context) async {
 | 
			
		||||
  Future getWithDownload(String url, String format, Map<String, dynamic> cache,
 | 
			
		||||
      String savePath, bool isWeb, BuildContext context) async {
 | 
			
		||||
    String asLabel = "";
 | 
			
		||||
    for (var key in cache.keys) {
 | 
			
		||||
      if (!asLabel.contains(key)) { asLabel += "&${key}_aslabel=${cache[key]!}"; }
 | 
			
		||||
      if (!asLabel.contains(key)) {
 | 
			
		||||
        asLabel += "&${key}_aslabel=${cache[key]!}";
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    try { _mainDownload(url, "get", true, "&export=$format$asLabel", savePath, isWeb, context);
 | 
			
		||||
    } catch (e) { /* */ }
 | 
			
		||||
    try {
 | 
			
		||||
      _mainDownload(url, "get", true, "&export=$format$asLabel", savePath,
 | 
			
		||||
          isWeb, context);
 | 
			
		||||
    } catch (e) {/* */}
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> getWithOffset(String url, bool force, BuildContext? context) async {
 | 
			
		||||
  Future<APIResponse<T>> getWithOffset(
 | 
			
		||||
      String url, bool force, BuildContext? context) async {
 | 
			
		||||
    return _main(url, null, "get", "", force, context, null);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> get(String url, bool force, BuildContext? context) async {
 | 
			
		||||
  Future<APIResponse<T>> get(
 | 
			
		||||
      String url, bool force, BuildContext? context) async {
 | 
			
		||||
    return _main(url, null, "get", "", force, context, null);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> post(String url, Map<String, dynamic> values, BuildContext? context) async {
 | 
			
		||||
  Future<APIResponse<T>> post(
 | 
			
		||||
      String url, Map<String, dynamic> values, BuildContext? context) async {
 | 
			
		||||
    return _main(url, values, "post", "send succeed", true, context, null);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> put(String url, Map<String, dynamic> values, BuildContext? context) async {
 | 
			
		||||
  Future<APIResponse<T>> put(
 | 
			
		||||
      String url, Map<String, dynamic> values, BuildContext? context) async {
 | 
			
		||||
    return _main(url, values, "put", "save succeed", true, context, null);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										110
									
								
								lib/core/services/auth.service.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								lib/core/services/auth.service.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,110 @@
 | 
			
		||||
import 'package:localstorage/localstorage.dart';
 | 
			
		||||
import 'package:oc_front/core/conf/conf_reader.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/perms_service.dart';
 | 
			
		||||
import 'package:oc_front/main.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
 | 
			
		||||
class AuthService {
 | 
			
		||||
  static var conf = AppConfig();
 | 
			
		||||
  static var isAuth = const bool.fromEnvironment('AUTH_MODE', defaultValue: true);
 | 
			
		||||
  static const _clientID = String.fromEnvironment('CLIENT_ID', defaultValue: 'test-client');
 | 
			
		||||
  static APIService<SimpleData>? service;
 | 
			
		||||
 | 
			
		||||
  static Future<void> init() async {
 | 
			
		||||
    service ??= APIService<SimpleData>(baseURL: 
 | 
			
		||||
      const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + conf.get('AUTH_HOST', defaultValue: '/auth'));
 | 
			
		||||
    if (!isAuth) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    PermsService.init(localStorage.getItem('accessToken') ?? "");
 | 
			
		||||
    bool ok = await introspect().catchError((e) => false);
 | 
			
		||||
    if (ok) {
 | 
			
		||||
      var now = DateTime.now();
 | 
			
		||||
      var expires = DateTime.parse(localStorage.getItem('expiresIn') ??
 | 
			
		||||
          DateTime.now().toIso8601String());
 | 
			
		||||
      var duration = expires.difference(now);
 | 
			
		||||
      refresh(localStorage.getItem('accessToken') ?? "",
 | 
			
		||||
          localStorage.getItem('username') ?? "", duration);
 | 
			
		||||
    } else {
 | 
			
		||||
      localStorage.setItem('accessToken', '');
 | 
			
		||||
      localStorage.setItem('username', '');
 | 
			
		||||
      localStorage.setItem('expiresIn', '');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static bool isConnected() {
 | 
			
		||||
    if (!isAuth) {
 | 
			
		||||
      return true;
 | 
			
		||||
    }
 | 
			
		||||
    return (localStorage.getItem('accessToken') ?? "") != "" 
 | 
			
		||||
    && localStorage.getItem('username') != "";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static String? getUsername() {
 | 
			
		||||
    if (!isAuth) {
 | 
			
		||||
      return "no auth user";
 | 
			
		||||
    }
 | 
			
		||||
    return localStorage.getItem('username') ?? "unknown";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Future<void> login(String username, String password) async {
 | 
			
		||||
    var token = await service!.post("/login?client_id=$_clientID", <String, dynamic> {
 | 
			
		||||
      "username": username,
 | 
			
		||||
      "password": password
 | 
			
		||||
    }, null);
 | 
			
		||||
    if (token.code == 200 && token.data != null) {
 | 
			
		||||
      localStorage.setItem('accessToken', token.data?.value['access_token']);
 | 
			
		||||
      localStorage.setItem('tokenType', token.data?.value['token_type']);
 | 
			
		||||
      localStorage.setItem('username', username);
 | 
			
		||||
      localStorage.setItem('expiresIn', DateTime.now().add(
 | 
			
		||||
        Duration(seconds: token.data?.value['expires_in'])).toIso8601String());
 | 
			
		||||
      mainKey?.currentState?.setState(() {});
 | 
			
		||||
      PermsService.init(token.data?.value['access_token']);
 | 
			
		||||
      refresh(token.data?.value['access_token'] ?? "", username,
 | 
			
		||||
          Duration(seconds: token.data?.value['expires_in']));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Future<void> logout() async {
 | 
			
		||||
    var token = await service!.delete("/logout?client_id=$_clientID", null);
 | 
			
		||||
    if (token.code == 200) {
 | 
			
		||||
      localStorage.setItem('accessToken', '');
 | 
			
		||||
      localStorage.setItem('username', '');
 | 
			
		||||
      localStorage.setItem('expiresIn', '');
 | 
			
		||||
      PermsService.clear();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Future<bool> introspect() async {
 | 
			
		||||
    if (!isConnected()) {
 | 
			
		||||
      return false;
 | 
			
		||||
    }
 | 
			
		||||
    // ignore: invalid_return_type_for_catch_error
 | 
			
		||||
    var isIntrospected = await service!.get("/introspect", true, null).catchError((e) => mainKey?.currentState?.setState(() {}));
 | 
			
		||||
    return isIntrospected.code == 200;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Future<void> refresh(
 | 
			
		||||
      String accessToken, String username, Duration duration) async {
 | 
			
		||||
    Future.delayed(duration, () {
 | 
			
		||||
      service!.post("/refresh?client_id=$_clientID", <String, dynamic> {
 | 
			
		||||
        "access_token": accessToken,
 | 
			
		||||
        "username": username
 | 
			
		||||
      }, null).then((token) {
 | 
			
		||||
        if (token.code == 200 && token.data != null) {
 | 
			
		||||
          PermsService.init(token.data?.value['access_token']);
 | 
			
		||||
          localStorage.setItem(
 | 
			
		||||
              'accessToken', token.data?.value['access_token']);
 | 
			
		||||
          localStorage.setItem('username', username);
 | 
			
		||||
          localStorage.setItem(
 | 
			
		||||
              'expiresIn',
 | 
			
		||||
              DateTime.now()
 | 
			
		||||
                  .add(Duration(seconds: token.data?.value['expires_in']) -
 | 
			
		||||
                      Duration(seconds: 10))
 | 
			
		||||
                  .toIso8601String());
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										52
									
								
								lib/core/services/enum_service.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								lib/core/services/enum_service.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
import 'package:oc_front/core/conf/conf_reader.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
 | 
			
		||||
class EnumService {
 | 
			
		||||
  static var conf = AppConfig();
 | 
			
		||||
  static APIService<EnumData>? _service;
 | 
			
		||||
  static String subPath = "/enum/";
 | 
			
		||||
  static Map<String, Map<String,dynamic>> enums = {};
 | 
			
		||||
 | 
			
		||||
  static int? get(String path, dynamic name) {
 | 
			
		||||
    var n = enums[path];
 | 
			
		||||
    if (n == null) {
 | 
			
		||||
      return null;
 | 
			
		||||
    }
 | 
			
		||||
    var names = "$name";
 | 
			
		||||
    for (var nn in n.keys) {
 | 
			
		||||
      if (n[nn] == names || nn == names) {
 | 
			
		||||
        return int.parse(nn);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void init() {
 | 
			
		||||
    _service = _service ?? APIService<EnumData>(
 | 
			
		||||
      baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + conf.get('CATALOG_HOST', 
 | 
			
		||||
        defaultValue: '/catalog')
 | 
			
		||||
    );
 | 
			
		||||
    _load("infrastructure");
 | 
			
		||||
    _load("storage/type");
 | 
			
		||||
    _load("storage/size");
 | 
			
		||||
    _load("resource/type");
 | 
			
		||||
    _load("booking/status");
 | 
			
		||||
    _load("status");
 | 
			
		||||
    _load("pricing/strategy/buy");
 | 
			
		||||
    _load("pricing/strategy/data");
 | 
			
		||||
    _load("pricing/strategy/time");
 | 
			
		||||
    _load("pricing/strategy/storage");
 | 
			
		||||
    _load("pricing/strategy/privilege/storage");
 | 
			
		||||
    _load("pricing/strategy/privilege");
 | 
			
		||||
    _load("pricing/refund/type");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void _load(String name) {
 | 
			
		||||
    _service!.get("$subPath$name", false, null).then((response) {
 | 
			
		||||
      if (response.code == 200) {
 | 
			
		||||
        enums[name] = response.data!.value;
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										98
									
								
								lib/core/services/perms_service.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								lib/core/services/perms_service.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,98 @@
 | 
			
		||||
import 'dart:convert';
 | 
			
		||||
 | 
			
		||||
import 'package:oc_front/main.dart';
 | 
			
		||||
 | 
			
		||||
enum Perms { 
 | 
			
		||||
  SEARCH_INTERNAL,// ignore: constant_identifier_names
 | 
			
		||||
  SEARCH_EXTERNAL, // ignore: constant_identifier_names
 | 
			
		||||
 | 
			
		||||
  WORKSPACE_SHARE,// ignore: constant_identifier_names
 | 
			
		||||
  WORKSPACE_UNSHARE,// ignore: constant_identifier_names
 | 
			
		||||
 | 
			
		||||
  WORKFLOW_CREATE, // ignore: constant_identifier_names
 | 
			
		||||
  WORKFLOW_EDIT, // ignore: constant_identifier_names
 | 
			
		||||
  WORKFLOW_DELETE, // ignore: constant_identifier_names
 | 
			
		||||
  WORKFLOW_BOOKING, // ignore: constant_identifier_names
 | 
			
		||||
  WORKFLOW_SHARE, // ignore: constant_identifier_names
 | 
			
		||||
  WORKFLOW_UNSHARE, // ignore: constant_identifier_names
 | 
			
		||||
 | 
			
		||||
  PEER_SHARE, // ignore: constant_identifier_names
 | 
			
		||||
  PEER_UNSHARE, // ignore: constant_identifier_names
 | 
			
		||||
 | 
			
		||||
  COLLABORATIVE_AREA_CREATE, // ignore: constant_identifier_names
 | 
			
		||||
  COLLABORATIVE_AREA_EDIT, // ignore: constant_identifier_names
 | 
			
		||||
  COLLABORATIVE_AREA_DELETE, // ignore: constant_identifier_names
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Map<Perms, String> perms = {
 | 
			
		||||
  Perms.SEARCH_INTERNAL: 'GET__CATALOG_COMPUTE_SEARCH_SEARCH'.toUpperCase(),
 | 
			
		||||
  Perms.SEARCH_EXTERNAL: 'Search External'.toUpperCase(),
 | 
			
		||||
  Perms.WORKSPACE_SHARE: 'POST__SHARED_COLLABORATIVE_AREA_ID_WORKSPACE_ID2'.toUpperCase(),
 | 
			
		||||
  Perms.WORKFLOW_CREATE: 'POST__WORKFLOW_'.toUpperCase(),
 | 
			
		||||
  Perms.WORKFLOW_UNSHARE: 'DELETE__SHARED_COLLABORATIVE_AREA_ID_WORKFLOW_ID2'.toUpperCase(),
 | 
			
		||||
  Perms.PEER_SHARE: 'POST__SHARED_COLLABORATIVE_AREA_ID_PEER_ID2'.toUpperCase(),
 | 
			
		||||
  Perms.PEER_UNSHARE: 'DELETE__SHARED_COLLABORATIVE_AREA_ID_PEER_ID2'.toUpperCase(),
 | 
			
		||||
  Perms.COLLABORATIVE_AREA_CREATE: 'POST__SHARED_COLLABORATIVE_AREA_'.toUpperCase(),
 | 
			
		||||
  Perms.COLLABORATIVE_AREA_EDIT: 'PUT__SHARED_COLLABORATIVE_AREA_ID'.toUpperCase(),
 | 
			
		||||
  Perms.COLLABORATIVE_AREA_DELETE: 'DELETE__SHARED_COLLABORATIVE_AREA_ID'.toUpperCase(),
 | 
			
		||||
  Perms.WORKSPACE_UNSHARE: 'DELETE__SHARED_COLLABORATIVE_AREA_ID_WORKSPACE_ID2'.toUpperCase(),
 | 
			
		||||
  Perms.WORKFLOW_EDIT: 'PUT__WORKFLOW_ID'.toUpperCase(),
 | 
			
		||||
  Perms.WORKFLOW_DELETE: 'DELETE__WORKFLOW_ID'.toUpperCase(),
 | 
			
		||||
  Perms.WORKFLOW_BOOKING: 'POST__DATACENTER_BOOKING_'.toUpperCase(),
 | 
			
		||||
  Perms.WORKFLOW_SHARE: 'POST__SHARED_COLLABORATIVE_AREA_ID_WORKFLOW_ID2'.toUpperCase(),
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class PermsService {
 | 
			
		||||
  static final Map<Perms, bool> _perms = {
 | 
			
		||||
    Perms.SEARCH_INTERNAL: false,
 | 
			
		||||
    Perms.SEARCH_EXTERNAL: false,
 | 
			
		||||
    Perms.WORKSPACE_SHARE: false,
 | 
			
		||||
    Perms.WORKSPACE_UNSHARE: false,
 | 
			
		||||
    Perms.WORKFLOW_CREATE: false,
 | 
			
		||||
    Perms.WORKFLOW_EDIT: false,
 | 
			
		||||
    Perms.WORKFLOW_DELETE: false,
 | 
			
		||||
    Perms.WORKFLOW_BOOKING: false,
 | 
			
		||||
    Perms.WORKFLOW_SHARE: false,
 | 
			
		||||
    Perms.WORKFLOW_UNSHARE: false,
 | 
			
		||||
    Perms.PEER_SHARE: false,
 | 
			
		||||
    Perms.PEER_UNSHARE: false,
 | 
			
		||||
    Perms.COLLABORATIVE_AREA_CREATE: false,
 | 
			
		||||
    Perms.COLLABORATIVE_AREA_EDIT: false,
 | 
			
		||||
    Perms.COLLABORATIVE_AREA_DELETE: false,
 | 
			
		||||
  };
 | 
			
		||||
  static final PermsService _instance = PermsService._internal();
 | 
			
		||||
  factory PermsService() => _instance;
 | 
			
		||||
  PermsService._internal();
 | 
			
		||||
  /* should decode claims such as in oc-auth */
 | 
			
		||||
  static Future<void> init(String token ) async {
 | 
			
		||||
    var claims = token.split(".").last;
 | 
			
		||||
    var decoded = base64.decode(claims);
 | 
			
		||||
    String foo = utf8.decode(decoded);
 | 
			
		||||
    try {
 | 
			
		||||
      var what = json.decode(foo);
 | 
			
		||||
      what = what["session"]["access_token"] as Map<String, dynamic>;
 | 
			
		||||
      for (var w in perms.keys) {
 | 
			
		||||
        if (what.keys.contains(perms[w])) {
 | 
			
		||||
          _perms[w] = true;
 | 
			
		||||
        } else {
 | 
			
		||||
          _perms[w] = false;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      mainKey?.currentState?.setState(() {});
 | 
			
		||||
    } catch (e) {/**/}
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void clear() {
 | 
			
		||||
    _perms.forEach((key, value) {
 | 
			
		||||
      _perms[key] = false;
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
  static bool getPerm(Perms perm) {
 | 
			
		||||
    return _perms[perm] ?? false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static void setPerm(Perms perm, bool value) {
 | 
			
		||||
    _perms[perm] = value;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,3 +1,6 @@
 | 
			
		||||
import 'dart:convert';
 | 
			
		||||
 | 
			
		||||
import 'package:oc_front/core/sections/header/header.dart';
 | 
			
		||||
import 'package:oc_front/main.dart';
 | 
			
		||||
import 'package:oc_front/pages/abstract_page.dart';
 | 
			
		||||
import 'package:oc_front/pages/catalog.dart';
 | 
			
		||||
@@ -5,6 +8,7 @@ import 'package:oc_front/pages/catalog_item.dart';
 | 
			
		||||
import 'package:oc_front/pages/datacenter.dart';
 | 
			
		||||
import 'package:oc_front/pages/map.dart';
 | 
			
		||||
import 'package:oc_front/pages/scheduler.dart';
 | 
			
		||||
import 'package:oc_front/pages/shared.dart';
 | 
			
		||||
import 'package:oc_front/pages/workflow.dart';
 | 
			
		||||
import 'package:shared_preferences/shared_preferences.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
@@ -40,25 +44,37 @@ class RouterItem {
 | 
			
		||||
 | 
			
		||||
  void go(BuildContext context, Map<String, String> params) { 
 | 
			
		||||
    AppRouter.currentRoute = this;
 | 
			
		||||
    var newPath = "$path";
 | 
			
		||||
    var newPath = path;
 | 
			
		||||
    AppRouter.setRouteCookie(newPath, params, context);
 | 
			
		||||
    for (var arg in args) { newPath = newPath.replaceAll(":$arg", params[arg] ?? ""); }
 | 
			
		||||
    Future.delayed( const Duration(seconds: 1), () {
 | 
			
		||||
      HeaderConstants.setTitle(null);
 | 
			
		||||
      HeaderConstants.setDescription(null);
 | 
			
		||||
    });
 | 
			
		||||
    context.go(newPath); 
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class AppRouter { 
 | 
			
		||||
  static const String home = "catalog";
 | 
			
		||||
  static String home = "catalog";
 | 
			
		||||
  static final RouterItem workflowItem = RouterItem(icon: Icons.rebase_edit, label: "workflow manager", route: "workflow", 
 | 
			
		||||
      factory: WorkflowFactory());
 | 
			
		||||
  static final RouterItem workflowIDItem = RouterItem(description: "", help: "", route: "workflow/:id", factory: WorkflowFactory(), args: ["id"]);
 | 
			
		||||
  static final RouterItem catalogItem = RouterItem(label: "resource", description: "", help: "", route: "catalog/:id", factory: CatalogItemFactory(), args: ["id"]);
 | 
			
		||||
  static final RouterItem catalog= RouterItem(icon: Icons.book_outlined, label: "catalog searcher", route: "catalog", factory: CatalogFactory());
 | 
			
		||||
  static final RouterItem scheduler = RouterItem(icon: Icons.schedule, label: "scheduled tasks", route: "scheduler", factory: SchedulerFactory());
 | 
			
		||||
  static final RouterItem compute = RouterItem(icon: Icons.dns_outlined, label: "my compute", route: "compute", factory: DatacenterFactory());
 | 
			
		||||
  static final RouterItem shared = RouterItem(icon: Icons.share_rounded, label: "collaborative area", route: "shared", factory: SharedFactory());
 | 
			
		||||
 | 
			
		||||
  static List<RouterItem> zones = [
 | 
			
		||||
    RouterItem(icon: Icons.book_outlined, label: "catalog searcher", route: home, factory: CatalogFactory()), 
 | 
			
		||||
    RouterItem(icon: Icons.rebase_edit, label: "workflow manager", route: "workflow", 
 | 
			
		||||
      description: "View to select & create new workflow.", help: "Workflow only access to your workspace datas. If a an element of your flow is missing, perhaps means it's missing in workspace.", 
 | 
			
		||||
      factory: WorkflowFactory()), 
 | 
			
		||||
    RouterItem(icon: Icons.schedule, label: "scheduled tasks", route: "scheduler", factory: SchedulerFactory()),
 | 
			
		||||
    RouterItem(icon: Icons.dns_outlined, label: "my datacenter", route: "datacenter", 
 | 
			
		||||
      description: "Manage & monitor your datacenter.", help: "not implemented for now",
 | 
			
		||||
      factory: DatacenterFactory()),
 | 
			
		||||
    catalog, 
 | 
			
		||||
    workflowItem, 
 | 
			
		||||
    scheduler,
 | 
			
		||||
    compute,
 | 
			
		||||
    RouterItem(icon: Icons.public_outlined, label: "localisations", route: "map", factory: MapFactory()),
 | 
			
		||||
    RouterItem(description: "", help: "", route: "catalog/:id", factory: CatalogItemFactory(), args: ["id"]),
 | 
			
		||||
    shared,
 | 
			
		||||
    workflowIDItem,
 | 
			
		||||
    catalogItem,
 | 
			
		||||
  ];
 | 
			
		||||
  static List<String> history = [];
 | 
			
		||||
  static List<String> realHistory = [];
 | 
			
		||||
@@ -74,6 +90,29 @@ class AppRouter {
 | 
			
		||||
    });
 | 
			
		||||
  }    
 | 
			
		||||
 | 
			
		||||
  static verifyRoute(context) async {
 | 
			
		||||
      var url = await getRouteCookie();
 | 
			
		||||
      if (url != null && url != "") {
 | 
			
		||||
        for (var zone in zones) {
 | 
			
		||||
          print("URL: $url ${zone.route}");
 | 
			
		||||
          if (zone.route == url.replaceAll("/", "")) {
 | 
			
		||||
            Map<String, String> params = {};
 | 
			
		||||
            var srcParams = await getRouteParamsCookie();
 | 
			
		||||
            for (var key in srcParams.keys) {
 | 
			
		||||
              params[key] = "${srcParams[key]}";
 | 
			
		||||
            }
 | 
			
		||||
            zone.go(context, params);
 | 
			
		||||
            return;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Future<Map<String,dynamic>> getRouteParamsCookie() async {
 | 
			
		||||
    final SharedPreferences prefs = await SharedPreferences.getInstance();
 | 
			
		||||
    return prefs.getString("params") != null && prefs.getString("params") != "" ? json.decode(prefs.getString("params")!) : {};
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static Future<String?> getRouteCookie() async {
 | 
			
		||||
    final SharedPreferences prefs = await SharedPreferences.getInstance();
 | 
			
		||||
    return prefs.getString("url") != "" ? prefs.getString("url") : null;
 | 
			
		||||
@@ -82,11 +121,13 @@ class AppRouter {
 | 
			
		||||
  static removeRouteCookie() async {
 | 
			
		||||
    final SharedPreferences prefs = await SharedPreferences.getInstance();
 | 
			
		||||
    prefs.remove("url");
 | 
			
		||||
    prefs.remove("params");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static setRouteCookie( String path , BuildContext context ) async {
 | 
			
		||||
  static setRouteCookie( String path, Map<String, String> params, BuildContext context ) async {
 | 
			
		||||
    final SharedPreferences prefs = await SharedPreferences.getInstance();
 | 
			
		||||
    prefs.setString("url", path);
 | 
			
		||||
    prefs.setString("params", params.toString());
 | 
			
		||||
    if (realHistory.isNotEmpty && realHistory.last != path || realHistory.isEmpty) {
 | 
			
		||||
      try {
 | 
			
		||||
        var index = history.indexOf(realHistory.last);
 | 
			
		||||
@@ -109,7 +150,6 @@ class AppRouter {
 | 
			
		||||
    final SharedPreferences prefs = await SharedPreferences.getInstance();
 | 
			
		||||
    prefs.setString("url", realHistory.last);
 | 
			
		||||
    prefs.setString("history", realHistory.join(","));
 | 
			
		||||
    var splitted = realHistory.last.split(":");
 | 
			
		||||
    routerKey.currentState?.setState(() { });
 | 
			
		||||
    scaffoldKey.currentState?.setState(() {});
 | 
			
		||||
  }
 | 
			
		||||
@@ -126,7 +166,6 @@ class AppRouter {
 | 
			
		||||
      realHistory.add(history[index + 1]); 
 | 
			
		||||
      final SharedPreferences prefs = await SharedPreferences.getInstance();
 | 
			
		||||
      prefs.setString("url", realHistory.last);
 | 
			
		||||
      var splitted = realHistory.last.split(":");
 | 
			
		||||
      prefs.setString("history", realHistory.join(","));
 | 
			
		||||
      routerKey.currentState?.setState(() { });
 | 
			
		||||
      scaffoldKey.currentState?.setState(() {});
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,39 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/conf/conf_reader.dart';
 | 
			
		||||
import 'package:oc_front/models/abstract.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
 | 
			
		||||
abstract class AbstractService<T extends SerializerDeserializer> {
 | 
			
		||||
  abstract APIService<T> service;
 | 
			
		||||
  abstract String subPath;
 | 
			
		||||
  var conf = AppConfig();
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> all(BuildContext? context) {  throw UnimplementedError(); }
 | 
			
		||||
  Future<APIResponse<T>> get(BuildContext? context, String id);
 | 
			
		||||
  Future<APIResponse<T>> post(BuildContext? context, Map<String, dynamic> body, Map<String, String> params);
 | 
			
		||||
  Future<APIResponse<T>> put(BuildContext? context, String id, Map<String, dynamic> body, Map<String, String> params) { throw UnimplementedError(); }
 | 
			
		||||
  Future<APIResponse<T>> delete(BuildContext? context, Map<String, String> params) { throw UnimplementedError(); }
 | 
			
		||||
  Future<APIResponse<T>> search(
 | 
			
		||||
      BuildContext? context, List<String> words, Map<String, dynamic> params) {
 | 
			
		||||
    throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<RawData>> all(BuildContext? context) {
 | 
			
		||||
    return service.raw(subPath, null, "get");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> get(BuildContext? context, String id) {
 | 
			
		||||
    return service.get("$subPath$id", true, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> post(BuildContext? context, Map<String, dynamic> body,
 | 
			
		||||
      Map<String, String> params) {
 | 
			
		||||
    return service.post(subPath, body, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> put(BuildContext? context, String id,
 | 
			
		||||
      Map<String, dynamic> body, Map<String, String> params) {
 | 
			
		||||
    return service.put("$subPath$id", body, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<T>> delete(
 | 
			
		||||
      BuildContext? context, String id, Map<String, String> params) {
 | 
			
		||||
    return service.delete("$subPath$id", context);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								lib/core/services/specialized_services/booking_service.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								lib/core/services/specialized_services/booking_service.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/models/workflow.dart';
 | 
			
		||||
 | 
			
		||||
class BookingExecutionService extends AbstractService<WorkflowExecution> {
 | 
			
		||||
  @override late final APIService<WorkflowExecution> service;
 | 
			
		||||
 | 
			
		||||
  BookingExecutionService() {
 | 
			
		||||
    service = APIService<WorkflowExecution>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + super.conf.get('BOOKING_HOST',
 | 
			
		||||
            defaultValue: '/booking'));
 | 
			
		||||
  }
 | 
			
		||||
  @override String subPath = "/booking/";
 | 
			
		||||
 | 
			
		||||
  @override Future<APIResponse<WorkflowExecution>> search(BuildContext? context, List<String> words, Map<String, dynamic> params) {  
 | 
			
		||||
    return service.get("${subPath}search/${words.join("/")}", false, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Future<APIResponse<WorkflowExecution>> post(BuildContext? context, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<WorkflowExecution>> put(BuildContext? context, String id, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,27 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/resources.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
 | 
			
		||||
class DatacenterService extends AbstractService<Resource> {
 | 
			
		||||
  @override late final APIService<Resource> service;
 | 
			
		||||
 | 
			
		||||
  DatacenterService() {
 | 
			
		||||
    service = APIService<Resource>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + super.conf.get('DATACENTER_HOST',
 | 
			
		||||
            defaultValue: '/datacenter'));
 | 
			
		||||
  }
 | 
			
		||||
  @override String subPath = "/";
 | 
			
		||||
 | 
			
		||||
  @override Future<APIResponse<Resource>> search(BuildContext? context, List<String> words, Map<String, dynamic> params) {  
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Future<APIResponse<Resource>> post(BuildContext? context, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<Resource>> put(BuildContext? context, String id, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,23 +0,0 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/abstract.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/models/search.dart';
 | 
			
		||||
 | 
			
		||||
class ItemService<S extends AbstractItem, T extends SerializerDeserializer<S>> extends AbstractService<T> {
 | 
			
		||||
  @override APIService<T> service = APIService<T>(
 | 
			
		||||
    baseURL: String.fromEnvironment('SEARCH_HOST', defaultValue: 'http://localhost:49618/v1/${getTopic(S)}')
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  @override Future<APIResponse<T>> all(BuildContext? context) {  throw UnimplementedError(); }
 | 
			
		||||
  @override Future<APIResponse<T>> get(BuildContext? context, String id) { 
 | 
			
		||||
    if (id.contains(",")) { return service.get("/multi/$id", true, context); }
 | 
			
		||||
    return service.get("/$id", true, context);
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<T>> post(BuildContext? context, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    return service.post("/", body, context);
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<T>> put(BuildContext? context, String id, Map<String, dynamic> body, Map<String, String> params) { throw UnimplementedError(); }
 | 
			
		||||
  @override Future<APIResponse<T>> delete(BuildContext? context, Map<String, String> params) { throw UnimplementedError(); }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										46
									
								
								lib/core/services/specialized_services/logs_service.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								lib/core/services/specialized_services/logs_service.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/logs.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
 | 
			
		||||
class LogsService extends AbstractService<LogsResult> {
 | 
			
		||||
  @override
 | 
			
		||||
  late final APIService<LogsResult> service;
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String subPath = "/loki";
 | 
			
		||||
 | 
			
		||||
  LogsService() {
 | 
			
		||||
    service = APIService<LogsResult>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + super.conf.get('SCHEDULER_HOST', defaultValue: '/scheduler'));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<LogsResult>> search(BuildContext? context, List<String> words, Map<String, dynamic> params) {
 | 
			
		||||
    return service.post(subPath, params, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<LogsResult>> get(BuildContext? context, String id) {
 | 
			
		||||
    throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<LogsResult>> post(BuildContext? context,
 | 
			
		||||
      Map<String, dynamic> body, Map<String, String> params) {
 | 
			
		||||
    throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<LogsResult>> put(BuildContext? context, String id,
 | 
			
		||||
      Map<String, dynamic> body, Map<String, String> params) {
 | 
			
		||||
    throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<LogsResult>> delete(
 | 
			
		||||
      BuildContext? context, String id, Map<String, String> params) {
 | 
			
		||||
    throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								lib/core/services/specialized_services/peer_service.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								lib/core/services/specialized_services/peer_service.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/shared.dart';
 | 
			
		||||
 | 
			
		||||
class PeerService extends AbstractService<Peer> {
 | 
			
		||||
  @override
 | 
			
		||||
  late final APIService<Peer> service;
 | 
			
		||||
  @override
 | 
			
		||||
  String subPath = "/";
 | 
			
		||||
 | 
			
		||||
  PeerService() {
 | 
			
		||||
    service = APIService<Peer>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + super
 | 
			
		||||
            .conf
 | 
			
		||||
            .get('PEER_HOST', defaultValue: '/peer'));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								lib/core/services/specialized_services/resource_service.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								lib/core/services/specialized_services/resource_service.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/resources.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
 | 
			
		||||
class ResourceService extends AbstractService<Resource> {
 | 
			
		||||
  @override
 | 
			
		||||
  late final APIService<Resource> service;
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String subPath = "/resource/";
 | 
			
		||||
 | 
			
		||||
  ResourceService() {
 | 
			
		||||
    service = APIService<Resource>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") +  super
 | 
			
		||||
            .conf
 | 
			
		||||
            .get('CATALOG_HOST', defaultValue: '/catalog'));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<Resource>> search(
 | 
			
		||||
      BuildContext? context, List<String> words, Map<String, dynamic> params) {
 | 
			
		||||
    return service.get("${subPath}search/${words.join("/")}", false, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<Resource>> post(BuildContext? context,
 | 
			
		||||
      Map<String, dynamic> body, Map<String, String> params) {
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<Resource>> put(BuildContext? context, String id,
 | 
			
		||||
      Map<String, dynamic> body, Map<String, String> params) {
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,19 +0,0 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/models/search.dart';
 | 
			
		||||
 | 
			
		||||
class SearchService extends AbstractService<Search> {
 | 
			
		||||
  @override APIService<Search> service = APIService<Search>(
 | 
			
		||||
    baseURL: const String.fromEnvironment('SEARCH_HOST', defaultValue: 'http://localhost:49618/v1/search')
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  @override Future<APIResponse<Search>> all(BuildContext? context) {  throw UnimplementedError(); }
 | 
			
		||||
  @override Future<APIResponse<Search>> get(BuildContext? context, String id) { 
 | 
			
		||||
    return service.get("/byWord?word=$id", true, context);
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<Search>> post(BuildContext? context, Map<String, dynamic> body, Map<String, String> params) { throw UnimplementedError(); }
 | 
			
		||||
  @override Future<APIResponse<Search>> put(BuildContext? context, String id, Map<String, dynamic> body, Map<String, String> params) { throw UnimplementedError(); }
 | 
			
		||||
  @override Future<APIResponse<Search>> delete(BuildContext? context, Map<String, String> params) { throw UnimplementedError(); }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										49
									
								
								lib/core/services/specialized_services/shared_service.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								lib/core/services/specialized_services/shared_service.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/models/shared.dart';
 | 
			
		||||
 | 
			
		||||
class SharedService extends AbstractService<CollaborativeArea> {
 | 
			
		||||
  @override
 | 
			
		||||
  late final APIService<CollaborativeArea> service;
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String subPath = "/collaborative_area/";
 | 
			
		||||
 | 
			
		||||
  SharedService() {
 | 
			
		||||
    service = APIService<CollaborativeArea>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + super.conf.get('COLLABORATIVE_AREA_HOST',
 | 
			
		||||
            defaultValue: '/shared'));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<CollaborativeArea>> addWorkspace(
 | 
			
		||||
      BuildContext? context, String id, String id2) {
 | 
			
		||||
    return service.post("$subPath$id/workspace/$id2", {}, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<CollaborativeArea>> addWorkflow(
 | 
			
		||||
      BuildContext? context, String id, String id2) {
 | 
			
		||||
    return service.post("$subPath$id/workflow/$id2", {}, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<CollaborativeArea>> addPeer(
 | 
			
		||||
      BuildContext? context, String id, String id2) {
 | 
			
		||||
    return service.post("$subPath$id/peer/$id2", {}, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<CollaborativeArea>> removeWorkspace(
 | 
			
		||||
      BuildContext? context, String id, String id2) {
 | 
			
		||||
    return service.delete("$subPath$id/workspace/$id2", context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<CollaborativeArea>> removeWorkflow(
 | 
			
		||||
      BuildContext? context, String id, String id2) {
 | 
			
		||||
    return service.delete("$subPath$id/workflow/$id2", context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<CollaborativeArea>> removePeer(
 | 
			
		||||
      BuildContext? context, String id, String id2) {
 | 
			
		||||
    return service.delete("$subPath$id/peer/$id2", context);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,33 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/models/workflow.dart';
 | 
			
		||||
 | 
			
		||||
class WorkflowExecutionService extends AbstractService<WorkflowExecutions> {
 | 
			
		||||
  @override late final APIService<WorkflowExecutions> service;
 | 
			
		||||
  @override String subPath = "/execution/";
 | 
			
		||||
 | 
			
		||||
  WorkflowExecutionService() {
 | 
			
		||||
    service = APIService<WorkflowExecutions>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + super.conf.get('SCHEDULER_HOST',
 | 
			
		||||
            defaultValue: '/scheduler'));
 | 
			
		||||
  }
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<WorkflowExecutions>> search(
 | 
			
		||||
      BuildContext? context, List<String> words, Map<String, dynamic> params) {
 | 
			
		||||
    return service.get("${subPath}search/${words.join("/")}", false, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<WorkflowExecutions>> post(BuildContext? context,
 | 
			
		||||
      Map<String, dynamic> body, Map<String, String> params) {
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Future<APIResponse<WorkflowExecutions>> put(BuildContext? context, String id,
 | 
			
		||||
      Map<String, dynamic> body, Map<String, String> params) {
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,31 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/models/workflow.dart';
 | 
			
		||||
 | 
			
		||||
class SchedulerService extends AbstractService<WorkflowExecutions> {
 | 
			
		||||
  @override late final APIService<WorkflowExecutions> service;
 | 
			
		||||
 | 
			
		||||
  SchedulerService() {
 | 
			
		||||
    service = APIService<WorkflowExecutions>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + super.conf.get('SCHEDULER_HOST',
 | 
			
		||||
            defaultValue: '/scheduler'));
 | 
			
		||||
  }
 | 
			
		||||
  @override String subPath = "/";
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<WorkflowExecutions>> schedule(BuildContext? context, String id, Map<String, dynamic> body, Map<String, dynamic> params) {  
 | 
			
		||||
    return service.post("$subPath$id", body, context);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Future<APIResponse<WorkflowExecutions>> search(BuildContext? context, List<String> words, Map<String, dynamic> params) {  
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Future<APIResponse<WorkflowExecutions>> post(BuildContext? context, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<WorkflowExecutions>> put(BuildContext? context, String id, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    return throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -2,26 +2,26 @@ import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/models/workflow.dart';
 | 
			
		||||
 | 
			
		||||
class WorflowService extends AbstractService<RawData> {
 | 
			
		||||
  @override APIService<RawData> service = APIService<RawData>(
 | 
			
		||||
    baseURL: const String.fromEnvironment('SEARCH_HOST', defaultValue: 'http://localhost:49618/v1/workflow/')
 | 
			
		||||
  );
 | 
			
		||||
class WorflowService extends AbstractService<Workflow> {
 | 
			
		||||
  late final APIService<Check> serviceCheck;
 | 
			
		||||
  @override
 | 
			
		||||
  late final APIService<Workflow> service;
 | 
			
		||||
  @override
 | 
			
		||||
  String subPath = "/";
 | 
			
		||||
 | 
			
		||||
  @override Future<APIResponse<RawData>> all(BuildContext? context) {
 | 
			
		||||
    print("WorkflowService.all"); 
 | 
			
		||||
    return service.get("", true, context);
 | 
			
		||||
  WorflowService() {
 | 
			
		||||
    service = APIService<Workflow>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + super.conf.get('WORKFLOW_HOST',
 | 
			
		||||
            defaultValue: '/workflow'));
 | 
			
		||||
    serviceCheck = APIService<Check>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + super.conf.get('WORKFLOW_HOST',
 | 
			
		||||
            defaultValue: '/workflow'));
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<RawData>> get(BuildContext? context, String id) { throw UnimplementedError(); }
 | 
			
		||||
  @override Future<APIResponse<RawData>> post(BuildContext? context, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    String path = "?";
 | 
			
		||||
    for (var key in params.keys) { path += "$key=${params[key]}&"; }
 | 
			
		||||
    return service.post(path, body, context);
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<RawData>> put(BuildContext? context, String id, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<RawData>> delete(BuildContext? context, Map<String, String> params) { 
 | 
			
		||||
    throw UnimplementedError();
 | 
			
		||||
 | 
			
		||||
  Future<APIResponse<Check>> check(
 | 
			
		||||
      BuildContext? context, List<String> words, Map<String, dynamic> params) {
 | 
			
		||||
    return serviceCheck.get("${subPath}check/${words.join("/")}", true, context);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,29 +1,17 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/api_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/specialized_services/abstract_service.dart';
 | 
			
		||||
import 'package:oc_front/models/response.dart';
 | 
			
		||||
import 'package:oc_front/models/workspace.dart';
 | 
			
		||||
 | 
			
		||||
class WorkspaceService extends AbstractService<Workspace> {
 | 
			
		||||
  @override APIService<Workspace> service = APIService<Workspace>(
 | 
			
		||||
    baseURL: const String.fromEnvironment('SEARCH_HOST', defaultValue: 'http://localhost:49618/v1/workspace/')
 | 
			
		||||
  );
 | 
			
		||||
  @override
 | 
			
		||||
  late final APIService<Workspace> service;
 | 
			
		||||
 | 
			
		||||
  @override Future<APIResponse<Workspace>> all(BuildContext? context) { 
 | 
			
		||||
    return service.get("/list", true, context);
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<Workspace>> get(BuildContext? context, String id) { throw UnimplementedError(); }
 | 
			
		||||
  @override Future<APIResponse<Workspace>> post(BuildContext? context, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    String path = "?";
 | 
			
		||||
    for (var key in params.keys) { path += "$key=${params[key]}&"; }
 | 
			
		||||
    return service.post(path, body, context);
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<Workspace>> put(BuildContext? context, String id, Map<String, dynamic> body, Map<String, String> params) { 
 | 
			
		||||
    throw UnimplementedError();
 | 
			
		||||
  }
 | 
			
		||||
  @override Future<APIResponse<Workspace>> delete(BuildContext? context, Map<String, String> params) { 
 | 
			
		||||
    String path = "?";
 | 
			
		||||
    for (var key in params.keys) { path += "$key=${params[key]}&"; }
 | 
			
		||||
    return service.delete(path, context);
 | 
			
		||||
  @override
 | 
			
		||||
  String subPath = "/";
 | 
			
		||||
 | 
			
		||||
  WorkspaceService() {
 | 
			
		||||
    service = APIService<Workspace>(
 | 
			
		||||
        baseURL: const String.fromEnvironment("HOST", defaultValue: "http://localhost:8000") + super.conf.get('WORKSPACE_HOST',
 | 
			
		||||
            defaultValue: '/workspace'));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										160
									
								
								lib/main.dart
									
									
									
									
									
								
							
							
						
						
									
										160
									
								
								lib/main.dart
									
									
									
									
									
								
							@@ -1,32 +1,47 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'dart:async';
 | 
			
		||||
import 'dart:ui';
 | 
			
		||||
import 'package:flutter/foundation.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:flutter/services.dart';
 | 
			
		||||
import 'package:go_router/go_router.dart';
 | 
			
		||||
import 'package:oc_front/core/models/cart.dart';
 | 
			
		||||
import 'package:localstorage/localstorage.dart';
 | 
			
		||||
import 'package:oc_front/core/models/workspace_local.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/header/header.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/header/menu.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/left_menu.dart';
 | 
			
		||||
import 'package:oc_front/core/services/auth.service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/enum_service.dart';
 | 
			
		||||
import 'package:oc_front/core/services/router.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/end_drawer.dart';
 | 
			
		||||
import 'package:oc_front/core/sections/header/header.dart';
 | 
			
		||||
import 'package:desktop_window/desktop_window.dart' if (kIsWeb) '';
 | 
			
		||||
 | 
			
		||||
void main() {
 | 
			
		||||
import 'package:oc_front/widgets/dialog/login.dart';
 | 
			
		||||
void main() async {
 | 
			
		||||
  WidgetsFlutterBinding.ensureInitialized();
 | 
			
		||||
  // Run `LinuxWebViewPlugin.initialize()` first before creating a WebView.
 | 
			
		||||
  await initLocalStorage();
 | 
			
		||||
  runApp(const MyApp());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
GlobalKey<MainPageState>? mainKey;
 | 
			
		||||
GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
 | 
			
		||||
 | 
			
		||||
class MyApp extends StatelessWidget {
 | 
			
		||||
  const MyApp({super.key});
 | 
			
		||||
 | 
			
		||||
  // This widget is the root of your application.
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    if (!kIsWeb) { DesktopWindow.setMinWindowSize(const Size(400, 400)); }
 | 
			
		||||
    return MaterialApp.router(
 | 
			
		||||
      routerConfig: GoRouter( routes: AppRouter.routes ),
 | 
			
		||||
    );
 | 
			
		||||
    // Future.delayed(Duration(seconds: 2), () => AppRouter.verifyRoute(context));
 | 
			
		||||
    AuthService.init();
 | 
			
		||||
    EnumService.init();
 | 
			
		||||
    SearchConstants.clear();
 | 
			
		||||
    return MaterialApp.router(  routerConfig: GoRouter( routes: AppRouter.routes ) );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ignore: must_be_immutable
 | 
			
		||||
class MainPage extends StatefulWidget {
 | 
			
		||||
  Widget page;
 | 
			
		||||
  MainPage({super.key, required this.page});
 | 
			
		||||
  Widget? page;
 | 
			
		||||
  MainPage({Key? key, required this.page})
 | 
			
		||||
      : super(key: GlobalKey<MainPageState>());
 | 
			
		||||
 | 
			
		||||
  // This widget is the home page of your application. It is stateful, meaning
 | 
			
		||||
  // that it has a State object (defined below) that contains fields that affect
 | 
			
		||||
@@ -38,10 +53,44 @@ class MainPage extends StatefulWidget {
 | 
			
		||||
  // always marked "final".
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  State<MainPage> createState() => _MainPageState();
 | 
			
		||||
  State<MainPage> createState() => MainPageState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _MainPageState extends State<MainPage> {
 | 
			
		||||
var darkColor = Color.fromRGBO(26, 83, 92, 1);
 | 
			
		||||
var lightColor = Color.fromRGBO(78, 205, 196, 1);
 | 
			
		||||
var darkMidColor = Color.fromRGBO(44, 83, 100, 1);
 | 
			
		||||
var midColor = Colors.grey.shade300;
 | 
			
		||||
var redColor = Color.fromRGBO(255, 107, 107, 1);
 | 
			
		||||
 | 
			
		||||
double getWidth(BuildContext context) {
 | 
			
		||||
  return MediaQuery.of(context).size.width <= 800
 | 
			
		||||
      ? 800
 | 
			
		||||
      : MediaQuery.of(context).size.width;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
double getHeight(BuildContext context) {
 | 
			
		||||
  return MediaQuery.of(context).size.height <= 400
 | 
			
		||||
      ? 400
 | 
			
		||||
      : MediaQuery.of(context).size.height;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
double getMainHeight(BuildContext context) {
 | 
			
		||||
  return getHeight(context) - HeaderConstants.height;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
double getMainWidth(BuildContext context) {
 | 
			
		||||
  return getWidth(context) - 50;
 | 
			
		||||
}
 | 
			
		||||
bool loginIsSet = false;
 | 
			
		||||
class MainPageState extends State<MainPage> {
 | 
			
		||||
  final FocusNode node = FocusNode();
 | 
			
		||||
  @override
 | 
			
		||||
  void initState() {
 | 
			
		||||
    mainKey = widget.key as GlobalKey<MainPageState>?;
 | 
			
		||||
    node.requestFocus();
 | 
			
		||||
    super.initState();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    // This method is rerun every time setState is called, for instance as done
 | 
			
		||||
@@ -49,32 +98,61 @@ class _MainPageState extends State<MainPage> {
 | 
			
		||||
    //
 | 
			
		||||
    // The Flutter framework has been optimized to make rerunning build methods
 | 
			
		||||
    // fast, so that you can just rebuild anything that needs updating rather
 | 
			
		||||
    // than having to individually change instances of widgets.
 | 
			
		||||
    WorkspaceLocal.init(context);
 | 
			
		||||
    // than having to individually change instances of widgets.i
 | 
			
		||||
    scaffoldKey = GlobalKey<ScaffoldState>();
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      key: scaffoldKey,
 | 
			
		||||
      endDrawer: EndDrawerWidget(),
 | 
			
		||||
      body: Column(
 | 
			
		||||
          // Column is also a layout widget. It takes a list of children and
 | 
			
		||||
          // arranges them vertically. By default, it sizes itself to fit its
 | 
			
		||||
          // children horizontally, and tries to be as tall as its parent.
 | 
			
		||||
          //
 | 
			
		||||
          // Column has various properties to control how it sizes itself and
 | 
			
		||||
          // how it positions its children. Here we use mainAxisAlignment to
 | 
			
		||||
          // center the children vertically; the main axis here is the vertical
 | 
			
		||||
          // axis because Columns are vertical (the cross axis would be
 | 
			
		||||
          // horizontal).
 | 
			
		||||
          //
 | 
			
		||||
          // TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint"
 | 
			
		||||
          // action in the IDE, or press "p" in the console), to see the
 | 
			
		||||
          // wireframe for each widget.
 | 
			
		||||
          mainAxisAlignment: MainAxisAlignment.start,
 | 
			
		||||
          children: <Widget>[
 | 
			
		||||
            HeaderWidget(),
 | 
			
		||||
            widget.page // CatalogPageWidget(),
 | 
			
		||||
          ],
 | 
			
		||||
        ),
 | 
			
		||||
      );
 | 
			
		||||
    if (!AuthService.isConnected() && !loginIsSet) {
 | 
			
		||||
          Future.delayed(const Duration(milliseconds: 500), () {
 | 
			
		||||
            loginIsSet = true;
 | 
			
		||||
            showDialog(
 | 
			
		||||
                barrierDismissible: false,
 | 
			
		||||
                // ignore: use_build_context_synchronously
 | 
			
		||||
                context: context, builder: (context) {
 | 
			
		||||
                return AlertDialog(
 | 
			
		||||
                  insetPadding: EdgeInsets.zero,
 | 
			
		||||
                  backgroundColor: Colors.white,
 | 
			
		||||
                  shape: RoundedRectangleBorder(
 | 
			
		||||
                      borderRadius: BorderRadius.circular(0)),
 | 
			
		||||
                  title: LoginWidget());
 | 
			
		||||
            });
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    return FutureBuilder(future: AuthService.init(), 
 | 
			
		||||
      builder: (e, s) {
 | 
			
		||||
        WorkspaceLocal.init(context, false);        
 | 
			
		||||
        HeaderConstants.height = HeaderConstants.isNoHeader(AppRouter.currentRoute.route) || AppRouter.currentRoute.factory.searchFill() ? 50 : 100;
 | 
			
		||||
        return Scaffold( key: scaffoldKey, endDrawer: EndDrawerWidget(), body: 
 | 
			
		||||
        SingleChildScrollView(
 | 
			
		||||
          controller: ScrollController(),
 | 
			
		||||
          scrollDirection: Axis.horizontal,
 | 
			
		||||
          child: SingleChildScrollView(
 | 
			
		||||
            child: Column( children: [
 | 
			
		||||
              HeaderMenuWidget(),
 | 
			
		||||
              Row( children : [
 | 
			
		||||
                Container( padding: const EdgeInsets.symmetric(vertical: 30),
 | 
			
		||||
                  decoration: BoxDecoration( color: darkColor),
 | 
			
		||||
                  width: 50, height: getHeight(context) - 50, 
 | 
			
		||||
                  child: const SingleChildScrollView( child: LeftMenuWidget() )),
 | 
			
		||||
                SizedBox( width: getMainWidth(context), height: getHeight(context) - 50,
 | 
			
		||||
                  child: KeyboardListener(
 | 
			
		||||
                    focusNode: node,
 | 
			
		||||
                    onKeyEvent: (event) async {
 | 
			
		||||
                      if( (event is KeyDownEvent) && event.logicalKey == LogicalKeyboardKey.enter) {
 | 
			
		||||
                        AppRouter.currentRoute.factory.search(context, false);
 | 
			
		||||
                        node.requestFocus();
 | 
			
		||||
                      }
 | 
			
		||||
                    },
 | 
			
		||||
                    child: Column(
 | 
			
		||||
                      mainAxisAlignment: MainAxisAlignment.start,
 | 
			
		||||
                      children: <Widget>[
 | 
			
		||||
                        const HeaderWidget(),
 | 
			
		||||
                        widget.page ?? Container()  // CatalogPageWidget(),
 | 
			
		||||
                  ],
 | 
			
		||||
                ),
 | 
			
		||||
              )),
 | 
			
		||||
            ])
 | 
			
		||||
          ])
 | 
			
		||||
        )
 | 
			
		||||
      ));
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,4 @@
 | 
			
		||||
import 'dart:convert';
 | 
			
		||||
import 'dart:developer' as developer;
 | 
			
		||||
 | 
			
		||||
abstract class SerializerDeserializer<T> {
 | 
			
		||||
  T deserialize(dynamic json);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										100
									
								
								lib/models/logs.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								lib/models/logs.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,100 @@
 | 
			
		||||
import 'package:oc_front/models/abstract.dart';
 | 
			
		||||
import 'package:json_string/json_string.dart';
 | 
			
		||||
 | 
			
		||||
class LogsResult extends SerializerDeserializer<LogsResult> {
 | 
			
		||||
  List<Logs> result;
 | 
			
		||||
  LogsResult({
 | 
			
		||||
    this.result = const [],
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  String getID() {
 | 
			
		||||
    return "";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return LogsResult(); }   
 | 
			
		||||
    return LogsResult(
 | 
			
		||||
      result: json.containsKey("result") ? fromListJson(json["result"], Logs()) : [],
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "result": toListJson(result),
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Logs extends SerializerDeserializer<Logs> {
 | 
			
		||||
  String? level;
 | 
			
		||||
  List<Log> logs = [];
 | 
			
		||||
  Logs({
 | 
			
		||||
    this.level,
 | 
			
		||||
    this.logs = const [],
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  String getID() {
 | 
			
		||||
    return "";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return Logs(); }   
 | 
			
		||||
    return Logs(
 | 
			
		||||
      level: json.containsKey("stream") && (json["stream"] as Map<String, dynamic>).containsKey("level") ? json["stream"]["level"] : "",
 | 
			
		||||
      logs: json.containsKey("values") ? fromListJson(json["values"], Log()) : [],
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "level": level,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Log extends SerializerDeserializer<Log> {
 | 
			
		||||
  DateTime? timestamp;
 | 
			
		||||
  String? message;
 | 
			
		||||
 | 
			
		||||
  String? level;
 | 
			
		||||
  String? rawMessage;
 | 
			
		||||
  Map<String, dynamic> map = {};
 | 
			
		||||
  Log({
 | 
			
		||||
    this.timestamp,
 | 
			
		||||
    this.message,
 | 
			
		||||
    this.rawMessage,
 | 
			
		||||
    this.level
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  String getID() {
 | 
			
		||||
    return "";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  String getMessage(String mess) {
 | 
			
		||||
    var jsonString = mess;
 | 
			
		||||
    print(mess);
 | 
			
		||||
    try {
 | 
			
		||||
        var j = JsonString(mess.replaceAll("\\", "")).decodedValue as Map<String, dynamic>;
 | 
			
		||||
        map = j;
 | 
			
		||||
        if (j["Status"] == "Pending") {
 | 
			
		||||
          jsonString = "${j["Name"]} : [${j["Namespace"]}] Status: ${j["Status"]}... \nCreated at ${j["Created"].toString().replaceAllMapped(RegExp(r'\(\w+\)'), (match) { return ''; }).replaceAllMapped(RegExp(r'\+\w+'), (match) { return ''; })}";
 | 
			
		||||
        } else {
 | 
			
		||||
          jsonString = "${j["Name"]} : [${j["Namespace"]}] ${j["Status"]} ${j["Progress"]} (${j["Duration"].toString()})\nCreated at ${j["Created"].toString().replaceAllMapped(RegExp(r'\(\w+\)'), (match) { return ''; }).replaceAllMapped(RegExp(r'\+\w+'), (match) { return ''; })};  Started at ${j["Created"].toString().replaceAllMapped(RegExp(r'\(\w+\)'), (match) { return ''; }).replaceAllMapped(RegExp(r'\+\w+'), (match) { return ''; })}";
 | 
			
		||||
        }
 | 
			
		||||
    } on JsonFormatException catch (e) { /* */ }
 | 
			
		||||
    message = jsonString;
 | 
			
		||||
    return jsonString;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic json) {
 | 
			
		||||
    try { json = json as List<dynamic>;
 | 
			
		||||
    } catch (e) { return Log(); }       var l = Log(
 | 
			
		||||
      timestamp: json.isNotEmpty ? DateTime.fromMillisecondsSinceEpoch(int.parse(json[0]) ~/ 1000, isUtc : true) : null,      
 | 
			
		||||
      message: json.length > 1 ? getMessage(json[1].toString()) : null,     
 | 
			
		||||
      rawMessage : json.length > 1 ? json[1].toString() : null,
 | 
			
		||||
    );
 | 
			
		||||
    l.getMessage(l.message ?? "");
 | 
			
		||||
    return l;
 | 
			
		||||
  }
 | 
			
		||||
  @override Map<String, dynamic> serialize() { return { }; }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										222
									
								
								lib/models/resources/compute.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										222
									
								
								lib/models/resources/compute.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,222 @@
 | 
			
		||||
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/enum_service.dart';
 | 
			
		||||
import 'package:oc_front/models/abstract.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/processing.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/resources.dart';
 | 
			
		||||
 | 
			
		||||
class ComputeItem extends AbstractItem<ComputePricing, ComputePartnership, ComputeInstance, ComputeItem> {
 | 
			
		||||
    // special attributes
 | 
			
		||||
  int? infrastructureEnum;
 | 
			
		||||
  String? architecture;
 | 
			
		||||
 | 
			
		||||
  ComputeItem({
 | 
			
		||||
    this.infrastructureEnum,
 | 
			
		||||
    this.architecture
 | 
			
		||||
  }): super();  
 | 
			
		||||
 | 
			
		||||
  @override String get topic => "compute";
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic data) {
 | 
			
		||||
    try { data = data as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return ComputeItem(); }   
 | 
			
		||||
    var w = ComputeItem(
 | 
			
		||||
      infrastructureEnum: data.containsKey("infrastructure") ? EnumService.get("infrastructure", data["infrastructure"]) : null,
 | 
			
		||||
      architecture: data.containsKey("architecture") && data["architecture"] != null ? data["architecture"] : null,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(data, ComputeInstance());
 | 
			
		||||
    if (w.logo != null) { // get image dimensions
 | 
			
		||||
      var image = Image.network(w.logo!);
 | 
			
		||||
      image.image
 | 
			
		||||
        .resolve(const ImageConfiguration())
 | 
			
		||||
        .addListener(
 | 
			
		||||
            ImageStreamListener(
 | 
			
		||||
                (ImageInfo info, bool _) {
 | 
			
		||||
                  w.width = info.image.width.toDouble();
 | 
			
		||||
                  w.height = info.image.height.toDouble();
 | 
			
		||||
                }));
 | 
			
		||||
    }
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos() {
 | 
			
		||||
    return {
 | 
			
		||||
      "infrastructure": EnumService.enums["infrastructure"] != null 
 | 
			
		||||
      && EnumService.enums["infrastructure"]!["$infrastructureEnum"] != null ? EnumService.enums["infrastructure"]!["$infrastructureEnum"] : infrastructureEnum,
 | 
			
		||||
      "architecture": architecture,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    Map<String, dynamic> obj = infos();
 | 
			
		||||
    obj["infrastructure"] = infrastructureEnum;
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ComputeInstance extends AbstractInstance<ComputePricing, ComputePartnership> {
 | 
			
		||||
  String? securityLevel;
 | 
			
		||||
  List<String>? powerSources = [];
 | 
			
		||||
  double? annualEnergyConsumption;
 | 
			
		||||
  Map<String,CPU> cpus = {};
 | 
			
		||||
  Map<String,GPU> gpus = {};
 | 
			
		||||
  List<ComputeNode> nodes = [];
 | 
			
		||||
 | 
			
		||||
  ComputeInstance({
 | 
			
		||||
    this.securityLevel,
 | 
			
		||||
    this.powerSources = const [],
 | 
			
		||||
    this.annualEnergyConsumption,
 | 
			
		||||
    this.cpus = const {},
 | 
			
		||||
    this.gpus = const {},
 | 
			
		||||
    this.nodes = const [],
 | 
			
		||||
  }): super();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos() {
 | 
			
		||||
    return {
 | 
			
		||||
      "security_level": securityLevel,
 | 
			
		||||
      "power_sources": powerSources,
 | 
			
		||||
      "annual_co2_emissions": annualEnergyConsumption,
 | 
			
		||||
      "cpus": toMapJson(cpus),
 | 
			
		||||
      "gpus": toMapJson(gpus),
 | 
			
		||||
      "nodes": toListJson(nodes),
 | 
			
		||||
      "inputs": toListJson(inputs),
 | 
			
		||||
      "outputs": toListJson(outputs),
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  ComputeInstance deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return ComputeInstance(); }
 | 
			
		||||
    var w = ComputeInstance(
 | 
			
		||||
      securityLevel: json.containsKey("security_level") && json["security_level"] != null ? json["security_level"] : null,
 | 
			
		||||
      powerSources: json.containsKey("power_sources") && json["power_sources"] != null ? List<String>.from(json["power_sources"]) : [],
 | 
			
		||||
      annualEnergyConsumption: json.containsKey("annual_co2_emissions") && json["annual_co2_emissions"] != null ? json["annual_co2_emissions"] : null,
 | 
			
		||||
      //cpus: json.containsKey("cpus") && json["cpus"] != null ? fromMapJson(json["cpus"], CPU()) : {},
 | 
			
		||||
      // gpus: json.containsKey("gpus") && json["gpus"] != null ? fromMapJson(json["gpus"], GPU()) : {},
 | 
			
		||||
      //nodes: json.containsKey("nodes") && json["nodes"] != null ? fromListJson(json["nodes"], ComputeNode()) : [],
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(json, ComputePartnership());
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    var obj = infos();
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ComputePartnership extends AbstractPartnerShip<ComputePricing> {
 | 
			
		||||
  Map<String, dynamic> maxAllowedCPUsCores = {};
 | 
			
		||||
  Map<String, dynamic> maxAllowedGPUsMemoryGB = {};
 | 
			
		||||
  double? maxAllowedRAM;
 | 
			
		||||
 | 
			
		||||
  ComputePartnership({
 | 
			
		||||
    this.maxAllowedCPUsCores = const {},
 | 
			
		||||
    this.maxAllowedGPUsMemoryGB = const {},
 | 
			
		||||
    this.maxAllowedRAM,
 | 
			
		||||
  }): super();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  ComputePartnership deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return ComputePartnership(); }
 | 
			
		||||
    var w = ComputePartnership(
 | 
			
		||||
      maxAllowedCPUsCores: json.containsKey("allowed_cpus") && json["allowed_cpus"] != null ? json["allowed_cpus"] : {},
 | 
			
		||||
      maxAllowedGPUsMemoryGB: json.containsKey("allowed_gpus") && json["allowed_gpus"] != null ? json["allowed_gpus"] : {},
 | 
			
		||||
      maxAllowedRAM: json.containsKey("allowed_ram") && json["allowed_ram"] != null ? double.parse("${json["allowed_ram"]}") : null,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(json, ComputePricing());
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    Map<String, dynamic> obj = {
 | 
			
		||||
      "allowed_cpus": maxAllowedCPUsCores,
 | 
			
		||||
      "allowed_gpus": maxAllowedGPUsMemoryGB,
 | 
			
		||||
      "allowed_ram": maxAllowedRAM,
 | 
			
		||||
    };
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ComputePricing extends AbstractPricing {
 | 
			
		||||
  Map<String, dynamic> cpusPrice = {};
 | 
			
		||||
  Map<String, dynamic> gpusPrice = {};
 | 
			
		||||
  double? ramPrice;
 | 
			
		||||
 | 
			
		||||
  ComputePricing({
 | 
			
		||||
    this.cpusPrice = const {},
 | 
			
		||||
    this.gpusPrice = const {},
 | 
			
		||||
    this.ramPrice,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override ComputePricing deserialize(json) {
 | 
			
		||||
    var w = ComputePricing(
 | 
			
		||||
      cpusPrice: json.containsKey("cpus") && json["cpus"] != null ? json["cpus"] : {},
 | 
			
		||||
      gpusPrice: json.containsKey("gpus") && json["gpus"] != null ? json["gpus"] : {},
 | 
			
		||||
      ramPrice: json.containsKey("ram") && json["ram"] != null ? json["ram"] : null,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(json);
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    var obj = {
 | 
			
		||||
      "cpus": cpusPrice,
 | 
			
		||||
      "gpus": gpusPrice,
 | 
			
		||||
      "ram": ramPrice,
 | 
			
		||||
    };
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ComputeNode extends SerializerDeserializer<ComputeNode> {
 | 
			
		||||
  String? name;
 | 
			
		||||
  int? quantity;
 | 
			
		||||
  Map<String,dynamic> cpus = {};
 | 
			
		||||
  Map<String,dynamic> gpus = {};
 | 
			
		||||
  RAM? ram;
 | 
			
		||||
 | 
			
		||||
  ComputeNode({
 | 
			
		||||
    this.cpus = const {},
 | 
			
		||||
    this.gpus = const {},
 | 
			
		||||
    this.ram,
 | 
			
		||||
    this.name,
 | 
			
		||||
    this.quantity,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  ComputeNode deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return ComputeNode(); }
 | 
			
		||||
    return ComputeNode(
 | 
			
		||||
      name: json.containsKey("name") && json["name"] != null ? json["name"] : null,
 | 
			
		||||
      quantity: json.containsKey("quantity") && json["quantity"] != null ? json["quantity"] : null,
 | 
			
		||||
      cpus: json.containsKey("cpus") && json["cpus"] != null ? fromMapJson(json["cpus"], CPU()) : {},
 | 
			
		||||
      gpus: json.containsKey("gpus") && json["gpus"] != null ? fromMapJson(json["gpus"], GPU()) : {},
 | 
			
		||||
      ram: json.containsKey("ram") && json["ram"] != null ? RAM().deserialize(json["ram"]) : null,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "name": name,
 | 
			
		||||
      "quantity": quantity,
 | 
			
		||||
      "cpus": cpus,
 | 
			
		||||
      "gpus": gpus,
 | 
			
		||||
      "ram": ram!.serialize(),
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										166
									
								
								lib/models/resources/data.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								lib/models/resources/data.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,166 @@
 | 
			
		||||
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/models/abstract.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/resources.dart';
 | 
			
		||||
 | 
			
		||||
class DataItem extends AbstractItem<DataPricing, DataPartnership, DataInstance, DataItem> {
 | 
			
		||||
  // special attributes
 | 
			
		||||
  String? type;
 | 
			
		||||
  String? source;
 | 
			
		||||
  String? quality;
 | 
			
		||||
  bool openData = false;
 | 
			
		||||
  bool static = false;
 | 
			
		||||
  bool personalData = false;
 | 
			
		||||
  bool anonymizedPersonalData = false;
 | 
			
		||||
  double? size;
 | 
			
		||||
  String? example;
 | 
			
		||||
  DateTime? updatePeriod;
 | 
			
		||||
  
 | 
			
		||||
  DataItem({
 | 
			
		||||
    this.type,
 | 
			
		||||
    this.source,
 | 
			
		||||
    this.quality,
 | 
			
		||||
    this.openData = false,
 | 
			
		||||
    this.static = false,
 | 
			
		||||
    this.personalData = false,
 | 
			
		||||
    this.anonymizedPersonalData = false,
 | 
			
		||||
    this.size,
 | 
			
		||||
    this.example,
 | 
			
		||||
    this.updatePeriod,
 | 
			
		||||
  }): super();  
 | 
			
		||||
 | 
			
		||||
  @override String get topic => "data";
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic data) {
 | 
			
		||||
    try { data = data as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return DataItem(); }   
 | 
			
		||||
    var w = DataItem(
 | 
			
		||||
      type: data.containsKey("type") && data["type"] != null ? data["type"] : null,
 | 
			
		||||
      source: data.containsKey("source") && data["source"] != null ? data["source"] : null,
 | 
			
		||||
      quality: data.containsKey("quality") && data["quality"] != null ? data["quality"] : null,
 | 
			
		||||
      openData: data.containsKey("open_data") && data["open_data"] != null ? data["open_data"] : false,
 | 
			
		||||
      static: data.containsKey("static") && data["static"] != null ? data["static"] : false,
 | 
			
		||||
      personalData: data.containsKey("personal_data") && data["l"] != null ? data["personal_data"] : false,
 | 
			
		||||
      anonymizedPersonalData: data.containsKey("anonymized_personal_data") && data["anonymized_personal_data"] != null ? data["anonymized_personal_data"] : false,
 | 
			
		||||
      size: data.containsKey("size") && data["size"] != null ? data["size"] : null,
 | 
			
		||||
      example: data.containsKey("example") && data["example"] != null ? data["example"] : null,
 | 
			
		||||
      updatePeriod: data.containsKey("update_period") && data["update_period"] != null ? DateTime.parse(data["update_period"]) : null,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(data, DataInstance());
 | 
			
		||||
    if (w.logo != null) { // get image dimensions
 | 
			
		||||
      var image = Image.network(w.logo!);
 | 
			
		||||
      image.image
 | 
			
		||||
        .resolve(const ImageConfiguration())
 | 
			
		||||
        .addListener(
 | 
			
		||||
            ImageStreamListener(
 | 
			
		||||
                (ImageInfo info, bool _) {
 | 
			
		||||
                  w.width = info.image.width.toDouble();
 | 
			
		||||
                  w.height = info.image.height.toDouble();
 | 
			
		||||
                }));
 | 
			
		||||
    }
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos() {
 | 
			
		||||
    return {
 | 
			
		||||
      "type": type,
 | 
			
		||||
      "quality": quality,
 | 
			
		||||
      "open_data": openData,
 | 
			
		||||
      "static": static,
 | 
			
		||||
      "personal_data": personalData,
 | 
			
		||||
      "anonymized_personal_data": anonymizedPersonalData,
 | 
			
		||||
      "size": size,
 | 
			
		||||
      "example": example,
 | 
			
		||||
      "update_period": updatePeriod?.toIso8601String(),
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    var obj = infos();
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class DataInstance extends AbstractInstance<DataPricing, DataPartnership> {
 | 
			
		||||
  String? source;
 | 
			
		||||
  DataInstance(
 | 
			
		||||
    {this.source}
 | 
			
		||||
  ): super();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos() {
 | 
			
		||||
    return {
 | 
			
		||||
      "inputs": toListJson(inputs),
 | 
			
		||||
      "outputs": toListJson(outputs),
 | 
			
		||||
    };
 | 
			
		||||
  } 
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  DataInstance deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return DataInstance(); }
 | 
			
		||||
    var w = DataInstance(
 | 
			
		||||
      source: json.containsKey("source") && json["source"] != null ? json["source"] : null,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(json, DataPartnership());
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    var obj = toJSON();
 | 
			
		||||
    obj["source"] = source;
 | 
			
		||||
    obj.addAll(infos());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class DataPartnership extends AbstractPartnerShip<DataPricing> {
 | 
			
		||||
  double? maxDownloadableGBAllowed;
 | 
			
		||||
  bool personalDataAllowed = false;
 | 
			
		||||
  bool anonymizedPersonalDataAllowed = false;
 | 
			
		||||
 | 
			
		||||
  DataPartnership({
 | 
			
		||||
    this.maxDownloadableGBAllowed,
 | 
			
		||||
    this.personalDataAllowed = false,
 | 
			
		||||
    this.anonymizedPersonalDataAllowed = false,
 | 
			
		||||
  }): super();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  DataPartnership deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return DataPartnership(); }
 | 
			
		||||
    var w = DataPartnership(
 | 
			
		||||
      maxDownloadableGBAllowed: json.containsKey("max_downloadable_gb_allowed") && json["max_downloadable_gb_allowed"] != null ? json["max_downloadable_gb_allowed"] : null,
 | 
			
		||||
      personalDataAllowed: json.containsKey("personal_data_allowed") && json["personal_data_allowed"] != null ? json["personal_data_allowed"] : false,
 | 
			
		||||
      anonymizedPersonalDataAllowed: json.containsKey("anonymized_personal_data_allowed") && json["anonymized_personal_data_allowed"] != null ? json["anonymized_personal_data_allowed"] : false,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(json, DataPricing());
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    Map<String, dynamic> obj = {
 | 
			
		||||
      "max_downloadable_gb_allowed": maxDownloadableGBAllowed,
 | 
			
		||||
      "personal_data_allowed": personalDataAllowed,
 | 
			
		||||
      "anonymized_personal_data_allowed": anonymizedPersonalDataAllowed,
 | 
			
		||||
    };
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class DataPricing extends AbstractPricing {
 | 
			
		||||
  @override DataPricing deserialize(json) {
 | 
			
		||||
    var w = DataPricing();
 | 
			
		||||
    w.mapFromJSON(json);
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return toJSON();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										357
									
								
								lib/models/resources/processing.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										357
									
								
								lib/models/resources/processing.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,357 @@
 | 
			
		||||
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/enum_service.dart';
 | 
			
		||||
import 'package:oc_front/models/abstract.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/resources.dart';
 | 
			
		||||
 | 
			
		||||
class ProcessingItem extends AbstractItem<ProcessingPricing, ProcessingPartnership, ProcessingInstance, ProcessingItem> {
 | 
			
		||||
    // special attributes
 | 
			
		||||
  int? infrastructureEnum;
 | 
			
		||||
  bool isService = false;
 | 
			
		||||
  bool openSource = false;
 | 
			
		||||
  String? license;
 | 
			
		||||
  String? maturity;
 | 
			
		||||
  ProcessingUsage? usage;  
 | 
			
		||||
  
 | 
			
		||||
  ProcessingItem({
 | 
			
		||||
    this.infrastructureEnum,
 | 
			
		||||
    this.isService = false,
 | 
			
		||||
    this.openSource = false,
 | 
			
		||||
    this.license,
 | 
			
		||||
    this.maturity,
 | 
			
		||||
    this.usage,
 | 
			
		||||
  }): super();  
 | 
			
		||||
 | 
			
		||||
  @override String get topic => "processing";
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic data) {
 | 
			
		||||
    try { data = data as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return ProcessingItem(); }   
 | 
			
		||||
    var w = ProcessingItem(
 | 
			
		||||
      infrastructureEnum: data.containsKey("infrastructure") ? EnumService.get("infrastructure", data["infrastructure"]) : null,
 | 
			
		||||
      isService: data.containsKey("is_service") && data["is_service"] != null ? data["is_service"] : false,
 | 
			
		||||
      openSource: data.containsKey("open_source") && data["open_source"] != null ? data["open_source"] : false,
 | 
			
		||||
      license: data.containsKey("license") && data["license"] != null ? data["license"] : null,
 | 
			
		||||
      maturity: data.containsKey("maturity") && data["maturity"] != null ? data["maturity"] : null,
 | 
			
		||||
      usage: data.containsKey("usage") && data["usage"] != null ? ProcessingUsage().deserialize(data["usage"]) : null,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(data, ProcessingInstance());
 | 
			
		||||
    if (w.logo != null) { // get image dimensions
 | 
			
		||||
      var image = Image.network(w.logo!);
 | 
			
		||||
      image.image
 | 
			
		||||
        .resolve(const ImageConfiguration())
 | 
			
		||||
        .addListener(
 | 
			
		||||
            ImageStreamListener(
 | 
			
		||||
                (ImageInfo info, bool _) {
 | 
			
		||||
                  w.width = info.image.width.toDouble();
 | 
			
		||||
                  w.height = info.image.height.toDouble();
 | 
			
		||||
                }));
 | 
			
		||||
    }
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos() {
 | 
			
		||||
    return {
 | 
			
		||||
      "infrastructure": EnumService.enums["infrastructure"] != null 
 | 
			
		||||
      && EnumService.enums["infrastructure"]!["$infrastructureEnum"] != null ? 
 | 
			
		||||
      EnumService.enums["infrastructure"]!["$infrastructureEnum"] : infrastructureEnum,
 | 
			
		||||
      "is_service": isService,
 | 
			
		||||
      "open_source": openSource,
 | 
			
		||||
      "license": license,
 | 
			
		||||
      "maturity": maturity,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    var obj = infos();
 | 
			
		||||
    obj["infrastructure"] = infrastructureEnum;
 | 
			
		||||
    obj["usage"] = usage?.serialize();
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ProcessingAccess extends SerializerDeserializer<ProcessingAccess> {
 | 
			
		||||
  Containered? container;
 | 
			
		||||
 | 
			
		||||
  ProcessingAccess({
 | 
			
		||||
    this.container,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override ProcessingAccess deserialize(dynamic json) {
 | 
			
		||||
    try {
 | 
			
		||||
      json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
      return ProcessingAccess();
 | 
			
		||||
    }
 | 
			
		||||
    return ProcessingAccess(
 | 
			
		||||
      container: json.containsKey("container") && json["container"] != null ? Containered().deserialize(json["container"]) : null,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "container": container?.serialize(),
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ProcessingInstance extends AbstractInstance<ProcessingPricing, ProcessingPartnership> {
 | 
			
		||||
  ProcessingAccess? access;
 | 
			
		||||
  ProcessingInstance(
 | 
			
		||||
    {this.access}
 | 
			
		||||
  ): super();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  ProcessingInstance deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return ProcessingInstance(); }
 | 
			
		||||
    var w = ProcessingInstance();
 | 
			
		||||
    w.access = json.containsKey("access") && json["access"] != null ? ProcessingAccess().deserialize(json['access']) : null;
 | 
			
		||||
    w.mapFromJSON(json, ProcessingPartnership());
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    var obj = toJSON();
 | 
			
		||||
    obj["access"] = access?.serialize();
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos() {
 | 
			
		||||
    return {
 | 
			
		||||
      "inputs": toListJson(inputs),
 | 
			
		||||
      "outputs": toListJson(outputs),
 | 
			
		||||
    };
 | 
			
		||||
  } 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ProcessingPartnership extends AbstractPartnerShip<ProcessingPricing> {
 | 
			
		||||
  ProcessingPartnership(): super();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  ProcessingPartnership deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return ProcessingPartnership(); }
 | 
			
		||||
    var w = ProcessingPartnership();
 | 
			
		||||
    w.mapFromJSON(json, ProcessingPricing());
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return toJSON();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ProcessingPricing extends AbstractPricing {
 | 
			
		||||
  @override ProcessingPricing deserialize(json) {
 | 
			
		||||
    var w = ProcessingPricing();
 | 
			
		||||
    w.mapFromJSON(json);
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return toJSON();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class ProcessingUsage extends SerializerDeserializer<ProcessingUsage> {
 | 
			
		||||
    Map<String,CPU> cpus = {};
 | 
			
		||||
    Map<String,GPU> gpus = {};
 | 
			
		||||
    RAM? ram;
 | 
			
		||||
    double? storageSize;
 | 
			
		||||
    String? hypothesis;
 | 
			
		||||
    String? scalingModel;
 | 
			
		||||
 | 
			
		||||
    ProcessingUsage({
 | 
			
		||||
      this.cpus = const {},
 | 
			
		||||
      this.gpus = const {},
 | 
			
		||||
      this.ram,
 | 
			
		||||
      this.storageSize,
 | 
			
		||||
      this.hypothesis,
 | 
			
		||||
      this.scalingModel,
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    @override
 | 
			
		||||
  ProcessingUsage deserialize(json) {
 | 
			
		||||
    return ProcessingUsage(
 | 
			
		||||
      cpus: json.containsKey("cpus") && json["cpus"] != null ? fromMapJson(json["cpus"], CPU()) : {},
 | 
			
		||||
      gpus: json.containsKey("gpus") && json["gpus"] != null ? fromMapJson(json["gpus"], GPU()) : {},
 | 
			
		||||
      ram: json.containsKey("ram") && json["ram"] != null ? RAM().deserialize(json["ram"]) : null,
 | 
			
		||||
      storageSize: json.containsKey("storage_size") && json["storage_size"] != null ? json["storage_size"]?.toDouble() : null,
 | 
			
		||||
      hypothesis: json.containsKey("hypothesis") && json["hypothesis"] != null ? json["hypothesis"] : null,
 | 
			
		||||
      scalingModel: json.containsKey("scaling_model") && json["scaling_model"] != null ? json["scaling_model"] : null,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "cpus": toMapJson(cpus),
 | 
			
		||||
      "gpus": toMapJson(gpus),
 | 
			
		||||
      "ram": ram?.serialize(),
 | 
			
		||||
      "storage_size": storageSize,
 | 
			
		||||
      "hypothesis": hypothesis,
 | 
			
		||||
      "scaling_model": scalingModel,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class CPU extends SerializerDeserializer<CPU> {
 | 
			
		||||
  CPU({
 | 
			
		||||
    this.cores,
 | 
			
		||||
    this.platform,
 | 
			
		||||
    this.architecture,
 | 
			
		||||
    this.minimumMemory,
 | 
			
		||||
    this.shared = false,
 | 
			
		||||
  });
 | 
			
		||||
  double? cores;
 | 
			
		||||
  String? platform;
 | 
			
		||||
  bool shared = false;
 | 
			
		||||
  String? architecture;
 | 
			
		||||
  double? minimumMemory;
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return CPU(); }  
 | 
			
		||||
    return CPU(
 | 
			
		||||
      cores: json.containsKey("cores") && json["cores"] != null ? json["cores"]?.toDouble() : null,
 | 
			
		||||
      platform: json.containsKey("platform") && json["platform"] != null ? json["platform"] : null,
 | 
			
		||||
      architecture: json.containsKey("architecture") && json["architecture"] != null ? json["architecture"] : null,
 | 
			
		||||
      minimumMemory: json.containsKey("minimumMemory") && json["minimumMemory"] != null ? json["minimumMemory"]?.toDouble() : null,
 | 
			
		||||
      shared: json.containsKey("shared") && json["shared"] != null ? json["shared"] : false,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
  @override Map<String, dynamic> serialize() => {
 | 
			
		||||
    "cores": cores,
 | 
			
		||||
    "platform": platform,
 | 
			
		||||
    "architecture": architecture,
 | 
			
		||||
    "minimumMemory": minimumMemory,
 | 
			
		||||
    "shared": shared,
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
class GPU extends SerializerDeserializer<GPU> {
 | 
			
		||||
  GPU({
 | 
			
		||||
    this.cudaCores,
 | 
			
		||||
    this.memory,
 | 
			
		||||
    this.model,
 | 
			
		||||
    this.tensorCores,
 | 
			
		||||
  });
 | 
			
		||||
  double? cudaCores;
 | 
			
		||||
  double? memory;
 | 
			
		||||
  String? model;
 | 
			
		||||
  double? tensorCores;
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return GPU(); }  
 | 
			
		||||
    return GPU(
 | 
			
		||||
      cudaCores: json.containsKey("cuda_cores") && json["cuda_cores"] != null ? json["cuda_cores"]?.toDouble() : null,
 | 
			
		||||
      memory: json.containsKey("memory") && json["memory"] != null ? json["memory"]?.toDouble() : null,
 | 
			
		||||
      model: json.containsKey("model") && json["model"] != null ? json["model"] : null,
 | 
			
		||||
      tensorCores: json.containsKey("tensor_cores") && json["tensor_cores"] != null ? json["tensor_cores"]?.toDouble() : null,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
  @override Map<String, dynamic> serialize() => {
 | 
			
		||||
    "cuda_cores": cudaCores,
 | 
			
		||||
    "memory": memory,
 | 
			
		||||
    "model": model,
 | 
			
		||||
    "tensor_cores": tensorCores,
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
class RAM extends SerializerDeserializer<RAM> {
 | 
			
		||||
  RAM({
 | 
			
		||||
    this.ecc = false,
 | 
			
		||||
    this.size,
 | 
			
		||||
  });
 | 
			
		||||
  bool ecc = false;
 | 
			
		||||
  double? size;
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return RAM(); }  
 | 
			
		||||
    return RAM(
 | 
			
		||||
      ecc: json.containsKey("ecc") && json["ecc"] != null ? json["ecc"] : false,
 | 
			
		||||
      size: json.containsKey("size") && json["size"] != null ? json["size"]?.toDouble() : null,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
  @override Map<String, dynamic> serialize() => {
 | 
			
		||||
    "ecc": ecc,
 | 
			
		||||
    "size": size,
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Expose extends SerializerDeserializer<Expose> {
 | 
			
		||||
  Expose({
 | 
			
		||||
    this.PAT,
 | 
			
		||||
    this.port,
 | 
			
		||||
    this.path,
 | 
			
		||||
  });
 | 
			
		||||
  
 | 
			
		||||
  int? port;
 | 
			
		||||
  int? PAT;
 | 
			
		||||
  String? path;
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return Expose(); }
 | 
			
		||||
    return Expose(
 | 
			
		||||
      port: json.containsKey("port") && json["port"] != null ? json["port"] : null,
 | 
			
		||||
      PAT: json.containsKey("PAT") && json["PAT"] != null ? json["PAT"] : null,
 | 
			
		||||
      path: json.containsKey("reverse") && json["reverse"] != null ? json["reverse"] : null,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() => {
 | 
			
		||||
    "port": port,
 | 
			
		||||
    "PAT": PAT,
 | 
			
		||||
    "reverse": path,
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Containered extends SerializerDeserializer<Containered> {
 | 
			
		||||
  Containered({
 | 
			
		||||
    this.image,
 | 
			
		||||
    this.args,
 | 
			
		||||
    this.command,
 | 
			
		||||
    this.env,
 | 
			
		||||
    this.volumes,
 | 
			
		||||
    this.exposes = const [],
 | 
			
		||||
  }); 
 | 
			
		||||
 | 
			
		||||
  String? args;
 | 
			
		||||
  String? image;
 | 
			
		||||
  String? command;
 | 
			
		||||
  Map<String, dynamic>? env;
 | 
			
		||||
  Map<String, dynamic>? volumes;
 | 
			
		||||
  List<Expose> exposes = [];
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return Containered(); }
 | 
			
		||||
    return Containered(
 | 
			
		||||
      args: json.containsKey("args") && json["args"] != null ? json["args"] : null,
 | 
			
		||||
      image: json.containsKey("image") && json["image"] != null ? json["image"] : null,
 | 
			
		||||
      command: json.containsKey("command") && json["command"] != null ? json["command"] : null,
 | 
			
		||||
      env: json.containsKey("env") && json["env"] != null ? json["env"] : null,
 | 
			
		||||
      volumes: json.containsKey("volumes") && json["volumes"] != null ? json["volumes"] : null,
 | 
			
		||||
      exposes: json.containsKey("exposes") && json["exposes"] != null ? fromListJson(json["exposes"], Expose()) : [],
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    var w = {
 | 
			
		||||
      "args": args,
 | 
			
		||||
      "image": image,
 | 
			
		||||
      "command": command,
 | 
			
		||||
      "env": env,
 | 
			
		||||
      "volumes": volumes,
 | 
			
		||||
      "exposes": toListJson(exposes),
 | 
			
		||||
    };
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										529
									
								
								lib/models/resources/resources.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										529
									
								
								lib/models/resources/resources.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,529 @@
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:flutter_flow_chart/flutter_flow_chart.dart';
 | 
			
		||||
import 'package:oc_front/main.dart';
 | 
			
		||||
import 'package:oc_front/models/abstract.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/compute.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/data.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/processing.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/storage.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/workflow.dart';
 | 
			
		||||
 | 
			
		||||
class Resource implements SerializerDeserializer<Resource> {
 | 
			
		||||
  List<DataItem> datas = [];
 | 
			
		||||
  List<ProcessingItem> processings = [];
 | 
			
		||||
  List<StorageItem> storages = [];
 | 
			
		||||
  List<ComputeItem> computes = [];
 | 
			
		||||
  List<WorkflowItem> workflows = [];
 | 
			
		||||
 | 
			
		||||
  Resource({
 | 
			
		||||
    this.datas = const [],
 | 
			
		||||
    this.processings = const [],
 | 
			
		||||
    this.storages = const [],
 | 
			
		||||
    this.computes = const [],
 | 
			
		||||
    this.workflows = const [],
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override Resource deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return Resource(); }
 | 
			
		||||
    return Resource(
 | 
			
		||||
      computes: json.containsKey("compute_resource") ? fromListJson(json["compute_resource"], ComputeItem()) : [],
 | 
			
		||||
      datas: json.containsKey("data_resource") ? fromListJson(json["data_resource"], DataItem()) : [],
 | 
			
		||||
      processings: json.containsKey("processing_resource") ? fromListJson(json["processing_resource"], ProcessingItem()) : [],
 | 
			
		||||
      storages: json.containsKey("storage_resource") ? fromListJson(json["storage_resource"], StorageItem()) : [],
 | 
			
		||||
      workflows: json.containsKey("workflow_resource") ? fromListJson(json["workflow_resource"], WorkflowItem()) : [],
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "compute_resource": toListJson<ComputeItem>(computes),
 | 
			
		||||
      "data_resource": toListJson<DataItem>(datas),
 | 
			
		||||
      "processing_resource": toListJson<ProcessingItem>(processings),
 | 
			
		||||
      "storage_resource": toListJson<StorageItem>(storages),
 | 
			
		||||
      "workflow_resource": toListJson<WorkflowItem>(workflows),
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Owner extends SerializerDeserializer<Owner> {
 | 
			
		||||
  String? name;
 | 
			
		||||
  String? logo;
 | 
			
		||||
 | 
			
		||||
  Owner({
 | 
			
		||||
    this.name,
 | 
			
		||||
    this.logo,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override Owner deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return Owner(); }
 | 
			
		||||
    return Owner(
 | 
			
		||||
      name: json.containsKey("name") ? json["name"] : null,
 | 
			
		||||
      logo: json.containsKey("logo") ? json["logo"] : null,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "name": name,
 | 
			
		||||
      "logo": logo,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
abstract class Infos {
 | 
			
		||||
  Map<String, dynamic> infos();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Artifact extends SerializerDeserializer<Artifact> {
 | 
			
		||||
  String? attrPath;
 | 
			
		||||
  String? attrFrom;
 | 
			
		||||
  bool readOnly = true;
 | 
			
		||||
 | 
			
		||||
  Artifact({
 | 
			
		||||
    this.attrPath,
 | 
			
		||||
    this.attrFrom,
 | 
			
		||||
    this.readOnly = true,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override Artifact deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return Artifact(); }
 | 
			
		||||
    return Artifact(
 | 
			
		||||
      attrPath: json.containsKey("attr_path") ? json["attr_path"] : null,
 | 
			
		||||
      attrFrom: json.containsKey("attr_from") ? json["attr_from"] : null,
 | 
			
		||||
      readOnly: json.containsKey("readonly") ? json["readonly"] : true,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "attr_path": attrPath,
 | 
			
		||||
      "attr_from": attrFrom,
 | 
			
		||||
      "readonly": readOnly,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
class Param extends SerializerDeserializer<Param> {
 | 
			
		||||
  String? name;
 | 
			
		||||
  String? attr;
 | 
			
		||||
  dynamic value;
 | 
			
		||||
  String? origin;
 | 
			
		||||
  bool optionnal = false;
 | 
			
		||||
  bool readOnly = true;
 | 
			
		||||
 | 
			
		||||
  Param({
 | 
			
		||||
    this.name,
 | 
			
		||||
    this.attr,
 | 
			
		||||
    this.value,
 | 
			
		||||
    this.origin,
 | 
			
		||||
    this.optionnal = false,
 | 
			
		||||
    this.readOnly = true,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override Param deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return Param(); }
 | 
			
		||||
    return Param(
 | 
			
		||||
      name: json.containsKey("name") ? json["name"] : null,
 | 
			
		||||
      attr: json.containsKey("attr") ? json["attr"] : null,
 | 
			
		||||
      value: json.containsKey("value") ? json["value"] : null,
 | 
			
		||||
      origin: json.containsKey("origin") ? json["origin"] : null,
 | 
			
		||||
      optionnal: json.containsKey("optionnal") ? json["optionnal"] : false,
 | 
			
		||||
      readOnly: json.containsKey("readonly") ? json["readonly"] : false,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "name": name,
 | 
			
		||||
      "attr": attr,
 | 
			
		||||
      "value": value,
 | 
			
		||||
      "origin": origin,
 | 
			
		||||
      "optionnal": optionnal,
 | 
			
		||||
      "readonly": readOnly,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Credential extends SerializerDeserializer<Credential> {
 | 
			
		||||
  String? login;
 | 
			
		||||
  String? password;
 | 
			
		||||
 | 
			
		||||
  Credential({
 | 
			
		||||
    this.login,
 | 
			
		||||
    this.password,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Credential deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>; 
 | 
			
		||||
    } catch (e) { return Credential(); }
 | 
			
		||||
    return Credential(
 | 
			
		||||
      login: json.containsKey("login") ? json["login"] : null,
 | 
			
		||||
      password: json.containsKey("password") ? json["password"] : null,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "login": login,
 | 
			
		||||
      "password": password,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
abstract class AbstractItem<X extends AbstractPricing, Y extends AbstractPartnerShip<X>, S extends AbstractInstance<X,Y>, T extends FlowData> extends FlowData implements SerializerDeserializer<T>, Infos {
 | 
			
		||||
  String? id;
 | 
			
		||||
  String? name;
 | 
			
		||||
  String? logo;
 | 
			
		||||
  String? type;
 | 
			
		||||
  String? creatorID;
 | 
			
		||||
  String? updaterID;
 | 
			
		||||
  DateTime? createdAt;
 | 
			
		||||
  DateTime? updatedAt;
 | 
			
		||||
  List<Owner> owners;
 | 
			
		||||
  String? description;
 | 
			
		||||
  String? restrictions;
 | 
			
		||||
  String? shortDescription;
 | 
			
		||||
  int selectedInstance = 0;
 | 
			
		||||
 | 
			
		||||
  List<AbstractInstance<X,Y>> instances = [];
 | 
			
		||||
 | 
			
		||||
  String get topic => "";
 | 
			
		||||
 | 
			
		||||
  AbstractItem({
 | 
			
		||||
    this.id,
 | 
			
		||||
    this.type,
 | 
			
		||||
    this.name,
 | 
			
		||||
    this.logo,
 | 
			
		||||
    this.creatorID,
 | 
			
		||||
    this.updaterID,
 | 
			
		||||
    this.createdAt,
 | 
			
		||||
    this.updatedAt,
 | 
			
		||||
    this.description,
 | 
			
		||||
    this.shortDescription,
 | 
			
		||||
    this.owners = const [],
 | 
			
		||||
    this.selectedInstance = 0,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  void addEnv(List<dynamic> infos) {
 | 
			
		||||
    var inst = getSelectedInstance();
 | 
			
		||||
    if (inst == null) { return; }
 | 
			
		||||
    inst.env = [];
 | 
			
		||||
    for (var info in infos) {
 | 
			
		||||
      inst.env.add(Param(name: info["name"], attr: info["attr"], value: info["value"], 
 | 
			
		||||
      origin: info["origin"], optionnal: info["optionnal"], readOnly: info["readonly"]));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  AbstractInstance<X,Y>? getSelectedInstance() {
 | 
			
		||||
    if (selectedInstance == -1) { return instances.isEmpty ? null : instances[0]; }
 | 
			
		||||
    return  instances.isNotEmpty ? instances[selectedInstance] : null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override String getID() {
 | 
			
		||||
    return id ?? "";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override String getType() {
 | 
			
		||||
    return type ?? "";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  @override String getName() {
 | 
			
		||||
    return name ?? "";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos();
 | 
			
		||||
 | 
			
		||||
  double? width;
 | 
			
		||||
  double? height;
 | 
			
		||||
  @override
 | 
			
		||||
  double? getWidth() {
 | 
			
		||||
    return width;
 | 
			
		||||
  }
 | 
			
		||||
  @override
 | 
			
		||||
  double? getHeight() {
 | 
			
		||||
    return height;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Map<String, dynamic> setVariable(String key, dynamic value, Map<String, dynamic> map) {
 | 
			
		||||
    map[key] = value;
 | 
			
		||||
    return map;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  dynamic getVariable(String key, Map<String, dynamic> map) {
 | 
			
		||||
    return map[key];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Map<String, dynamic> toJSON() {
 | 
			
		||||
    return {
 | 
			
		||||
      "id": id,
 | 
			
		||||
      "type": type ?? topic,
 | 
			
		||||
      "name": name,
 | 
			
		||||
      "logo": logo,
 | 
			
		||||
      "owners": toListJson(owners),
 | 
			
		||||
      "creator_id": creatorID,
 | 
			
		||||
      "updater_id": updaterID,
 | 
			
		||||
      "creation_date": createdAt?.toIso8601String(),
 | 
			
		||||
      "update_date": updatedAt?.toIso8601String(),
 | 
			
		||||
      "description": description,
 | 
			
		||||
      "short_description": shortDescription,
 | 
			
		||||
      "selected_instance": selectedInstance,
 | 
			
		||||
      "instances": instances.map((e) => e.serialize()).toList(),
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void mapFromJSON(dynamic json, S ex) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return; }   
 | 
			
		||||
    this.id = json.containsKey("id") ? json["id"] : null;
 | 
			
		||||
    this.type = json.containsKey("type") ? json["type"] : topic;
 | 
			
		||||
    this.name = json.containsKey("name") ? json["name"] : null;
 | 
			
		||||
    this.logo = json.containsKey("logo") ? json["logo"] : null;
 | 
			
		||||
    this.creatorID = json.containsKey("creator_id") ? json["creator_id"] : null;
 | 
			
		||||
    this.updaterID = json.containsKey("updater_id") ? json["updater_id"] : null;
 | 
			
		||||
    this.description = json.containsKey("description") ? json["description"] : null;
 | 
			
		||||
    this.owners = json.containsKey("owners") ? fromListJson(json["owners"], Owner()) : [];
 | 
			
		||||
    this.instances = json.containsKey("instances") ? fromListJson(json["instances"], ex) : [];
 | 
			
		||||
    this.updatedAt = json.containsKey("update_date") ? DateTime.parse(json["update_date"]) : null;
 | 
			
		||||
    this.selectedInstance = json.containsKey("selected_instance") ? json["selected_instance"] : 0;
 | 
			
		||||
    this.shortDescription = json.containsKey("short_description") ? json["short_description"] : null;
 | 
			
		||||
    this.createdAt = json.containsKey("creation_date") ? DateTime.parse(json["creation_date"]) : null;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Location extends SerializerDeserializer<Location> {
 | 
			
		||||
  double? latitude;
 | 
			
		||||
  double? longitude;
 | 
			
		||||
 | 
			
		||||
  Location({
 | 
			
		||||
    this.latitude,
 | 
			
		||||
    this.longitude,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Location deserialize(json) {
 | 
			
		||||
    return Location(
 | 
			
		||||
      latitude: json.containsKey("latitude") ? json["latitude"] : null,
 | 
			
		||||
      longitude: json.containsKey("longitude") ? json["longitude"] : null,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "latitude": latitude,
 | 
			
		||||
      "longitude": longitude,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
abstract class AbstractInstance<X extends AbstractPricing, S extends AbstractPartnerShip<X>> extends SerializerDeserializer<AbstractInstance<X,S>> implements Infos {
 | 
			
		||||
  String? id;
 | 
			
		||||
  String? name; 
 | 
			
		||||
  int? countryCode;
 | 
			
		||||
  Location? location;
 | 
			
		||||
  List<S> partnerships = [];
 | 
			
		||||
  List<Param> env = [];
 | 
			
		||||
  List<Param> inputs = [];
 | 
			
		||||
  List<Param> outputs = [];
 | 
			
		||||
  Credential? credential;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  bool isEnv(String key) {
 | 
			
		||||
    for (var e in env) {
 | 
			
		||||
      if (e.name?.contains(key) ?? false || key.contains(e.name ?? "none")) { return true; }
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool isEnvAttr(String attr, String origin, bool isOrigin) {
 | 
			
		||||
    for (var e in env) {
 | 
			
		||||
      if (e.attr == attr && ((isOrigin && e.origin != null) || (!isOrigin && e.origin == origin))) { return true; }
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos();
 | 
			
		||||
 | 
			
		||||
  void mapFromJSON(dynamic json, S ex) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return; } 
 | 
			
		||||
    this.countryCode = json.containsKey("country_code") ? json["country_code"] : null;
 | 
			
		||||
    this.id = json.containsKey("id") ? json["id"] : null;
 | 
			
		||||
    this.name = json.containsKey("name") ? json["name"] : null;
 | 
			
		||||
    this.env = json.containsKey("env") ? fromListJson(json["env"], Param()) : [];
 | 
			
		||||
    this.inputs = json.containsKey("inputs") ? fromListJson(json["inputs"], Param()) : [];
 | 
			
		||||
    this.outputs = json.containsKey("outputs") ? fromListJson(json["outputs"], Param()) : [];
 | 
			
		||||
    this.location = json.containsKey("location") ? Location().deserialize(json["location"]) : null;
 | 
			
		||||
    this.credential = json.containsKey("credential") ? Credential().deserialize(json["credential"]) : null;
 | 
			
		||||
    this.partnerships = json.containsKey("partnerships") ? fromListJson(json["partnerships"], ex) : [];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Map<String, dynamic> toJSON() {
 | 
			
		||||
    return {
 | 
			
		||||
      "country_code": countryCode,
 | 
			
		||||
      "id": id,
 | 
			
		||||
      "name": name,
 | 
			
		||||
      "location": location?.serialize(),
 | 
			
		||||
      "env": toListJson(env),
 | 
			
		||||
      "inputs": toListJson(inputs),
 | 
			
		||||
      "outputs": toListJson(outputs),
 | 
			
		||||
      "credential": credential?.serialize(), // TODO CREDENTIAL FORM
 | 
			
		||||
      "partnerships": partnerships.map((e) => e.serialize()).toList(),
 | 
			
		||||
    }; 
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
abstract class AbstractPartnerShip<S extends AbstractPricing> extends SerializerDeserializer<AbstractPartnerShip<S>> {
 | 
			
		||||
  String? namespace;
 | 
			
		||||
  List<AbstractPricing> pricings = [];
 | 
			
		||||
 | 
			
		||||
  void mapFromJSON(dynamic json, S ex) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return; } 
 | 
			
		||||
    this.namespace = json.containsKey("namespace") ? json["namespace"] : null;
 | 
			
		||||
    this.pricings = json.containsKey("pricings") ? fromListJson(json["pricings"], ex) : [];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Map<String, dynamic> toJSON() {
 | 
			
		||||
    return {
 | 
			
		||||
      "namespace": namespace,
 | 
			
		||||
      "pricings": pricings,
 | 
			
		||||
    }; 
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
abstract class AbstractPricing extends SerializerDeserializer<AbstractPricing> {
 | 
			
		||||
  PricingStrategy? pricing;
 | 
			
		||||
  int? refundTypeEnum;
 | 
			
		||||
  int? refundRatio;
 | 
			
		||||
  List<dynamic> additionnalRefundTypeEnum = [];
 | 
			
		||||
  int? privilegeStrategyEnum;
 | 
			
		||||
  int? garantedDelaySecond;
 | 
			
		||||
  bool exceeding = false;
 | 
			
		||||
  int? exceedingRatio;
 | 
			
		||||
 | 
			
		||||
  void mapFromJSON(dynamic json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return; } 
 | 
			
		||||
    pricing = json.containsKey("pricing") ? PricingStrategy().deserialize(json["pricing"]) : null;
 | 
			
		||||
    refundTypeEnum = json.containsKey("refund_type") ? json["refund_type"] : null;
 | 
			
		||||
    refundRatio = json.containsKey("refund_ratio") ? json["refund_ratio"] : null;
 | 
			
		||||
    additionnalRefundTypeEnum = json.containsKey("additionnal_refund_type") ? json["additionnal_refund_type"] : [];
 | 
			
		||||
    privilegeStrategyEnum = json.containsKey("privilege_strategy") ? json["privilege_strategy"] : null;
 | 
			
		||||
    garantedDelaySecond = json.containsKey("garanted_delay") ? json["garanted_delay"] : null;
 | 
			
		||||
    exceeding = json.containsKey("exceeding") ? json["exceeding"] : false;
 | 
			
		||||
    exceedingRatio = json.containsKey("exceeding_ratio") ? json["exceeding_ratio"] : null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Map<String, dynamic> toJSON() {
 | 
			
		||||
    return {
 | 
			
		||||
      "pricing": pricing?.serialize(),
 | 
			
		||||
      "refund_type": refundTypeEnum,
 | 
			
		||||
      "refund_ratio": refundRatio,
 | 
			
		||||
      "additionnal_refund_type": additionnalRefundTypeEnum,
 | 
			
		||||
      "privilege_strategy": privilegeStrategyEnum,
 | 
			
		||||
      "garanted_delay": garantedDelaySecond,
 | 
			
		||||
      "exceeding": exceeding,
 | 
			
		||||
      "exceeding_ratio": exceedingRatio,
 | 
			
		||||
    }; 
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class PricingStrategy extends SerializerDeserializer<PricingStrategy> {
 | 
			
		||||
  double? price;
 | 
			
		||||
  String? currency;
 | 
			
		||||
  int? buyingStrategyEnum;
 | 
			
		||||
  int? timeStrategyEnum;
 | 
			
		||||
  int? overrideStrategyEnum;
 | 
			
		||||
 | 
			
		||||
  PricingStrategy({
 | 
			
		||||
    this.price,
 | 
			
		||||
    this.currency,
 | 
			
		||||
    this.buyingStrategyEnum,
 | 
			
		||||
    this.timeStrategyEnum,
 | 
			
		||||
    this.overrideStrategyEnum,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  PricingStrategy deserialize(dynamic json) {
 | 
			
		||||
    return PricingStrategy(
 | 
			
		||||
      price: json.containsKey("price") && json["price"] != null ? json["price"] : null,
 | 
			
		||||
      currency: json.containsKey("currency") && json["currency"] != null  ? json["currency"] : null,
 | 
			
		||||
      buyingStrategyEnum: json.containsKey("buying_strategy") ? json["buying_strategy"] : null,
 | 
			
		||||
      timeStrategyEnum: json.containsKey("time_strategy") ? json["time_strategy"] : null,
 | 
			
		||||
      overrideStrategyEnum: json.containsKey("override_strategy") ? json["override_strategy"] : null,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return {
 | 
			
		||||
      "price": price,
 | 
			
		||||
      "currency": currency,
 | 
			
		||||
      "buying_strategy": buyingStrategyEnum,
 | 
			
		||||
      "time_strategy": timeStrategyEnum,
 | 
			
		||||
      "override_strategy": overrideStrategyEnum,
 | 
			
		||||
    }; 
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Model extends SerializerDeserializer<Model> {
 | 
			
		||||
  dynamic value;
 | 
			
		||||
  String? type;
 | 
			
		||||
  bool readonly = false;
 | 
			
		||||
 | 
			
		||||
  Model({
 | 
			
		||||
    this.value,
 | 
			
		||||
    this.type,
 | 
			
		||||
    this.readonly = false,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return Model(); }
 | 
			
		||||
    return Model(
 | 
			
		||||
      value: json.containsKey("value") ? json["value"] : null,
 | 
			
		||||
      type: json.containsKey("type") ? json["type"] : null,
 | 
			
		||||
      readonly: json.containsKey("readonly") ? json["readonly"] : false,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
  @override Map<String, dynamic> serialize() => {
 | 
			
		||||
    "value": value,
 | 
			
		||||
    "type": type,
 | 
			
		||||
    "readonly": readonly,
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Type? getTopicType(String topic) {
 | 
			
		||||
  if (topic == "processing") { return ProcessingItem; }
 | 
			
		||||
  else if (topic == "data") { return DataItem; }
 | 
			
		||||
  else if (topic == "compute") { return ComputeItem; }
 | 
			
		||||
  else if (topic == "storage") { return StorageItem; }
 | 
			
		||||
  else if (topic == "workflow") { return WorkflowItem; }
 | 
			
		||||
  else { return null; }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
String getTopic(Type type) {
 | 
			
		||||
  if (type == AbstractItem) { return "resource"; }
 | 
			
		||||
  if (type == ProcessingItem) { return "processing"; }
 | 
			
		||||
  if (type == DataItem) { return "data"; }
 | 
			
		||||
  if (type == ComputeItem) { return "compute"; }
 | 
			
		||||
  if (type == StorageItem) { return "storage"; }
 | 
			
		||||
  if (type == WorkflowItem) { return "workflow"; }
 | 
			
		||||
  return "";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool isComputing(String topic) => topic == "processing";
 | 
			
		||||
bool isData(String topic) => topic == "data";
 | 
			
		||||
bool isCompute(String topic) => topic == "compute";
 | 
			
		||||
bool isStorage(String topic) => topic == "storage";
 | 
			
		||||
bool isWorkflow(String topic) => topic == "workflow";
 | 
			
		||||
 | 
			
		||||
Color getColor(String topic) => isData(topic) ? Colors.blue : isComputing(topic) ? Colors.green : 
 | 
			
		||||
                                isCompute(topic) ? Colors.orange : isStorage(topic) ? redColor : Colors.grey;
 | 
			
		||||
							
								
								
									
										166
									
								
								lib/models/resources/storage.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								lib/models/resources/storage.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,166 @@
 | 
			
		||||
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/core/services/enum_service.dart';
 | 
			
		||||
import 'package:oc_front/models/abstract.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/resources.dart';
 | 
			
		||||
 | 
			
		||||
class StorageItem extends AbstractItem<StoragePricing, StoragePartnership, StorageInstance, StorageItem> {
 | 
			
		||||
  StorageItem({
 | 
			
		||||
    this.acronym,
 | 
			
		||||
    this.typeEnum,
 | 
			
		||||
  }): super();  
 | 
			
		||||
 | 
			
		||||
 @override String get topic => "storage";
 | 
			
		||||
  // special attributes
 | 
			
		||||
  String? acronym;
 | 
			
		||||
  int? typeEnum;
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic data) {
 | 
			
		||||
    try { data = data as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return StorageItem(); }   
 | 
			
		||||
    var w = StorageItem(
 | 
			
		||||
      acronym: data.containsKey("acronym") && data["acronym"] != null ? data["acronym"] : null,
 | 
			
		||||
      typeEnum: data.containsKey("storage_type") && data["storage_type"] != null ? EnumService.get("storage/type", data["storage_type"]) : null,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(data, StorageInstance());
 | 
			
		||||
    if (w.logo != null) { // get image dimensions
 | 
			
		||||
      var image = Image.network(w.logo!);
 | 
			
		||||
      image.image
 | 
			
		||||
        .resolve(const ImageConfiguration())
 | 
			
		||||
        .addListener(
 | 
			
		||||
            ImageStreamListener(
 | 
			
		||||
                (ImageInfo info, bool _) {
 | 
			
		||||
                  w.width = info.image.width.toDouble();
 | 
			
		||||
                  w.height = info.image.height.toDouble();
 | 
			
		||||
                }));
 | 
			
		||||
    }
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos() {
 | 
			
		||||
    return {
 | 
			
		||||
      "acronym": acronym,
 | 
			
		||||
      "storage_type": EnumService.enums["storage/type"] != null 
 | 
			
		||||
        && EnumService.enums["storage/type"]!["$typeEnum"] != null ? 
 | 
			
		||||
        EnumService.enums["storage/type"]!["$typeEnum"] : typeEnum,
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    var obj = infos();
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class StorageInstance extends AbstractInstance<StoragePricing, StoragePartnership> {
 | 
			
		||||
  String? source;
 | 
			
		||||
  bool local = false;
 | 
			
		||||
  String? securityLevel;
 | 
			
		||||
  int? storageSizeEnum;
 | 
			
		||||
  int? size;
 | 
			
		||||
  bool encryption = false;
 | 
			
		||||
  String? redundancy;
 | 
			
		||||
  String? throughput;
 | 
			
		||||
 | 
			
		||||
  StorageInstance({
 | 
			
		||||
    this.source,
 | 
			
		||||
    this.local = false,
 | 
			
		||||
    this.securityLevel,
 | 
			
		||||
    this.storageSizeEnum,
 | 
			
		||||
    this.size,
 | 
			
		||||
    this.encryption = false,
 | 
			
		||||
    this.redundancy,
 | 
			
		||||
    this.throughput,
 | 
			
		||||
  }): super();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  StorageInstance deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return StorageInstance(); }
 | 
			
		||||
    var w = StorageInstance(
 | 
			
		||||
      source: json.containsKey("source") && json["source"] != null ? json["source"] : null,
 | 
			
		||||
      local: json.containsKey("local") && json["local"] != null ? json["local"] : false,
 | 
			
		||||
      securityLevel: json.containsKey("security_level") && json["security_level"] != null ? json["security_level"] : null,
 | 
			
		||||
      storageSizeEnum: json.containsKey("size_type") ? EnumService.get("storage/size", json["size_type"]) : null,
 | 
			
		||||
      size: json.containsKey("size") && json["size"] != null ? json["size"] : null,
 | 
			
		||||
      encryption: json.containsKey("encryption") && json["encryption"] != null ? json["encryption"] : false,
 | 
			
		||||
      redundancy: json.containsKey("redundancy") && json["redundancy"] != null ? json["redundancy"] : null,
 | 
			
		||||
      throughput: json.containsKey("throughput") && json["throughput"] != null ? json["throughput"] : null,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(json, StoragePartnership());
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos() {
 | 
			
		||||
    return {
 | 
			
		||||
      "local": local,
 | 
			
		||||
      "security_level": securityLevel,
 | 
			
		||||
      "size_type": EnumService.enums["storage/size"] != null 
 | 
			
		||||
      && EnumService.enums["storage/size"]!["$storageSizeEnum"] != null ? 
 | 
			
		||||
      EnumService.enums["storage/size"]!["$storageSizeEnum"] : storageSizeEnum,
 | 
			
		||||
      "size": size,
 | 
			
		||||
      "encryption": encryption,
 | 
			
		||||
      "redundancy": redundancy,
 | 
			
		||||
      "throughput": throughput,
 | 
			
		||||
      "inputs": toListJson(inputs),
 | 
			
		||||
      "outputs": toListJson(outputs),
 | 
			
		||||
    };
 | 
			
		||||
  } 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    var obj = infos();
 | 
			
		||||
    obj["source"] = source;
 | 
			
		||||
    obj["size_type"] = storageSizeEnum;
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class StoragePartnership extends AbstractPartnerShip<StoragePricing> {
 | 
			
		||||
  double? maxSizeGBAllowed;
 | 
			
		||||
  bool onlyEncryptedAllowed = false;
 | 
			
		||||
 | 
			
		||||
  StoragePartnership({
 | 
			
		||||
    this.maxSizeGBAllowed,
 | 
			
		||||
    this.onlyEncryptedAllowed = false,
 | 
			
		||||
  }): super();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  StoragePartnership deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return StoragePartnership(); }
 | 
			
		||||
    var w = StoragePartnership(
 | 
			
		||||
      maxSizeGBAllowed: json.containsKey("allowed_gb") && json["allowed_gb"] != null ? json["allowed_gb"] : null,
 | 
			
		||||
      onlyEncryptedAllowed: json.containsKey("personal_data_allowed") && json["personal_data_allowed"] != null ? json["personal_data_allowed"] : false,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(json, StoragePricing());
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    Map<String, dynamic> obj = {
 | 
			
		||||
      "allowed_gb": maxSizeGBAllowed,
 | 
			
		||||
      "personal_data_allowed": onlyEncryptedAllowed,
 | 
			
		||||
    };
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class StoragePricing extends AbstractPricing {
 | 
			
		||||
  @override StoragePricing deserialize(json) {
 | 
			
		||||
    var w = StoragePricing();
 | 
			
		||||
    w.mapFromJSON(json);
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return toJSON();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										101
									
								
								lib/models/resources/workflow.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								lib/models/resources/workflow.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:oc_front/models/resources/resources.dart';
 | 
			
		||||
 | 
			
		||||
class WorkflowItem extends AbstractItem<WorkflowPricing, WorkflowPartnership, WorkflowInstance, WorkflowItem> {
 | 
			
		||||
  // special attributes
 | 
			
		||||
  String? workflowID;
 | 
			
		||||
  
 | 
			
		||||
  WorkflowItem({
 | 
			
		||||
    this.workflowID,
 | 
			
		||||
  }): super();  
 | 
			
		||||
 | 
			
		||||
  @override String get topic => "workflow";
 | 
			
		||||
 | 
			
		||||
  @override deserialize(dynamic data) {
 | 
			
		||||
    try { data = data as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return WorkflowItem(); }   
 | 
			
		||||
    var w = WorkflowItem(
 | 
			
		||||
      workflowID: data.containsKey("workflow_id") && data["workflow_id"] != null ? data["workflow_id"] : null,
 | 
			
		||||
    );
 | 
			
		||||
    w.mapFromJSON(data, WorkflowInstance());
 | 
			
		||||
    if (w.logo != null) { // get image dimensions
 | 
			
		||||
      var image = Image.network(w.logo!);
 | 
			
		||||
      image.image
 | 
			
		||||
        .resolve(const ImageConfiguration())
 | 
			
		||||
        .addListener(
 | 
			
		||||
            ImageStreamListener(
 | 
			
		||||
                (ImageInfo info, bool _) {
 | 
			
		||||
                  w.width = info.image.width.toDouble();
 | 
			
		||||
                  w.height = info.image.height.toDouble();
 | 
			
		||||
                }));
 | 
			
		||||
    }
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos() {
 | 
			
		||||
    return {};
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override Map<String, dynamic> serialize() {
 | 
			
		||||
    Map<String, dynamic> obj ={
 | 
			
		||||
      "workflow_id": workflowID,
 | 
			
		||||
    };
 | 
			
		||||
    obj.addAll(toJSON());
 | 
			
		||||
    return obj;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class WorkflowInstance extends AbstractInstance<WorkflowPricing, WorkflowPartnership> {
 | 
			
		||||
  WorkflowInstance(): super();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  WorkflowInstance deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return WorkflowInstance(); }
 | 
			
		||||
    var w = WorkflowInstance();
 | 
			
		||||
    w.mapFromJSON(json, WorkflowPartnership());
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> infos() {
 | 
			
		||||
    return {};
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return toJSON();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class WorkflowPartnership extends AbstractPartnerShip<WorkflowPricing> {
 | 
			
		||||
  WorkflowPartnership(): super();
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  WorkflowPartnership deserialize(json) {
 | 
			
		||||
    try { json = json as Map<String, dynamic>;
 | 
			
		||||
    } catch (e) { return WorkflowPartnership(); }
 | 
			
		||||
    var w = WorkflowPartnership();
 | 
			
		||||
    w.mapFromJSON(json, WorkflowPricing());
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return toJSON();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class WorkflowPricing extends AbstractPricing {
 | 
			
		||||
  @override WorkflowPricing deserialize(json) {
 | 
			
		||||
    var w = WorkflowPricing();
 | 
			
		||||
    w.mapFromJSON(json);
 | 
			
		||||
    return w;
 | 
			
		||||
  }
 | 
			
		||||
  @override
 | 
			
		||||
  Map<String, dynamic> serialize() {
 | 
			
		||||
    return toJSON();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user