761 Commits

Author SHA1 Message Date
a3a09507a6 upped version
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-06-06 12:52:56 +02:00
9bbde64147 AW-3836 fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-06-06 12:48:52 +02:00
0c4259d72e AW-3836 fixed tags component
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2022-06-06 12:45:23 +02:00
Willem Dantuma
57e0a37c78 add ifPackageListExists to packageservice
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-03-16 15:56:23 +01:00
Willem Dantuma
713af307cd Add fmPackageExists directive
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-03-16 14:20:28 +01:00
Willem Dantuma
521b882798 Add gradient service 2022-03-16 14:20:08 +01:00
Willem Dantuma
b850f5d621 Add gradient service 2022-03-16 14:19:51 +01:00
Willem Dantuma
d8730e77ad AW-3573
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-02-23 11:57:36 +01:00
e62c185f35 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-02-21 09:15:14 +01:00
f81b16b966 Remove debugger 2022-02-21 09:15:07 +01:00
b9ee39399c changed getFeatures index parameter use to indexed ?? true
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-02-05 14:00:25 +01:00
be9b01dbab fixed indexed.toString().....................
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-02-04 20:17:39 +01:00
feacfd8bb3 fix indexed in getFeatures in item.service.ts
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-02-04 19:42:09 +01:00
2f0362e730 Add indexed to getFeatures in item.service.ts
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-02-04 18:27:18 +01:00
Willem Dantuma
f4ba89920c AW-3096 Zoeken op locatie (geocoding) mogelijk maken
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-02-04 16:21:26 +01:00
Willem Dantuma
f5b312a888 AW-3489 Initialen ( avatar) missen bij profiel
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-02-03 18:09:32 +01:00
Willem Dantuma
97142bc986 AW-3488 Make startpage configurable
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-02-03 12:00:09 +01:00
Willem Dantuma
67335a0a4a Kick version
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-02-02 19:10:32 +01:00
Willem Dantuma
b752b377da AW-3477 fmHasPackage check werkt niet correct voor vandaag
Some checks reported errors
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
FarmMaps/FarmMapsLib/pipeline/head Something is wrong with the build of this commit
2022-02-02 18:56:58 +01:00
Willem Dantuma
74c77bae5e Fix build
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-01-31 21:51:37 +01:00
Willem Dantuma
b22278a75f Kick version
Some checks failed
FarmMaps/FarmMapsLib/pipeline/head There was a failure building this commit
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-01-31 21:44:41 +01:00
Willem Dantuma
37854d43fc Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
FarmMaps/FarmMapsLib/pipeline/head There was a failure building this commit
2022-01-31 21:38:23 +01:00
Willem Dantuma
2161951cbb Merge branch 'develop'
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
# Conflicts:
#	package.json
#	projects/common-map/src/fm-map/common-map.module.ts
#	projects/common/src/fm/reducers/app-common.reducer.ts
2022-01-31 21:04:52 +01:00
66e492d2f8 versionnumber
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-01-28 16:20:17 +01:00
e944064053 cherrypick ac0fe962a0: aw3299 hide questionmark on mobile
Some checks failed
FarmMaps/FarmMapsLib/pipeline/head There was a failure building this commit
2022-01-28 16:16:26 +01:00
a1a4fc14ab AW-3441 better test to find real problem. fixed the getValidPackages function.
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-01-27 23:20:20 +01:00
122563a0bd AW-3441 another fix...
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-01-27 22:35:47 +01:00
33f322424e AW-3441 fix oopsie
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-01-27 17:25:12 +01:00
519b81d1fd AW-3441 fix package validation
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-01-27 17:07:24 +01:00
b7c80dfdd8 AW-3441 add valid packages selector
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-01-27 14:07:02 +01:00
Willem Dantuma
77d2433d63 Export GeometryThumbnailComponent
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-01-27 11:40:16 +01:00
Willem Dantuma
9bc78dc302 Export GeometryThumbnailComponent
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-01-27 10:11:51 +01:00
ac0fe962a0 aw3299: hide help on mobile
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-01-20 08:39:18 +01:00
d89670f669 Merge branch 'hotfix/AW-3412-B'
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-01-19 14:38:49 +01:00
d025e2e3f6 export GeometryThumbnailComponent 2022-01-19 14:36:34 +01:00
Willem Dantuma
c22cede59b Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2022-01-19 13:47:13 +01:00
Willem Dantuma
48574dc0b0 Merge tag 'AW-3412' into develop
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
# Conflicts:
#	package.json
#	projects/common-map/src/fm-map/components/feature-thumbnail/feature-thumbnail.component.ts
#	src/configuration.json
2022-01-19 13:29:44 +01:00
Willem Dantuma
57407d83d3 Merge branch 'hotfix/AW-3412'
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2022-01-19 13:24:14 +01:00
Willem Dantuma
f83549b5af Update version 2022-01-19 13:22:55 +01:00
Willem Dantuma
132556da81 AW-3412 2022-01-19 13:21:44 +01:00
Willem Dantuma
c2350eec52 Fix configuration for local authentication 2022-01-19 11:56:30 +01:00
aa1ad9f844 AW-3135
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-12-21 21:01:10 +01:00
Willem Dantuma
c6d14e6c9c Export interface
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2021-12-02 11:23:36 +01:00
Willem Dantuma
8e4364bd08 bump version
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2021-12-02 11:16:43 +01:00
Willem Dantuma
af3340ed70 Inject clicked feature in component
Some checks failed
FarmMaps/FarmMapsLib/pipeline/head There was a failure building this commit
2021-12-02 11:13:36 +01:00
Willem Dantuma
cc4726e85c Inject clicked feature in component
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-12-02 11:13:03 +01:00
Willem Dantuma
ff19d830a7 Fix version
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2021-11-26 12:06:17 +01:00
Willem Dantuma
29914cfb1b oops
Some checks reported errors
FarmMaps/FarmMapsLib/pipeline/head Something is wrong with the build of this commit
2021-11-26 12:04:17 +01:00
Willem Dantuma
7bca0a57c4 Fix build
Some checks failed
FarmMaps/FarmMapsLib/pipeline/head There was a failure building this commit
2021-11-26 12:02:01 +01:00
Willem Dantuma
fdba357e9c Fix matching
Some checks failed
FarmMaps/FarmMapsLib/pipeline/head There was a failure building this commit
2021-11-26 11:58:11 +01:00
Willem Dantuma
e28564c88a Fix matching
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-11-26 11:57:24 +01:00
Willem Dantuma
90c3fa25a4 Fix publish
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-11-25 11:35:27 +01:00
Willem Dantuma
3b8b812c55 Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-11-25 11:15:34 +01:00
Willem Dantuma
025889b390 Merge branch 'feature/update_openlayers_to_6.8' into develop
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-11-25 10:53:55 +01:00
Willem Dantuma
eabaa1db19 oauth2 fixes 2021-10-05 20:56:27 +02:00
Willem Dantuma
ba541c4e08 Use local environment 2021-10-05 20:55:51 +02:00
Willem Dantuma
b994bc51cd Add development configuration 2021-10-05 20:55:08 +02:00
Willem Dantuma
960275dd38 Fix localize polyfill 2021-10-05 16:59:04 +02:00
Willem Dantuma
5b7fef689a Update versions 2021-10-05 16:35:12 +02:00
Willem Dantuma
1c1315a580 More type fixes 2021-10-05 16:13:25 +02:00
Willem Dantuma
5d21d66589 More type fixes 2021-10-05 14:08:55 +02:00
Willem Dantuma
160eb10aba Refactoring types 2021-10-05 13:46:10 +02:00
Willem Dantuma
4ef077f8d7 Update to angular 12 2021-10-05 06:39:38 +02:00
Willem Dantuma
df84a7c217 Update packages 2021-10-05 06:27:18 +02:00
Willem Dantuma
b5d00f5619 Merge branch 'develop'
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-25 08:19:12 +02:00
Willem Dantuma
89a0fb13a5 AW-2757
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-19 15:25:22 +02:00
Willem Dantuma
2861ba220e Revert "Help menu invisible in release sep 2021."
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
This reverts commit a454f2306d.
2021-08-18 14:37:41 +02:00
Willem Dantuma
45e0d5e836 Revert "Hide help menu"
This reverts commit 4c1d4137ea.
2021-08-18 14:37:31 +02:00
Willem Dantuma
312611cdc1 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop 2021-08-18 14:34:53 +02:00
Willem Dantuma
54b8a3bf24 AW-1855 2021-08-18 14:34:45 +02:00
4c1d4137ea Hide help menu
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-18 14:31:28 +02:00
a454f2306d Help menu invisible in release sep 2021.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-18 14:21:02 +02:00
Willem Dantuma
52a72b042c Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-17 19:41:20 +02:00
Willem Dantuma
c0c9864b07 AW-2714
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-08-17 19:36:30 +02:00
Willem Dantuma
e0f36b043f Oops
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-12 21:40:40 +02:00
Willem Dantuma
b52bfd4f57 Fix icon
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-12 21:02:55 +02:00
Willem Dantuma
6ff3c0ec96 Fix device geometry update
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-12 17:13:40 +02:00
Willem Dantuma
eb1157d608 Fix thumbnail editing, add blobtodataurl method
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-05 16:33:31 +02:00
Willem Dantuma
1daa8e257f make Observable
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-04 16:12:22 +02:00
Willem Dantuma
5db24cc63d Add geolocator service
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-04 16:01:41 +02:00
ff018d9db1 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-08-04 12:05:09 +02:00
8c49965df8 Fix optional has package check/ 2021-08-04 12:05:02 +02:00
Willem Dantuma
f880623337 Fix AW-2620
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-30 14:06:31 +02:00
Willem Dantuma
2da4f88683 Fix AW-2617
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-29 16:36:18 +02:00
Willem Dantuma
bd125b6f72 Fix check
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-29 13:24:59 +02:00
Willem Dantuma
610408d17c Add optional replace parameter
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-29 12:52:26 +02:00
Willem Dantuma
52e3117771 Implement ItemDeleteEvent handling
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-29 08:21:25 +02:00
Willem Dantuma
1b000c6112 Fix initialization error
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-28 17:12:54 +02:00
Willem Dantuma
28e75d5a0d Replace @Effect() with createEffect
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-27 16:26:57 +02:00
Willem Dantuma
76c431b9c2 Use latest snapshot
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-27 09:31:14 +02:00
Willem Dantuma
122c49d516 Move the check here
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-27 09:16:58 +02:00
Willem Dantuma
5c549c5851 Use route parameters here also
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-27 08:51:56 +02:00
Willem Dantuma
3fcf80c1a0 Add override route parameters
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-26 21:53:55 +02:00
Willem Dantuma
519e5c9032 Make zoom-to padding configurable per route
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-07-21 11:17:15 +02:00
9c19595597 Revert "Patch lib"
Some checks failed
FarmMaps/FarmMapsLib/pipeline/head There was a failure building this commit
This reverts commit ea1b22ed41.
2021-06-23 13:52:52 +02:00
ea1b22ed41 Patch lib
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2021-06-23 13:18:46 +02:00
8d3c098f4e Upgraded custom-webpack and typescript.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-06-16 09:15:53 +02:00
22209cfaf6 Update bootstrap to angular 11 compatible version
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-06-11 10:54:23 +02:00
8b45e431a7 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-06-11 10:43:50 +02:00
74c792b96a Update references 2021-06-11 10:43:38 +02:00
d833f321d1 aw-1837 add language to user
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-06-11 08:40:13 +02:00
0d9789d8c6 Version
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-06-09 14:04:48 +02:00
93513f9dc7 AW-2316 Angular upgrade 11 2021-06-09 14:00:21 +02:00
Willem Dantuma
e465142be0 Increase minor
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-06-03 10:03:59 +02:00
Willem Dantuma
92173c9847 Increase patch level
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2021-06-03 10:02:41 +02:00
Willem Dantuma
05292f1e5d Depend on released versions
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
FarmMaps/FarmMapsLib/pipeline/head There was a failure building this commit
2021-06-03 09:53:41 +02:00
Willem Dantuma
e672e28795 Allow same version in master
All checks were successful
FarmMaps/FarmMapsLib/pipeline/head This commit looks good
2021-06-03 09:47:17 +02:00
Willem Dantuma
4b7b639046 Remobve build number from version
Some checks failed
FarmMaps/FarmMapsLib/pipeline/head There was a failure building this commit
2021-06-03 09:42:59 +02:00
Willem Dantuma
34b067fd28 Add jenkins file for master
Some checks failed
FarmMaps/FarmMapsLib/pipeline/head There was a failure building this commit
2021-06-03 09:37:13 +02:00
Willem Dantuma
fb9a046ff8 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-06-03 09:34:11 +02:00
Willem Dantuma
c4934d799d release 1.0.0 2021-06-03 09:34:03 +02:00
469bc6f1c1 AW-2390
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-06-02 16:39:33 +02:00
d140d4bd4c AW-2390
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-27 19:44:29 +02:00
1ce259a152 Add %
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-26 16:34:04 +02:00
00ae86ecf2 AW-2388
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-26 16:11:21 +02:00
880eb26a99 getPercentage
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-26 14:59:03 +02:00
bcfa13de60 AW-2388 Fixed mixed decimal in histogram 2021-05-26 14:58:03 +02:00
Willem Dantuma
6f77df0f61 Fix AW-2361
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-25 22:12:32 +02:00
fbe0413c6a Merge branch 'feature/AW-2268' into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-18 13:05:16 +02:00
115f53e93c AW-2268 fix .fullscreen .control-container 2021-05-18 09:49:50 +02:00
ca40ca0927 renamed package guard and added it to public api 2021-05-17 14:23:44 +02:00
29968a736c Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-06 14:05:49 +02:00
077afcb0d7 Fix validToday 2021-05-06 14:05:43 +02:00
Willem Dantuma
6e79afd115 Logout on deleteuser event
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-05 18:56:53 +02:00
4f9cdf1588 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-04 16:23:00 +02:00
fa69dee550 Fix expected selector /deep/ 2021-05-04 16:22:46 +02:00
Willem Dantuma
06e353ee94 Reverse /deep/
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-04 16:21:57 +02:00
8d723477d3 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-05-04 11:28:49 +02:00
771e388f0e AW-2081 Align avatar 2021-05-04 11:28:43 +02:00
Willem Dantuma
040b5b8c4d Cancel only not allready uploaded files
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-05-03 19:00:20 +02:00
3504990708 Add ability to retrieve only items that are valid today.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-04-30 10:36:58 +02:00
798ec8d1ca Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-04-29 14:06:41 +02:00
8f5dd0969c casing 2021-04-29 14:06:35 +02:00
Willem Dantuma
861a8a48fc Add dataFilter to children/count
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-04-29 13:49:38 +02:00
86a545d7e6 Add IUser.newsLetter
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-04-29 10:29:31 +02:00
Willem Dantuma
8a1c4b5e20 Only show prent namewhen of type ..cropfield
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-04-26 08:01:43 +02:00
b24e47e39b AW-2214 Fix refactored itemtype.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-04-23 10:54:52 +02:00
c0d8e6d615 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-04-23 10:50:50 +02:00
7192f66420 AW-2211 Update *fmHasPackage directive 2021-04-23 10:50:45 +02:00
Willem Dantuma
dcc24aa149 Fix setExtent
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-04-19 08:43:20 +02:00
Willem Dantuma
0485c163ad Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-04-12 15:55:38 +02:00
Willem Dantuma
1380d7169a Fix trigger
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-04-12 15:52:42 +02:00
Willem Dantuma
a6d3b208b0 Hide buttons when no routing to sink
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-04-12 15:10:29 +02:00
Willem Dantuma
cbf805e1ff Fix novalue
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-20 20:29:27 +01:00
Willem Dantuma
8907dca091 Set color default to no value color
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-20 20:07:31 +01:00
Willem Dantuma
fe1fddd211 Update layer
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-20 18:35:22 +01:00
Willem Dantuma
fa146f2c6e Refactor fmMapIfZoomToShow
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-20 18:26:01 +01:00
Willem Dantuma
c9fac05aa6 Refactor to fm-map-feature-thumbnail
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-20 12:00:04 +01:00
Willem Dantuma
75d8909997 Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-20 11:29:08 +01:00
Willem Dantuma
36d9c98e47 Clear view
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-03-20 11:25:23 +01:00
Willem Dantuma
e2255164fc Run npm audit fix 2021-03-20 11:09:26 +01:00
Willem Dantuma
4c5b77000f Update libs 2021-03-20 11:08:54 +01:00
Willem Dantuma
997ebb24a7 Implement then else for haspackage
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-20 11:06:04 +01:00
00346a963e Pfff
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-17 19:33:54 +01:00
a42059627a Added level to get features call
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-03-16 21:30:20 +01:00
Willem Dantuma
5b710ce200 Refactor getcolor
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-15 16:26:05 +01:00
Willem Dantuma
f8a0e1e167 Add SetUnreadNotifications action
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-08 08:45:13 +01:00
Willem Dantuma
eb46b3496a Fix type check
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-06 14:29:01 +01:00
Willem Dantuma
e8bbb74185 Fix temporal and initial loading
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-06 14:06:31 +01:00
Willem Dantuma
3d8ce7ee74 Fix null check
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-05 19:03:50 +01:00
Willem Dantuma
aa308abbb0 Fix request canceling
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-05 18:41:09 +01:00
Willem Dantuma
9d5cd0fa88 Add layer values
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-05 17:19:30 +01:00
Willem Dantuma
5760c2b8ea oops
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-05 12:40:52 +01:00
Willem Dantuma
1e6c9e9363 Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-03-05 12:39:41 +01:00
Willem Dantuma
8f06a56e52 Add ngx-clipboard
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-03-05 12:37:10 +01:00
Willem Dantuma
2f74f43c8e Add getLayerValue
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-05 11:10:39 +01:00
Willem Dantuma
c093ffae50 run npm audit fix 2021-03-05 07:52:05 +01:00
Willem Dantuma
c7da0866ef Fix mime type
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-02 17:21:54 +01:00
Willem Dantuma
b000d5119a Return correct file
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-02 16:51:16 +01:00
2dd10f04a3 Return selected file as well
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-02 15:36:01 +01:00
4d62184e5b Revert "Return modal reference for client side handling."
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
This reverts commit 8ad9d56b07.
2021-03-02 15:13:42 +01:00
8ad9d56b07 Return modal reference for client side handling.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-02 14:48:49 +01:00
Willem Dantuma
2b1cb1ac8f Add save image parameter
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-02 13:15:16 +01:00
Willem Dantuma
08163f86bf Add more open options
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-02 12:20:53 +01:00
Willem Dantuma
33adb35923 Export image editor
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-02 09:35:39 +01:00
Willem Dantuma
855bd8fe2d Re add thumbnail component
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-02 08:16:16 +01:00
Willem Dantuma
fad257c6e2 Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-02 08:13:07 +01:00
Willem Dantuma
e262f7c65d Merge branch 'feature/thumbnail_upload' into develop
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-03-02 08:10:10 +01:00
Willem Dantuma
cabdeaa875 Reload image on change 2021-03-02 08:09:42 +01:00
Willem Dantuma
2f1c5210ea Save image 2021-03-01 22:03:18 +01:00
Willem Dantuma
47f3238edd Add no-image placeholder 2021-03-01 17:25:40 +01:00
Willem Dantuma
01488ae2e0 Remove background color 2021-03-01 17:01:57 +01:00
Willem Dantuma
ae02dd0b53 Merge branch 'develop' into feature/thumbnail_upload 2021-03-01 16:57:15 +01:00
Willem Dantuma
7768387f58 Basic edit-image-modal 2021-03-01 16:56:48 +01:00
3c0f220ee3 Span required instead of div
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-01 12:49:12 +01:00
38e64a0713 Fix
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-03-01 12:38:16 +01:00
0bb5406773 AW-1881
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-03-01 12:32:14 +01:00
7c125f1771 AW-1881
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-27 14:47:16 +01:00
3673e0b349 Fixes
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-27 10:27:49 +01:00
ece6096064 AW-1881 Avatar
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-27 10:16:07 +01:00
Willem Dantuma
dd71b49502 Merge branch 'develop' into feature/thumbnail_upload
# Conflicts:
#	package-lock.json
#	projects/common/src/fm/common.module.ts
2021-02-25 20:18:59 +01:00
Willem Dantuma
a098f72b1a Start of thumbnail upload dialog 2021-02-25 19:57:09 +01:00
535f6bd064 Add ngx avatar
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-25 17:32:58 +01:00
74e7f41583 Added avatar
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-02-25 17:17:52 +01:00
b537239c96 AW-1881 Avatar based on first letters of firstname and lastname
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-18 16:09:25 +01:00
f9ba4fd5e2 Revert "Update version"
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
This reverts commit 8326255ce9.
2021-02-17 12:30:54 +01:00
8326255ce9 Update version
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-17 12:27:13 +01:00
3d60d0127b AW-1959 Fix?
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-16 17:23:15 +01:00
697708710e Fix help-menu.component.ts
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-16 17:07:40 +01:00
102d96ded9 AW-1959 Add global help-menu
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-16 16:49:23 +01:00
Willem Dantuma
f802f41bbb Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-15 11:34:27 +01:00
Willem Dantuma
d134240b8b Add fm-thumbnail component 2021-02-15 11:34:21 +01:00
3242058c4f refactor user api
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-15 11:03:24 +01:00
3f6863845b renamed package guard and added it to public api
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-11 17:43:19 +01:00
Willem Dantuma
231fbf9ee8 Add test
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-11 11:49:28 +01:00
Willem Dantuma
142a1c9e58 Add notification menu
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-11 11:44:34 +01:00
39993e75da added a package guard
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-05 12:51:43 +01:00
Willem Dantuma
b7b168dffb Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-03 17:28:42 +01:00
Willem Dantuma
fb9c11fce6 Some fixes update libs 2021-02-03 17:28:35 +01:00
da562ca96d fix
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-03 09:13:08 +01:00
33d03c3d58 add searchable field to user
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-02-03 09:02:58 +01:00
Willem Dantuma
335078a10c Fix header
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-02 17:38:34 +01:00
Willem Dantuma
bb71c043a1 Fix headers
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-02 17:25:26 +01:00
Willem Dantuma
cb222770d8 Refactor to range requests
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-02 17:09:03 +01:00
Willem Dantuma
f26ececb9b Fix nullref
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-02 14:45:33 +01:00
Willem Dantuma
2d285eaba0 Fix device change detection
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-01 08:43:33 +01:00
Willem Dantuma
d9a42ca75a Hide heading and tolerance on desktop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-02-01 08:34:17 +01:00
Willem Dantuma
0c44beabe0 Change map button styling
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-30 16:40:25 +01:00
Willem Dantuma
dd97c89254 Fix outlet
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-30 14:41:34 +01:00
Willem Dantuma
45de27f666 Add haspackage for 3d
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-30 11:14:25 +01:00
Willem Dantuma
5b0632ebf1 Re enable gps location
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-30 10:51:45 +01:00
Willem Dantuma
8389943d1a update to ol 6.5.0 and ol-cesium 2.12.0
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-30 10:20:17 +01:00
Willem Dantuma
2606de5f0a Fix side panel display logic
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-30 09:56:56 +01:00
Willem Dantuma
208dfed7fb Add checks
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-29 12:42:19 +01:00
Willem Dantuma
eb50218a8d Refactor some stuff to a service
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-29 12:00:59 +01:00
Willem Dantuma
516d63a59e Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-29 11:33:22 +01:00
Willem Dantuma
321d34870e Add zoom to show alert
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-01-29 11:25:37 +01:00
Willem Dantuma
dbc330ab46 Move side panels to map context to get access to map 2021-01-29 10:10:13 +01:00
Willem Dantuma
154bcba620 Implement *fm-map-ifZoomToShowdirective 2021-01-29 10:04:47 +01:00
Willem Dantuma
2f5ffde4d9 More updates
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-27 21:43:46 +01:00
Willem Dantuma
69e153abd7 upgrade
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-27 21:32:31 +01:00
Willem Dantuma
669c724e3a Fix styling app and user menu on mobile device
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-27 10:33:01 +01:00
Willem Dantuma
a7402438a0 oops
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-27 08:14:13 +01:00
Willem Dantuma
dda82c8b09 Add device service migrate, use back-button
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-01-27 08:11:37 +01:00
Willem Dantuma
3e14157e87 Adjust bottom margin 2021-01-27 07:53:59 +01:00
Willem Dantuma
1e84874695 Export back-button
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-27 07:34:10 +01:00
Willem Dantuma
9245003dd9 Export back-button
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-27 07:26:31 +01:00
Willem Dantuma
8d061210dc Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-27 07:15:11 +01:00
Willem Dantuma
8a40335cf2 Fix build 2021-01-27 07:11:06 +01:00
Willem Dantuma
ce9c72016d Add back button
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-01-27 07:08:31 +01:00
Willem Dantuma
a082967c69 Add getItemFeature method
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-26 19:53:51 +01:00
Willem Dantuma
a2e7439776 re add Optimisation
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-26 17:48:11 +01:00
Willem Dantuma
e858ac778c Fix temporal layer selection
Some checks reported errors
FarmMaps.Develop/FarmMapsLib/pipeline/head Something is wrong with the build of this commit
2021-01-26 17:47:17 +01:00
Willem Dantuma
290d5d1d26 Fix eventhandler install for temporal
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-26 17:07:45 +01:00
Willem Dantuma
e75afdc01d Fix destroy and eventhandler install
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-26 16:47:08 +01:00
Willem Dantuma
8f54e095fe debug
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-26 15:27:40 +01:00
Willem Dantuma
431cc78c19 remove layer when destroyed
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-26 14:38:40 +01:00
Willem Dantuma
878944b056 Export temporal item layer
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-26 09:59:02 +01:00
Willem Dantuma
d2b8de17d1 Fix hover and select remove @Host()
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-26 09:12:37 +01:00
Willem Dantuma
ac352473a0 add i18n tag
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-25 21:14:47 +01:00
Willem Dantuma
8655307858 Fix date
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-25 21:11:20 +01:00
Willem Dantuma
17a947ce20 Oops
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-25 20:32:52 +01:00
Willem Dantuma
fe356441d0 Use timespan for temporal items
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-01-25 20:30:13 +01:00
Willem Dantuma
b17bce1cd2 Add default unitScale
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-25 20:18:04 +01:00
Willem Dantuma
bb555eec74 Remove fill colors for selected items 2021-01-25 18:28:26 +01:00
Willem Dantuma
d3c28847ec Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
# Conflicts:
#	projects/common-map/src/fm-map/components/aol/layer-list/layer-list.component.html
2021-01-25 17:26:59 +01:00
Willem Dantuma
e2499d0403 Fix icons 2021-01-25 17:26:15 +01:00
8f364c4990 fix bar-chart icon
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-25 11:42:57 +01:00
Willem Dantuma
46f4ac06f4 Fix icons
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-24 11:08:41 +01:00
Willem Dantuma
b5d42d855e Fix spacing and up down icon
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-24 09:26:30 +01:00
Willem Dantuma
b14b01b358 Update icons
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-24 09:09:43 +01:00
Willem Dantuma
08acba9a88 Merge branch 'feature/vectortileselect' into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-23 18:41:44 +01:00
Willem Dantuma
b30c29a5f1 Some fixes and optimizations 2021-01-23 18:30:29 +01:00
Willem Dantuma
2f4e14ca1f Merge branch 'develop' into feature/vectortileselect 2021-01-23 17:28:24 +01:00
Willem Dantuma
bfcdcce9ef Fix fontawesome class names
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-22 14:52:10 +01:00
Willem Dantuma
9e3e7d5d47 Upgrade to fontawesom 5.15.2 2021-01-22 13:13:48 +01:00
Willem Dantuma
2949e39fcd wip 2021-01-22 12:26:14 +01:00
Willem Dantuma
9376c236aa Merge branch 'develop' into feature/vectortileselect
# Conflicts:
#	package-lock.json
#	package.json
2021-01-21 11:04:57 +01:00
Willem Dantuma
a1079eb21f update libs
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-21 11:04:22 +01:00
Willem Dantuma
c266ce7d42 Update libs 2021-01-21 11:03:37 +01:00
428e3b002d Fix UTC
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-18 16:45:37 +01:00
65366ff09b Again....
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-18 15:23:44 +01:00
0f1ce45b2f AW-1844 Fix fmHasPackage
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-01-18 15:21:34 +01:00
1ade8025ab Fix HasPackageDirective
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-01-18 15:01:08 +01:00
Willem Dantuma
ac8815e8f1 Commit 2021-01-13 17:33:01 +01:00
41b1295f9e Move mollie code ( srvice ) uit farmmapslib halen ( is open source ), naar farmmaps
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-13 17:29:48 +01:00
ed5a74ed07 Export new Mollie types
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-13 17:18:45 +01:00
a08eed7c67 AW-1805 Update mollie service (client)
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-13 16:40:35 +01:00
cc421742df AW-1805 Add support for validity
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-12 09:05:27 +01:00
9a38630d01 Fix URL
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-11 19:50:24 +01:00
978360fad0 Build error
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2021-01-11 19:34:39 +01:00
30dab68468 AW-1805 Add mollie service
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2021-01-11 19:32:08 +01:00
Willem Dantuma
80fec7ccaa Some fixes 2020-12-18 20:16:22 +01:00
Willem Dantuma
1a1cd7a81c Merge branch 'develop' into feature/vectortileselect 2020-12-18 19:22:33 +01:00
a782d8ebe9 add clearlayers action
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-12-16 23:01:59 +01:00
Willem Dantuma
a0816afaea Add SetSelectedItemLayer action
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-12-16 18:04:39 +01:00
Willem Dantuma
6746047fe2 Add setfeatures action
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-12-11 13:35:51 +01:00
Willem Dantuma
7266c98a10 Add router-outlet to map component to make it more reusable
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-12-11 12:08:15 +01:00
Willem Dantuma
e873f5af5b Fix icon
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-12-09 23:39:44 +01:00
Willem Dantuma
44f476d5fd Add app-menu 2020-12-09 21:45:38 +01:00
Willem Dantuma
200f3e95eb Dont's show blank screen 2020-12-09 20:35:01 +01:00
Willem Dantuma
1a8bc43c60 Remove horizontal scrollbar
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-12-09 15:23:50 +01:00
Willem Dantuma
6dccaa8ce5 Wait for item types to be loaded
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-12-08 16:14:58 +01:00
Willem Dantuma
f2cb5d4d64 Update configuration
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-12-07 17:20:34 +01:00
6252cc120b aw-1686 expand user profile; added put operation
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-11-18 15:07:39 +01:00
Willem Dantuma
03284d26dd Merge branch 'develop' into feature/vectortileselect 2020-11-06 08:59:08 +01:00
946cbc6533 AQ-1659 Add getItemListUsingRelationship(...)
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-11-05 17:44:39 +01:00
Willem Dantuma
6277236993 Merge branch 'develop' into feature/vectortileselect 2020-11-03 20:22:25 +01:00
Willem Dantuma
20bda6b81f Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-11-03 20:21:39 +01:00
Willem Dantuma
9a338c04e6 Basic working implementation 2020-11-03 20:21:18 +01:00
65c1643c95 AW-1649 Remove codelistitem
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-11-03 13:05:59 +01:00
Willem Dantuma
9cbc9f1293 Implement event handlers 2020-11-02 21:00:13 +01:00
Willem Dantuma
34b75a4c18 Upgrade openlayers 2020-11-02 20:58:32 +01:00
Willem Dantuma
1991e79ed2 Add landingpage and lazyloading voor 3d map
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-11-02 12:24:15 +01:00
Willem Dantuma
d661e5f3f9 Fix zoom padding
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-11-01 15:35:38 +01:00
Willem Dantuma
0a384a9196 Fix zoomto padding 2020-11-01 15:34:01 +01:00
Willem Dantuma
0e13b98b7f Detect changes
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-31 16:58:03 +01:00
Willem Dantuma
56a7544c1e Make reverse non destructive
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-31 13:43:31 +01:00
Willem Dantuma
61636b6e3d Reverse arrays
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-31 13:38:27 +01:00
Willem Dantuma
ab835e904e Fix routes
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-31 11:45:03 +01:00
Willem Dantuma
cd10165510 Remove old init
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-30 13:12:13 +01:00
Willem Dantuma
446d26607c Fix initalisation
Some checks reported errors
FarmMaps.Develop/FarmMapsLib/pipeline/head Something is wrong with the build of this commit
2020-10-30 13:11:20 +01:00
Willem Dantuma
8d204ce1cd Some fixes
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-30 12:37:02 +01:00
Willem Dantuma
2656a67fca Refactor token refresh flows
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-30 08:22:58 +01:00
Willem Dantuma
46c5f74b49 Refactoring for landingpage support
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-29 19:14:06 +01:00
Willem Dantuma
a5ece9b453 Fix map viewport size
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-28 17:54:46 +01:00
Willem Dantuma
9fb5a9698c Refactor map component
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-28 13:31:12 +01:00
fad2f19ae4 added readWrite property for codeListItem
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-13 08:38:23 +02:00
2ad04fc7c1 Added getCodeListItem api for service
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-12 17:41:24 +02:00
f656ecd23f undo previous commit
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-12 14:05:27 +02:00
d42aad87bd Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-10 12:02:34 +02:00
415ee8ef30 something weird, codeList item in url seems empty. But item is not empty 2020-10-10 12:00:05 +02:00
Willem Dantuma
306065dcbd Fix logout issue
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-09 16:35:14 +02:00
824ba97704 try to fix deleteCodeListItem
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-09 07:47:47 +02:00
ac8ab147bc added codelist service
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-08 14:25:33 +02:00
Willem Dantuma
640c99cde2 Add test component
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-06 09:07:40 +02:00
Willem Dantuma
da2492e017 Add fm-gradient-select
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-06 08:22:10 +02:00
Willem Dantuma
f93d235877 add fm-gradient component
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-05 14:58:47 +02:00
Willem Dantuma
fe798e3f60 Fix AW-1508
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-05 11:08:36 +02:00
Willem Dantuma
b8dcc4e9e0 Add 3D example to test app
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-02 17:48:34 +02:00
Willem Dantuma
4b6175b6c4 Add npm scope
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-02 17:37:36 +02:00
Willem Dantuma
388a2faf84 Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-02 17:33:25 +02:00
Willem Dantuma
0b0bb4d598 Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-10-02 17:26:18 +02:00
Willem Dantuma
7696ddd8d2 Add common-map3d to jenkins build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-10-02 17:23:11 +02:00
Willem Dantuma
1301a9d082 Merge branch 'feature/Resurect_3D' into develop 2020-10-02 17:21:01 +02:00
Willem Dantuma
e87affee08 Refactor 3d to own library 2020-10-02 17:20:00 +02:00
Willem Dantuma
b00b21e6b8 Merge branch 'develop' into feature/Resurect_3D 2020-10-02 16:44:11 +02:00
Willem Dantuma
835851350c Fix i18n tags
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-10-02 07:46:59 +02:00
Willem Dantuma
7bdb48b644 Fix signalr authentication
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-30 18:30:36 +02:00
Willem Dantuma
84d6f44e9b Fix transition
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-29 20:57:14 +02:00
Willem Dantuma
2fd109d967 Fix AW-1414
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-29 15:27:21 +02:00
Willem Dantuma
f9934ccf27 Fix AW-1355
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-29 14:56:23 +02:00
Willem Dantuma
b93218e165 Merge branch 'develop' into feature/Resurect_3D
# Conflicts:
#	angular.json
#	package-lock.json
#	package.json
#	projects/common-map/package.json
2020-09-26 12:17:58 +02:00
Willem Dantuma
8e55308df9 First working angular 10 version
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-26 10:10:38 +02:00
Willem Dantuma
5270739641 Fix versions
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-26 10:03:15 +02:00
Willem Dantuma
ce8e8fa706 Update common
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-09-25 21:24:54 +02:00
Willem Dantuma
d326a82c4e Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-09-25 21:18:04 +02:00
Willem Dantuma
c1683a058c Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-09-25 21:16:38 +02:00
Willem Dantuma
aa168bb3a1 Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-09-25 19:55:08 +02:00
Willem Dantuma
fe53955bea Try to fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-09-25 19:47:39 +02:00
Willem Dantuma
ba3dad1365 Fix dep
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-09-25 19:38:47 +02:00
Willem Dantuma
6d2d259c01 Merge branch 'feature/angular_upgrade_10' into develop
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-09-25 19:28:18 +02:00
Willem Dantuma
92774647ff Upgrade to angular 10 2020-09-25 19:27:53 +02:00
Willem Dantuma
9ca047923f npm auit fix 2020-09-25 17:10:17 +02:00
Willem Dantuma
c893a2820b Fix responsetype
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-22 19:29:44 +02:00
Willem Dantuma
baa0166fc8 Stupid bug :-(
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-22 15:13:00 +02:00
Willem Dantuma
58c200aca0 Another attempt to fix parameter
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-22 15:03:23 +02:00
Willem Dantuma
b8a4b3541d Fix params
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-22 14:46:51 +02:00
Willem Dantuma
584a1514ac Add getItemData
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-22 13:58:33 +02:00
Willem Dantuma
21af6ab2c4 Some styling fixes 2020-09-18 17:19:29 +02:00
Willem Dantuma
c606e02673 Fix static image layer 2020-09-18 16:05:44 +02:00
Willem Dantuma
ff4eb296ff Update libs
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-18 14:50:17 +02:00
Willem Dantuma
ea26cdd628 Update libs
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-18 14:30:20 +02:00
Willem Dantuma
26e28bdda8 Revert changes 2020-09-18 14:29:50 +02:00
Willem Dantuma
15d1f14ee1 More or less working now 2020-09-18 14:20:33 +02:00
Willem Dantuma
22e007b70b First attempt to bring back 3D view in map 2020-09-18 08:38:05 +02:00
Willem Dantuma
9e4a538a07 Implement min/maxzoom on vectorlayer
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-16 20:09:52 +02:00
Willem Dantuma
c44c771feb Use indexKey if specified
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-16 15:02:42 +02:00
Willem Dantuma
394bbab320 Add support for alpha in legend
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-16 14:40:03 +02:00
Willem Dantuma
3008081ae8 Implement stylecache for vectorlayer
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-16 13:38:06 +02:00
Willem Dantuma
7474c00498 Fix layerindex
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-16 10:34:04 +02:00
Willem Dantuma
964bf925e7 Fix typo
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-15 15:01:20 +02:00
Willem Dantuma
fb8129148d Add to module
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-15 14:01:24 +02:00
Willem Dantuma
73db03148a First attempt package preload strategy 2020-09-15 14:00:18 +02:00
Willem Dantuma
6367d3399d Implement default baselayer option
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-09 09:54:50 +02:00
Willem Dantuma
ee4e7113d2 Add TileJSON interface 2020-09-09 09:47:32 +02:00
Willem Dantuma
ad86e41345 Add background-color padding and border
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-04 10:40:34 +02:00
Willem Dantuma
e682b375e7 Add user-menu router outlet
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-04 10:10:01 +02:00
Willem Dantuma
78425a621a Fix fm-hasclaim
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-03 12:43:55 +02:00
1030b1c41a removed logging in weather service.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
changed moment to peerdependency.
2020-09-03 10:37:24 +02:00
76bdad6eaf fixed build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-03 10:25:39 +02:00
ce56dd9e9f updated weather service with correct date manipulation.
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-09-03 10:19:12 +02:00
e7a53ba7b5 HourlyWeatherData time changed to string.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-02 21:32:47 +02:00
9f1f6934ee made hourly weather data static typed.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-02 16:21:49 +02:00
773bf3f5e7 fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-09-02 15:28:12 +02:00
cdc900d5fd fixed weather service
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-09-02 15:23:54 +02:00
80522a3a2f Revert "AW-1435 Add links to package manager and widget manager"
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
This reverts commit 0157812357.
2020-08-17 15:53:02 +02:00
0157812357 AW-1435 Add links to package manager and widget manager
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-17 14:19:38 +02:00
329564d8f6 AW-1431 Oops
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-13 15:47:04 +02:00
ba2a067c8b AW-1431 Expose new property
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-08-13 15:28:30 +02:00
4d67a656f5 AW-1431 Add InitUserSettingsRoot
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-13 13:06:28 +02:00
ad1d40cdd1 AW-1426 Add extra check.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-11 19:13:57 +02:00
131e0eb371 Cleanup
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-11 19:03:05 +02:00
e563011099 New try
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-08-11 18:58:50 +02:00
7c072752c8 Build fixed
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-08-11 18:52:39 +02:00
36ced002e0 Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-08-11 18:50:08 +02:00
3e1b892eef Fix build?
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-08-11 18:38:15 +02:00
f4004cf2be Revert "AW-1426 Add extra check"
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
This reverts commit a6fd052a4f.
2020-08-11 14:42:45 +02:00
d1d8723186 Rollback c028adfb77
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-08-11 14:40:04 +02:00
a6fd052a4f AW-1426 Add extra check
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-08-11 14:35:04 +02:00
cede944538 Revert "AW-1426 Remove default component if none found"
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
This reverts commit 3b3c2768d3.
2020-08-11 14:24:12 +02:00
3b3c2768d3 AW-1426 Remove default component if none found
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-08-11 14:11:51 +02:00
3dd19c702f Remove Trijntje
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-08-11 13:32:05 +02:00
c028adfb77 Updated statistics confidence interval.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-06 12:04:56 +02:00
1d2caa0fe3 Updated statistics labels.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-06 09:15:31 +02:00
Willem Dantuma
d7ca1512bd Add TaskProgressEvent
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-05 20:05:44 +02:00
Willem Dantuma
ebe435027f Add addedfiles stream
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-05 15:49:02 +02:00
Willem Dantuma
dfefa6746f Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-05 10:34:04 +02:00
Willem Dantuma
c90df5c972 Fix userPackagesChanged 2020-08-05 10:33:55 +02:00
514a91c2c7 Improved implementation to retrieve user packages.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-05 09:02:28 +02:00
Willem Dantuma
ee7d1cb9a2 AW-1419
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-04 16:09:22 +02:00
309b320534 AW-1415 Add postItemPackageTask
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-04 14:08:50 +02:00
fdfa7d3387 Typo
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-03 08:48:11 +02:00
Willem Dantuma
6785bfc3e0 Fix when not having READ rights on the parent
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-08-01 09:44:32 +02:00
Willem Dantuma
c682fb9184 Fix z-index
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-31 09:51:28 +02:00
Willem Dantuma
ca6ea96eae Add interfacetype VectorWFSJson
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-30 09:33:32 +02:00
Willem Dantuma
3ebc197fac Make extent nullable
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-29 08:43:17 +02:00
52871efb09 fix for statistics
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-28 20:02:23 +02:00
f014dc9f93 now use statistics if available in band.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-28 19:05:38 +02:00
e6cda406c9 improved alignment of legend. fixed rain in weatherservice.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-25 09:57:24 +02:00
df04397b13 I info icon now placed in the top right.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-23 19:39:06 +02:00
Willem Dantuma
e0b29c905c Fix height
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-23 11:48:31 +02:00
Willem Dantuma
44ae806b30 Add offline alert
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-23 11:28:07 +02:00
Willem Dantuma
78e3cf74b9 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-23 09:43:03 +02:00
Willem Dantuma
428353d379 Fix inituser flow 2020-07-23 09:42:44 +02:00
9697e93915 convert hourly to daily with wilco's new changes for weather2.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-22 23:04:06 +02:00
Willem Dantuma
e057e463bd Only on change
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-22 21:16:38 +02:00
Willem Dantuma
d494a7c7d6 Implement healthcheck service
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-22 20:31:12 +02:00
Willem Dantuma
e525227865 another attempt to implement on /offline
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-22 18:49:15 +02:00
Willem Dantuma
10bdd27608 Check token when going online
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-22 09:05:02 +02:00
Willem Dantuma
2790ae74e7 Mirror navigator online flag in observable state 2020-07-22 08:52:41 +02:00
Willem Dantuma
31d01c75c5 And another potential issue
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-22 08:23:53 +02:00
Willem Dantuma
0da8d3d46d Fix editing unidentified type
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-22 08:22:35 +02:00
Willem Dantuma
60761e9f4a Fix typo
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-21 19:28:14 +02:00
Willem Dantuma
ec9684b826 Set upload flag only when file is found
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-21 19:11:30 +02:00
Willem Dantuma
1073044f31 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-21 18:40:10 +02:00
Willem Dantuma
81126974f5 After cancel a single file close the upload dialog 2020-07-21 18:39:51 +02:00
06f443a503 fix circular dependency error.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-21 17:06:58 +02:00
eb560aaf33 added weather method do receive historical + forecast weatherdata.
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-07-21 16:57:11 +02:00
Willem Dantuma
464b82bfb9 Fix colspan
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-21 11:21:34 +02:00
Willem Dantuma
1c75fb6f71 Fix upload dialog
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-20 15:07:25 +02:00
Willem Dantuma
5f5d8a9712 Do not add when cancelled
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-20 14:59:27 +02:00
Willem Dantuma
dc329a0e29 Try to fix file count
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-20 14:50:00 +02:00
Willem Dantuma
15a09e4b05 Attempt to fix multiple queue events for file upload
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-20 14:13:30 +02:00
94f973406e fixed parent name size.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-15 23:35:22 +02:00
6404e45d66 fix bug.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-15 23:28:17 +02:00
c0f689331e Added parentitem title to geotiff, shape and temporal selected-item components.
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-07-15 23:15:31 +02:00
0f5a5251db only show legend title if one layer
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-15 13:41:25 +02:00
3352bfd805 Added schema layout api to schemaService
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-09 13:45:24 +02:00
Willem Dantuma
60ed2afaa4 Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-07-07 09:45:13 +02:00
Willem Dantuma
9ac534c171 Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-07-07 09:42:30 +02:00
Willem Dantuma
cecbdb2ded Fix dates
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-07-07 09:37:17 +02:00
Willem Dantuma
1092d5dcaf Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-07-07 09:31:47 +02:00
Willem Dantuma
4af6b2937c Refactor Date to string
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-07-07 09:24:45 +02:00
263fb6c3d4 Changed schema service to return any for json object.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-30 16:30:33 +02:00
Willem Dantuma
09fa8b4f1f Fix template selection
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-30 09:11:46 +02:00
Willem Dantuma
214dc3ffa1 Refactor temporallast
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-29 16:09:19 +02:00
Willem Dantuma
fad04744cf Refactor ILayer
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-29 16:00:53 +02:00
Willem Dantuma
033b74517f Export IDataLayer
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-29 15:51:08 +02:00
Willem Dantuma
0b7564e874 Add data layer
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-29 15:44:23 +02:00
Willem Dantuma
0d247e6416 Fix layerswitcher not opening
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-26 09:18:07 +02:00
Willem Dantuma
b92cc7bc09 Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-26 09:02:33 +02:00
Willem Dantuma
eba18b0235 Close menu's on map click
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-06-26 08:49:35 +02:00
Willem Dantuma
69f8184dfe add closeall action
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-26 08:22:31 +02:00
Willem Dantuma
31c1570ffb Fix relogin issue on mobile
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-25 19:04:40 +02:00
Willem Dantuma
fe2650c4fd Refactored logout
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-25 18:52:13 +02:00
Willem Dantuma
f89209c555 Add logout event handler
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-25 17:21:12 +02:00
Willem Dantuma
b3d0a6f0c7 parse dataenddate
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-25 10:34:25 +02:00
Willem Dantuma
6bd1726fc9 Add dataenddate
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-25 10:01:54 +02:00
Willem Dantuma
b0ff54d157 Add dataenddate
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-25 09:47:53 +02:00
Willem Dantuma
277dc7051e Add shadow and transition
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-24 15:49:57 +02:00
Willem Dantuma
ace4a6b364 Implement toggleaccountmenu action
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-24 15:07:11 +02:00
Willem Dantuma
146514d386 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-24 13:08:27 +02:00
Willem Dantuma
1187ee9fd6 Implement logout 2020-06-24 13:08:13 +02:00
4527276254 Changed schema service.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-24 11:52:05 +02:00
Willem Dantuma
6f52302875 Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-24 08:40:28 +02:00
Willem Dantuma
cbe27c2add Refactor template selection logic add forpackage decorator
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-06-24 08:35:34 +02:00
Willem Dantuma
cd156ab1bc Export packageservice
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-24 07:56:28 +02:00
Willem Dantuma
f9d0e2aee0 Implemented hasclaim directive
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-23 17:51:47 +02:00
Willem Dantuma
253b3d3c90 Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-23 15:44:14 +02:00
Willem Dantuma
28d4adc571 AW-1330
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2020-06-23 15:39:30 +02:00
Willem Dantuma
925af1e645 Update dependency
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-23 14:18:49 +02:00
Willem Dantuma
4130e0a796 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-23 13:36:29 +02:00
Willem Dantuma
01933b1602 AW-1330 add atitemlocationitem parameter 2020-06-23 13:36:03 +02:00
0482aa7124 Added provided in root for schema service
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-22 13:37:38 +02:00
75015f6d22 Added schema service
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-22 13:12:02 +02:00
aa3707aa56 Added getSchema method to itemtypes service.
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-22 12:20:02 +02:00
Willem Dantuma
ff06b419f2 Fix top in fullscreen mode
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-12 12:53:43 +02:00
Willem Dantuma
c1c0bd2596 Add start of user/account menu
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-12 12:24:08 +02:00
Willem Dantuma
978cbdabfc Read both farmmaps currentuser and authenticate userinfo
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-06-10 21:53:54 +02:00
Willem Dantuma
e0d585e125 Fix wrapping
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-29 10:00:53 +02:00
Willem Dantuma
cc6229002c Make histogram info block collapsable
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-27 10:57:25 +02:00
Willem Dantuma
ca776b0cb5 Fix layer index for real this time ( https://angular.io/guide/ivy-compatibility-examples#cannot-bind-to-value-property-of-select-with-ngfor )
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-27 09:14:43 +02:00
Willem Dantuma
7b29ca28d9 Fix layer index
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-26 18:19:46 +02:00
Willem Dantuma
0fb71a9227 Fix i18n tag
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-26 17:20:30 +02:00
Willem Dantuma
f1bfc9fec0 Add confidence interval
Some checks reported errors
FarmMaps.Develop/FarmMapsLib/pipeline/head Something is wrong with the build of this commit
2020-05-26 17:19:07 +02:00
Willem Dantuma
705d811832 Fix layer index
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-26 17:04:44 +02:00
Willem Dantuma
3ed68efab7 Mark some text as translatable
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-25 10:04:35 +02:00
Willem Dantuma
454dc26128 Try to fix exception
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-21 18:28:03 +02:00
Willem Dantuma
d56cfa805b Fix some issues
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-21 18:18:38 +02:00
Willem Dantuma
506b15cd4f Fix null ref
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-19 11:51:06 +02:00
Willem Dantuma
4a0474546c Converted observer to behaviorsubject 2020-05-19 11:46:27 +02:00
Willem Dantuma
51bb5b3833 Fix base map not showing
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-19 11:14:07 +02:00
Willem Dantuma
f4d1a04303 Add profile scope, expose start and stop methods events service
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-16 10:46:55 +02:00
Willem Dantuma
44cac3e1ab Update libs
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-13 12:47:26 +02:00
Willem Dantuma
2ea51d94ef Add basic package managing plumbing
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-13 12:30:09 +02:00
Willem Dantuma
750a743a50 Fix promise resolve
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-11 20:57:45 +02:00
Willem Dantuma
1c8db3ac94 Add some debug logging
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-11 20:50:38 +02:00
Willem Dantuma
b70ec77328 Fix authguard
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-11 20:39:00 +02:00
Willem Dantuma
baf8767a91 Refactor authentication flow
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-09 09:14:16 +02:00
Willem Dantuma
62887e8089 Implement canactivatechild also
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-06 14:13:10 +02:00
Willem Dantuma
24eef611d4 Add get user selector
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-05-04 14:47:04 +02:00
Willem Dantuma
62d5779c75 Fix url at page refresh
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-23 11:11:07 +02:00
Willem Dantuma
3493e96aad Fix panel on mobile
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-23 10:50:29 +02:00
Willem Dantuma
23ff92de6c Update libs
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-23 09:08:44 +02:00
Willem Dantuma
279d7eeca6 Fix imports
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-22 12:34:07 +02:00
Willem Dantuma
bb979e4322 Merge branch 'feature/streamline_flow' into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-22 12:27:11 +02:00
Willem Dantuma
d57ffe59e7 Fix style 2020-04-22 12:16:03 +02:00
Willem Dantuma
4dfa2cd96c Fix query 2020-04-22 09:25:10 +02:00
Willem Dantuma
7eef50eb7a Remove uneeded delay 2020-04-22 08:59:04 +02:00
Willem Dantuma
69751540d3 More refactoring, add thematic maps button 2020-04-22 08:11:50 +02:00
Willem Dantuma
ef81b04f4e More refactoring 2020-04-21 14:54:13 +02:00
Willem Dantuma
e41c728fb2 Fix zoom to extent 2020-04-21 13:22:54 +02:00
Willem Dantuma
4e83bc6158 Some refactoring 2020-04-21 12:31:20 +02:00
Willem Dantuma
c6d7f6b0cb Add action logging and some refactoring 2020-04-17 13:26:50 +02:00
Willem Dantuma
3828db341a Add debug logging
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-17 08:39:48 +02:00
Willem Dantuma
da0534e928 Make templating more responsive
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-17 08:01:39 +02:00
Willem Dantuma
be4cbd36d1 Add null check
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-16 17:43:13 +02:00
Willem Dantuma
8e0c424f81 Try to fix navigation issue
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-16 17:32:02 +02:00
Willem Dantuma
e30d95ff09 Refactor edit_in_editor
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-16 17:05:07 +02:00
Willem Dantuma
0b32153489 Also supply parentcode and itemtype
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-16 16:01:06 +02:00
Willem Dantuma
3e0cf6d691 Fix click on feature
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-16 15:47:15 +02:00
Willem Dantuma
d34a2069d6 Fix feature highlighting
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-16 13:19:06 +02:00
Willem Dantuma
9fbc946c68 Repeat signalR authenticate
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-16 11:04:39 +02:00
Willem Dantuma
e964fa72f3 Automatic reconnect signalR
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-15 21:31:02 +02:00
Willem Dantuma
1532e141b9 Add getScaledValueto both
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-07 10:22:27 +02:00
Willem Dantuma
490cd92707 Fix class
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-07 09:53:32 +02:00
Willem Dantuma
d6c89c7ada Add getScaledValue function
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-07 09:43:54 +02:00
Willem Dantuma
dd138f1168 Use scale in legend
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-07 08:51:31 +02:00
Willem Dantuma
1b165c3575 Remove uneeded search minify
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-07 07:58:04 +02:00
Willem Dantuma
77478078f6 Fix i18n tags
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
2020-04-06 14:51:43 +02:00
Willem Dantuma
61e6092cb3 Update libs
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-04-03 14:03:30 +02:00
Willem Dantuma
0d78fa29f3 Merge branch 'feature/Upgrade_to_angular_9' into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-04-03 13:52:39 +02:00
Willem Dantuma
a892cb890b Move dependencies to peerdependencies 2020-04-02 09:07:19 +02:00
Willem Dantuma
8a6b376373 Revert ol to 6.1.1 2020-04-02 08:43:43 +02:00
Willem Dantuma
80ddf816b0 More migration fixes 2020-04-01 16:11:44 +02:00
Willem Dantuma
511f1f4731 Add @Directive attributes 2020-04-01 10:05:44 +02:00
Willem Dantuma
a5a7e1ece1 Updated ol to6.2.1 2020-04-01 09:19:19 +02:00
Willem Dantuma
c9d1fba36d Updated peer dependencies common 2020-04-01 09:13:41 +02:00
Willem Dantuma
ad7cc655d1 Updated other deps 2020-04-01 09:09:42 +02:00
Willem Dantuma
34990e5de2 Update to angular 9 2020-04-01 09:06:11 +02:00
Willem Dantuma
984408cd52 Update tsickle 2020-04-01 09:02:15 +02:00
Willem Dantuma
3b1b9c0b98 Update @ng-bootstrap 2020-04-01 09:00:30 +02:00
Willem Dantuma
7f776cf56b Update to latest 8.x 2020-04-01 08:55:55 +02:00
8ef248b0a7 AW-1037 Add filter parameter
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-27 15:53:26 +01:00
Willem Dantuma
bf883a779f AW-1079
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-27 13:22:11 +01:00
Willem Dantuma
050fda377b Fix unnecessary "hops" after zooming
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-26 15:55:21 +01:00
Willem Dantuma
dad8e061ea AW-1079
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-26 15:45:57 +01:00
Willem Dantuma
bc17f80050 Fix AW-1056, AW-1080
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-26 14:29:18 +01:00
8db1edb262 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-26 14:06:32 +01:00
e279c04e62 AW-1037 Add itemtasklist to service. 2020-03-26 14:05:50 +01:00
Willem Dantuma
0da2167591 Update dependencies
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-26 14:01:28 +01:00
8e0d302fd4 Revert "AW-1079 Only add one item to overlay."
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
This reverts commit 9c16681b58.
2020-03-26 13:28:36 +01:00
9c16681b58 AW-1079 Only add one item to overlay.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-26 10:38:39 +01:00
d883553934 AW-1104 Pfffft
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-25 14:59:17 +01:00
340d07a03f AW-1104 Fixed link to temporal viewer (graph broken).
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-03-25 14:56:17 +01:00
Willem Dantuma
4bbc22cbde Merge branch 'feature/fix_zoom_issue_after_edit_take2' into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-22 20:25:36 +01:00
Willem Dantuma
80134e5ad0 Remove logging 2020-03-22 20:22:52 +01:00
Willem Dantuma
c777ce75ad Fix zoom issue 2020-03-22 20:08:53 +01:00
af12682341 AW-1084 Fix "An unhandled exception occurred: projects/common-map/src/fm-map/components/selected-item-temporal/selected-item-temporal.component.ts(5,70): error TS2300: Duplicate identifier 'IItem'.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
projects/common-map/src/fm-map/components/selected-item-temporal/selected-item-temporal.component.ts(11,10): error TS2300: Duplicate identifier 'IItem'".
2020-03-20 11:19:30 +01:00
28cfc045fb AW-1084 Van der Sat: cropyear to viewer.
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-03-20 11:15:47 +01:00
9b98f3d91c AW-1072 VanderSat: Balkjes wat dichter bij getallen: % staat soms op volgende regel
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-20 10:47:57 +01:00
0814a6a877 AW-981 Also export type.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-04 10:28:42 +01:00
23eb27cf7f AW-981 Add Alert enum.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-04 10:19:10 +01:00
Willem Dantuma
33b15677d2 Enable chart button
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-04 09:35:54 +01:00
Willem Dantuma
902c3c629e Fix thematic map click
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-03 22:18:01 +01:00
Willem Dantuma
4169d1a26e Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-03 21:16:01 +01:00
Willem Dantuma
7d3679afd2 Add goto chart
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-03-03 21:06:39 +01:00
Willem Dantuma
6921bc7f4a Styling changes
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-03 21:02:33 +01:00
Willem Dantuma
0621b32fba Fix legend
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-03 19:43:17 +01:00
Willem Dantuma
2388968f2a Fix layer selection
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-03 19:24:01 +01:00
Willem Dantuma
24f41879bf Fix query
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-03 16:32:25 +01:00
Willem Dantuma
d4ee784460 Fix import
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-03 10:54:57 +01:00
Willem Dantuma
2434fbf5ee Update libs
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-03 10:32:15 +01:00
Willem Dantuma
141b5055d7 Merge branch 'feature/Temporal_item' into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-03-03 10:22:27 +01:00
Willem Dantuma
a8f82f800f Fixed some issue 2020-03-03 10:21:24 +01:00
Willem Dantuma
5343a4aa98 Basic working version 2020-03-02 13:48:10 +01:00
Willem Dantuma
60c741d935 Implement next and preious temporal 2020-03-02 09:22:16 +01:00
Willem Dantuma
be885ce917 Merge branch 'develop' into feature/Temporal_item 2020-03-02 08:57:20 +01:00
Willem Dantuma
da1c9c3fe2 More refactoring 2020-03-02 08:55:11 +01:00
Willem Dantuma
a151b73d03 Some refactoring 2020-02-29 11:56:19 +01:00
Willem Dantuma
47f77c2819 Display last 2020-02-27 21:41:52 +01:00
Willem Dantuma
841999daba Make itemtype optional
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-27 18:01:17 +01:00
Willem Dantuma
8e29e479de Add selecttemporalitemssuccess 2020-02-27 17:59:00 +01:00
Willem Dantuma
3094170cc2 Some refactoring 2020-02-27 16:28:10 +01:00
Willem Dantuma
795e8fdf0e Fix double scaling issue
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-26 19:29:34 +01:00
Willem Dantuma
007448878b Revert "Revert "Fix thumbnail scaling on zoomed browser""
This reverts commit ebf362e9a9.
2020-02-26 17:21:02 +01:00
Willem Dantuma
ebf362e9a9 Revert "Fix thumbnail scaling on zoomed browser"
This reverts commit 1c70e3495f.
2020-02-26 17:03:00 +01:00
Willem Dantuma
1c70e3495f Fix thumbnail scaling on zoomed browser
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-26 08:44:32 +01:00
Willem Dantuma
e75d71d748 Implement client side thumbnail renderer for features
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-25 20:19:28 +01:00
Willem Dantuma
6916e4650a Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-25 15:14:46 +01:00
Willem Dantuma
38c8def43a Add area to selected-item-cropfield 2020-02-25 15:14:29 +01:00
9c103a0c40 AW-942 Add (optional) deep parameter to getChildItemList.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-25 15:04:12 +01:00
Willem Dantuma
d3b10d46ad Add area and croptype to feature-list-feature-cropfield
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-25 14:37:06 +01:00
Willem Dantuma
f8c3a0db98 Select better threshold for mobile detection
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-25 11:52:27 +01:00
Willem Dantuma
0eaa3065a3 Add margin 2020-02-25 11:26:57 +01:00
Willem Dantuma
f91d727c99 Convert to svg and style rotation-reset
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-25 10:37:03 +01:00
Willem Dantuma
fd18d4921b Fix border color search input
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-24 23:53:32 +01:00
Willem Dantuma
16ad7bfb6f Style map controls as buttons
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-24 23:26:28 +01:00
Willem Dantuma
a3e14a94cc Remove old theming, use correct theme colors and a friendlier icon
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-22 09:45:41 +01:00
Willem Dantuma
2b5bda2a44 Try to fix loop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-21 11:51:42 +01:00
Willem Dantuma
85143986ee remove show_as_featurelist again
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-21 11:28:46 +01:00
Willem Dantuma
ba0a60ba09 Fixes for explorer
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-21 11:16:30 +01:00
Willem Dantuma
a1d7f6d4d2 Fix for diffrent action on feature select on map
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-21 11:06:16 +01:00
Willem Dantuma
c341b3e42f Another attemt to fix zooming
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-21 00:51:10 +01:00
Willem Dantuma
3a38c24360 Fix several issues, attemt to fix zooming issue
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-21 00:11:18 +01:00
Willem Dantuma
abfef73cd1 Refactoring map, place state where it belongs
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-20 21:20:50 +01:00
Willem Dantuma
f82125a486 Fix navigation issue
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-20 17:38:05 +01:00
Willem Dantuma
1a3bbf26f2 Set layerindex
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-19 16:08:46 +01:00
Willem Dantuma
616644de6c Merge branch 'features/geotiff_band_rendering' into develop 2020-02-19 14:56:22 +01:00
Willem Dantuma
c16b9ef5c9 Fix download link on local 2020-02-19 14:55:29 +01:00
Willem Dantuma
7a27df60c2 Implement select_as_mapitem
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-19 12:02:56 +01:00
Willem Dantuma
e8493ef0bd Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-19 11:48:57 +01:00
Willem Dantuma
dae5411e6a Update peer dependency
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-02-19 11:44:07 +01:00
Willem Dantuma
755475bff7 Remove stateserializerservice from common-map
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-02-19 11:37:21 +01:00
Willem Dantuma
9c5955bc6f Forgot to export stateserializerservice
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-19 11:23:43 +01:00
Willem Dantuma
17af34ff94 Move query state to common
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-19 11:15:31 +01:00
92c8b4c1b6 changed selected item geotiff to show layer changer 2020-02-19 10:57:11 +01:00
aa6cd254c7 changed image api 2020-02-19 10:53:14 +01:00
Willem Dantuma
3baf0b15c7 Show edit action only when item editable
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-19 09:34:35 +01:00
Willem Dantuma
593fa78f13 Make isEditable optional
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-19 09:03:02 +01:00
Willem Dantuma
a39578e1a4 Add iseditable to interface
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-18 22:09:58 +01:00
Willem Dantuma
f5868618b7 Add isEditable
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-18 22:02:34 +01:00
Willem Dantuma
2920fd82f1 Fix viewer
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-18 17:00:19 +01:00
Willem Dantuma
ad11de53af Fix z-index layer switcher
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-18 16:41:24 +01:00
Willem Dantuma
d7ac9b937a Update libs
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-18 08:20:32 +01:00
Willem Dantuma
3a4b5dbd9b Fix collopsed search box size on mobile
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-18 08:16:51 +01:00
Willem Dantuma
6eb1b5af55 Update app to match library changes
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-18 08:03:42 +01:00
Willem Dantuma
aa09953b67 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-17 18:31:40 +01:00
Willem Dantuma
a8b079b72b Add layerswitcher 2020-02-17 18:31:23 +01:00
fcef78dee0 AW-915 Use proper container (not just the first).
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-17 12:49:08 +01:00
Willem Dantuma
fd28af2f6c Fix lost styling after navigation
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-17 10:23:17 +01:00
Willem Dantuma
81ed89b240 Fix select on hover ( null ref)
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-14 10:21:49 +01:00
Willem Dantuma
52b4f90b78 Fix selected style
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-13 16:51:23 +01:00
Willem Dantuma
79f45631a0 Fix Set style Geometry
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-13 16:14:18 +01:00
Willem Dantuma
6060a8b86a Use a Style or a Style function as parameter to setStyle action 2020-02-13 16:01:05 +01:00
Willem Dantuma
4814b8fbad Change configuration for identityserver
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-13 14:45:10 +01:00
Willem Dantuma
da97f06db8 npm update
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-13 11:29:55 +01:00
Willem Dantuma
709e964579 Add custom style for vnd.farmmaps.itemntype.layer
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-13 11:24:23 +01:00
Willem Dantuma
3c0bece982 Fix select feature on hover in list
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-13 09:56:17 +01:00
Willem Dantuma
1646119b16 Merge branch 'feature/AW-847' into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-12 21:34:43 +01:00
Willem Dantuma
252ce855c9 Add id4AuthconfigFactory 2020-02-12 21:34:11 +01:00
Willem Dantuma
937dbe9b43 Use refactored styles 2020-02-12 21:33:28 +01:00
Willem Dantuma
6379b64351 Refactor style cache 2020-02-12 20:38:14 +01:00
Willem Dantuma
b83aca7969 Refactor itemtype loading
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-11 18:55:43 +01:00
Willem Dantuma
52170590e3 Remove fm-map-item-features-source ( obsolete )
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-11 14:48:40 +01:00
Willem Dantuma
7a1ba95212 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-05 14:57:35 +01:00
Willem Dantuma
4eb10aa676 AW-900 2020-02-05 14:57:12 +01:00
1cab239155 AW-811: Changed weatherservice
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-04 17:38:04 +01:00
Willem Dantuma
1bec8c2038 Fix menu
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-04 14:21:40 +01:00
Willem Dantuma
9433ef87b2 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop 2020-02-04 14:20:48 +01:00
Willem Dantuma
f0b2b1e774 Add register device placeholder 2020-02-04 14:20:32 +01:00
123bf2943a AW-811: Added weather service to common
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-04 13:57:33 +01:00
fd3545523e Remove annoying 'debugger' statement.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-03 10:32:15 +01:00
6c828f6c6d AW-803 Add count childitems for widget.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-02-03 09:28:24 +01:00
Willem Dantuma
62234b3f9d Refactor authentication flow
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-31 11:24:45 +01:00
e53378a76b AW-803 Fixed -> ERROR: projects/common/src/fm/services/item.service.ts(114,78): error TS2559: Type 'string' has no properties in common with type '{ headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: "body"; params?: HttpParams | { [param: string]: string | string[]; }; reportProgress?: boolean; responseType?: "json"; withCredentials?: boolean; }'.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-30 14:13:59 +01:00
e41b94bb77 AW-803 Add deleteItem.
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-01-30 13:58:01 +01:00
Willem Dantuma
975efe5958 Make upload progress panel optional
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-29 10:23:07 +01:00
5e8e2388b5 AW-803 Ooops
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-28 11:39:09 +01:00
eea6bbbcb5 AW-803 Refactor add
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-28 11:37:33 +01:00
05705afdfe AW-803 Fix casing issue. Remove unused parms.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-28 09:50:33 +01:00
0ba553cc40 AW-803 Add postItem.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-28 09:03:29 +01:00
Willem Dantuma
0674b0ac7c Close menu on navigation
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-27 17:28:17 +01:00
Willem Dantuma
252e920848 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-27 17:01:39 +01:00
Willem Dantuma
77e4093d14 Close menu on navigation 2020-01-27 17:01:35 +01:00
19a8393a3a AW-814: Changed widget component height
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-27 15:03:01 +01:00
Willem Dantuma
af1a54ae07 Fix container width and spacing
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-23 12:20:35 +01:00
63ffdf2519 AW-803 Pass array (take 2).
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-22 14:18:09 +01:00
e3714f4cac AW-803 Added CodeListItemService.
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-01-22 14:12:57 +01:00
e8537ba916 AW-803 Pass string array.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-22 13:57:56 +01:00
Willem Dantuma
2fca6d1fba Update more deps
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-22 11:44:52 +01:00
Willem Dantuma
2199a929eb Update deps 2020-01-22 11:42:20 +01:00
Willem Dantuma
6389331c30 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
# Conflicts:
#	projects/common/src/fm/common-service.module.ts
2020-01-22 11:34:32 +01:00
Willem Dantuma
3f27662e3f Make authstorage configurable 2020-01-22 11:33:33 +01:00
313e0c94f7 AW-835 Fixed ERROR: projects/common/src/fm/services/codelistitem.service.ts(23,5): error TS2322: Type 'Observable<ICodeListItem>' is not assignable to type 'Observable<ICodeListItem[]>'.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-22 10:05:03 +01:00
a12b45f8f9 AW-835 Added CodeListItem. Some cleanup.
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-01-22 09:52:40 +01:00
587e484cf8 AW-835 Remove validFrom/To filter from interface.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-21 18:15:50 +01:00
e8845a092a AW-803 Add CodeListItem + service.
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-21 14:52:36 +01:00
Willem Dantuma
3dca804acd Re login after refresh error
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-20 18:05:45 +01:00
Willem Dantuma
761e987067 navigate after refresh
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-20 18:03:04 +01:00
Willem Dantuma
9277b1fa25 Remove authguard
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-20 17:31:09 +01:00
Willem Dantuma
9103753b09 Try to refresh on startup
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-20 17:26:35 +01:00
Willem Dantuma
f99dfc965f Fix z-index menu overlay
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-17 17:38:53 +01:00
Willem Dantuma
91fb3ac329 Fix menu sliding
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-17 16:39:08 +01:00
Willem Dantuma
36cc8bea7e AW-821 use local storage for tokens
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-15 13:48:49 +01:00
Willem Dantuma
e875ed5a12 Update deps
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-14 16:52:24 +01:00
Willem Dantuma
1a0e0b13e7 Make granttype configurable
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-14 16:46:59 +01:00
Willem Dantuma
f71d96be6e Fix width
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-13 14:43:02 +01:00
Willem Dantuma
40429a67ef Fix menu height
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-08 17:46:52 +01:00
Willem Dantuma
71e7467c17 Realy fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-08 14:52:35 +01:00
Willem Dantuma
d860d9edd2 Fix build
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-01-08 14:46:49 +01:00
Willem Dantuma
8decff316b Fix menu outlet
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-01-08 14:43:44 +01:00
Willem Dantuma
f21648386b AW-823 implementcorrect editor navigation 2020-01-08 14:43:24 +01:00
Willem Dantuma
ab99f6722c Implement menu button
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-08 14:23:24 +01:00
Willem Dantuma
46d0f8c060 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-08 11:38:13 +01:00
Willem Dantuma
b46c33d15c Show navbar 2020-01-08 11:37:57 +01:00
Willem Dantuma
d3bc921000 Add menu background 2020-01-08 11:37:37 +01:00
2c3c8fbff2 Merge branch 'develop' of https://git.akkerweb.nl/FarmMaps/FarmMapsLib into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-08 10:28:15 +01:00
0bf0941bdc Ignore Visual Studio generated files 2020-01-08 10:28:05 +01:00
Willem Dantuma
c52497af59 Fix build
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-07 22:31:56 +01:00
Willem Dantuma
6ad23d280d Fix build
Some checks reported errors
FarmMaps.Develop/FarmMapsLib/develop Something is wrong with the build of this commit
2020-01-07 22:31:27 +01:00
Willem Dantuma
bf0dc15a00 Refactor map for menu removal
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2020-01-07 22:27:46 +01:00
Willem Dantuma
73550b3201 Some menu fixes
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-07 21:43:48 +01:00
Willem Dantuma
e077aa34df Refactor menu panel
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-07 16:33:56 +01:00
Willem Dantuma
58f7c99ddc Store mapstate in localstorage
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-06 18:36:47 +01:00
Willem Dantuma
50d1d9645a Implement copassheading
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-03 16:40:14 +01:00
Willem Dantuma
41d55110ea Fix zone
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-03 15:00:11 +01:00
Willem Dantuma
867fdc3fcc Update libs
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-02 18:22:59 +01:00
Willem Dantuma
64c02614ba Implement pan to, fix zooming on map change
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2020-01-02 18:11:02 +01:00
Willem Dantuma
ac5efdb40f Mark for check on navigation
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-27 13:26:39 +01:00
Willem Dantuma
4b232cc0e4 Use location for path
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-23 17:33:43 +01:00
70fb5b42ec AW-784 Fixed 1 │ @import "../../../app/theme.scss";
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
projects/common-map/src/fm-map/components/selected-item-cropfield/selected-item-cropfield.component.scss 1:9  root stylesheet
An unhandled exception occurred: Can't find stylesheet to import.
2019-12-20 10:05:49 +01:00
719c699981 Merge branch 'feature/AW784_MergeFarmMapsMap_FarmMapsLibMap' into develop
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2019-12-20 09:59:04 +01:00
456628d014 AW-784 Reapply from Farmmaps commits
- cd035366: AW-718 Layout as requested by Thomas.
2019-12-20 09:53:22 +01:00
76a44a8f95 AW-784 Reapply from Farmmaps commits
- cd035366: AW-718 Layout as requested by Thomas.
2019-12-20 09:50:21 +01:00
f66428d04c AW-784 Reapply from Farmmaps commits
- cd035366: AW-718 Layout as requested by Thomas.
2019-12-20 09:47:33 +01:00
ee925d07b4 AW-784 Reapply from Farmmaps commits
- 47deb5f6: AW-772 Panels
2019-12-20 09:41:06 +01:00
9b03b49028 AW-784 Reapply from Farmmaps commits
- 47deb5f6: AW-772 Panels
2019-12-20 09:39:29 +01:00
15c224ff5d AW-784 Reapply from Farmmaps commits
- 5d11bfe8: Enable histogram for shape
2019-12-20 09:36:55 +01:00
7cb129dbc4 AW-784 Reapply from Farmmaps commits
- cd035366: AW-718 Layout as requested by Thomas.
2019-12-20 09:25:09 +01:00
2059b48abb AW-784 Reapply from Farmmaps commits
- a4bb051a: AW-738 fixed bug
2019-12-20 09:19:53 +01:00
e1ff44ed3c AW-784 Reapply from Farmmaps commits
- 6f79b625: AW-738 changed selected-item-container to allow forSourceTask annotation.
2019-12-20 09:18:00 +01:00
Willem Dantuma
709c76a851 Hack for cordova
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-19 18:29:44 +01:00
Willem Dantuma
677608c14d Fix configuration loading
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-19 17:03:10 +01:00
Willem Dantuma
fd8025c674 Update sample app
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-19 13:41:59 +01:00
Willem Dantuma
560c426bc0 Refactor authconfig
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-19 13:32:51 +01:00
Willem Dantuma
e1fef2d7f3 Show histogram
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-18 10:21:25 +01:00
Willem Dantuma
f44b079cde Fix thumbnail source
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-11 18:03:37 +01:00
Willem Dantuma
8e5383b0f2 Update deps
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-11 10:47:32 +01:00
Willem Dantuma
615872992f Implement device update event
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-11 10:29:47 +01:00
Willem Dantuma
2e0b090fb7 Added deviceUpdateEvent
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-12-10 18:14:48 +01:00
Willem Dantuma
5d7fd63adc Oops remember to test it next time..
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-29 12:52:18 +01:00
Willem Dantuma
0948bacaaf Merge latest changes
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2019-11-29 12:24:34 +01:00
8fd653afbc AW-698 Round percentage "Uploading files".
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-29 09:18:35 +01:00
b058cb80b1 AW-716 Spacing
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-29 09:17:45 +01:00
Willem Dantuma
490ae1868b Update README
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-25 16:22:55 +01:00
Willem Dantuma
4384fd1387 Update example to angular 8.2 and ol 6
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-25 15:52:02 +01:00
Willem Dantuma
529b1c9bd7 Upgrade @farmmaps/common-map to angular 8.2
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-25 15:31:42 +01:00
Willem Dantuma
fc84548d8a Oops forgot ng build
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-25 14:49:46 +01:00
Willem Dantuma
e57b8297c0 Disable common-map temporarily
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2019-11-25 14:47:20 +01:00
Willem Dantuma
efe38aba62 Update @farmmaps/common to angular 8.2
Some checks failed
FarmMaps.Develop/FarmMapsLib/develop There was a failure building this commit
2019-11-25 14:43:26 +01:00
Willem Dantuma
7bd5dada2b Update to angular 8.2 2019-11-25 14:34:51 +01:00
Willem Dantuma
16db063339 Make bbox optional
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-18 09:42:05 +01:00
Willem Dantuma
5d79dcc7b6 Update library versions
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-13 11:46:23 +01:00
Willem Dantuma
deda769e8b Add service module
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-12 22:50:57 +01:00
Willem Dantuma
f31e4154b2 Fix date parsing for lists
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-12 16:27:08 +01:00
Willem Dantuma
7476e4c928 Set configuration correctly
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-11 17:38:49 +01:00
Willem Dantuma
d5258b7c79 Update versions
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-11 15:42:50 +01:00
Willem Dantuma
04929a1ca3 Removed index.ts files
All checks were successful
FarmMaps.Develop/FarmMapsLib/develop This commit looks good
2019-11-11 15:39:19 +01:00
Willem Dantuma
67e0e5ed5d Use label instead of value if it is available 2019-11-11 11:08:23 +01:00
338 changed files with 105227 additions and 14062 deletions

1
.gitignore vendored
View File

@@ -22,6 +22,7 @@ speed-measure-plugin.json
*.launch *.launch
.settings/ .settings/
*.sublime-workspace *.sublime-workspace
.vs/*
# IDE - VSCode # IDE - VSCode
.vscode/* .vscode/*

54
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,54 @@
pipeline {
agent any
environment {
PACKAGE_VERSION_PREFIX=sh(script: 'jq .version package.json |sed "s/\\"//g"', returnStdout: true).trim()
PACKAGE_VERSION="${PACKAGE_VERSION_PREFIX}"
}
stages {
stage('npm install'){
steps {
sh '''rm -rf node_modules/
npm install --legacy-peer-deps
cd projects/common
npm install --legacy-peer-deps
cd ../common-map
npm install --legacy-peer-deps
cd ../common-map3d
npm install --legacy-peer-deps
'''
}
}
stage('build'){
steps {
sh '''ng build common --configuration production
ng build common-map --configuration production
ng build common-map3d --configuration production'''
}
}
stage('npm publish'){
steps {
sh '''cd dist/common
npm version ${PACKAGE_VERSION} --allow-same-version
npm publish
cd ../common-map
npm version ${PACKAGE_VERSION} --allow-same-version
npm publish
cd ../common-map3d
npm version ${PACKAGE_VERSION} --allow-same-version
npm publish'''
}
}
}
post {
always {
emailext (
body: '${DEFAULT_CONTENT}',
mimeType: 'text/html',
replyTo: '${DEFAULT_REPLYTO}',
subject: '${DEFAULT_SUBJECT}',
to: emailextrecipients([[$class: 'CulpritsRecipientProvider'], [$class: 'RequesterRecipientProvider']])
)
}
}
}

View File

@@ -7,18 +7,22 @@ pipeline {
stages { stages {
stage('npm install'){ stage('npm install'){
steps { steps {
sh '''npm install sh '''rm -rf node_modules/
npm install --legacy-peer-deps
cd projects/common cd projects/common
npm install npm install --legacy-peer-deps
cd ../common-map cd ../common-map
npm install npm install --legacy-peer-deps
cd ../common-map3d
npm install --legacy-peer-deps
''' '''
} }
} }
stage('build'){ stage('build'){
steps { steps {
sh '''ng build common sh '''ng build common --configuration production
ng build common-map''' ng build common-map --configuration production
ng build common-map3d --configuration production'''
} }
} }
stage('npm publish'){ stage('npm publish'){
@@ -28,6 +32,9 @@ pipeline {
npm publish npm publish
cd ../common-map cd ../common-map
npm version ${PACKAGE_VERSION} npm version ${PACKAGE_VERSION}
npm publish
cd ../common-map3d
npm version ${PACKAGE_VERSION}
npm publish''' npm publish'''
} }
} }

View File

@@ -16,8 +16,8 @@ Use one of the two options below to get started.
*Setup* *Setup*
``` ```
docker pull node:10.16.0 docker pull node:12.13.1
docker run -t -i --entrypoint /bin/bash -p 4200:4200 node:10.16.0 docker run -t -i --entrypoint /bin/bash -p 4200:4200 node:12.13.1
``` ```
Inside the running container Inside the running container

View File

@@ -11,8 +11,12 @@
"schematics": {}, "schematics": {},
"architect": { "architect": {
"build": { "build": {
"builder": "@angular-devkit/build-angular:browser", "builder": "@angular-builders/custom-webpack:browser",
"options": { "options": {
"customWebpackConfig": {
"path": "./custom-webpack.config.js"
},
"aot": true,
"outputPath": "dist/farmmaps-lib-app", "outputPath": "dist/farmmaps-lib-app",
"index": "src/index.html", "index": "src/index.html",
"main": "src/main.ts", "main": "src/main.ts",
@@ -34,16 +38,22 @@
"input": "src/assets", "input": "src/assets",
"output": "/" "output": "/"
}, },
{
"glob": "**/*",
"input": "node_modules/cesium/Build/Cesium",
"output": "/assets/cesium"
},
"src/configuration.json" "src/configuration.json"
], ],
"styles": [ "styles": [
"src/styles.css", "src/styles.css",
"node_modules/bootstrap/dist/css/bootstrap.min.css", "node_modules/bootstrap/dist/css/bootstrap.min.css",
"node_modules/font-awesome/css/font-awesome.min.css", "fontawesome-5.15.2/css/all.min.css",
"fonts/FMIconFont/style.css" "fonts/FMIconFont/style.css",
"node_modules/cesium/Build/Cesium/Widgets/widgets.css",
"node_modules/ol/ol.css"
], ],
"scripts": [], "scripts": []
"es5BrowserSupport": true
}, },
"configurations": { "configurations": {
"production": { "production": {
@@ -66,22 +76,55 @@
{ {
"type": "initial", "type": "initial",
"maximumWarning": "2mb", "maximumWarning": "2mb",
"maximumError": "5mb" "maximumError": "7mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb"
}
]
},
"development": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": false,
"sourceMap": true,
"namedChunks": true,
"extractLicenses": false,
"vendorChunk": false,
"buildOptimizer": false,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "7mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb"
} }
] ]
} }
} }
}, },
"serve": { "serve": {
"builder": "@angular-devkit/build-angular:dev-server", "builder": "@angular-builders/custom-webpack:dev-server",
"options": { "options": {
"browserTarget": "farmmaps-lib-app:build" "browserTarget": "farmmaps-lib-app:build"
}, },
"configurations": { "configurations": {
"production": { "production": {
"browserTarget": "farmmaps-lib-app:build:production" "browserTarget": "farmmaps-lib-app:build:production"
},
"development": {
"browserTarget": "farmmaps-lib-app:build:development"
} }
} },
"defaultConfiguration": "development"
}, },
"extract-i18n": { "extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n", "builder": "@angular-devkit/build-angular:extract-i18n",
@@ -155,11 +198,16 @@
"prefix": "fm", "prefix": "fm",
"architect": { "architect": {
"build": { "build": {
"builder": "@angular-devkit/build-ng-packagr:build", "builder": "@angular-devkit/build-angular:ng-packagr",
"options": { "options": {
"tsConfig": "projects/common/tsconfig.lib.json", "tsConfig": "projects/common/tsconfig.lib.json",
"project": "projects/common/ng-package.json" "project": "projects/common/ng-package.json"
} }
, "configurations": {
"production": {
"tsConfig": "projects/common/tsconfig.lib.prod.json"
}
}
}, },
"test": { "test": {
"builder": "@angular-devkit/build-angular:karma", "builder": "@angular-devkit/build-angular:karma",
@@ -190,11 +238,16 @@
"prefix": "fm-map", "prefix": "fm-map",
"architect": { "architect": {
"build": { "build": {
"builder": "@angular-devkit/build-ng-packagr:build", "builder": "@angular-devkit/build-angular:ng-packagr",
"options": { "options": {
"tsConfig": "projects/common-map/tsconfig.lib.json", "tsConfig": "projects/common-map/tsconfig.lib.json",
"project": "projects/common-map/ng-package.json" "project": "projects/common-map/ng-package.json"
} }
, "configurations": {
"production": {
"tsConfig": "projects/common-map/tsconfig.lib.prod.json"
}
}
}, },
"test": { "test": {
"builder": "@angular-devkit/build-angular:karma", "builder": "@angular-devkit/build-angular:karma",
@@ -217,6 +270,46 @@
} }
} }
} }
},
"common-map3d": {
"projectType": "library",
"root": "projects/common-map3d",
"sourceRoot": "projects/common-map3d/src",
"prefix": "fm-map3d",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:ng-packagr:build",
"options": {
"tsConfig": "projects/common-map3d/tsconfig.lib.json",
"project": "projects/common-map3d/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "projects/common-map3d/tsconfig.lib.prod.json"
}
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "projects/common-map3d/src/test.ts",
"tsConfig": "projects/common-map3d/tsconfig.spec.json",
"karmaConfig": "projects/common-map3d/karma.conf.js"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"projects/common-map3d/tsconfig.lib.json",
"projects/common-map3d/tsconfig.spec.json"
],
"exclude": [
"**/node_modules/**"
]
}
}
}
} }
}, },
"defaultProject": "farmmaps-lib-app" "defaultProject": "farmmaps-lib-app"

12
custom-webpack.config.js Normal file
View File

@@ -0,0 +1,12 @@
module.exports = {
resolve: {
fallback: {
// Resolve node module use of fs
fs: "empty",
Buffer: false,
http: "empty",
https: "empty",
zlib: "empty"
}
}
};

12788
fontawesome-5.15.2/css/all.css Normal file

File diff suppressed because it is too large Load Diff

5
fontawesome-5.15.2/css/all.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,15 @@
/*!
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: 400;
font-display: block;
src: url("../webfonts/fa-brands-400.eot");
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
.fab {
font-family: 'Font Awesome 5 Brands';
font-weight: 400; }

5
fontawesome-5.15.2/css/brands.min.css vendored Normal file
View File

@@ -0,0 +1,5 @@
/*!
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands";font-weight:400}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

7138
fontawesome-5.15.2/css/fontawesome.css vendored Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,15 @@
/*!
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/
@font-face {
font-family: 'Font Awesome 5 Pro';
font-style: normal;
font-weight: 300;
font-display: block;
src: url("../webfonts/fa-light-300.eot");
src: url("../webfonts/fa-light-300.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-light-300.woff2") format("woff2"), url("../webfonts/fa-light-300.woff") format("woff"), url("../webfonts/fa-light-300.ttf") format("truetype"), url("../webfonts/fa-light-300.svg#fontawesome") format("svg"); }
.fal {
font-family: 'Font Awesome 5 Pro';
font-weight: 300; }

5
fontawesome-5.15.2/css/light.min.css vendored Normal file
View File

@@ -0,0 +1,5 @@
/*!
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:300;font-display:block;src:url(../webfonts/fa-light-300.eot);src:url(../webfonts/fa-light-300.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-light-300.woff2) format("woff2"),url(../webfonts/fa-light-300.woff) format("woff"),url(../webfonts/fa-light-300.ttf) format("truetype"),url(../webfonts/fa-light-300.svg#fontawesome) format("svg")}.fal{font-family:"Font Awesome 5 Pro";font-weight:300}

View File

@@ -0,0 +1,15 @@
/*!
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/
@font-face {
font-family: 'Font Awesome 5 Pro';
font-style: normal;
font-weight: 400;
font-display: block;
src: url("../webfonts/fa-regular-400.eot");
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
.far {
font-family: 'Font Awesome 5 Pro';
font-weight: 400; }

View File

@@ -0,0 +1,5 @@
/*!
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Pro";font-weight:400}

View File

@@ -0,0 +1,16 @@
/*!
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/
@font-face {
font-family: 'Font Awesome 5 Pro';
font-style: normal;
font-weight: 900;
font-display: block;
src: url("../webfonts/fa-solid-900.eot");
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
.fa,
.fas {
font-family: 'Font Awesome 5 Pro';
font-weight: 900; }

5
fontawesome-5.15.2/css/solid.min.css vendored Normal file
View File

@@ -0,0 +1,5 @@
/*!
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Pro";font-weight:900}

View File

@@ -0,0 +1,371 @@
/*!
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/
svg:not(:root).svg-inline--fa {
overflow: visible; }
.svg-inline--fa {
display: inline-block;
font-size: inherit;
height: 1em;
overflow: visible;
vertical-align: -.125em; }
.svg-inline--fa.fa-lg {
vertical-align: -.225em; }
.svg-inline--fa.fa-w-1 {
width: 0.0625em; }
.svg-inline--fa.fa-w-2 {
width: 0.125em; }
.svg-inline--fa.fa-w-3 {
width: 0.1875em; }
.svg-inline--fa.fa-w-4 {
width: 0.25em; }
.svg-inline--fa.fa-w-5 {
width: 0.3125em; }
.svg-inline--fa.fa-w-6 {
width: 0.375em; }
.svg-inline--fa.fa-w-7 {
width: 0.4375em; }
.svg-inline--fa.fa-w-8 {
width: 0.5em; }
.svg-inline--fa.fa-w-9 {
width: 0.5625em; }
.svg-inline--fa.fa-w-10 {
width: 0.625em; }
.svg-inline--fa.fa-w-11 {
width: 0.6875em; }
.svg-inline--fa.fa-w-12 {
width: 0.75em; }
.svg-inline--fa.fa-w-13 {
width: 0.8125em; }
.svg-inline--fa.fa-w-14 {
width: 0.875em; }
.svg-inline--fa.fa-w-15 {
width: 0.9375em; }
.svg-inline--fa.fa-w-16 {
width: 1em; }
.svg-inline--fa.fa-w-17 {
width: 1.0625em; }
.svg-inline--fa.fa-w-18 {
width: 1.125em; }
.svg-inline--fa.fa-w-19 {
width: 1.1875em; }
.svg-inline--fa.fa-w-20 {
width: 1.25em; }
.svg-inline--fa.fa-pull-left {
margin-right: .3em;
width: auto; }
.svg-inline--fa.fa-pull-right {
margin-left: .3em;
width: auto; }
.svg-inline--fa.fa-border {
height: 1.5em; }
.svg-inline--fa.fa-li {
width: 2em; }
.svg-inline--fa.fa-fw {
width: 1.25em; }
.fa-layers svg.svg-inline--fa {
bottom: 0;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0; }
.fa-layers {
display: inline-block;
height: 1em;
position: relative;
text-align: center;
vertical-align: -.125em;
width: 1em; }
.fa-layers svg.svg-inline--fa {
-webkit-transform-origin: center center;
transform-origin: center center; }
.fa-layers-text, .fa-layers-counter {
display: inline-block;
position: absolute;
text-align: center; }
.fa-layers-text {
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
-webkit-transform-origin: center center;
transform-origin: center center; }
.fa-layers-counter {
background-color: #ff253a;
border-radius: 1em;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: #fff;
height: 1.5em;
line-height: 1;
max-width: 5em;
min-width: 1.5em;
overflow: hidden;
padding: .25em;
right: 0;
text-overflow: ellipsis;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top right;
transform-origin: top right; }
.fa-layers-bottom-right {
bottom: 0;
right: 0;
top: auto;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: bottom right;
transform-origin: bottom right; }
.fa-layers-bottom-left {
bottom: 0;
left: 0;
right: auto;
top: auto;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: bottom left;
transform-origin: bottom left; }
.fa-layers-top-right {
right: 0;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top right;
transform-origin: top right; }
.fa-layers-top-left {
left: 0;
right: auto;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top left;
transform-origin: top left; }
.fa-lg {
font-size: 1.33333em;
line-height: 0.75em;
vertical-align: -.0667em; }
.fa-xs {
font-size: .75em; }
.fa-sm {
font-size: .875em; }
.fa-1x {
font-size: 1em; }
.fa-2x {
font-size: 2em; }
.fa-3x {
font-size: 3em; }
.fa-4x {
font-size: 4em; }
.fa-5x {
font-size: 5em; }
.fa-6x {
font-size: 6em; }
.fa-7x {
font-size: 7em; }
.fa-8x {
font-size: 8em; }
.fa-9x {
font-size: 9em; }
.fa-10x {
font-size: 10em; }
.fa-fw {
text-align: center;
width: 1.25em; }
.fa-ul {
list-style-type: none;
margin-left: 2.5em;
padding-left: 0; }
.fa-ul > li {
position: relative; }
.fa-li {
left: -2em;
position: absolute;
text-align: center;
width: 2em;
line-height: inherit; }
.fa-border {
border: solid 0.08em #eee;
border-radius: .1em;
padding: .2em .25em .15em; }
.fa-pull-left {
float: left; }
.fa-pull-right {
float: right; }
.fa.fa-pull-left,
.fas.fa-pull-left,
.far.fa-pull-left,
.fal.fa-pull-left,
.fab.fa-pull-left {
margin-right: .3em; }
.fa.fa-pull-right,
.fas.fa-pull-right,
.far.fa-pull-right,
.fal.fa-pull-right,
.fab.fa-pull-right {
margin-left: .3em; }
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear; }
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8); }
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
.fa-rotate-90 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
-webkit-transform: rotate(90deg);
transform: rotate(90deg); }
.fa-rotate-180 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
-webkit-transform: rotate(180deg);
transform: rotate(180deg); }
.fa-rotate-270 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
-webkit-transform: rotate(270deg);
transform: rotate(270deg); }
.fa-flip-horizontal {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
-webkit-transform: scale(-1, 1);
transform: scale(-1, 1); }
.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(1, -1);
transform: scale(1, -1); }
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1);
transform: scale(-1, -1); }
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical,
:root .fa-flip-both {
-webkit-filter: none;
filter: none; }
.fa-stack {
display: inline-block;
height: 2em;
position: relative;
width: 2.5em; }
.fa-stack-1x,
.fa-stack-2x {
bottom: 0;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0; }
.svg-inline--fa.fa-stack-1x {
height: 1em;
width: 1.25em; }
.svg-inline--fa.fa-stack-2x {
height: 2em;
width: 2.5em; }
.fa-inverse {
color: #fff; }
.sr-only {
border: 0;
clip: rect(0, 0, 0, 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px; }
.sr-only-focusable:active, .sr-only-focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto; }
.svg-inline--fa .fa-primary {
fill: var(--fa-primary-color, currentColor);
opacity: 1;
opacity: var(--fa-primary-opacity, 1); }
.svg-inline--fa .fa-secondary {
fill: var(--fa-secondary-color, currentColor);
opacity: 0.4;
opacity: var(--fa-secondary-opacity, 0.4); }
.svg-inline--fa.fa-swap-opacity .fa-primary {
opacity: 0.4;
opacity: var(--fa-secondary-opacity, 0.4); }
.svg-inline--fa.fa-swap-opacity .fa-secondary {
opacity: 1;
opacity: var(--fa-primary-opacity, 1); }
.svg-inline--fa mask .fa-primary,
.svg-inline--fa mask .fa-secondary {
fill: black; }
.fad.fa-inverse {
color: #fff; }

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 730 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -23,6 +23,36 @@
content: "b"; content: "b";
} }
.fm-trijntje:before {
content: "c";
}
.fm-satellite:before {
content: "d";
}
.fm-sensoterra:before {
content: "e";
}
.fm-blight:before {
content: "f";
}
.fm-agrodatacube:before {
content: "g";
}
.fm-app-menu:before {
content: "h";
}
.fm-blight-holes:before {
content: "i";
}
hallo
@font-face { @font-face {
font-family: "FarmMaps"; font-family: "FarmMaps";
src: url("./FMIconFont.woff") format("woff"), /* Modern Browsers */ src: url("./FMIconFont.woff") format("woff"), /* Modern Browsers */

16476
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
"name": "farmmaps-lib-app", "name": "farmmaps-lib-app",
"version": "0.0.1", "version": "2.0.5",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"start": "ng serve", "start": "ng serve",
@@ -11,53 +11,64 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "~7.2.0", "@angular/animations": "~12.2.8",
"@angular/common": "~7.2.0", "@angular/common": "~12.2.8",
"@angular/compiler": "~7.2.0", "@angular/compiler": "~12.2.8",
"@angular/core": "~7.2.0", "@angular/core": "~12.2.8",
"@angular/forms": "~7.2.0", "@angular/forms": "~12.2.8",
"@angular/platform-browser": "~7.2.0", "@angular/platform-browser": "~12.2.8",
"@angular/platform-browser-dynamic": "~7.2.0", "@angular/platform-browser-dynamic": "~12.2.8",
"@angular/router": "~7.2.0", "@angular/router": "~12.2.8",
"@aspnet/signalr": "^1.1.4", "@farmmaps/common": "file:dist/common",
"@farmmaps/common": ">=0.0.1-prerelease.69 <0.0.1", "@farmmaps/common-map": "file:dist/common-map",
"@farmmaps/common-map": ">=0.0.1-prerelease.69 <0.0.1", "@farmmaps/common-map3d": "file:dist/common-map3d",
"@ng-bootstrap/ng-bootstrap": "^4.2.1", "@microsoft/signalr": "^3.1.16",
"@ngrx/effects": "^7.2.0", "@ng-bootstrap/ng-bootstrap": "^9.0",
"@ngrx/router-store": "^7.2.0", "@ngrx/effects": "^12.0",
"@ngrx/store": "^7.2.0", "@ngrx/router-store": "^12.0",
"bootstrap": "^4.3.1", "@ngrx/store": "^12.0",
"font-awesome": "^4.7.0", "angular-oauth2-oidc": "^12.0",
"core-js": "^2.5.4", "bootstrap": "^4.6.0",
"ngrx-store-localstorage": "^8.0.0", "cesium": "^1.82.1",
"core-js": "^2.6.12",
"moment": "^2.29.1",
"ngrx-store-localstorage": "^12.0",
"ngx-avatar": "^4.1.0",
"ngx-clipboard": "^14.0.1",
"ngx-image-cropper": "^3.3.5",
"ngx-openlayers": "1.0.0-next.19",
"ngx-uploadx": "^3.5.1",
"ol": "6.8.1",
"ol-cesium": "^2.13.0",
"resumablejs": "^1.1.0", "resumablejs": "^1.1.0",
"rxjs": "~6.3.3", "rxjs": "^6.6.7",
"tassign": "^1.0.0", "tassign": "^1.0.0",
"zone.js": "~0.8.26" "tslib": "^2.2.0",
"zone.js": "~0.11.4"
}, },
"devDependencies": { "devDependencies": {
"@angular-devkit/build-angular": "~0.13.0", "@angular-builders/custom-webpack": "^12.1.3",
"@angular-devkit/build-ng-packagr": "~0.13.0", "@angular-devkit/build-angular": "^12.2.8",
"@angular/cli": "~7.3.8", "@angular/cli": "^12.2.8",
"@angular/compiler-cli": "~7.2.0", "@angular/compiler-cli": "~12.2.8",
"@angular/language-service": "~7.2.0", "@angular/language-service": "~12.2.8",
"@types/node": "~8.9.4", "@angular/localize": "^12.2.8",
"@types/arcgis-rest-api": "^10.4.5",
"@types/jasmine": "~2.8.8", "@types/jasmine": "~2.8.8",
"@types/jasminewd2": "~2.0.3", "@types/jasminewd2": "^2.0.9",
"codelyzer": "~4.5.0", "@types/node": "^12.20.15",
"jasmine-core": "~2.99.1", "codelyzer": "^5.1.2",
"jasmine-spec-reporter": "~4.2.1", "jasmine-core": "~3.5.0",
"karma": "~4.0.0", "jasmine-spec-reporter": "~5.0.0",
"karma-chrome-launcher": "~2.2.0", "karma": "~6.3.3",
"karma-coverage-istanbul-reporter": "~2.0.1", "karma-chrome-launcher": "~3.1.0",
"karma-jasmine": "~1.1.2", "karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine-html-reporter": "^0.2.2", "karma-jasmine": "~4.0.0",
"ng-packagr": "^4.2.0", "karma-jasmine-html-reporter": "^1.6.0",
"protractor": "~5.4.0", "ng-packagr": "^12.2.2",
"ts-node": "~7.0.0", "protractor": "~7.0.0",
"tsickle": ">=0.34.0", "ts-node": "^8.8.1",
"tslib": "^1.9.0", "tslint": "~6.1.0",
"tslint": "~5.11.0", "typescript": "~4.3.5"
"typescript": "~3.2.2"
} }
} }

View File

@@ -4,7 +4,7 @@
"lib": { "lib": {
"entryFile": "src/public-api.ts" "entryFile": "src/public-api.ts"
}, },
"whitelistedNonPeerDependencies": [ "allowedNonPeerDependencies": [
"." "."
] ]
} }

View File

@@ -4,105 +4,10 @@
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@farmmaps/common": {
"version": "0.0.1-prerelease.56",
"resolved": "https://repository.akkerweb.nl/repository/npm-group/@farmmaps/common/-/common-0.0.1-prerelease.56.tgz",
"integrity": "sha512-m9KxWsLkTSz2JI074gIJH1kDR0PCLsFAug8oBjtlU/QxgBySrvqHCRiODpNmNWnFyNTZHqKHJQefn3Q9iAil4g==",
"requires": {
"angular-oauth2-oidc": "^5.0.2",
"ngx-uploadx": "^3.1.3",
"tslib": "^1.9.0"
}
},
"angular-oauth2-oidc": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/angular-oauth2-oidc/-/angular-oauth2-oidc-5.0.2.tgz",
"integrity": "sha512-jtOv4IWEjSFfBHVE4seWGWT/ZfWJ95QJ1JaFhVVGJEF64ibGuPwV3ztwTOUl98QHi/Yg4PXXDAisb31JnIbxBw==",
"requires": {
"jsrsasign": "^8.0.12",
"tslib": "^1.9.0"
}
},
"ieee754": {
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
},
"jsrsasign": {
"version": "8.0.12",
"resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-8.0.12.tgz",
"integrity": "sha1-Iqu5ZW00owuVMENnIINeicLlwxY="
},
"ngx-openlayers": {
"version": "1.0.0-next.9",
"resolved": "https://registry.npmjs.org/ngx-openlayers/-/ngx-openlayers-1.0.0-next.9.tgz",
"integrity": "sha512-14UFxJX9oeOXtq+HJCJyXn0sBmYmCqj2AnFtetKk1FsDe8EUMFGIRju8UOFegCr2oEu5JsuRjALcfW7lCe+teg==",
"requires": {
"tslib": "^1.9.0"
}
},
"ngx-uploadx": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/ngx-uploadx/-/ngx-uploadx-3.3.2.tgz",
"integrity": "sha512-gRdXXq2cRU9HE6dj65qay9GV8NRC7n8y5LtMzJWqsfu2k3CHMQxo2TqZwA9/l/PqJ76RoO7sTPy1OenFQ+krkQ==",
"requires": {
"tslib": "^1.9.0"
}
},
"ol": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/ol/-/ol-5.3.3.tgz",
"integrity": "sha512-7eU4x8YMduNcED1D5wI+AMWDRe7/1HmGfsbV+kFFROI9RNABU/6n4osj6Q3trZbxxKnK2DSRIjIRGwRHT/Z+Ww==",
"requires": {
"pbf": "3.1.0",
"pixelworks": "1.1.0",
"rbush": "2.0.2"
}
},
"pbf": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/pbf/-/pbf-3.1.0.tgz",
"integrity": "sha512-/hYJmIsTmh7fMkHAWWXJ5b8IKLWdjdlAFb3IHkRBn1XUhIYBChVGfVwmHEAV3UfXTxsP/AKfYTXTS/dCPxJd5w==",
"requires": {
"ieee754": "^1.1.6",
"resolve-protobuf-schema": "^2.0.0"
}
},
"pixelworks": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/pixelworks/-/pixelworks-1.1.0.tgz",
"integrity": "sha1-Hwla1I3Ki/ihyCWOAJIDGkTyLKU="
},
"protocol-buffers-schema": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.3.2.tgz",
"integrity": "sha512-Xdayp8sB/mU+sUV4G7ws8xtYMGdQnxbeIfLjyO9TZZRJdztBGhlmbI5x1qcY4TG5hBkIKGnc28i7nXxaugu88w=="
},
"quickselect": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz",
"integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ=="
},
"rbush": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz",
"integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==",
"requires": {
"quickselect": "^1.0.1"
}
},
"resolve-protobuf-schema": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz",
"integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==",
"requires": {
"protocol-buffers-schema": "^3.3.1"
}
},
"tslib": { "tslib": {
"version": "1.10.0", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
"integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
} }
} }
} }

View File

@@ -1,20 +1,21 @@
{ {
"name": "@farmmaps/common-map", "name": "@farmmaps/common-map",
"version": "0.0.1", "version": "2.0.0",
"publishConfig": { "publishConfig": {
"registry": "https://repository.akkerweb.nl/repository/npm-hosted/" "registry": "https://repository.akkerweb.nl/repository/npm-hosted/"
}, },
"dependencies": { "dependencies": {
"ngx-openlayers": "1.0.0-next.9", "tslib": "^2.0.0"
"ol": "^5.3.3"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/core": "^7.2.0", "@angular/core": "~12.2.8",
"ngrx-store-localstorage": "^8.0.0", "ngrx-store-localstorage": "^12.0",
"@ngrx/effects": "^7.2", "@ngrx/effects": "^12.0",
"@ngrx/router-store": "^7.2", "@ngrx/router-store":"^12.0",
"@ngrx/store": "^7.2", "@ngrx/store":"^12.0",
"tassign": "^1.0.0", "tassign": "^1.0.0",
"@farmmaps/common": ">=0.0.1-prerelease.56 <0.0.1" "@farmmaps/common": "~2.0",
"ngx-openlayers": "1.0.0-next.19",
"ol": "6.8.1"
} }
} }

View File

@@ -1,2 +0,0 @@
//$theme-colors: ( "primary": #a7ce39, "secondary": #ffc800 );
//$theme-colors: ( "primary": #a7ce39);

View File

@@ -1,25 +1,35 @@
import { Action } from '@ngrx/store'; import { Action } from '@ngrx/store';
import { IMapState,IItemLayer,IQueryState } from '../models'; import { IMapState } from '../models/map.state';
import { IItemLayer } from '../models/item.layer';
import { ILayervalue } from '../models/layer.value';
import { IQueryState } from '@farmmaps/common';
import { IItem } from '@farmmaps/common'; import { IItem } from '@farmmaps/common';
import { Feature } from 'ol'; import { Feature } from 'ol';
import { Extent } from 'ol/extent'; import { Style } from 'ol/style';
import { Geometry } from 'ol/geom';
import { IPeriodState } from '../models/period.state';
export const SETSTATE = '[Map] SetState'; export const SETSTATE = '[Map] SetState';
export const SETMAPSTATE = '[Map] MapState'; export const SETMAPSTATE = '[Map] MapState';
export const SETVIEWEXTENT = '[Map] SetViewExtent'; export const SETVIEWEXTENT = '[Map] SetViewExtent';
export const INIT = '[Map] Init'; export const INIT = '[Map] Init';
export const SETPARENT = '[Map] SetParent'; export const SETPARENT = '[Map] SetParent';
export const SETPERIOD = '[Map] SetPeriod';
export const STARTSEARCH = '[Map] StartSearch'; export const STARTSEARCH = '[Map] StartSearch';
export const STARTSEARCHSUCCESS = '[Map] StartSearchSuccess'; export const STARTSEARCHSUCCESS = '[Map] StartSearchSuccess';
export const SELECTFEATURE = '[Map] SelectFeature'; export const SELECTFEATURE = '[Map] SelectFeature';
export const SELECTITEM = '[Map] SelectItem'; export const SELECTITEM = '[Map] SelectItem';
export const SELECTITEMSUCCESS = '[Map] SelectItemSuccess'; export const SELECTITEMSUCCESS = '[Map] SelectItemSuccess';
export const SETSELECTEDITEMLAYER = '[Map] SetSelectedItemLayer';
export const SELECTTEMPORALITEMSSUCCESS = '[Map] SelectTemporalItemsSuccess';
export const NEXTTEMPORAL = '[Map] NextTemporal';
export const PREVIOUSTEMPORAL = '[Map] PreviousTemporal';
export const SELECTTEMPORAL = '[Map] SelectTemporal';
export const ADDFEATURESUCCESS = '[Map] AddFeatureSuccess'; export const ADDFEATURESUCCESS = '[Map] AddFeatureSuccess';
export const UPDATEFEATURESUCCESS = '[Map] UpdateFeatureSuccess'; export const UPDATEFEATURESUCCESS = '[Map] UpdateFeatureSuccess';
export const EXPANDSEARCH = '[Map] ExpandSearch'; export const EXPANDSEARCH = '[Map] ExpandSearch';
export const COLLAPSESEARCH = '[Map] CollapseSearch'; export const COLLAPSESEARCH = '[Map] CollapseSearch';
export const TOGGLEMENU = '[Map] ToggleMenu';
export const SETEXTENT = '[Map] SetExtent'; export const SETEXTENT = '[Map] SetExtent';
export const SETQUERYSTATE = '[Map] SetQueryState'; export const SETQUERYSTATE = '[Map] SetQueryState';
export const SETTIMESPAN = '[Map] SetTimeSpan'; export const SETTIMESPAN = '[Map] SetTimeSpan';
@@ -28,12 +38,27 @@ export const SETVISIBILITY = '[Map] SetVisibility';
export const SETOPACITY = '[Map] SetOpacity'; export const SETOPACITY = '[Map] SetOpacity';
export const SETLAYERINDEX = '[Map] SetLayerIndex'; export const SETLAYERINDEX = '[Map] SetLayerIndex';
export const REMOVELAYER = '[Map] RemoveLayer'; export const REMOVELAYER = '[Map] RemoveLayer';
export const CLEARLAYERS = '[Map] ClearLayers';
export const LOADBASELAYERS = '[Map] LoadLayers'; export const LOADBASELAYERS = '[Map] LoadLayers';
export const LOADBASELAYERSSUCCESS = '[Map] LoadLayersSuccess'; export const LOADBASELAYERSSUCCESS = '[Map] LoadLayersSuccess';
export const SELECTBASELAYER = '[Map] SelectBaseLayers'; export const SELECTBASELAYER = '[Map] SelectBaseLayers';
export const SELECTOVERLAYLAYER = '[Map] SelectOverlayLayers'; export const SELECTOVERLAYLAYER = '[Map] SelectOverlayLayers';
export const ZOOMTOEXTENT = '[Map] ZoomToExtent'; export const ZOOMTOEXTENT = '[Map] ZoomToExtent';
export const DOQUERY = '[Map] DoQuery'; export const DOQUERY = '[Map] DoQuery';
export const SETSTYLE = '[Map] SetStyle';
export const SHOWLAYERSWITCHER = '[Map] ShowLayerSwitcher';
export const CLEAR = '[Map] Clear';
export const SETREPLACEURL = '[Map] SetReplaceUrl';
export const SETFEATURES = '[Map] SetFeatures'
export const SETLAYERVALUESLOCATION = '[Map] SetLayerValuesLocation'
export const TOGGLELAYERVALUESENABLED = '[Map] ToggleLayerValuesEnabled'
export const GETLAYERVALUE = '[Map] GetLayerValue'
export const GETLAYERVALUESUCCESS = '[Map] GetLayerValueSuccess'
export class Clear implements Action {
readonly type = CLEAR;
constructor() {}
}
export class SetState implements Action { export class SetState implements Action {
readonly type = SETSTATE; readonly type = SETSTATE;
@@ -65,6 +90,12 @@ export class SetParent implements Action {
constructor(public parentCode:string) { } constructor(public parentCode:string) { }
} }
export class SetPeriod implements Action {
readonly type = SETPERIOD;
constructor(public period:IPeriodState) { }
}
export class StartSearch implements Action { export class StartSearch implements Action {
readonly type = STARTSEARCH; readonly type = STARTSEARCH;
@@ -74,13 +105,13 @@ export class StartSearch implements Action {
export class StartSearchSuccess implements Action { export class StartSearchSuccess implements Action {
readonly type = STARTSEARCHSUCCESS; readonly type = STARTSEARCHSUCCESS;
constructor(public features: Array<Feature>, public query:IQueryState) { } constructor(public features: Array<Feature<Geometry>>, public query:IQueryState) { }
} }
export class SelectFeature implements Action { export class SelectFeature implements Action {
readonly type = SELECTFEATURE; readonly type = SELECTFEATURE;
constructor(public feature:Feature) { } constructor(public feature:Feature<Geometry>) { }
} }
export class SelectItem implements Action { export class SelectItem implements Action {
@@ -92,19 +123,43 @@ export class SelectItem implements Action {
export class SelectItemSuccess implements Action { export class SelectItemSuccess implements Action {
readonly type = SELECTITEMSUCCESS; readonly type = SELECTITEMSUCCESS;
constructor(public item: IItem) { } constructor(public item: IItem, public parentItem: IItem) { }
}
export class SelectTemporalItemsSuccess implements Action {
readonly type = SELECTTEMPORALITEMSSUCCESS;
constructor(public temporalItems: IItem[]) { }
}
export class NextTemporal implements Action {
readonly type = NEXTTEMPORAL;
constructor() { }
}
export class PreviousTemporal implements Action {
readonly type = PREVIOUSTEMPORAL;
constructor() { }
}
export class SelectTemporal implements Action {
readonly type = SELECTTEMPORAL;
constructor(item:IItem) { }
} }
export class AddFeatureSuccess implements Action { export class AddFeatureSuccess implements Action {
readonly type = ADDFEATURESUCCESS; readonly type = ADDFEATURESUCCESS;
constructor(public feature: Feature) { } constructor(public feature: Feature<Geometry>) { }
} }
export class UpdateFeatureSuccess implements Action { export class UpdateFeatureSuccess implements Action {
readonly type = UPDATEFEATURESUCCESS; readonly type = UPDATEFEATURESUCCESS;
constructor(public feature: Feature) { } constructor(public feature: Feature<Geometry>) { }
} }
export class ExpandSearch implements Action { export class ExpandSearch implements Action {
@@ -119,12 +174,6 @@ export class CollapseSearch implements Action {
constructor() { } constructor() { }
} }
export class ToggleMenu implements Action {
readonly type = TOGGLEMENU;
constructor() { }
}
export class SetExtent implements Action { export class SetExtent implements Action {
readonly type = SETEXTENT; readonly type = SETEXTENT;
@@ -134,7 +183,7 @@ export class SetExtent implements Action {
export class SetQueryState implements Action { export class SetQueryState implements Action {
readonly type = SETQUERYSTATE; readonly type = SETQUERYSTATE;
constructor(public queryState: IQueryState) { } constructor(public queryState: IQueryState,public replaceUrl:boolean = true) { }
} }
export class SetTimeSpan implements Action { export class SetTimeSpan implements Action {
@@ -149,6 +198,12 @@ export class AddLayer implements Action {
constructor(public item:IItem,public layerIndex=-1) { } constructor(public item:IItem,public layerIndex=-1) { }
} }
export class SetSelectedItemLayer implements Action {
readonly type = SETSELECTEDITEMLAYER;
constructor(public item:IItem,public layerIndex=-1) { }
}
export class SetVisibility implements Action { export class SetVisibility implements Action {
readonly type = SETVISIBILITY; readonly type = SETVISIBILITY;
@@ -173,6 +228,12 @@ export class RemoveLayer implements Action {
constructor(public itemLayer: IItemLayer) { } constructor(public itemLayer: IItemLayer) { }
} }
export class ClearLayers implements Action {
readonly type = CLEARLAYERS;
constructor() { }
}
export class LoadBaseLayers implements Action { export class LoadBaseLayers implements Action {
readonly type = LOADBASELAYERS; readonly type = LOADBASELAYERS;
@@ -206,27 +267,78 @@ export class ZoomToExtent implements Action {
export class DoQuery implements Action { export class DoQuery implements Action {
readonly type = DOQUERY; readonly type = DOQUERY;
constructor(public query:IQueryState) { } constructor(public query:IQueryState,public replace:boolean = false) { }
}
export class SetStyle implements Action {
readonly type = SETSTYLE;
constructor(public itemType:string,public style: Style | ((feature:Feature<Geometry>) => Style )) { }
}
export class ShowLayerSwitcher implements Action {
readonly type = SHOWLAYERSWITCHER;
constructor(public show:boolean) {}
}
export class SetReplaceUrl implements Action {
readonly type = SETREPLACEURL;
constructor(public replaceUrl:boolean) {}
}
export class SetFeatures implements Action {
readonly type = SETFEATURES;
constructor(public features: Array<Feature<Geometry>>) { }
}
export class SetLayerValuesLocation implements Action {
readonly type = SETLAYERVALUESLOCATION;
constructor(public x:number, public y:number) { }
}
export class ToggleLayerValuesEnabled implements Action {
readonly type = TOGGLELAYERVALUESENABLED;
constructor() { }
}
export class GetLayerValue implements Action {
readonly type = GETLAYERVALUE;
constructor(public itemLayer:IItemLayer,public x:number,public y:number) { }
}
export class GetLayerValueSuccess implements Action {
readonly type = GETLAYERVALUESUCCESS;
constructor(public layervalue:ILayervalue) { }
} }
export type Actions = SetMapState export type Actions = SetMapState
| Init | Init
| Clear
| SetParent | SetParent
| StartSearch | StartSearch
| StartSearchSuccess | StartSearchSuccess
| SelectFeature | SelectFeature
| SelectItem | SelectItem
| SelectItemSuccess | SelectItemSuccess
| SelectTemporalItemsSuccess
| NextTemporal
| PreviousTemporal
| SelectTemporal
| AddFeatureSuccess | AddFeatureSuccess
| UpdateFeatureSuccess | UpdateFeatureSuccess
| ExpandSearch | ExpandSearch
| CollapseSearch | CollapseSearch
| ToggleMenu
| SetExtent | SetExtent
| SetQueryState | SetQueryState
| SetTimeSpan | SetTimeSpan
| AddLayer | AddLayer
| RemoveLayer | RemoveLayer
| ClearLayers
| SetVisibility | SetVisibility
| SetOpacity | SetOpacity
| SetLayerIndex | SetLayerIndex
@@ -237,5 +349,15 @@ export type Actions = SetMapState
| ZoomToExtent | ZoomToExtent
| SetState | SetState
| SetViewExtent | SetViewExtent
| DoQuery; | DoQuery
| SetStyle
| ShowLayerSwitcher
| SetReplaceUrl
| SetFeatures
| SetSelectedItemLayer
| SetLayerValuesLocation
| ToggleLayerValuesEnabled
| GetLayerValueSuccess
| GetLayerValue
| SetPeriod;

View File

@@ -4,21 +4,21 @@ import { MapComponent } from './components/map/map.component';
import { AuthGuard } from '@farmmaps/common'; import { AuthGuard } from '@farmmaps/common';
const routes = [ const routes = [
{
path: '', canActivateChild: [AuthGuard], children: [
{ {
path: '', path: '',
component: MapComponent component: MapComponent
}
]
}, },
{ {
path: ':xCenter/:yCenter/:zoom/:rotation/:baseLayer/:queryState', canActivateChild: [AuthGuard], children: [ path: ':xCenter/:yCenter/:zoom/:rotation/:baseLayer',
{ component: MapComponent
path: '', },
{
path: ':xCenter/:yCenter/:zoom/:rotation/:baseLayer/:queryState',
component: MapComponent
},
{
path: ':queryState',
component: MapComponent component: MapComponent
}
]
} }
]; ];

View File

@@ -16,16 +16,14 @@ import * as mapReducers from './reducers/map.reducer';
import * as mapActions from './actions/map.actions'; import * as mapActions from './actions/map.actions';
import * as mapEffects from './effects/map.effects'; import * as mapEffects from './effects/map.effects';
import { IMapState} from './models'; import { IMapState} from './models/map.state';
import { ISelectedFeatures } from './models'; import { ISelectedFeatures } from './models/selected.features';
import { IItemLayer } from './models'; import { IItemLayer,ItemLayer,ITemporalItemLayer,TemporalItemLayer } from './models/item.layer';
import { ItemLayer} from './models'; import { IClickedFeature } from './models/clicked.feature';
import { IQueryState } from './models'; import { IPeriodState } from './models/period.state';
import { IPeriodState } from './models';
// components // components
import { GpsLocation} from './components/aol/gps-location/gps-location.component'; import { GpsLocation} from './components/aol/gps-location/gps-location.component';
//import {Switch2D3DComponent } from './components/aol/switch2d3d/switch2d3d.component';
import {FeatureListFeatureCropfieldComponent } from './components/feature-list-feature-cropfield/feature-list-feature-cropfield.component'; import {FeatureListFeatureCropfieldComponent } from './components/feature-list-feature-cropfield/feature-list-feature-cropfield.component';
import { FeatureListFeatureCroppingschemeComponent} from './components/feature-list-feature-croppingscheme/feature-list-feature-croppingscheme.component'; import { FeatureListFeatureCroppingschemeComponent} from './components/feature-list-feature-croppingscheme/feature-list-feature-croppingscheme.component';
import { ItemWidgetListComponent} from './components/item-widget-list/item-widget-list.component'; import { ItemWidgetListComponent} from './components/item-widget-list/item-widget-list.component';
@@ -35,6 +33,7 @@ import { AbstractItemListComponent,ItemListComponent} from './components/item-li
import { AbstractSelectedItemComponent, SelectedItemComponent } from './components/selected-item/selected-item.component'; import { AbstractSelectedItemComponent, SelectedItemComponent } from './components/selected-item/selected-item.component';
import { SelectedItemCropfieldComponent } from './components/selected-item-cropfield/selected-item-cropfield.component'; import { SelectedItemCropfieldComponent } from './components/selected-item-cropfield/selected-item-cropfield.component';
import { SelectedItemGeotiffComponent } from './components/selected-item-geotiff/selected-item-geotiff.component'; import { SelectedItemGeotiffComponent } from './components/selected-item-geotiff/selected-item-geotiff.component';
import { SelectedItemTemporalComponent} from './components/selected-item-temporal/selected-item-temporal.component';
import {SelectedItemShapeComponent } from './components/selected-item-shape/selected-item-shape.component'; import {SelectedItemShapeComponent } from './components/selected-item-shape/selected-item-shape.component';
import { SelectedItemContainerComponent } from './components/selected-item-container/selected-item-container.component'; import { SelectedItemContainerComponent } from './components/selected-item-container/selected-item-container.component';
import { AbstractFeatureListFeatureComponent, FeatureListFeatureComponent } from './components/feature-list-feature/feature-list-feature.component'; import { AbstractFeatureListFeatureComponent, FeatureListFeatureComponent } from './components/feature-list-feature/feature-list-feature.component';
@@ -46,7 +45,6 @@ import { WidgetHostDirective} from './components/widget-host/widget-host.directi
import { FeatureListComponent,AbstractFeatureListComponent} from './components/feature-list/feature-list.component'; import { FeatureListComponent,AbstractFeatureListComponent} from './components/feature-list/feature-list.component';
import { FileDropTargetComponent } from './components/aol/file-drop-target/file-drop-target.component'; import { FileDropTargetComponent } from './components/aol/file-drop-target/file-drop-target.component';
import { ItemVectorSourceComponent } from './components/aol/item-vector-source/item-vector-source.component'; import { ItemVectorSourceComponent } from './components/aol/item-vector-source/item-vector-source.component';
import { ItemFeaturesSourceComponent } from './components/aol/item-features-source/item-features-source.component';
import { ItemLayersComponent } from './components/aol/item-layers/item-layers.component'; import { ItemLayersComponent } from './components/aol/item-layers/item-layers.component';
import { ZoomToExtentComponent } from './components/aol/zoom-to-extent/zoom-to-extent.component'; import { ZoomToExtentComponent } from './components/aol/zoom-to-extent/zoom-to-extent.component';
import { RotationResetComponent } from './components/aol/rotation-reset/rotation-reset.component'; import { RotationResetComponent } from './components/aol/rotation-reset/rotation-reset.component';
@@ -54,18 +52,56 @@ import { LayerListComponent } from './components/aol/layer-list/layer-list.compo
import { MetaDataModalComponent } from './components/meta-data-modal/meta-data-modal.component'; import { MetaDataModalComponent } from './components/meta-data-modal/meta-data-modal.component';
import { SelectPeriodModalComponent } from './components/select-period-modal/select-period-modal.component'; import { SelectPeriodModalComponent } from './components/select-period-modal/select-period-modal.component';
import { MapComponent } from './components/map/map.component'; import { MapComponent } from './components/map/map.component';
import { MapSearchComponent } from './components/map-search'; import { MapSearchComponent } from './components/map-search/map-search.component';
import { MapRoutingModule } from './common-map-routing.module'; import { MapRoutingModule } from './common-map-routing.module';
import { LegendComponent } from './components/legend/legend.component'; import { LegendComponent } from './components/legend/legend.component';
import { LayerVectorImageComponent } from './components/aol/layer-vector-image/layer-vector-image.component'; import { LayerVectorImageComponent } from './components/aol/layer-vector-image/layer-vector-image.component';
import { StateSerializerService } from './services/state-serializer.service'; import {FeatureIconService} from './services/feature-icon.service';
import { GeolocationService } from './services/geolocation.service'; import { GeolocationService } from './services/geolocation.service';
import { localStorageSync } from 'ngrx-store-localstorage'; import {DeviceOrientationService} from './services/device-orientation.service';
import { TemporalService} from './services/temporal.service';
import { WidgetStatusComponent } from './components/widget-status/widget-status.component'; import { WidgetStatusComponent } from './components/widget-status/widget-status.component';
import { ForChild} from './components/for-item/for-child.decorator'; import { ForChild} from './components/for-item/for-child.decorator';
import {ForItemType } from './components/for-item/for-itemtype.decorator'; import {ForItemType } from './components/for-item/for-itemtype.decorator';
import { ForSourceTask} from './components/for-item/for-sourcetask.decorator'; import { ForSourceTask} from './components/for-item/for-sourcetask.decorator';
import { ForPackage } from './components/for-item/for-package.decorator';
import { PanToLocation} from './components/aol/pan-to-location/pan-to-location.component';
import {LayerSwitcher} from './components/layer-switcher/layer-switcher.component';
import {HistogramDetailsComponent} from './components/legend/histogram-details/histogram-details.component';
import {StatisticsDetailsComponent} from './components/legend/statistics-details/statistics-details.component';
import { ifZoomToShowDirective} from './components/if-zoom-to-show/if-zoom-to-show.directive';
import { ZoomToShowAlert} from './components/zoom-to-show-alert/zoom-to-show-alert.component';
import { LayerValuesComponent } from './components/aol/layer-values/layer-values.component';
import { GeometryThumbnailComponent } from './components/feature-thumbnail/feature-thumbnail.component';
export function LocalStorageSync(reducer: ActionReducer<any>): ActionReducer<any> {
const r = function(state, action) {
const r2 = reducer(state, action);
if(action.type == "@ngrx/store/update-reducers") {
let ms = window.localStorage.getItem(MODULE_NAME+"_mapState");
if(ms) {
r2["mapState"] = JSON.parse(ms);
}
let sp = window.localStorage.getItem(MODULE_NAME+"_searchPeriod");
if(sp) {
let p = JSON.parse(sp);
r2["period"] = { startDate: new Date(Date.parse(p.startDate)),endDate:new Date(Date.parse(p.endDate))};
}
}
if(action.type == "[Map] MapState" || action.type == "[Map] SetState") {
window.localStorage.setItem(MODULE_NAME + "_mapState",JSON.stringify(r2["mapState"]));
}
if(action.type == "[Map] SetPeriod" ) {
window.localStorage.setItem(MODULE_NAME + "_searchPeriod",JSON.stringify(r2["period"]));
}
return r2;
};
return r;
}
const metaReducers: Array<MetaReducer<any, any>> = [LocalStorageSync];
export { export {
mapEffects, mapEffects,
@@ -73,7 +109,6 @@ export {
mapActions, mapActions,
ZoomToExtentComponent, ZoomToExtentComponent,
ItemVectorSourceComponent, ItemVectorSourceComponent,
ItemFeaturesSourceComponent,
ItemLayersComponent, ItemLayersComponent,
FileDropTargetComponent, FileDropTargetComponent,
MapComponent, MapComponent,
@@ -97,6 +132,7 @@ export {
SelectedItemComponent, SelectedItemComponent,
SelectedItemCropfieldComponent, SelectedItemCropfieldComponent,
SelectedItemGeotiffComponent, SelectedItemGeotiffComponent,
SelectedItemTemporalComponent,
SelectedItemShapeComponent, SelectedItemShapeComponent,
ItemListItemComponent, ItemListItemComponent,
ItemListItemContainerComponent, ItemListItemContainerComponent,
@@ -104,23 +140,33 @@ export {
ItemWidgetListComponent, ItemWidgetListComponent,
WidgetStatusComponent, WidgetStatusComponent,
GpsLocation, GpsLocation,
PanToLocation,
LayerSwitcher,
AbstractFeatureListComponent, AbstractFeatureListComponent,
AbstractFeatureListFeatureComponent, AbstractFeatureListFeatureComponent,
AbstractSelectedItemComponent, AbstractSelectedItemComponent,
AbstractItemWidgetComponent, AbstractItemWidgetComponent,
AbstractItemListItemComponent, AbstractItemListItemComponent,
AbstractItemListComponent, AbstractItemListComponent,
StateSerializerService, FeatureIconService,
GeolocationService, GeolocationService,
DeviceOrientationService,
TemporalService,
IMapState, IMapState,
ISelectedFeatures, ISelectedFeatures,
IItemLayer, IItemLayer,
ItemLayer, ItemLayer,
IQueryState,
IPeriodState, IPeriodState,
ForChild, ForChild,
ForItemType, ForItemType,
ForSourceTask ForSourceTask,
ForPackage ,
ITemporalItemLayer,
TemporalItemLayer,
ifZoomToShowDirective,
ZoomToShowAlert,
IClickedFeature,
GeometryThumbnailComponent
} }
@NgModule({ @NgModule({
@@ -128,7 +174,7 @@ export {
CommonModule, CommonModule,
AngularOpenlayersModule, AngularOpenlayersModule,
MapRoutingModule, MapRoutingModule,
StoreModule.forFeature(MODULE_NAME, mapReducers.reducer), StoreModule.forFeature(MODULE_NAME, mapReducers.reducer,{metaReducers:metaReducers}),
EffectsModule.forFeature([mapEffects.MapEffects]), EffectsModule.forFeature([mapEffects.MapEffects]),
NgbModule, NgbModule,
FormsModule, FormsModule,
@@ -138,7 +184,6 @@ export {
declarations: [ declarations: [
ZoomToExtentComponent, ZoomToExtentComponent,
ItemVectorSourceComponent, ItemVectorSourceComponent,
ItemFeaturesSourceComponent,
ItemLayersComponent, ItemLayersComponent,
FileDropTargetComponent, FileDropTargetComponent,
MapComponent, MapComponent,
@@ -162,6 +207,7 @@ export {
SelectedItemComponent, SelectedItemComponent,
SelectedItemCropfieldComponent, SelectedItemCropfieldComponent,
SelectedItemGeotiffComponent, SelectedItemGeotiffComponent,
SelectedItemTemporalComponent,
SelectedItemShapeComponent, SelectedItemShapeComponent,
ItemListItemComponent, ItemListItemComponent,
ItemListItemContainerComponent, ItemListItemContainerComponent,
@@ -169,6 +215,14 @@ export {
ItemWidgetListComponent, ItemWidgetListComponent,
WidgetStatusComponent, WidgetStatusComponent,
GpsLocation, GpsLocation,
PanToLocation,
LayerSwitcher,
HistogramDetailsComponent,
StatisticsDetailsComponent,
ifZoomToShowDirective,
ZoomToShowAlert,
LayerValuesComponent,
GeometryThumbnailComponent
], ],
entryComponents: [ entryComponents: [
FeatureListComponent, FeatureListComponent,
@@ -180,18 +234,20 @@ export {
SelectedItemComponent, SelectedItemComponent,
SelectedItemCropfieldComponent, SelectedItemCropfieldComponent,
SelectedItemGeotiffComponent, SelectedItemGeotiffComponent,
SelectedItemTemporalComponent,
SelectedItemShapeComponent, SelectedItemShapeComponent,
ItemListComponent, ItemListComponent,
ItemListItemComponent, ItemListItemComponent,
], ],
exports: [ exports: [
ItemVectorSourceComponent, ItemVectorSourceComponent,
ItemFeaturesSourceComponent,
ItemLayersComponent, ItemLayersComponent,
FileDropTargetComponent, FileDropTargetComponent,
MetaDataModalComponent, MetaDataModalComponent,
MapComponent, MapComponent,
GpsLocation, GpsLocation,
PanToLocation,
LayerSwitcher,
FeatureListFeatureComponent, FeatureListFeatureComponent,
FeatureListFeatureCropfieldComponent, FeatureListFeatureCropfieldComponent,
FeatureListFeatureCroppingschemeComponent, FeatureListFeatureCroppingschemeComponent,
@@ -199,6 +255,7 @@ export {
SelectedItemComponent, SelectedItemComponent,
SelectedItemCropfieldComponent, SelectedItemCropfieldComponent,
SelectedItemGeotiffComponent, SelectedItemGeotiffComponent,
SelectedItemTemporalComponent,
SelectedItemShapeComponent, SelectedItemShapeComponent,
ItemListItemComponent, ItemListItemComponent,
ItemListItemContainerComponent, ItemListItemContainerComponent,
@@ -217,17 +274,16 @@ export {
FeatureListCroppingschemeComponent, FeatureListCroppingschemeComponent,
FeatureListCropfieldComponent, FeatureListCropfieldComponent,
FeatureListFeatureContainerComponent, FeatureListFeatureContainerComponent,
ZoomToExtentComponent ZoomToExtentComponent,
] ifZoomToShowDirective,
}) ZoomToShowAlert,
GeometryThumbnailComponent
export class AppCommonMapModule { ],
static forRoot(): ModuleWithProviders {
return {
ngModule: AppCommonMapModule,
providers: [ providers: [
StateSerializerService, FeatureIconService,
GeolocationService, GeolocationService,
DeviceOrientationService,
TemporalService,
{ provide: AbstractFeatureListComponent, useClass: FeatureListCroppingschemeComponent, multi: true }, { provide: AbstractFeatureListComponent, useClass: FeatureListCroppingschemeComponent, multi: true },
{ provide: AbstractFeatureListComponent, useClass: FeatureListCropfieldComponent, multi: true }, { provide: AbstractFeatureListComponent, useClass: FeatureListCropfieldComponent, multi: true },
{ provide: AbstractFeatureListFeatureComponent, useClass: FeatureListFeatureComponent, multi: true }, { provide: AbstractFeatureListFeatureComponent, useClass: FeatureListFeatureComponent, multi: true },
@@ -236,10 +292,13 @@ export class AppCommonMapModule {
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemComponent, multi: true }, { provide: AbstractSelectedItemComponent, useClass: SelectedItemComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemCropfieldComponent, multi: true }, { provide: AbstractSelectedItemComponent, useClass: SelectedItemCropfieldComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemGeotiffComponent, multi: true }, { provide: AbstractSelectedItemComponent, useClass: SelectedItemGeotiffComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemTemporalComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemShapeComponent, multi: true }, { provide: AbstractSelectedItemComponent, useClass: SelectedItemShapeComponent, multi: true },
{ provide: AbstractItemListItemComponent, useClass: ItemListItemComponent, multi: true }, { provide: AbstractItemListItemComponent, useClass: ItemListItemComponent, multi: true },
{ provide: AbstractItemListComponent, useClass: ItemListComponent, multi: true } { provide: AbstractItemListComponent, useClass: ItemListComponent, multi: true }
] ]
}; })
}
export class AppCommonMapModule {
} }

View File

@@ -21,7 +21,7 @@ export class FileDropTargetComponent implements OnInit, OnDestroy {
element: Element; element: Element;
@Output() onFileDropped = new EventEmitter<IDroppedFile>(); @Output() onFileDropped = new EventEmitter<IDroppedFile>();
@Input() parentCode: string; @Input() parentCode: string;
@Input() features: Array<Feature>; @Input() features: Array<Feature<Geometry>>;
constructor(private map: MapComponent) { constructor(private map: MapComponent) {
} }

View File

@@ -6,8 +6,8 @@
<stop offset="100%" class="stop2" /> <stop offset="100%" class="stop2" />
</linearGradient> </linearGradient>
</defs> </defs>
<circle class="tolerance" cx="500" cy="500" stroke="none" [attr.r]="locTolerancePixels" /> <circle class="tolerance hidden" [ngClass]="{'hidden':!showTolerance}" cx="500" cy="500" stroke="none" [attr.r]="locTolerancePixels" />
<path *ngIf="showHeading" class="heading" stroke="none" [attr.d]="path" fill="url(#grad1)" [attr.transform]="rotate"></path> <path class="heading hidden" [ngClass]="{'hidden': !showHeading }" stroke="none" [attr.d]="path" fill="url(#grad1)" [attr.transform]="rotate"></path>
<circle class="border" cx="500" cy="500" r="7" stroke="none" /> <circle class="border" cx="500" cy="500" r="7" stroke="none" />
<circle class="center" cx="500" cy="500" r="6" stroke="none" /> <circle class="center" cx="500" cy="500" r="6" stroke="none" />

View File

@@ -1,4 +1,3 @@
@import "../../../_theme.scss";
@import "~bootstrap/scss/bootstrap.scss"; @import "~bootstrap/scss/bootstrap.scss";
@@ -10,26 +9,34 @@
stroke-width: 0; stroke-width: 0;
} }
.heading.hidden {
display: none;
}
.tolerance { .tolerance {
fill: theme-color(); fill: $primary;
fill-opacity:0.4; fill-opacity:0.4;
} }
.tolerance.hidden {
display: none
}
.border { .border {
fill: white; fill: $white;
} }
.center { .center {
fill: theme-color(); fill: $primary;
} }
.stop1 { .stop1 {
stop-color: theme-color(); stop-color: $primary;
stop-opacity:1; stop-opacity:1;
} }
.stop2 { .stop2 {
stop-color: theme-color(); stop-color:$primary;
stop-opacity: 0; stop-opacity: 0;
} }

View File

@@ -1,4 +1,4 @@
import { Component, OnInit, Input, ViewChild, ElementRef, OnChanges, SimpleChanges } from '@angular/core'; import { Component, OnInit, Input, ViewChild, ElementRef, OnChanges, SimpleChanges ,Host} from '@angular/core';
import { MapComponent } from 'ngx-openlayers'; import { MapComponent } from 'ngx-openlayers';
import Overlay from 'ol/Overlay'; import Overlay from 'ol/Overlay';
import { fromLonLat, toLonLat } from 'ol/proj'; import { fromLonLat, toLonLat } from 'ol/proj';
@@ -13,17 +13,19 @@ export class GpsLocation implements OnInit,OnChanges{
@Input() enable:boolean; @Input() enable:boolean;
public instance: Overlay; public instance: Overlay;
@Input() position: Position; @Input() position: GeolocationPosition;
@Input() location: number[]=[0,0]; @Input() location: number[]=[0,0];
@Input() locationTolerance: number = 0; @Input() locationTolerance: number = 0;
@Input() showHeading: boolean = false; @Input() showHeading: boolean = false;
@Input() showTolerance: boolean = false;
@Input() heading: number = 0; @Input() heading: number = 0;
@Input() headingTolerance: number = 0; @Input() headingTolerance: number = 0;
public locTolerancePixels: number = 0; public locTolerancePixels: number = 0;
public path: string = ""; public path: string = "";
public rotate: string = ""; public rotate: string = "";
private resolution: number = 0; private resolution: number = 0;
@ViewChild('location') locationElement: ElementRef; initialized:boolean = false;
@ViewChild('location', { static: true }) locationElement: ElementRef;
constructor(private map: MapComponent) { constructor(private map: MapComponent) {
@@ -50,19 +52,24 @@ export class GpsLocation implements OnInit,OnChanges{
this.rotate = "rotate(" + Math.round(this.heading) + " 500 500)"; this.rotate = "rotate(" + Math.round(this.heading) + " 500 500)";
this.locTolerancePixels = this.locationTolerance; this.locTolerancePixels = this.locationTolerance;
this.map.instance.addOverlay(this.instance); this.map.instance.addOverlay(this.instance);
this.map.instance.getView().on('change:resolution', (evt) => { this.map.instance.getView().on('change:resolution', (evt:any) => {
this.resolution = evt.target.get('resolution'); this.resolution = evt.target.get('resolution');
this.recalcLocationTolerance(); this.recalcLocationTolerance();
}); });
this.initialized = true;
} }
ngOnChanges(changes: SimpleChanges) { ngOnChanges(changes: SimpleChanges) {
if (changes.position && this.instance) { if (changes.position && this.instance) {
var p = changes.position.currentValue as Position; var p = changes.position.currentValue as GeolocationPosition;
if(p && this.initialized) {
this.instance.setPosition(fromLonLat([p.coords.longitude, p.coords.latitude])); this.instance.setPosition(fromLonLat([p.coords.longitude, p.coords.latitude]));
this.locationTolerance = p.coords.accuracy; this.locationTolerance = p.coords.accuracy;
this.recalcLocationTolerance(); this.recalcLocationTolerance();
this.heading = p.coords.heading; }
}
if(changes.heading && this.instance) {
this.rotate = "rotate(" + Math.round(changes.heading.currentValue) + " 500 500)";
} }
} }
} }

View File

@@ -1,90 +0,0 @@
import { Component, Host, Input, Output, EventEmitter, OnInit, OnChanges, SimpleChanges, forwardRef, Inject, InjectionToken } from '@angular/core';
import { HttpClient } from "@angular/common/http";
import { LayerVectorComponent, SourceVectorComponent, MapComponent, LayerImageComponent } from 'ngx-openlayers';
import { LayerVectorImageComponent } from '../layer-vector-image/layer-vector-image.component';
import { ItemService } from '@farmmaps/common';
import { IItem } from '@farmmaps/common';
import { ISelectedFeatures } from '../../../models';
import {Vector} from 'ol/source';
import {Feature,Collection} from 'ol';
import {Extent} from 'ol/extent';
import * as style from 'ol/style';
import * as proj from 'ol/proj';
import Projection from 'ol/proj/Projection';
import * as loadingstrategy from 'ol/loadingstrategy';
import {GeoJSON} from 'ol/format';
@Component({
selector: 'fm-map-item-features-source',
template: `<ng-content></ng-content>`,
providers: [
{ provide: SourceVectorComponent, useExisting: forwardRef(() => ItemFeaturesSourceComponent) }
]
})
export class ItemFeaturesSourceComponent extends SourceVectorComponent implements OnInit, OnChanges {
instance:Vector;
features: Collection<Feature>;
@Input() item: IItem;
@Input() layerIndex: number = 0;
constructor(@Host() private layer: LayerVectorImageComponent, private itemService: ItemService, @Host() private map: MapComponent) {
super(layer);
}
private colorIndex = 0;
private styleCache = {};
ngOnInit() {
this.instance = new Vector({
loader: (extent: Extent, resolution: number, projection: Projection) => {
let format = new GeoJSON();
this.itemService.getItemFeatures(this.item.code, extent, projection.getCode(), this.layerIndex).subscribe((data) => {
var features = format.readFeatures(data);
// TODO 13/6/2019 The line below causes an endless loop. Action required?
this.instance.addFeatures(features);
// TODO 13/6/2019 Action required: check if feature collection hasn't been changed (Willem)
// var t = this.vectorSource.getFeatures();
});
},
format: new GeoJSON(),
strategy: loadingstrategy.bbox
});
this.features = new Collection<Feature>();
this.layer.instance
this.layer.instance.setStyle((feature) => {
var resolution = this.map.instance.getView().getResolution();
var r = (2 / resolution) / 2;
var color = feature.get("color");
return new style.Style(
{
fill: new style.Fill({
color: color
}),
image: new style.Circle({
fill: new style.Fill({
color: color
}),
stroke: new style.Stroke({
color: color,
width: 1.25
}),
radius: r
}),
stroke: new style.Stroke({
color: color,
width: 1.25
})
});
});
this.host.instance.setSource(this.instance);
}
ngOnChanges(changes: SimpleChanges) {
if (this.instance) {
if (changes['layerIndex']) {
this.instance.clear();
}
}
}
}

View File

@@ -1,23 +1,23 @@
import { Component, Host, Input, Output, EventEmitter, Optional, QueryList, OnInit, AfterViewInit, OnChanges, SimpleChanges, SkipSelf, forwardRef, Inject, InjectionToken } from '@angular/core'; import { Component, Host, Input, Output, EventEmitter,OnDestroy, OnInit, OnChanges, SimpleChanges, forwardRef } from '@angular/core';
import { HttpClient } from "@angular/common/http"; import { LayerGroupComponent, MapComponent } from 'ngx-openlayers';
import { LayerVectorComponent, LayerTileComponent, LayerGroupComponent, MapComponent } from 'ngx-openlayers'; import { ItemService,IItem,AppConfig } from '@farmmaps/common';
import { ItemService } from '@farmmaps/common'; import { IItemLayer, ITemporalItemLayer} from '../../../models/item.layer';
import { AppConfig } from '@farmmaps/common'; import { ILayerData} from '../../../models/layer.data';
import { IItemLayer, ILayerData, IRenderoutputTiles, IRenderoutputImage, IGradientstop, ILayer, IHistogram } from '../../../models'; import { IRenderoutputTiles,IRenderoutputImage,IGradientstop,ILayer,IHistogram,IColor} from '../../../models/color.map';
import {Extent} from 'ol/extent'; import {Extent} from 'ol/extent';
import Projection from 'ol/proj/Projection'; import Projection from 'ol/proj/Projection';
import * as proj from 'ol/proj'; import * as proj from 'ol/proj';
import * as loadingstrategy from 'ol/loadingstrategy'; import * as loadingstrategy from 'ol/loadingstrategy';
import * as style from 'ol/style'; import * as style from 'ol/style';
import {Tile,Layer,Image} from 'ol/layer'; import {Tile,Layer,Image} from 'ol/layer';
import {XYZ,ImageStatic,OSM,BingMaps,TileWMS,TileArcGISRest} from 'ol/source'; import {XYZ,ImageStatic,OSM,BingMaps,TileWMS,TileArcGISRest,TileJSON,Source} from 'ol/source';
import {Vector as VectorSource} from 'ol/source'; import {Vector as VectorSource} from 'ol/source';
import { Vector as VectorLayer } from 'ol/layer'; import { Vector as VectorLayer } from 'ol/layer';
import VectorTileSource from 'ol/source/VectorTile'; import VectorTileSource from 'ol/source/VectorTile';
import VectorTileLayer from 'ol/layer/VectorTile'; import VectorTileLayer from 'ol/layer/VectorTile';
import {GeoJSON,MVT} from 'ol/format'; import {GeoJSON,MVT} from 'ol/format';
import { from } from 'rxjs'; import { Geometry } from 'ol/geom';
import TileSource from 'ol/source/Tile';
@Component({ @Component({
selector: 'fm-map-item-layers', selector: 'fm-map-item-layers',
@@ -27,12 +27,18 @@ import { from } from 'rxjs';
] ]
}) })
export class ItemLayersComponent extends LayerGroupComponent implements OnChanges, OnInit { export class ItemLayersComponent extends LayerGroupComponent implements OnChanges, OnInit,OnDestroy {
@Input() itemLayers: IItemLayer[]; @Input() itemLayers: IItemLayer[];
@Input() itemLayer: IItemLayer; @Input() itemLayer: IItemLayer;
@Output() onFeatureSelected: EventEmitter<any> = new EventEmitter<any>();
@Output() onFeatureHover: EventEmitter<any> = new EventEmitter<any>();
private _apiEndPoint: string; private _apiEndPoint: string;
private initialized:boolean = false;
private mapEventHandlerInstalled = false;
private selectedFeatures = {};
private selectionLayer:Layer<Source> = null;
constructor(private itemService: ItemService, @Host() private map: MapComponent, public appConfig: AppConfig) { constructor(private itemService: ItemService, private map: MapComponent, public appConfig: AppConfig) {
super(map); super(map);
this._apiEndPoint = appConfig.getConfig("apiEndPoint"); this._apiEndPoint = appConfig.getConfig("apiEndPoint");
} }
@@ -48,8 +54,7 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
return "#" + this.componentToHex(r) + this.componentToHex(g) + this.componentToHex(b) + this.componentToHex(a); return "#" + this.componentToHex(r) + this.componentToHex(g) + this.componentToHex(b) + this.componentToHex(a);
} }
getColorFromGradient(layer: ILayer, feature): style.Style { getColorFromGradient(layer: ILayer, value: number): IColor {
var value = feature.get(layer.name);
var gradient: IGradientstop[] = layer.renderer.colorMap.gradient; var gradient: IGradientstop[] = layer.renderer.colorMap.gradient;
var histogram: IHistogram = layer.renderer.band.histogram; var histogram: IHistogram = layer.renderer.band.histogram;
var index = (value - histogram.min) / histogram.max; var index = (value - histogram.min) / histogram.max;
@@ -67,71 +72,105 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
var green = Math.round(min.color.green + ((max.color.green - min.color.green) * i / size)); var green = Math.round(min.color.green + ((max.color.green - min.color.green) * i / size));
var blue = Math.round(min.color.blue + ((max.color.blue - min.color.blue) * i / size)); var blue = Math.round(min.color.blue + ((max.color.blue - min.color.blue) * i / size));
return new style.Style( return { alpha: alpha, red: red, green: green, blue: blue };
}
getColorForValue(layer: ILayer, value: number): IColor {
var color: IColor = { alpha:0,red:0,green:0,blue:0};
if(layer.renderer.colorMap.entries.length>0) {
color=layer.renderer.colorMap.noValue;
}
layer.renderer.colorMap.entries.forEach((entry) => {
if(entry.value==value) {
color =entry.color;
return;
}
});
return color;
}
getColor(item: IItem, layer: ILayer, feature): style.Style {
var value = layer.indexKey ? feature.get(layer.indexKey) : feature.get(layer.name);
var key = item.code + "_" + value;
if (!this.styleCache[key]) {
var color: IColor;
if(layer.renderer.colorMap.colormapType == "manual") {
color = this.getColorForValue(layer, value);
} else {
color = this.getColorFromGradient(layer, value);
}
this.styleCache[key] = new style.Style(
{ {
image: new style.Circle({ image: new style.Circle({
fill: new style.Fill({ fill: new style.Fill({
color: this.rgbaToHex(red,green,blue,alpha) color: this.rgbaToHex(color.red, color.green, color.blue, color.alpha)
}), }),
radius: 3 radius: 3
}), }),
fill: new style.Fill({ fill: new style.Fill({
color: this.rgbaToHex(red, green, blue, alpha) color: this.rgbaToHex(color.red, color.green, color.blue, color.alpha)
}), }),
stroke: new style.Stroke({ stroke: new style.Stroke({
color: this.rgbaToHex(red, green, blue, alpha), color: this.rgbaToHex(color.red, color.green, color.blue, 255),
width: 1.25 width: 1.25
}), }),
}); });
} }
return this.styleCache[key];
}
createLayer(itemLayer: IItemLayer): Layer { createGeotiffLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
var layer: Layer = null; var layerIndex = -1;
if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.geotiff.processed') { var layer: Layer<Source> = null;
let source = new XYZ({ maxZoom: 19, minZoom: 1, url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/tiles/{z}/{x}/{y}.png?v=${itemLayer.item.updated.getTime()}` }); layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : item.data.layers[0].index;
let source = new XYZ({ maxZoom: 19, minZoom: 1, url: `${this._apiEndPoint}/api/v1/items/${item.code}/tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}` });
layer = new Tile({ source: source }); layer = new Tile({ source: source });
var data = itemLayer.item.data; var data = item.data;
var l = (data && data.layers && data.layers.length > 0) ? data.layers[0] : null; var l = (data && data.layers && data.layers.length > 0) ? data.layers[0] : null;
if (l && l.rendering && l.rendering.renderoutputType == "Tiles") { if (l && l.rendering && l.rendering.renderoutputType == "Tiles") {
var rt = l.rendering as IRenderoutputTiles; var rt = l.rendering as IRenderoutputTiles;
let source = new XYZ({ maxZoom: rt.maxzoom, minZoom: rt.minzoom, url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/tiles/{z}/{x}/{y}.png?v=${itemLayer.item.updated.getTime()}` }); let source = new XYZ({crossOrigin: 'use-credentials', maxZoom: rt.maxzoom, minZoom: rt.minzoom, url: `${this._apiEndPoint}/api/v1/items/${item.code}/tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}` });
layer = new Tile({ source: source }); layer = new Tile({ source: source });
} }
if (l && l.rendering && l.rendering.renderoutputType == "Image") { if (l && l.rendering && l.rendering.renderoutputType == "Image") {
var ri = l.rendering as IRenderoutputImage; var ri = l.rendering as IRenderoutputImage;
let projection = new Projection({ // convert to EPSG:4326 asworkaround for cesium
code: 'image', var projectedExtent = proj.transformExtent( ri.extent, 'EPSG:3857','EPSG:4326');
units: 'pixels', let source = new ImageStatic({ imageExtent:projectedExtent,projection:'EPSG:4326', crossOrigin: 'use-credentials', url: `${this._apiEndPoint}/api/v1/items/${item.code}/mapimage/${layerIndex}?v=${Date.parse(item.updated)}` });
extent: ri.extent
});
let source = new ImageStatic({ imageExtent: ri.extent, projection: projection, url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/mapimage?v=${itemLayer.item.updated.getTime()}` });
layer = new Image({ source: source }); layer = new Image({ source: source });
} }
} else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.shape.processed') { return layer;
var data = itemLayer.item.data; }
var layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : itemLayer.item.data.layers[0].index;
var l = itemLayer.item.data.layers[layerIndex]; createShapeLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
var layerIndex = -1;
var layer: Layer<Source> = null;
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : item.data.layers[0].index;
var data = item.data;
var l:ILayer = (data && data.layers && data.layers.length > 0) ? data.layers[layerIndex] : null;
if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") { if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") {
var rt = itemLayer.item.data.layers[layerIndex].rendering as IRenderoutputTiles; var rt = l.rendering as IRenderoutputTiles;
layer = new VectorTileLayer({ layer = new VectorTileLayer({
declutter: true, declutter: true,
source: new VectorTileSource({ source: new VectorTileSource({
maxZoom: rt.maxzoom, maxZoom: rt.maxzoom,
minZoom: rt.minzoom, minZoom: rt.minzoom,
format: new MVT(), format: new MVT(),
url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/vectortiles/{z}/{x}/{y}.pbf?v=${itemLayer.item.updated.getTime()}` url: `${this._apiEndPoint}/api/v1/items/${item.code}/vectortiles/{z}/{x}/{y}.pbf?v=${Date.parse(item.updated)}`
}), }),
style: (feature) => { style: (feature) => {
return this.getColorFromGradient(l, feature); return this.getColor(item,l, feature);
} }
}) })
} if (l && l.rendering && l.rendering.renderoutputType == "Tiles") { } else if (l && l.rendering && l.rendering.renderoutputType == "Tiles") {
var rt = l.rendering as IRenderoutputTiles; var rt = l.rendering as IRenderoutputTiles;
layer = new Tile({ layer = new Tile({
source: new XYZ({ source: new XYZ({
maxZoom: rt.maxzoom, maxZoom: rt.maxzoom,
minZoom: rt.minzoom, minZoom: rt.minzoom,
url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/vectortiles/image_tiles/${layerIndex}/{z}/{x}/{y}.png?v=${itemLayer.item.updated.getTime()}` url: `${this._apiEndPoint}/api/v1/items/${item.code}/vectortiles/image_tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}`
}) })
}); });
} else { } else {
@@ -140,8 +179,8 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
let source = new VectorSource({ let source = new VectorSource({
strategy: loadingstrategy.bbox, strategy: loadingstrategy.bbox,
loader: function (extent: Extent, resolution: number, projection: Projection) { loader: function (extent: Extent, resolution: number, projection: Projection) {
var source = this as VectorSource; var source = this as VectorSource<Geometry>;
__this.itemService.getItemFeatures(itemLayer.item.code, extent, projection.getCode(), layerIndex).subscribe(function (data) { __this.itemService.getItemFeatures(item.code, extent, projection.getCode(), layerIndex).subscribe(function (data) {
var features = format.readFeatures(data); var features = format.readFeatures(data);
for (let f of features) { for (let f of features) {
if (f.get("code")) { if (f.get("code")) {
@@ -155,7 +194,7 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
layer = new VectorLayer({ layer = new VectorLayer({
source: source, source: source,
style: (feature) => { style: (feature) => {
var key = feature.get("color"); var key =feature.get("code") + "_" + feature.get("color");
if (!this.styleCache[key]) { if (!this.styleCache[key]) {
var color = feature.get("color"); var color = feature.get("color");
this.styleCache[key] = new style.Style( this.styleCache[key] = new style.Style(
@@ -184,8 +223,48 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
} }
}); });
} }
} else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.layer') { if(l.minzoom) {
let data = itemLayer.item.data as ILayerData; layer.setMinZoom(l.minzoom);
}
if(l.maxzoom) {
layer.setMaxZoom(l.maxzoom);
}
return layer;
}
createSelectionLayer(itemLayer:IItemLayer):Layer<Source> {
var layerIndex = -1;
var layer: Layer<Source> = null;
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : itemLayer.item.data.layers[0].index;
var data = itemLayer.item.data;
var l:ILayer = (data && data.layers && data.layers.length > 0) ? data.layers[layerIndex] : null;
if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") {
return new VectorTileLayer({
renderMode: 'vector',
source: (itemLayer.layer as VectorTileLayer).getSource(),
style: (feature) => {
if (feature.getId() in this.selectedFeatures) {
return new style.Style(
{
stroke: new style.Stroke({
color: 'red',
width: 2
})
}
);
}
},
minZoom: itemLayer.layer.getMinZoom(),
maxZoom: itemLayer.layer.getMaxZoom()
});
}
return null;
}
createExternalLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
let data = item.data as ILayerData;
var layer: Layer<Source> = null;
switch (data.interfaceType) { switch (data.interfaceType) {
case 'OSM': { case 'OSM': {
let source = new OSM(); let source = new OSM();
@@ -202,15 +281,48 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
layer = new Tile({ source: source }); layer = new Tile({ source: source });
break; break;
} }
case 'TileJSON': {
let source = new TileJSON(data.options);
layer = new Tile({ source: source });
break;
}
case 'TileArcGISRest': { case 'TileArcGISRest': {
let source = new TileArcGISRest(data.options); let source = new TileArcGISRest(data.options);
layer = new Tile({ source: source }); layer = new Tile({ source: source });
break; break;
} }
case 'VectorWFSJson': {
let source = new VectorSource({
format: new GeoJSON(),
url: function (extent) {
return (
data.options.url + '&srsname=' + data.projection +
'&bbox=' +
extent.join(',') +
',EPSG:3857'
);
},
strategy: loadingstrategy.bbox,
});
layer = new VectorLayer({ source: source });
break;
}
default: { default: {
break; break;
} }
} }
return layer;
}
createLayer(itemLayer: IItemLayer): Layer<Source> {
var layer: Layer<Source> = null;
var layerIndex = -1;
if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.geotiff.processed') {
layer = this.createGeotiffLayer(itemLayer.item,itemLayer);
} else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
layer = this.createShapeLayer(itemLayer.item,itemLayer);
} else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.layer') {
layer = this.createExternalLayer(itemLayer.item,itemLayer);
} }
if (layer) { if (layer) {
let geometry = new GeoJSON().readGeometry(itemLayer.item.geometry); let geometry = new GeoJSON().readGeometry(itemLayer.item.geometry);
@@ -223,54 +335,147 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
ngOnInit() { ngOnInit() {
super.ngOnInit(); super.ngOnInit();
if(this.itemLayers) {
this.updateLayers(this.itemLayers); this.updateLayers(this.itemLayers);
} else if(this.itemLayer) {
if(this.getItemlayer(this.itemLayer).item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
this.installMapEventHandler();
}
this.updateLayers([this.itemLayer])
} else {
this.updateLayers([]);
}
this.initialized=true;
} }
updateLayers(itemLayers: IItemLayer[]) { installMapEventHandler() {
if (itemLayers) { if(!this.mapEventHandlerInstalled) {
var olLayers = this.instance.getLayers(); this.map.instance.on(['click', 'pointermove'],this.mapEventHandler);
itemLayers.forEach((itemLayer, index) => { this.mapEventHandlerInstalled=true;
}
}
unInstallMapEventHandler() {
if(this.mapEventHandlerInstalled) {
this.map.instance.un(['click', 'pointermove'],this.mapEventHandler);
this.mapEventHandlerInstalled=false;
}
}
addOrUpdateOlLayer(itemLayer:IItemLayer,index:number):Layer<Source> {
if(!itemLayer) return null;
var olLayers = this.instance.getLayers();
var layer = itemLayer.layer; var layer = itemLayer.layer;
let olIndex = olLayers.getArray().indexOf(layer); let olIndex = olLayers.getArray().indexOf(layer);
if (olIndex < 0) { if (olIndex < 0) {
// New layer: we add it to the map // New layer: we add it to the map
layer = this.createLayer(itemLayer); layer = this.createLayer(itemLayer);
if (layer) { if (layer) {
itemLayer.layer = layer;
}
olLayers.insertAt(index, layer); olLayers.insertAt(index, layer);
}
} else if (index !== olIndex) { } else if (index !== olIndex) {
// layer has moved inside the layers list // layer has moved inside the layers list
olLayers.removeAt(olIndex); olLayers.removeAt(olIndex);
olLayers.insertAt(index, layer); olLayers.insertAt(index, layer);
} }
if(layer) {
itemLayer.layer = layer;
layer.setOpacity(itemLayer.opacity); layer.setOpacity(itemLayer.opacity);
layer.setVisible(itemLayer.visible); layer.setVisible(itemLayer.visible);
}
return layer;
}
updateLayers(itemLayers: IItemLayer[]) {
let newLayers: Layer<Source>[] = [];
if (itemLayers) {
itemLayers.forEach((itemLayer, index) => {
if(itemLayer.item.itemType == 'vnd.farmmaps.itemtype.temporal') {
let il = itemLayer as ITemporalItemLayer;
let previousLayer = this.addOrUpdateOlLayer(il.previousItemLayer,newLayers.length);
if(previousLayer) newLayers.push(previousLayer);
let selectedLayer = this.addOrUpdateOlLayer(il.selectedItemLayer,newLayers.length);
if(selectedLayer) newLayers.push(selectedLayer);
let nextLayer = this.addOrUpdateOlLayer(il.nextItemLayer,newLayers.length);
if(nextLayer) newLayers.push(nextLayer);
} else {
let layer = this.addOrUpdateOlLayer(itemLayer,newLayers.length);
if(layer) newLayers.push(layer);
}
}); });
// Remove the layers that have disapeared from childrenLayers // Remove the layers that have disapeared from childrenLayers
if (olLayers.getLength() > itemLayers.length) { var olLayers = this.instance.getLayers();
for (let i = itemLayers.length; i < olLayers.getLength(); i++) { while(olLayers.getLength() > newLayers.length) {
olLayers.removeAt(i); olLayers.removeAt(newLayers.length);
}
this.selectionLayer=null;
if(this.mapEventHandlerInstalled && itemLayers.length==1 && this.getItemlayer(itemLayers[0]).item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
this.selectionLayer = this.createSelectionLayer(this.getItemlayer(itemLayers[0]));
if(this.selectionLayer) olLayers.push(this.selectionLayer)
}
}
}
mapEventHandler = (event) => {
// select only when having observers
if(event.type === 'click' && !this.onFeatureSelected.observers.length) return;
if(event.type === 'pointermove' && !this.onFeatureHover.observers.length) return;
let itemLayer= this.getItemlayer(this.itemLayer);
if(itemLayer && itemLayer.layer) {
this.selectedFeatures = {};
if(itemLayer.layer ) {
let minZoom = itemLayer.layer.getMinZoom();
let currentZoom = this.map.instance.getView().getZoom();
if(currentZoom>minZoom) {
itemLayer.layer.getFeatures(event.pixel).then((features) => {
if(!features.length) {
this.onFeatureHover.emit(null);
return;
}
let fid = features[0].getId();
let feature = features[0];
if(event.type === 'pointermove') {
this.selectedFeatures[fid] = features[0];
this.onFeatureHover.emit({ "feature": feature,"itemCode":itemLayer.item.code });
} else {
this.onFeatureSelected.emit({ "feature": feature,"itemCode":itemLayer.item.code });
}
})
if(this.selectionLayer) this.selectionLayer.changed();
} }
} }
} }
} }
getItemlayer(itemLayer:IItemLayer):IItemLayer {
if((itemLayer as ITemporalItemLayer).selectedItemLayer) return (itemLayer as ITemporalItemLayer).selectedItemLayer;
return itemLayer;
}
ngOnChanges(changes: SimpleChanges) { ngOnChanges(changes: SimpleChanges) {
if (this.instance) { if (this.instance && this.initialized) {
if (changes['itemLayers']) { if (changes['itemLayers']) {
var itemLayers = changes['itemLayers'].currentValue as IItemLayer[]; var itemLayers = changes['itemLayers'].currentValue as IItemLayer[];
this.updateLayers(itemLayers); this.updateLayers(itemLayers);
} }
if (changes['itemLayer']) { if (changes['itemLayer']) {
var itemLayer = changes['itemLayer'].currentValue as IItemLayer; var itemLayer = changes['itemLayer'].currentValue as IItemLayer;
this.itemLayer = itemLayer
if(itemLayer) { if(itemLayer) {
if(this.getItemlayer(this.itemLayer).item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
this.installMapEventHandler();
}
this.updateLayers([itemLayer]); this.updateLayers([itemLayer]);
} else { } else {
this.unInstallMapEventHandler();
this.updateLayers([]); this.updateLayers([]);
} }
} }
} }
} }
ngOnDestroy() {
this.unInstallMapEventHandler();
super.ngOnDestroy();
}
} }

View File

@@ -3,17 +3,20 @@ import { LayerVectorComponent, SourceVectorComponent, MapComponent } from 'ngx-o
import { ItemService,ItemTypeService,IItem, IItemType } from '@farmmaps/common'; import { ItemService,ItemTypeService,IItem, IItemType } from '@farmmaps/common';
import { Feature } from 'ol'; import { Feature } from 'ol';
import { Point } from 'ol/geom'; import { Point,Geometry } from 'ol/geom';
import { MapBrowserEvent } from 'ol'; import { MapBrowserEvent } from 'ol';
import { Types } from 'ol/MapBrowserEventType';
import * as style from 'ol/style'; import * as style from 'ol/style';
import * as color from 'ol/color'; import * as color from 'ol/color';
import * as loadingstrategy from 'ol/loadingstrategy'; import * as loadingstrategy from 'ol/loadingstrategy';
import * as condition from 'ol/events/condition'; import * as condition from 'ol/events/condition';
import * as extent from 'ol/extent'; import * as extent from 'ol/extent';
import {Vector,Cluster} from 'ol/source'; import {Vector,Cluster,Source} from 'ol/source';
import {Layer} from 'ol/layer'; import {Layer} from 'ol/layer';
import {GeoJSON} from 'ol/format'; import {GeoJSON} from 'ol/format';
import {Select} from 'ol/interaction'; import {Select} from 'ol/interaction';
import {IStyles} from '../../../models/style.cache';
import {FeatureIconService} from '../../../services/feature-icon.service';
@Component({ @Component({
selector: 'fm-map-item-source-vector', selector: 'fm-map-item-source-vector',
@@ -23,54 +26,25 @@ import {Select} from 'ol/interaction';
] ]
}) })
export class ItemVectorSourceComponent extends SourceVectorComponent implements OnInit, OnChanges { export class ItemVectorSourceComponent extends SourceVectorComponent implements OnInit, OnChanges {
instance: Vector; instance: Vector<Geometry>;
private _format: GeoJSON; private _format: GeoJSON;
private _select: Select; private _select: Select;
private _hoverSelect: Select; private _hoverSelect: Select;
private _iconScale: number = 0.05; private _iconScale: number = 0.05;
@Input() features: Array<Feature>; @Input() features: Array<Feature<Geometry>>;
@Input() selectedFeature: Feature; @Input() selectedFeature: Feature<Geometry>;
@Input() selectedItem: IItem; @Input() selectedItem: IItem;
@Output() onFeaturesSelected: EventEmitter<Feature> = new EventEmitter<Feature>(); @Input() styles:IStyles;
private styleCache = { @Output() onFeatureSelected: EventEmitter<Feature<Geometry>> = new EventEmitter<Feature<Geometry>>();
'file': new style.Style({ @Output() onFeatureHover: EventEmitter<Feature<Geometry>> = new EventEmitter<Feature<Geometry>>();
image: new style.Icon({ private stylesCache:IStyles = {};
anchor: [0.5, 1],
scale: 0.05,
src: this.getIconImageDataUrl("fa fa-file-o")
}),
stroke: new style.Stroke({
color: 'red',
width: 1
}),
fill: new style.Fill({
color: 'rgba(0, 0, 255, 0.1)'
}),
geometry: (feature) => this.geometry(feature)
}),
'selected': new style.Style({
image: new style.Icon({
anchor: [0.5, 1],
scale: 0.08,
src: this.getIconImageDataUrl(null)
}),
stroke: new style.Stroke({
color: 'red',
width: 3
}),
fill: new style.Fill({
color: 'rgba(0, 0, 255, 0.1)'
}),
geometry: (feature) => this.geometry(feature)
})
};
constructor(@Host() private layer: LayerVectorComponent, private itemService: ItemService, @Host() private map: MapComponent, private itemTypeService: ItemTypeService) { constructor(@Host() private layer: LayerVectorComponent, private itemService: ItemService, private map: MapComponent, private itemTypeService: ItemTypeService,private featureIconService$:FeatureIconService) {
super(layer); super(layer);
this._format = new GeoJSON(); this._format = new GeoJSON();
} }
geometry(feature: Feature) { geometry(feature: Feature<Geometry>) {
let view = this.map.instance.getView(); let view = this.map.instance.getView();
let resolution = view.getResolution(); let resolution = view.getResolution();
var geometry = feature.getGeometry(); var geometry = feature.getGeometry();
@@ -82,82 +56,75 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
return geometry; return geometry;
} }
getIconImageDataUrl(iconClass:string, backgroundColor: string = "#c80a6e",color:string = "#ffffff"): string { getSelectedStyle(feature:Feature<Geometry>):style.Style {
var canvas = document.createElement('canvas'); let key = feature.get('itemType')+"_selected";
canvas.width = 365; let evaluatedStyle: style.Style =undefined;
canvas.height = 560; var styleEntry = this.stylesCache[key];
var ctx = canvas.getContext('2d'); if(styleEntry) {
ctx.lineWidth = 6; if(typeof styleEntry === 'function') {
ctx.fillStyle = backgroundColor; evaluatedStyle = styleEntry(feature);
ctx.strokeStyle = "#000000"; } else {
var path = new Path2D("m182.9 551.7c0 0.1 0.2 0.3 0.2 0.3s175.2-269 175.2-357.4c0-130.1-88.8-186.7-175.4-186.9-86.6 0.2-175.4 56.8-175.4 186.9 0 88.4 175.3 357.4 175.3 357.4z"); evaluatedStyle = styleEntry;
ctx.fill(path)
var iconCharacter = "";
if (iconClass != null) {
var element = document.createElement("i");
element.style.display = "none";
element.className = iconClass;
document.body.appendChild(element);
iconCharacter = getComputedStyle(element, "::before").content.replace(/"/g, '');
let iconFont = "200px " +getComputedStyle(element, "::before").fontFamily
document.body.removeChild(element);
ctx.strokeStyle = color;
ctx.fillStyle = color;
ctx.lineWidth = 15;
ctx.font = iconFont;
var ts = ctx.measureText(iconCharacter);
ctx.fillText(iconCharacter, 182.9 - (ts.width / 2), 250);
ctx.strokeText(iconCharacter, 182.9 - (ts.width / 2), 250);
} }
} else {
return canvas.toDataURL(); evaluatedStyle = this.stylesCache["selected"] as style.Style;
}
if(evaluatedStyle ) {
evaluatedStyle .setGeometry((feature:Feature<Geometry>) => this.geometry(feature));
}
return evaluatedStyle as style.Style
} }
ngOnInit() { ngOnInit() {
this.strategy = loadingstrategy.bbox; this.strategy = loadingstrategy.bbox;
this.format = new GeoJSON(); this.format = new GeoJSON();
this._select = new Select({ this._select = new Select({
style: (feature) => { style:null,
return this.styleCache['selected'];
},
hitTolerance: 10, hitTolerance: 10,
layers: [this.layer.instance as Layer] layers: [this.layer.instance as Layer<Source>]
}); });
this._hoverSelect = new Select({ this._hoverSelect = new Select({
style: (feature) => { style: (feature:Feature<Geometry>) => {
return this.styleCache['selected']; return this.getSelectedStyle(feature);
}, },
hitTolerance: 10, hitTolerance: 10,
condition: (e: MapBrowserEvent) => { condition: (e: MapBrowserEvent<UIEvent>) => {
return e.type == 'pointermove'; return e.type == 'pointermove';
}, },
layers: [this.layer.instance as Layer] layers: [this.layer.instance as Layer<Source>]
}); });
this.map.instance.addInteraction(this._select); this.map.instance.addInteraction(this._select);
this.map.instance.addInteraction(this._hoverSelect); this.map.instance.addInteraction(this._hoverSelect);
this._select.on('select', (e) => { this._select.on('select', (e) => {
if (e.selected.length > 0 && e.selected[0]) { if (e.selected.length > 0 && e.selected[0]) {
this.onFeaturesSelected.emit(e.selected[0]); this.onFeatureSelected.emit(e.selected[0]);
} else { } else {
this.onFeaturesSelected.emit(null); this.onFeatureSelected.emit(null);
}
});
this._hoverSelect.on('select', (e) => {
if (e.selected.length > 0 && e.selected[0]) {
this.onFeatureHover.emit(e.selected[0]);
} else {
this.onFeatureHover.emit(null);
} }
}); });
this.instance = new Vector(this); this.instance = new Vector(this);
this.host.instance.setSource(this.instance); this.host.instance.setSource(this.instance);
this.host.instance.setStyle((feature) => { this.host.instance.setStyle((feature) => {
var key = feature.get('itemType') + (this.selectedItem?"_I":""); var itemType = feature.get('itemType');
if (!this.styleCache[key]) { var key = itemType + (this.selectedItem?"_I":"");
if (this.itemTypeService.itemTypes[key]) { if (!this.stylesCache[key]) {
let itemType = this.itemTypeService.itemTypes[key]; if (this.itemTypeService.itemTypes[itemType]) {
let fillColor = color.asArray(itemType.iconColor); let itemTypeEntry = this.itemTypeService.itemTypes[itemType];
fillColor[3] = this.selectedItem?0:0.5; let fillColor = color.asArray(itemTypeEntry.iconColor);
this.styleCache[key] = new style.Style({ fillColor[3] = 0;
image: itemType.icon ? new style.Icon({ this.stylesCache[key] = new style.Style({
image: itemTypeEntry.icon ? new style.Icon({
anchor: [0.5, 1], anchor: [0.5, 1],
scale: 0.05, scale: 0.05,
src: this.getIconImageDataUrl(itemType.icon) src: this.featureIconService$.getIconImageDataUrl(itemTypeEntry.icon)
}):null, }):null,
stroke: new style.Stroke({ stroke: new style.Stroke({
color: 'red', color: 'red',
@@ -166,14 +133,23 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
fill: new style.Fill({ fill: new style.Fill({
color: fillColor color: fillColor
}), }),
geometry: (feature) => this.geometry(feature) geometry:(feature:Feature<Geometry>) => this.geometry(feature)
}); });
} else { } else {
key = 'file'; key = 'file';
} }
} }
var styleEntry = this.styleCache[key]; let evaluatedStyle =null;
return styleEntry; var styleEntry = this.stylesCache[key];
if(typeof styleEntry === 'function') {
evaluatedStyle = styleEntry(feature);
} else {
evaluatedStyle = styleEntry;
}
if(evaluatedStyle && evaluatedStyle.geometry_ == null) {
evaluatedStyle.setGeometry((feature) => this.geometry(feature));
}
return evaluatedStyle;
}); });
} }
@@ -185,7 +161,7 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
} }
if (changes["selectedFeature"] && this.instance) { if (changes["selectedFeature"] && this.instance) {
var features = this._select.getFeatures(); var features = this._hoverSelect.getFeatures();
var feature = changes["selectedFeature"].currentValue var feature = changes["selectedFeature"].currentValue
//this.instance.clear(false); //this.instance.clear(false);
//this.instance.addFeatures(features.getArray()); //this.instance.addFeatures(features.getArray());
@@ -203,5 +179,13 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
this.map.instance.addInteraction(this._hoverSelect); this.map.instance.addInteraction(this._hoverSelect);
} }
} }
if (changes["styles"] && this.instance) {
let styles = changes["styles"].currentValue;
for (const key in styles) {
if (styles.hasOwnProperty(key)) {
this.stylesCache[key]=styles[key];
}
}
}
} }
} }

View File

@@ -1,3 +1,4 @@
<div>
<div class="layerlist" *ngIf="itemLayers.length > 0;else noLayers"> <div class="layerlist" *ngIf="itemLayers.length > 0;else noLayers">
<div class="list-group"> <div class="list-group">
<div *ngFor="let itemLayer of itemLayers" class="list-group-item list-group-item-action p-2 text-truncate" [ngClass]="{'active' : selectedLayer==itemLayer}"> <div *ngFor="let itemLayer of itemLayers" class="list-group-item list-group-item-action p-2 text-truncate" [ngClass]="{'active' : selectedLayer==itemLayer}">
@@ -10,13 +11,14 @@
<a title="Transparency 75%" *ngIf="itemLayer.visible" href="#" class="btn btn-light btn-sm" (click)="handleSetOpacity($event,itemLayer,0.75)">75%</a> <a title="Transparency 75%" *ngIf="itemLayer.visible" href="#" class="btn btn-light btn-sm" (click)="handleSetOpacity($event,itemLayer,0.75)">75%</a>
<a title="No transparency" *ngIf="itemLayer.visible" href="#" class="btn btn-light btn-sm" (click)="handleSetOpacity($event,itemLayer,1)">100%</a> <a title="No transparency" *ngIf="itemLayer.visible" href="#" class="btn btn-light btn-sm" (click)="handleSetOpacity($event,itemLayer,1)">100%</a>
</span> </span>
<a href="#" title="Zoom to extent" class="btn btn-light btn-sm" (click)="handleZoomToExtent($event,itemLayer)"><i class="fa fa-search-plus" aria-hidden="true"></i></a> <a href="#" title="Zoom to extent" class="btn btn-light btn-sm" (click)="handleZoomToExtent($event,itemLayer)"><i class="far fa-search-plus" aria-hidden="true"></i></a>
<span *ngIf="firstLayer(itemLayer)"><a href="#" title="Toggle legend" class="btn btn-light btn-sm" (click)="itemLayer.legendVisible=toggleLegend($event,itemLayer.legendVisible)"><i class="fa fa-bar-chart" aria-hidden="true"></i></a></span> <span *ngIf="firstLayer(itemLayer)"><a href="#" title="Toggle legend" class="btn btn-light btn-sm" (click)="itemLayer.legendVisible=toggleLegend($event,itemLayer.legendVisible)"><i class="far fa-chart-bar" aria-hidden="true"></i></a></span>
<span class="float-right"><a href="#" title="Remove overlay" class="btn btn-light btn-sm" (click)="handleDelete($event,itemLayer)"><i class="fa fa-minus" aria-hidden="true"></i></a></span> <span *ngIf="!dataLayers" class="float-right"><a href="#" title="Remove overlay" class="btn btn-light btn-sm" (click)="handleDelete($event,itemLayer)"><i class="fas fa-layer-minus" aria-hidden="true"></i></a></span>
</div> </div>
<div *ngIf="itemLayer.legendVisible"> <div *ngIf="itemLayer.legendVisible">
<div class="card legend"> <div class="card legend">
<fm-map-layer-legend [layer]="firstLayer(itemLayer)" (click)="handleLegendClick($event,itemLayer);"></fm-map-layer-legend> <fm-map-layer-legend [layer]="firstLayer(itemLayer)" (click)="handleLegendClick($event,itemLayer);" [histogramenabled]="true"></fm-map-layer-legend>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -1,5 +1,5 @@
import { Component,Input,Output,EventEmitter } from '@angular/core'; import { Component,Input,Output,EventEmitter } from '@angular/core';
import { IItemLayer } from '../../../models'; import { IItemLayer } from '../../../models/item.layer';
@Component({ @Component({
selector: 'fm-map-layer-list', selector: 'fm-map-layer-list',
@@ -8,8 +8,9 @@ import { IItemLayer } from '../../../models';
}) })
export class LayerListComponent { export class LayerListComponent {
@Input() itemLayers: IItemLayer[]; @Input() itemLayers: IItemLayer[] = [];
@Input() baseLayers: boolean = false; @Input() baseLayers: boolean = false;
@Input() dataLayers: boolean = false;
@Output() onToggleVisibility = new EventEmitter<IItemLayer>(); @Output() onToggleVisibility = new EventEmitter<IItemLayer>();
@Output() onSetOpacity = new EventEmitter<{layer: IItemLayer,opacity:number }>(); @Output() onSetOpacity = new EventEmitter<{layer: IItemLayer,opacity:number }>();
@Output() onDelete = new EventEmitter<IItemLayer>(); @Output() onDelete = new EventEmitter<IItemLayer>();

View File

@@ -0,0 +1,18 @@
<div #layerValues class="layer-values">
<div class="cross" *ngIf="enabled$ | async">
<div class="pointer"></div>
<div class="values-container border border-dark rounded p-2" *ngIf="(layerValues$ | async ) as layers">
<div class="lonlat pb-2 "><span class="font-weight-bold">{{lonlat$}}</span><i class="ml-2 fal fa-copy" (click)="copyToClipboard()"></i> </div>
<ul class="value-list p-0 mb-0" *ngIf="layers.length>0 ;else no_data">
<li class="border-top pt-1 pb-1 value" *ngFor="let layerValue of layers">
<div>{{layerValue.layerName}}</div>
<div>{{layerValue.date|date}}</div>
<div><span *ngIf="layerValue.quantity"><span class="mr-1">{{layerValue.quantity}}</span> </span><span class="mr-1 font-weight-bold">{{layerValue.value}}</span><span>{{layerValue.unit}}</span></div>
</li>
</ul>
<ng-template #no_data>
<div i18n class="border-top pt-1 pb-1">No data at location</div>
</ng-template>
</div>
</div>
</div>>

View File

@@ -0,0 +1,37 @@
.layer-values {
position: absolute;
left: 50%;
top: 30%;
}
.cross {
display: block;
position: relative;
width: 1em;
height: 1em;
left: -0.5em;
top: -0.5em;
}
.values-container {
position: relative;
background-color: white;
left: calc( 1em - 1px);
top: -1.3em;
min-width: 15em;
}
.value-list {
list-style: none;
}
.pointer {
position: relative;
width: 0px;
height: 0px;
left: 0.5em;
border-top: 0.5em solid transparent;
border-bottom: 0.5em solid transparent;
border-right: 0.5em solid black;
}

View File

@@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { LayerValuesComponent } from './layer-values.component';
describe('LayerValuesComponent', () => {
let component: LayerValuesComponent;
let fixture: ComponentFixture<LayerValuesComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ LayerValuesComponent ]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(LayerValuesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@@ -0,0 +1,62 @@
import { Component, OnInit,Input,ViewChild,ElementRef,AfterViewInit } from '@angular/core';
import {IItemLayer} from '../../../models/item.layer';
import { Store } from '@ngrx/store';
import * as mapReducers from '../../../reducers/map.reducer';
import * as mapActions from '../../../actions/map.actions';
import { MapComponent } from 'ngx-openlayers';
import { ILayervalue } from '../../../models/layer.value';
import { Observable,interval,Subject } from 'rxjs';
import { debounce, throttle } from 'rxjs/operators';
import { toLonLat } from 'ol/proj';
import { toStringHDMS } from 'ol/coordinate';
import { ClipboardService } from 'ngx-clipboard'
import {GeoJSON,WKT} from 'ol/format';
import { Point } from 'ol/geom';
@Component({
selector: 'fm-map-layer-values',
templateUrl: './layer-values.component.html',
styleUrls: ['./layer-values.component.scss']
})
export class LayerValuesComponent implements OnInit,AfterViewInit {
@ViewChild('layerValues') containerRef:ElementRef;
offsetX$:number =0;
offsetY$:number =0;
lonlat$: string="";
wkt$= "";
layerValues$:Observable<Array<ILayervalue>> = this.store.select(mapReducers.selectGetLayerValues);
enabled$:Observable<boolean> = this.store.select(mapReducers.selectGetLayerValuesEnabled);
wktFormat$:WKT;
constructor( private store: Store<mapReducers.State>,private map: MapComponent,private clipboardService$:ClipboardService) {
this.wktFormat$=new WKT();
}
ngOnInit(): void {
}
moveEndSubject = new Subject<any>();
ngAfterViewInit():void {
this.offsetY$ = this.containerRef.nativeElement.offsetTop;
this.offsetX$ = this.containerRef.nativeElement.offsetLeft;
this.map.instance.on('moveend', () => {
this.moveEndSubject.next({});
});
this.moveEndSubject.pipe(throttle(ev => interval(100))).subscribe(() => this.updateValuesLocation());
}
updateValuesLocation() {
var xy = this.map.instance.getCoordinateFromPixel([this.offsetX$,this.offsetY$])
var lonlat = toLonLat(xy);
this.wkt$ = this.wktFormat$.writeGeometry(new Point(lonlat))
this.lonlat$ = toStringHDMS(lonlat);
this.store.dispatch(new mapActions.SetLayerValuesLocation(xy[0],xy[1]));
}
copyToClipboard() {
this.clipboardService$.copy(this.wkt$);
}
}

View File

@@ -1,9 +1,8 @@
import { Component, OnDestroy, OnInit, Input, Optional, OnChanges, SimpleChanges } from '@angular/core'; import { Component, OnDestroy, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core';
import { Vector } from 'ol/layer'; import { LayerVectorComponent, MapComponent } from 'ngx-openlayers';
import { Style } from 'ol/style'; import RenderType from 'ol/layer/Vector';
import { StyleFunction } from 'ol/style/Style'; import { Vector as VectorSource } from 'ol/source';
import { LayerVectorComponent, LayerGroupComponent, MapComponent } from 'ngx-openlayers'; import { Geometry } from 'ol/geom';
import { RenderType } from 'ol/layer/Vector';
@Component({ @Component({
selector: 'fm-map-aol-layer-vector-image', selector: 'fm-map-aol-layer-vector-image',
@@ -12,10 +11,10 @@ import { RenderType } from 'ol/layer/Vector';
`, `,
}) })
export class LayerVectorImageComponent extends LayerVectorComponent implements OnInit, OnDestroy, OnChanges { export class LayerVectorImageComponent extends LayerVectorComponent implements OnInit, OnDestroy, OnChanges {
public source: Vector; //public source: Vector;
@Input() @Input()
renderMode: RenderType | string = "image"; renderMode: RenderType<VectorSource<Geometry>> | string = "image";
constructor(map: MapComponent) { constructor(map: MapComponent) {
super(map); super(map);

View File

@@ -0,0 +1,13 @@
<div (click)="handleClick($event)" class="btn btn-outline-primary gps-location">
<svg height="100%" width="100%" viewBox="0 0 96 96">
<g
id="XMLID_1_"><circle
class="pan-to" [ngClass]="{'pan-to-centered':centered(),'pan-to-disabled':disabled()}"
cx="48"
cy="48"
r="9.8000002"/><path
class="pan-to" [ngClass]="{'pan-to-centered':centered(),'pan-to-disabled':disabled()}"
d="M 80.5,44.8 H 73.8 C 72.3,33 63,23.7 51.3,22.2 v -6.7 h -6.5 v 6.7 C 33,23.7 23.7,33 22.2,44.8 h -6.7 v 6.5 h 6.7 C 23.7,63 33,72.3 44.8,73.8 v 6.7 h 6.5 V 73.8 C 63,72.3 72.3,63 73.8,51.3 h 6.7 z M 48,67.5 C 37.2,67.5 28.5,58.8 28.5,48 28.5,37.2 37.2,28.5 48,28.5 c 10.8,0 19.5,8.7 19.5,19.5 0,10.8 -8.7,19.5 -19.5,19.5 z"
inkscape:connector-curvature="0"/></g>
</svg>
</div>

View File

@@ -0,0 +1,37 @@
@import "~bootstrap/scss/bootstrap.scss";
.gps-location {
display:block;
width:2.5em;
height:2.5em;
background-color: $body-bg;
background-size: contain;
margin-top:0.5em;
border-radius: 1.75em;
padding:0
}
.center, .tolerance, .border {
stroke-width: 0;
}
.pan-to {
fill: $secondary;
}
div.gps-location:hover .pan-to {
fill: $white;
}
.pan-to-centered {
fill: $primary;
}
div.gps-location:hover .pan-to-centered {
fill: theme-color-level($color-name: "primary", $level: -10)
}
.pan-to.pan-to-disabled {
fill: $gray-300;
}

View File

@@ -0,0 +1,84 @@
import { Component, OnInit, Input, Host, OnChanges, SimpleChanges,ChangeDetectorRef } from '@angular/core';
import { MapComponent } from 'ngx-openlayers';
import {IMapState} from '../../../models/map.state'
import {View} from 'ol';
import { fromLonLat } from 'ol/proj';
@Component({
selector: 'fm-map-pan-to-location',
templateUrl: './pan-to-location.component.html',
styleUrls: ['./pan-to-location.component.scss']
})
export class PanToLocation implements OnInit,OnChanges{
view: View;
map: MapComponent;
@Input() position: GeolocationPosition;
@Input() mapState: IMapState;
@Input() animate: boolean;
constructor(@Host() map: MapComponent,private changeDetectorRef$: ChangeDetectorRef ) {
this.map = map;
}
ngOnInit() {
this.view = this.map.instance.getView();
this.view.on('change:center', () => {
this.changeDetectorRef$.detectChanges();
});
}
ngOnChanges(changes: SimpleChanges) {
// if (changes.position && this.instance) {
// var p = changes.position.currentValue as Position;
// this.instance.setPosition(fromLonLat([p.coords.longitude, p.coords.latitude]));
// this.locationTolerance = p.coords.accuracy;
// this.recalcLocationTolerance();
// this.heading = p.coords.heading;
// }
}
p
public centered():boolean {
if(this.position && this.mapState) {
let center = this.view.getCenter();
let newCenter = fromLonLat([this.position.coords.longitude,this.position.coords.latitude]);
let x1 = newCenter[0].toFixed(0);
let x2 = center[0].toFixed(0);
let y1 = newCenter[1].toFixed(0);
let y2 = center[1].toFixed(0);
return x1==x2 && y1==y2;
}
return false;
}
public disabled():boolean {
return !this.position;
}
handleClick(event:Event) {
if(this.position) {
let view = this.map.instance.getView();
let newCenter = fromLonLat([this.position.coords.longitude,this.position.coords.latitude]);
let extent = [newCenter[0]-500,newCenter[1]-500,newCenter[0]+500,newCenter[1]+500];
var options = { padding: [0, 0, 0, 0],minResolution:1 };
let size = this.map.instance.getSize();
let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);
let threshold = 44 * rem;
var left = 1 * rem;
var right = 1 * rem;
var bottom = Math.round(size[1] / 2);
var top = 1 * rem;
if (size[0] > threshold) {
bottom = 1 * rem;
left = 23 * rem;
}
//options.padding = [top, right, bottom, left];
if (this.animate) options["duration"] = 2000;
view.fit(extent, options);
}
event.preventDefault();
}
}

View File

@@ -0,0 +1,35 @@
<div (click)="handleClick($event)" class="btn btn-outline-primary compass" [style.transform]="Rotation()" [ngClass]="{'compass-n':IsNorth()}">
<svg height="100%" width="100%" viewBox="0 0 132.29166 132.29167">
<g
inkscape:label="Laag 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-164.70832)">
<g
id="g4550"
transform="translate(2.3213753,-1.8555167)">
<path
id="top-r"
d="m 63.824458,179.82737 v 52.8823 H 48.380953 Z"
style="stroke:none;stroke-width:0.15389842px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="top-l"
d="m 63.824458,179.82737 v 52.8823 h 15.443505 z"
style="stroke:none;stroke-width:0.15389842px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="bottom-l"
d="m 63.824458,285.59197 v -52.8823 h -15.4435 z"
style="stroke:none;stroke-width:0.15389842px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="bottom-r"
d="m 63.824458,285.59197 v -52.8823 h 15.443505 z"
style="stroke:none;stroke-width:0.15389842px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="north"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';stroke-width:2.95481014"
d="m 50.702335,239.32724 h 9.926315 l 12.534859,23.63848 v -23.63848 h 8.425825 v 34.46509 H 71.663019 L 59.12816,250.15385 v 23.63848 h -8.425825 z" />
</g>
</g>
</svg>
</div>

View File

@@ -0,0 +1,68 @@
@import "~bootstrap/scss/bootstrap.scss";
.compass {
width:2.5em;
height:2.5em;
background-color: white;
opacity: 1;
border-radius:1.75em;
padding:0;
margin-top:0.5em;
display: block;
}
#north {
display: none;
fill:$black;
}
#top-l {
fill:#d40000;
}
#top-r {
fill:#ff0000;
}
#bottom-l {
fill:#000000;
}
#bottom-r {
fill:#666666;
}
div.compass:hover #top-l {
fill:$white;
}
div.compass:hover #top-r {
fill:$gray-300;
}
div.compass:hover #bottom-l {
fill:$gray-300;
}
div.compass:hover #bottom-r {
fill:$white;
}
div.compass:hover #north {
fill:$white;
}
.compass-n {
transition: opacity 1s ease-out 2s,height 1s ease-out 3s,margin-top 1s ease-out 3s;
opacity:0;
height:0;
margin-top:0;
}
.compass-n #bottom-l, .compass-n #bottom-r {
display: none;
}
.compass-n #north {
display: inline;
}

View File

@@ -7,22 +7,8 @@ import {View} from 'ol';
@Component({ @Component({
selector: 'fm-map-rotation-reset', selector: 'fm-map-rotation-reset',
template: `<div (click)="handleClick($event)" class="rounded-circle compass" [style.transform]="Rotation()" [ngClass]="{'compass-n':IsNorth()}"></div>`, templateUrl: './rotation-reset.component.html',
styles: [`.compass { styleUrls: ['./rotation-reset.component.scss']
width:2.5em;
height:2.5em;
background-color: white;
background-size: contain;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAF6AAABegB0iYb4wAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAmlSURBVHic7d39c1xVHcfxz92kCVh0BojVRpABRGBAKj6P4+io1LYp/hv9O/I/dNqmmU2mP9sf7SMFsSBaRMU+ZUAFB8HC1FKqJLR52D3+cJNm0ySb3XvPOd9zN+/XTGfa3eTe76T7yT3n3Hu/VwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMlz0iMXpEes68CymnUBWGGkJu2xLgLLCEha9i7+AdDKSXc76bNL0s0/SZ+zrgc5jiDpeE7S3ZLuGpR+Zl0McgQkHSNLf6m1/B22CEg6bk/OnfS8ZSFYRkAS4KRvSHqo5aUHp6SnrerBMgKShlUrV01Ws5JAQNKwas7hmIckIbMuYLNz0r2Srkrql6TLi69nUkPStqek61a1gSNICnZpMRytnNTXlHYa1IMWBMTeunONGvMQcwTEkMt//r9o8/4ex/+RKX74tr4naVub94empO/GKgarERBbGw6hHMMsUwTEFgFJHAEx4qTtkr650ddl0rNvScMRSsIaCIidEXV2Hiqbl3aHLgZrIyB2Oh46ZQyzzHAm3YCTBiRdk/T5O9+7vPrLJWl6UBp6TJoNWxnuxBHExo+1RjjauGdO+lGoYrA+AmKj6wsRuXjRBgGx0fWcgnmIDQISmcv7Xn29wPc9fln6WoCS0AYBie+XRb+xyTArOgISX+EPeUZAomOZNyInbVW+vHvXel+zzjLvktlMGnpKmvZbGdbDESSu59QmHB0YFD2zoiIgcZVeieLixbgISFy7PGxjxDE0joaAROKkHZK+6mFTD1zK+2ghAgISj7ehEfeqx0NA4vH2oWYeEg9j2QicdJ/y3ld9G33tBsu8kvKeWTXpS09KH5cuDm1xBIljtzoIR6ec1Ndo0w0F/hCQOLwPiRhmxUFAAnP5kcPH8u4KmbTnVx6PSlgbAQnvB5LuD7Dd+56Uvh9gu2hBQMILdoEhT6IKj4CEF2yuwDwkPAISkMv7WT0TcBc7zksPBNz+pkdAwnpeYc81ZX0tzzaEfwQkrOBzBJo5hMWZ9EBcfu/Gf9Rde5+OzqTfYWZQup+eWWFwBAnnJ+oyHAVtvZX32UIABCScaEMf7lUPh4CEE/NDW7hTCtojIAG4vO/VYxF3+ehU3P1tGgQkjOgn8JqcNAyCgIQRfU7APCQMlnk9c9I9yntfDRb5/gLLvEvm+qWhJ6RPi28Cd+II4t9OFQxHSQNN6ecG++1pBMQ/s7kA8xD/CIhHi/2qLJ8nuJeeWX4REL+elfQVw/1vn+rgybnoHAHxy3wliUck+EVA/DKfA9BUzi/Gq544aUjSRyrZSKHEMu+SZkPaviPvw4WSOIL4s0dpdBmp1eiZ5Q0B8SeZsT9n1f0hIB4s9r7aaV1Hi90vS/3WRfQCAuLHDxWm91VR927L+3GhJALiR3JDGpZ7/SAgfiS3tJolWFMVEZCSnPSgpKet61jDM1PSQ9ZFVB0BKW+vEj2f5GyvC+sJBKS8ZMf69MwqL8nffFWx2PvqmvKbpLzwcCa91cxWaehh6ZbfzW4eHEHK+ak8hiOArTN5fy4UREDKSX6liA7w5RCQcpJvHF3LG2ijIAJSkJOekPSodR0bcdLD56XHreuoKgJSXGWGLv0VqjU1BKS4ynzomIcUxzJvAU76gvJHGwz43rbnZd4l87ekL35H+m+YzfcujiDF7FSAcAS0ZZCeWYUQkGIqN2ThXvViCEiXFvtO7bKuo1tOGqFnVvcISPe+rfzptVXz5YvSt6yLqBpuy+xS6F/B+/btC7btZrMp1evBtt+LOIJ078+SrlgXUcBH9Xr9L9ZFVA0B6Z6TdNq6iAJOKK8dXSAgxRy3LqBbWZZVruYUEJBizkiasy6iC/POuZesi6giAlLM/yS9Zl1Ep7Ise3V8fJyz6AUQkOKqNGSpUq1JISDFVeZDV6vVKlNraghIcW9Jese6iA7889ChQ29bF1FVBKSck9YFbMQ5d8y6hiojIOVUYehShRqTRUDKeVnStHURbczMz8+ftS6iyghIObPKQ5Kql44cOUJPrBIISHknrAtoI+XaKoGAlHdciV7j1Gg0TlnXUHUEpLz3JV2yLmINFyYmJt6zLqLqCIgfya0UcXGiHwTEj+TG+s655GqqIgLix+8lfWxdRItPhoeHz1kX0QsIiB8N5ZfAJ8E5d2p0dHTBuo5eQED8SWZIU6vVkqml6giIPyeVH0msNbMse8G6iF5BQPy5JukN6yIkvT42NnbVuoheQUD8SmFpNYUaegYB8ct87M/8wy8C4tebkv5tuP8Px8bG/mq4/55DQPxykiyvf0r2urCqIiD+Wc4BmH94RkD8O6P8PpHY5hYWFuh95RkB8W9a0quxd+qcOzs5Oflp7P32OgISRvSVpCzLWL0KgICEEX0uwOXtYRCQMP4m6e8R9/fO4cOHY+5v0yAg4cQc8vw64r42FQISTrSAMP8Ih4CEc1ZSjFWlmYGBgVci7GdTIiDhzEr6TYT9nNm/f7/FeZdNgYCEFXzow73nYRGQsI4p7LVRzjmXfAPtKiMgYV2RdCHg9s/X6/UPAm5/0yMg4YU8gcfJwcAISHjB5gjMP8IjIOGdU5ieWddv3LjxeoDtogUBCa8h6bTvjWZZdvLo0aMpdFHpaQQkjhBzBeYfERCQOE7Jb8+sRn9/P72vIiAgcVyX5G2+4Jw7d+DAgZR6AfcsAhKPzyERw6tICEg83j7UzjkCEgkBiee8pH952M4H9Xr9ooftoAMEJC4fy70nRO+raAhIXKWHRgyv4iIgcb0oqcxzy2e3bNkS4x4TLCIgcc1IKnz3X5Zlvz148OC0x3qwAQISX+ELDLk4MT4CEl/hDiSNRoOAREZA4ntXed+sbr09MTHxD9/FoD0CYqPrlShWr2wQEBtdD5V4cpQNAmLjFXXXM2t6YGDgd6GKwfoIiI055edEOvUCva9sEBA7Hc8pmH/YISB2Or2myjUaDcvnHm5qBMTOh5I6eSLtm5OTk1dCF4O1ERBbnQydGF4ZIiC2CEjiCIitP0q62ub9a8PDw2/EKgarERBbTUntupOcHB0dbcYqBqsREHvrDqF4MKc9AmLvtKSFNV5vLCwsnIldDFYiIPY+kfSHNV5/bWJi4nrsYrASAUnDqgsReTBnGghIGlbNNZh/pIGApOGipPda/v3+2NjYJatisIyApKP1WYPHzKrACgQkHbfnHDRnSEe/dQG47UVJNyVlWZbR+yoRBCQdNyWdleTGx8c/sy4GOQKSluOi725SCEhaTvT19VnXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOvB/FOHOpgoUlk8AAAAASUVORK5CYII=);
opacity: 1;
}
.compass-n {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAF6AAABegB0iYb4wAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAe9SURBVHic7d07jB1XHcfx712vDXYinDhegw2YOOERYhzLxAhhAhhE4sSORUdDKioaKpoIEBHhIR4NSomgBEEdCQqKCImKAhHwxilAbpASiC3iOMkGr3cPxXizu/Zd37kz5zW734+0ze6Zmb/u3d89Z87MnAuSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSpE0qwCjAqHQdWjVTugCtc3QeHihdhFbNli5A65wJEIDnSxeihj1IXc6M4EzpIqTqBNgT4No8XDsPd5WuRw17kHo8BmwLsG0ZTpUuRg0DUo+3h1bBYZa0KjQ9x8UA4Vzzc+k5J1CqYA9Sh0+x/rxjzxx8slQxWmVA6nD6xl+MxvxO+RmQOtx0zuF5SB0MSGEB3gccGfOno/NwMHc9Ws+AlHeGje+/ejRnIbqZASlvw3ON4HlIcd45WlCAdwAXgdtXfje/vskbt8HeQ/BW3sq0wh6krJOsCccYt70On81Ui8YwIGVNHELNOMwqyoCUNfGfP8DZHIVoPANSSICPAB9s0fSe8/Dh1PVoPANSTusLgUteNCzGgJQzzT+9ASnEad4CQjNzdZFmmned+ZubA1ydhb33wZW0lelG9iBlPMKYcNzCjkX4YqpitDEDUsbUQ6YZh1lFGJDMrq97NfU9VgFOu2ZWfgYkv48DBzpst/88HItdjG7NgOTX+cr4slfVszMg+XU+l/Ahqvwc02YUYA54mVt8MG0wzbtieQn2H4X/xK1MG7EHyesx+r3mMzOumZWVAcmr9zmEiznkZUAyCbANeDjCrk65ZlY+BiSfTwN7Iuznzn3NOlrKwIDkE21o5LPq+RiQfKJN0foVCfkYkAwCvB/4WMT9HXkBPhBrf9qYAcnj8dg7XGqmjJWYAckj+jmD0715eCU9sQDvBC4Bu9q0n3Al/W0jWLgMd52Ahc7FaSJ7kPQ+T8twTCPAzt3wudj71XoGJL1kM07evJieAUkv2QLUTvemZ0ASCvBR4N6E+z/0N7gv1f5lQFJL/gm/zV4kKQOSVvJ/Xs9D0nKaN5EA76JZ+2r7NNu1neZdY3ER9h2DV6ffVJPYg6RziinD0dH2Ha6ZlYwBSSfblW4Xc0jHgCQQmtc12/cLjuBM8L1Mwhc1jQeB92Q83r5zzXpbisyApJF9ZsmlSdMwIGlkPyfwKcM0nOaNLMA+4CU6fvh0mOZdsRzgwBH4d/dd6Eb2IPGdpszrOjPKODGwVRiQ+IoNdRxmxecQK6LQrFf1CnBH1330GGIxgssLMHccFnvsRmvYg8T1ED3C0VeA3TvgRKnjb0YGJK7iU63e3RuXAYmr+DmA5yFxGZBIAhwE7i9dB3D4PNxduojNwoDEc7Z0ASuW7EWiMSDxVDP29yGqeJzmjSDATpqHo3ov79NnmnfFCBYWYO9xeDPC7rY0e5A4vkCCta+6CrBzF5wsXcdmYEDiqG5Is1xhTUNkQOKocSHp6Atmb0UGpKfQfK3B3aXrGOPgPBwuXcTQGZD+qp1S9Vn1/gxIf9WO9X3KsD+neXsIsJvm7t1oy/vEmOZd49oizLlmVnf2IP08Sp61r7qanYVHShcxZAakn+rH+H4TVT8GpKPr61CdKl3HJCM47ZpZ3fnCdfcJ4N2li5gkwNwLcLx0HUNlQLobzAyRNy92Z0C6G9LYfki1VsWAdBCaZUWHtNTngy/CgdJFDJEB6eY0w7qGNFoawIRCjQxIN4Mb03se0s2QPgWrEJoLg6/QXEWPLvKV9LVeG8HcYbia7hCbz2zpAgbofuAfqXae8hPr+rfuPp/wEJIkSZIkSZIkSZI0fN5q0s+dwB+m3OYtmpsdX+tx3GeB/S3bPgz8t8expM7mgNDh5+mex70wxbHmeh5L6qxrQK7Q73FdA5KJt7uXcTvwzdJFaDIDUs7XgHtKF6FbMyDl7ACeKl2Ebs2AlPUEcLR0EdqYASlrBvhu6SK0MQNS3peAE6WL0HgGpA4/Kl2AxjMgdfgMzUrxqowBqceP8f2ojm9IPR4Avly6CK1nQOryNHV/Ic+WY0DyuQRcntDmQ8BXM9SilgxIPleAn7Zo9xSwK3EtasmA5PUz4OUJbfYDX89Qi1owIHm9AXy/RbsngT2Ja1ELBiS/nwP/nNDmDuAbGWqRkprmgakLa7Z7okX7N4H3bnBcH5jKxB6kjF8Df53QZic+VKWB69qDAJxtsc1V4N4xx7UHycQepJxngT9OaLMdb4fXgPXpQQAearHdEnDshu3sQTKxBynrT8DvJrSZAb6XoRYpur49CMARml5i0vYn12xjD5KJPUh5fwd+06JdmwuMUlVi9CAAh4D/tdjH49fb24NkYg9ShwvAL1u0+yG+ZxqQWD0INDcpvt5iP1/BHiQbP43q8RLwTIt2PlSlwYjZg0Bzk+KlKfZpD5KYPUhdXgV+UroIrTIg9XkG+FfpItQwIPVZAH5Qugg1DEidfgG8WLoIGZBaXcO7eKtgQOr1W+AvpYvY6gxIvQLw7dJFbHUGpG6/B54rXcRWZkDq9yRNb6ICDEj9/kzzeK4KMCDD8C2ah6qUmQEZhnPAr0oXsRUZkOH4Ds1DVZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkSZIkbSX/B0lc8D0skvAeAAAAAElFTkSuQmCC);
transition: opacity 1s ease-out;
transition-delay: 2s;
opacity:0;
}
`]
}) })
export class RotationResetComponent implements OnInit { export class RotationResetComponent implements OnInit {
view: View; view: View;
@@ -43,7 +29,7 @@ export class RotationResetComponent implements OnInit {
}); });
} }
constructor( @Host() private map: MapComponent, private changeDetectorRef$: ChangeDetectorRef ) { constructor( private map: MapComponent, private changeDetectorRef$: ChangeDetectorRef ) {
} }
handleClick(event:Event) { handleClick(event:Event) {

View File

@@ -1,40 +0,0 @@
// import { Component, OnInit,Input } from '@angular/core';
//import { MapComponent } from 'ngx-openlayers';
//import OLCesium from 'olcs/OLCesium.js';
// @Component({
// selector: 'fm-map-switch2d3d',
// template: '<div (click)="handleClick($event)" class="rounded-circle twotreed">{{label}}</div>',
// styles: [`.twotreed {
// width:2.5em;
// height:2.5em;
// background-color: white;
// text-align:center;
// line-height:2.5em;
// font-weight:bold;
// cursor:default;}`]
// })
// export class Switch2D3DComponent {
// @Input() enable:boolean;
// public label: string = "3D";
// private ol3d: OLCesium;
// constructor(private map: MapComponent) {
// }
// ngOnInit() {
// this.ol3d = new OLCesium({ map: this.map.instance }); // ol2dMap is the ol.Map instance
// }
// handleClick(event) {
// this.enable = !this.enable;
// if (this.enable)
// this.ol3d.setEnabled(this.enable);
// this.label = this.enable?"2D":"3D";
// }
// }

View File

@@ -1,4 +1,5 @@
import { Component, Host, Input, OnInit, OnChanges, SimpleChanges, forwardRef } from '@angular/core'; import { Component, Host, Input, OnInit, OnChanges, SimpleChanges, forwardRef } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { ViewComponent, MapComponent } from 'ngx-openlayers'; import { ViewComponent, MapComponent } from 'ngx-openlayers';
@@ -9,12 +10,24 @@ import { ViewComponent, MapComponent } from 'ngx-openlayers';
export class ZoomToExtentComponent implements OnChanges { export class ZoomToExtentComponent implements OnChanges {
view: ViewComponent; view: ViewComponent;
map: MapComponent; map: MapComponent;
paddingTop: number = 0;
paddingLeft: number = 0;
paddingBottom: number = 0;
paddingRight: number = 0;
@Input() extent: number[]; @Input() extent: number[];
@Input() animate: boolean = false; @Input() animate: boolean = false;
constructor(@Host() view: ViewComponent, @Host() map: MapComponent) { constructor(@Host() view: ViewComponent, @Host() map: MapComponent,route: ActivatedRoute ) {
this.view = view; this.view = view;
this.map = map; this.map = map;
if(route && route.snapshot && route.snapshot.data && route.snapshot.data["fm-map-zoom-to-extent"]) {
let params = route.snapshot.data["fm-map-zoom-to-extent"];
this.paddingTop = params["padding-top"] ? params["padding-top"] : 0;
this.paddingBottom = params["padding-bottom"] ? params["padding-bottom"] : 0;
this.paddingLeft = params["padding-left"] ? params["padding-left"] : 0;
this.paddingRight = params["padding-right"] ? params["padding-right"] : 0;
}
} }
ngOnChanges(changes: SimpleChanges) { ngOnChanges(changes: SimpleChanges) {
@@ -22,17 +35,17 @@ export class ZoomToExtentComponent implements OnChanges {
var options = { padding: [0, 0, 0, 0],minResolution:1 }; var options = { padding: [0, 0, 0, 0],minResolution:1 };
let size = this.map.instance.getSize(); let size = this.map.instance.getSize();
let rem = parseFloat(getComputedStyle(document.documentElement).fontSize); let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);
let threshold = 44 * rem; let threshold = 40 * rem;
var left = 1 * rem; var left = 1 * rem;
var right = 1 * rem; var right = 1 * rem;
var bottom = Math.round(size[1] / 2); var bottom = Math.round((size[1] / 2) + (4*rem));
var top = 1 * rem; var top = 1 * rem;
if (size[0] > threshold) { if (size[0] > threshold) {
bottom = 1 * rem; bottom = 5 * rem;
left = 23 * rem; left = 23 * rem;
} }
options.padding = [top, right, bottom, left]; options.padding = [top + (this.paddingTop*rem), right+ (this.paddingRight*rem), bottom + (this.paddingBottom*rem), left+ (this.paddingLeft*rem)];
if (this.animate) options["duration"] = 2000; if (this.animate) options["duration"] = 1000;
this.view.instance.fit(this.extent, options); this.view.instance.fit(this.extent, options);
} }
} }

View File

@@ -1,4 +1,3 @@
@import "../../_theme.scss";
@import "~bootstrap/scss/bootstrap.scss"; @import "~bootstrap/scss/bootstrap.scss";
@@ -8,7 +7,7 @@
user-select: none; user-select: none;
} }
.row:hover { .row.selected {
background-color: gray('100'); background-color: gray('100');
} }

View File

@@ -1,11 +1,13 @@
import { Component, Input, OnInit, ComponentFactoryResolver, ViewChild, SimpleChanges, ComponentFactory, Inject, Type} from '@angular/core'; import { Component, Input, OnInit, ComponentFactoryResolver, ViewChild, SimpleChanges, ComponentFactory, Inject} from '@angular/core';
import { Feature } from 'ol'; import { Feature } from 'ol';
import { Geometry} from 'ol/geom';
import { FeatureListComponent,AbstractFeatureListComponent } from '../feature-list/feature-list.component'; import { FeatureListComponent,AbstractFeatureListComponent } from '../feature-list/feature-list.component';
import { WidgetHostDirective } from '../widget-host/widget-host.directive'; import { WidgetHostDirective } from '../widget-host/widget-host.directive';
import {IQueryState } from '../../models/query.state'; import {IQueryState,PackageService } from '@farmmaps/common';
import * as mapReducers from '../../reducers/map.reducer'; import * as mapReducers from '../../reducers/map.reducer';
import * as mapActions from '../../actions/map.actions'; import * as mapActions from '../../actions/map.actions';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
import { Observable } from 'rxjs';
@Component({ @Component({
@@ -15,45 +17,76 @@ import { Store } from '@ngrx/store';
}) })
export class FeatureListContainerComponent { export class FeatureListContainerComponent {
constructor(private store: Store<mapReducers.State>,private componentFactoryResolver: ComponentFactoryResolver, @Inject(AbstractFeatureListComponent) public featureLists: AbstractFeatureListComponent[] ) { constructor(private store: Store<mapReducers.State>,private componentFactoryResolver: ComponentFactoryResolver, @Inject(AbstractFeatureListComponent) public featureLists: AbstractFeatureListComponent[],private packageService:PackageService ) {
this.featureLists = [...this.featureLists].reverse();
} }
@Input() features: Array<Feature> @Input() features: Array<Feature<Geometry>>
@Input() queryState: IQueryState; @Input() queryState: IQueryState;
@Input() selectedFeature: Feature<Geometry>;
@Input() clickedFeature:Observable<Feature<Geometry>>;
@ViewChild(WidgetHostDirective) widgetHost: WidgetHostDirective; @ViewChild(WidgetHostDirective, { static: true }) widgetHost: WidgetHostDirective;
componentRef:any;
loadComponent(queryState:IQueryState) { loadComponent(queryState:IQueryState) {
var componentFactory: ComponentFactory<AbstractFeatureListComponent> = this.componentFactoryResolver.resolveComponentFactory(FeatureListComponent); // default let componentFactory: ComponentFactory<AbstractFeatureListComponent> = this.componentFactoryResolver.resolveComponentFactory(FeatureListComponent); // default
var selected = -1; let selected = -1;
for (var i = 0; i < this.featureLists.length; i++) { let maxMatches =0;
if (this.featureLists[i]['forItemType'] == queryState.itemType && this.featureLists[i]['forChild'] && queryState.parentCode && queryState.parentCode != "") { let showItem = true;
for (let i = 0; i < this.featureLists.length; i++) {
let matches=0;
let criteria=0;
if (this.featureLists[i]['forItemType']) {
criteria++;
if( this.featureLists[i]['forItemType'].split(",").filter(part => part == queryState.itemType).length == 1) {
matches++;
}
}
if(this.featureLists[i]['forChild'] ) {
criteria++;
if(queryState.parentCode && queryState.parentCode != "") {
matches++;
}
}
if(criteria == matches && matches > maxMatches) {
selected=i; selected=i;
break; maxMatches = matches;
} else if (this.featureLists[i]['forItemType'] == queryState.itemType) {
selected = i;
break;
} }
} }
if (selected >= 0) { if (selected >= 0) {
componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.featureLists[i]['constructor'] as any); componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.featureLists[selected]['constructor'] as any);
if (this.featureLists[selected]['collapseSearch'] === true) { if (this.featureLists[selected]['collapseSearch'] === true) {
this.store.dispatch(new mapActions.CollapseSearch()); this.store.dispatch(new mapActions.CollapseSearch());
} }
} }
const viewContainerRef = this.widgetHost.viewContainerRef; const viewContainerRef = this.widgetHost.viewContainerRef;
viewContainerRef.clear(); viewContainerRef.clear();
if(showItem) {
this.componentRef = viewContainerRef.createComponent(componentFactory);
(<AbstractFeatureListComponent>this.componentRef.instance).features = null;
(<AbstractFeatureListComponent>this.componentRef.instance).queryState = queryState;
(<AbstractFeatureListComponent>this.componentRef.instance).selectedFeature = null;
}
}
const componentRef = viewContainerRef.createComponent(componentFactory); ngOnInit() {
(<AbstractFeatureListComponent>componentRef.instance).features = this.features; this.clickedFeature.subscribe((feature => {
(<AbstractFeatureListComponent>componentRef.instance).queryState = this.queryState; (<AbstractFeatureListComponent>this.componentRef.instance).handleFeatureClick(feature);
}));
} }
ngOnChanges(changes: SimpleChanges) { ngOnChanges(changes: SimpleChanges) {
if (changes["features"] && changes["features"].currentValue) { if ((changes["queryState"] && changes["queryState"].currentValue)) {
if (this.queryState) { this.loadComponent(changes["queryState"].currentValue);
this.loadComponent(this.queryState); }
} if ((changes["features"] && changes["features"].currentValue)) {
(<AbstractFeatureListComponent>this.componentRef.instance).features = changes["features"].currentValue;
this.componentRef.changeDetectorRef.detectChanges();
}
if(changes["selectedFeature"]) {
(<AbstractFeatureListComponent>this.componentRef.instance).selectedFeature = changes["selectedFeature"].currentValue;
this.componentRef.changeDetectorRef.detectChanges();
} }
} }
} }

View File

@@ -1,11 +1,11 @@
<div *ngIf="features;let features">
<div class="card border-0"> <div class="card border-0">
<div class="card-body" *ngIf="(schemeItem|async);let schemeItem"> <div class="card-body" *ngIf="(schemeItem|async);let schemeItem">
<div><a href="#" (click)="handleBackClick($event)" i18n>back</a></div> <fm-back-button></fm-back-button>
<h4 i18n>Farm</h4> <h4 i18n>Farm</h4>
<h3>{{schemeItem.name}}</h3> <h3>{{schemeItem.name}}</h3>
<div *ngIf="features;let features">
<div class="cropfields"> <div class="cropfields">
<div class="row m-0" *ngFor="let feature of features" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)"> <div class="row m-0 pl-3 pr-3" *ngFor="let feature of features" [ngClass]="{'selected':isFeatureSelected(feature)}" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)">
<fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container> <fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container>
</div> </div>
</div> </div>

View File

@@ -1,7 +1,6 @@
@import "../../_theme.scss";
@import "~bootstrap/scss/bootstrap.scss"; @import "~bootstrap/scss/bootstrap.scss";
feature-list-feature-container { fm-map-feature-list-feature-container {
width:100%; width:100%;
pointer-events:none; pointer-events:none;
} }
@@ -12,12 +11,12 @@ feature-list-feature-container {
padding-left:1.5rem; padding-left:1.5rem;
} }
.row:hover { .row.selected {
background-color: gray('100'); background-color: gray('100');
} }
.cropfields { .cropfields {
border-top: 1px solid gray('500'); border-top: 1px solid gray('500');
margin-left: -1.5rem; margin-left: -1.25rem;
margin-right: -1.5rem; margin-right: -1.25rem;
} }

View File

@@ -1,4 +1,4 @@
import { Component, Injectable,AfterViewInit, OnInit} from '@angular/core'; import { Component, Injectable,AfterViewInit, OnInit,SimpleChanges, ChangeDetectorRef} from '@angular/core';
import { Location } from '@angular/common'; import { Location } from '@angular/common';
import { AbstractFeatureListComponent } from '../feature-list/feature-list.component'; import { AbstractFeatureListComponent } from '../feature-list/feature-list.component';
import {ForItemType } from '../for-item/for-itemtype.decorator'; import {ForItemType } from '../for-item/for-itemtype.decorator';

View File

@@ -1,10 +1,10 @@
<div *ngIf="features;let features">
<div class="card border-0"> <div class="card border-0">
<div class="card-body"> <div class="card-body">
<div><a href="#" (click)="handleBackClick($event)" i18n>Back</a></div> <fm-back-button></fm-back-button>
<h3 i18n><i class="fm fm-farm"></i> Farms</h3> <h3><i class="far fa-farm"></i>&nbsp;<span i18n>Farms</span></h3>
<div *ngIf="features;let features">
<div class="farms"> <div class="farms">
<div class="row m-0" *ngFor="let feature of features" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)"> <div class="row m-0 pl-3 pr-3" *ngFor="let feature of features"[ngClass]="{'selected':isFeatureSelected(feature)}" (click)="handleFeatureClick(feature)" (mouseenter)="handleFeatureMouseEnter(feature)" (mouseleave)="handleFeatureMouseLeave(feature)">
<fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container> <fm-map-feature-list-feature-container [feature]="feature"></fm-map-feature-list-feature-container>
</div> </div>
</div> </div>

View File

@@ -1,7 +1,6 @@
@import "../../_theme.scss";
@import "~bootstrap/scss/bootstrap.scss"; @import "~bootstrap/scss/bootstrap.scss";
feature-list-feature-container { fm-map-feature-list-feature-container {
width:100%; width:100%;
pointer-events:none; pointer-events:none;
} }
@@ -12,12 +11,12 @@ feature-list-feature-container {
padding-left:1.5rem; padding-left:1.5rem;
} }
.row:hover { .row.selected {
background-color: gray('100'); background-color: gray('100');
} }
.farms { .farms {
border-top: 1px solid gray('500'); border-top: 1px solid gray('500');
margin-left: -1.5rem; margin-left: -1.25rem;
margin-right: -1.5rem; margin-right: -1.25rem;
} }

View File

@@ -2,12 +2,14 @@ import { Component, Injectable } from '@angular/core';
import { Location } from '@angular/common'; import { Location } from '@angular/common';
import { AbstractFeatureListComponent } from '../feature-list/feature-list.component'; import { AbstractFeatureListComponent } from '../feature-list/feature-list.component';
import { ForItemType } from '../for-item/for-itemtype.decorator'; import { ForItemType } from '../for-item/for-itemtype.decorator';
import { Store } from '@ngrx/store'; import { Store,Action } from '@ngrx/store';
import * as mapReducers from '../../reducers/map.reducer'; import * as mapReducers from '../../reducers/map.reducer';
import { commonReducers, ItemTypeService } from '@farmmaps/common'; import { commonReducers, ItemTypeService } from '@farmmaps/common';
import * as mapActions from '../../actions/map.actions'; import * as mapActions from '../../actions/map.actions';
import { tassign } from 'tassign'; import { tassign } from 'tassign';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { Feature } from 'ol';
import { Geometry} from 'ol/geom';
@ForItemType("vnd.farmmaps.itemtype.croppingscheme") @ForItemType("vnd.farmmaps.itemtype.croppingscheme")
@Injectable() @Injectable()
@@ -22,8 +24,8 @@ export class FeatureListCroppingschemeComponent extends AbstractFeatureListCompo
super(store, itemTypeService, location); super(store, itemTypeService, location);
} }
handleFeatureClick(feature) { getAction(feature:Feature<Geometry>):Action {
var queryState = tassign(mapReducers.initialState.queryState, { parentCode: feature.get('code'), itemType: "vnd.farmmaps.itemtype.cropfield" }); var queryState = tassign(mapReducers.initialState.queryState, { parentCode: feature.get('code'), itemType: "vnd.farmmaps.itemtype.cropfield" });
this.store.dispatch(new mapActions.DoQuery(queryState)); return new mapActions.DoQuery(queryState);
} }
} }

View File

@@ -1,5 +1,6 @@
import { Component, Input, OnInit, ComponentFactoryResolver, ViewChild, SimpleChanges, ComponentFactory, Inject, Type} from '@angular/core'; import { Component, Input, OnInit, ComponentFactoryResolver, ViewChild, SimpleChanges, ComponentFactory, Inject, Type} from '@angular/core';
import { Feature } from 'ol'; import { Feature } from 'ol';
import { Geometry } from 'ol/geom';
import { AbstractFeatureListFeatureComponent,FeatureListFeatureComponent } from '../feature-list-feature/feature-list-feature.component'; import { AbstractFeatureListFeatureComponent,FeatureListFeatureComponent } from '../feature-list-feature/feature-list-feature.component';
import { WidgetHostDirective } from '../widget-host/widget-host.directive'; import { WidgetHostDirective } from '../widget-host/widget-host.directive';
@@ -15,19 +16,36 @@ import { WidgetHostDirective } from '../widget-host/widget-host.directive';
export class FeatureListFeatureContainerComponent { export class FeatureListFeatureContainerComponent {
constructor(private componentFactoryResolver: ComponentFactoryResolver, @Inject(AbstractFeatureListFeatureComponent) public featureLists: AbstractFeatureListFeatureComponent[] ) { constructor(private componentFactoryResolver: ComponentFactoryResolver, @Inject(AbstractFeatureListFeatureComponent) public featureLists: AbstractFeatureListFeatureComponent[] ) {
this.featureLists = [...this.featureLists].reverse();
} }
@Input() feature: Feature; @Input() feature: Feature<Geometry>;
@ViewChild(WidgetHostDirective) widgetHost: WidgetHostDirective; @ViewChild(WidgetHostDirective, { static: true }) widgetHost: WidgetHostDirective;
loadComponent() { loadComponent() {
var componentFactory: ComponentFactory<AbstractFeatureListFeatureComponent> = this.componentFactoryResolver.resolveComponentFactory(FeatureListFeatureComponent); // default var componentFactory: ComponentFactory<AbstractFeatureListFeatureComponent> = this.componentFactoryResolver.resolveComponentFactory(FeatureListFeatureComponent); // default
for (var i = 0; i < this.featureLists.length; i++) {
if (this.featureLists[i]['forItemType'] == this.feature.get("itemType")) { let selected = -1;
componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.featureLists[i]['constructor'] as any); let maxMatches =0;
for (let i = 0; i < this.featureLists.length; i++) {
let matches=0;
let criteria=0;
if (this.featureLists[i]['forItemType']) {
criteria++;
if(this.featureLists[i]['forItemType'].split(",").filter(part => part == this.feature.get("itemType")).length == 1) {
matches++;
} }
} }
if(criteria == matches && matches > maxMatches) {
selected=i;
maxMatches = matches;
}
}
if (selected >= 0) {
componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.featureLists[selected]['constructor'] as any);
}
const viewContainerRef = this.widgetHost.viewContainerRef; const viewContainerRef = this.widgetHost.viewContainerRef;
viewContainerRef.clear(); viewContainerRef.clear();

View File

@@ -1,6 +1,14 @@
<div *ngIf="feature;let feature" class="row m-0"> <div *ngIf="feature;let feature" class="d-flex m-0">
<div class="col p-2"> <div class="p-2">
<div class="thumbnail">
<fm-map-feature-thumbnail [feature]="feature"></fm-map-feature-thumbnail>
</div>
</div>
<div class="flex-grow p-2 overflow-hidden">
<h1 class="card-title" title="{{feature.get('name')}}">{{feature.get('name')}}</h1> <h1 class="card-title" title="{{feature.get('name')}}">{{feature.get('name')}}</h1>
<div class="card-text"><span>{{feature.get('datadate')|date}}</span> - <span>{{feature.get('dataenddate')|date}}</span> </div> <div class="card-text"><span>{{areaInHa(feature)| number:'1.2-2'}}
ha</span>&nbsp;<span>{{feature.get('cropTypeName')}}</span> </div>
<div class="card-text"><span>{{feature.get('datadate')|date}}</span> -
<span>{{feature.get('dataenddate')|date}}</span> </div>
</div> </div>
</div> </div>

View File

@@ -1,4 +1,3 @@
@import "../../_theme.scss";
@import "~bootstrap/scss/bootstrap.scss"; @import "~bootstrap/scss/bootstrap.scss";
@@ -10,21 +9,18 @@
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.thumbnail > img { .card-text {
width: 100%; overflow: hidden;
height: auto; white-space: nowrap;
} text-overflow: ellipsis;
.thumbnail > div {
width: 100%;
font-size: 2rem;
text-align: center;
min-height: 3rem;
color: white;
padding-top: 0.5rem;
} }
.col { .col {
overflow: hidden; overflow: hidden;
} }
.thumbnail {
width: 4em;
height: 4em;
}

View File

@@ -1,10 +1,13 @@
import { Component, Input, Injectable} from '@angular/core'; import { Component, Injectable,ViewChild,AfterViewInit} from '@angular/core';
import { Feature } from 'ol'; import { Feature } from 'ol';
import { Geometry } from 'ol/geom';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
import * as mapReducers from '../../reducers/map.reducer'; import * as mapReducers from '../../reducers/map.reducer';
import { commonReducers,ItemTypeService,AppConfig } from '@farmmaps/common'; import { commonReducers,ItemTypeService,AppConfig } from '@farmmaps/common';
import { AbstractFeatureListFeatureComponent } from '../feature-list-feature/feature-list-feature.component'; import { AbstractFeatureListFeatureComponent } from '../feature-list-feature/feature-list-feature.component';
import { ForItemType } from '../for-item/for-itemtype.decorator'; import { ForItemType } from '../for-item/for-itemtype.decorator';
import {getArea} from 'ol/sphere';
@ForItemType("vnd.farmmaps.itemtype.cropfield") @ForItemType("vnd.farmmaps.itemtype.cropfield")
@@ -16,7 +19,16 @@ import { ForItemType } from '../for-item/for-itemtype.decorator';
}) })
export class FeatureListFeatureCropfieldComponent extends AbstractFeatureListFeatureComponent { export class FeatureListFeatureCropfieldComponent extends AbstractFeatureListFeatureComponent {
constructor(store: Store<mapReducers.State | commonReducers.State>, itemTypeService: ItemTypeService,config:AppConfig) { constructor(store: Store<mapReducers.State | commonReducers.State>, itemTypeService: ItemTypeService,config:AppConfig) {
super(store, itemTypeService,config); super(store, itemTypeService,config);
} }
areaInHa(feature:Feature<Geometry>):number {
if(!feature) return 0;
// get area from faeture if 0 calculate from polygon
let a = feature.get('area');
if(a) return a;
return getArea(feature.getGeometry(),{projection:"EPSG:3857"}) / 10000;
}
} }

View File

@@ -1,4 +1,3 @@
@import "../../_theme.scss";
@import "~bootstrap/scss/bootstrap.scss"; @import "~bootstrap/scss/bootstrap.scss";

View File

@@ -1,4 +1,3 @@
@import "../../_theme.scss";
@import "~bootstrap/scss/bootstrap.scss"; @import "~bootstrap/scss/bootstrap.scss";

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