From c9d0b16b332a10e1afd7b23df5e44a86ad391ccc Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 15 Mar 2023 10:19:05 +0000 Subject: [PATCH] feat: add global configuration --- .../app/pages/site-view/site-view.page.html | 18 +--- .../src/assets/images/Picture6.jpg | Bin 7485 -> 0 bytes .../src/assets/images/Picture7.jpg | Bin 5192 -> 0 bytes .../src/app/stores/resources.store.ts | 3 +- .../configuration-select-dialog.html | 7 +- .../configuration-select-dialog.scss | 5 +- .../configuration-select.html | 6 +- .../configuration-select.scss | 3 +- .../configuration-select.ts | 3 +- libs/configuration/src/configurations.ts | 3 +- .../src/configurations/default.ts | 3 +- .../src/configurations/global.ts | 32 ++++++ libs/configuration/src/configurations/mw.ts | 9 +- libs/configuration/src/configurations/tj.ts | 7 +- libs/configuration/src/configurations/zm.ts | 7 +- libs/configuration/src/types.ts | 4 +- libs/shared-assets/images/flags/global.svg | 1 + libs/theme/src/_index.scss | 2 + libs/theme/src/themes/picsa-global.scss | 99 ++++++++++++++++++ libs/theme/src/themes/picsa-mw.scss | 99 ++++++++++++++++++ 20 files changed, 274 insertions(+), 37 deletions(-) delete mode 100644 apps/picsa-tools/climate-tool/src/assets/images/Picture6.jpg delete mode 100644 apps/picsa-tools/climate-tool/src/assets/images/Picture7.jpg create mode 100644 libs/configuration/src/configurations/global.ts create mode 100644 libs/shared-assets/images/flags/global.svg create mode 100644 libs/theme/src/themes/picsa-global.scss create mode 100644 libs/theme/src/themes/picsa-mw.scss diff --git a/apps/picsa-tools/climate-tool/src/app/pages/site-view/site-view.page.html b/apps/picsa-tools/climate-tool/src/app/pages/site-view/site-view.page.html index 3f13507f0..4604d21f5 100644 --- a/apps/picsa-tools/climate-tool/src/app/pages/site-view/site-view.page.html +++ b/apps/picsa-tools/climate-tool/src/app/pages/site-view/site-view.page.html @@ -5,7 +5,7 @@ color="primary" (click)="showShareDialog()" > - share{{ 'Share' | translate }} + share{{ 'Share' | translate }} - diff --git a/apps/picsa-tools/climate-tool/src/assets/images/Picture6.jpg b/apps/picsa-tools/climate-tool/src/assets/images/Picture6.jpg deleted file mode 100644 index 8a80694bcda9867cae49c993ff8784c3330553fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7485 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 kv0Gzwx_gg}3EJ5I03g}04gdfE diff --git a/apps/picsa-tools/climate-tool/src/assets/images/Picture7.jpg b/apps/picsa-tools/climate-tool/src/assets/images/Picture7.jpg deleted file mode 100644 index fa10a24dad250c20b9f10ecb3d648aae32db1986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5192 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 lCm8P=%N(&RV@~x@zWR1p@^+hmIYKRL { if ( + countryCode && resource.appCountries && !resource.appCountries.includes(countryCode) ) { diff --git a/libs/components/src/components/configuration-select/configuration-select-dialog.html b/libs/components/src/components/configuration-select/configuration-select-dialog.html index 305f22596..3e8206647 100644 --- a/libs/components/src/components/configuration-select/configuration-select-dialog.html +++ b/libs/components/src/components/configuration-select/configuration-select-dialog.html @@ -1,4 +1,4 @@ -

Select Country

+

{{'Select Country' | translate}}

Select Country [class.selected]="option.country.code===selected.country.code ? true : undefined" (click)="setLocalisation(option)" > - +
{{ option.country.label }}
diff --git a/libs/components/src/components/configuration-select/configuration-select-dialog.scss b/libs/components/src/components/configuration-select/configuration-select-dialog.scss index 7c856a528..40ca454e1 100644 --- a/libs/components/src/components/configuration-select/configuration-select-dialog.scss +++ b/libs/components/src/components/configuration-select/configuration-select-dialog.scss @@ -7,13 +7,16 @@ .language-select-container { display: grid; - grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)); + grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); gap: 5px; width: 220px; + grid-template-rows: auto; } + img.language-select-flag { width: 100%; height: 70px; + object-fit: contain; } .select-option { diff --git a/libs/components/src/components/configuration-select/configuration-select.html b/libs/components/src/components/configuration-select/configuration-select.html index e5a027282..70e94082b 100644 --- a/libs/components/src/components/configuration-select/configuration-select.html +++ b/libs/components/src/components/configuration-select/configuration-select.html @@ -1,4 +1,6 @@ diff --git a/libs/components/src/components/configuration-select/configuration-select.scss b/libs/components/src/components/configuration-select/configuration-select.scss index 4f02c5847..b95b0e5db 100644 --- a/libs/components/src/components/configuration-select/configuration-select.scss +++ b/libs/components/src/components/configuration-select/configuration-select.scss @@ -1,5 +1,6 @@ :host { - height: 36px; + display: flex; + justify-content: center; } img.language-summary-flag { height: 30px; diff --git a/libs/components/src/components/configuration-select/configuration-select.ts b/libs/components/src/components/configuration-select/configuration-select.ts index 32ed6e94a..948d0096c 100644 --- a/libs/components/src/components/configuration-select/configuration-select.ts +++ b/libs/components/src/components/configuration-select/configuration-select.ts @@ -14,7 +14,8 @@ export class ConfigurationSelectComponent { public configurationService: ConfigurationService ) {} get image() { - return this.configurationService.activeConfiguration.meta.image; + return this.configurationService.activeConfiguration.localisation.country + .image; } get label() { const { country, language } = diff --git a/libs/configuration/src/configurations.ts b/libs/configuration/src/configurations.ts index fb21d2056..52227ce8d 100644 --- a/libs/configuration/src/configurations.ts +++ b/libs/configuration/src/configurations.ts @@ -1,6 +1,7 @@ import mw from './configurations/mw'; import tj from './configurations/tj'; import zm from './configurations/zm'; +import global from './configurations/global'; /** Configurations define different environments that can be set at runtime */ -export const CONFIGURATIONS = [mw, zm, tj]; +export const CONFIGURATIONS = [mw, zm, tj, global]; diff --git a/libs/configuration/src/configurations/default.ts b/libs/configuration/src/configurations/default.ts index 6092cdc57..fcb356762 100644 --- a/libs/configuration/src/configurations/default.ts +++ b/libs/configuration/src/configurations/default.ts @@ -2,7 +2,6 @@ import { IConfiguration } from '../types'; const configuration: IConfiguration.Settings = { id: '', - meta: { label: '', image: '' }, android: {}, budgetTool: { currency: '$', @@ -10,7 +9,7 @@ const configuration: IConfiguration.Settings = { }, climateTool: {}, localisation: { - country: { label: '', code: '' }, + country: { label: '', code: '', image: '' }, language: { options: [], selected: undefined, diff --git a/libs/configuration/src/configurations/global.ts b/libs/configuration/src/configurations/global.ts new file mode 100644 index 000000000..919aed709 --- /dev/null +++ b/libs/configuration/src/configurations/global.ts @@ -0,0 +1,32 @@ +import { IConfiguration } from '../types'; + +const configuration: IConfiguration.Settings = { + id: 'demo', + android: {}, + budgetTool: { + currency: '$', + currencyBaseValue: 1, + }, + climateTool: { + // include all stations + stationFilter: () => true, + }, + + localisation: { + country: { + label: 'Global', + code: '', + image: 'assets/images/flags/global.svg', + }, + language: { + options: [ + { id: 'en', label: 'English', code: 'en' }, + { id: 'ny', label: 'Chichewa', code: 'ny' }, + { id: 'tg', label: 'Тоҷикӣ', code: 'tg' }, + ], + selected: undefined, + }, + }, + theme: 'picsa-global', +}; +export default configuration; diff --git a/libs/configuration/src/configurations/mw.ts b/libs/configuration/src/configurations/mw.ts index d589e9db5..cfca40cc0 100644 --- a/libs/configuration/src/configurations/mw.ts +++ b/libs/configuration/src/configurations/mw.ts @@ -2,7 +2,6 @@ import { IConfiguration } from '../types'; const configuration: IConfiguration.Settings = { id: 'mw', - meta: { label: 'Malawi', image: 'assets/images/flags/mw.svg' }, android: {}, budgetTool: { currency: 'MK', @@ -10,7 +9,11 @@ const configuration: IConfiguration.Settings = { }, climateTool: {}, localisation: { - country: { label: 'Malawi', code: 'mw' }, + country: { + label: 'Malawi', + code: 'mw', + image: 'assets/images/flags/mw.svg', + }, language: { options: [ { id: 'en', label: 'English', code: 'en' }, @@ -19,6 +22,6 @@ const configuration: IConfiguration.Settings = { selected: undefined, }, }, - theme: 'picsa-default', + theme: 'picsa-mw', }; export default configuration; diff --git a/libs/configuration/src/configurations/tj.ts b/libs/configuration/src/configurations/tj.ts index 3fd3802ef..9788bfd22 100644 --- a/libs/configuration/src/configurations/tj.ts +++ b/libs/configuration/src/configurations/tj.ts @@ -2,7 +2,6 @@ import { IConfiguration } from '../types'; const configuration: IConfiguration.Settings = { id: 'tj', - meta: { label: 'Tajikistan', image: 'assets/images/flags/tj.svg' }, android: {}, budgetTool: { currency: 'TJS', @@ -10,7 +9,11 @@ const configuration: IConfiguration.Settings = { }, climateTool: {}, localisation: { - country: { label: 'Tajikistan', code: 'tj' }, + country: { + label: 'Tajikistan', + code: 'tj', + image: 'assets/images/flags/tj.svg', + }, language: { options: [ { id: 'en', label: 'English', code: 'en' }, diff --git a/libs/configuration/src/configurations/zm.ts b/libs/configuration/src/configurations/zm.ts index e4967a791..24dc710f1 100644 --- a/libs/configuration/src/configurations/zm.ts +++ b/libs/configuration/src/configurations/zm.ts @@ -2,7 +2,6 @@ import { IConfiguration } from '../types'; const configuration: IConfiguration.Settings = { id: 'zm', - meta: { label: 'Zambia', image: 'assets/images/flags/zm.svg' }, android: {}, budgetTool: { currency: 'ZMK', @@ -10,7 +9,11 @@ const configuration: IConfiguration.Settings = { }, climateTool: {}, localisation: { - country: { label: 'Zambia', code: 'zm' }, + country: { + label: 'Zambia', + code: 'zm', + image: 'assets/images/flags/zm.svg', + }, language: { options: [ { id: 'en', label: 'English', code: 'en' }, diff --git a/libs/configuration/src/types.ts b/libs/configuration/src/types.ts index efd16b7e8..e455e85ca 100644 --- a/libs/configuration/src/types.ts +++ b/libs/configuration/src/types.ts @@ -11,7 +11,7 @@ export namespace IConfiguration { } export interface Localisation { - country: { label: string; code: string }; + country: { label: string; code: string; image: string }; language: { options: IConfiguration.LanguageOption[]; selected?: LanguageOption; @@ -20,12 +20,12 @@ export namespace IConfiguration { export interface Settings { id: string; - meta: { label: string; image: string }; android: any; budgetTool: IBudgetToolSettings; climateTool: { stationFilter?: (station: any) => boolean; }; + resourcesTool?: {}; localisation: IConfiguration.Localisation; theme: any; } diff --git a/libs/shared-assets/images/flags/global.svg b/libs/shared-assets/images/flags/global.svg new file mode 100644 index 000000000..e7ddc08ae --- /dev/null +++ b/libs/shared-assets/images/flags/global.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/libs/theme/src/_index.scss b/libs/theme/src/_index.scss index 80030bafc..cfba52904 100644 --- a/libs/theme/src/_index.scss +++ b/libs/theme/src/_index.scss @@ -10,5 +10,7 @@ @import 'overrides'; @import './themes/picsa-default.scss'; +@import './themes/picsa-global.scss'; +@import './themes/picsa-mw.scss'; @import './themes/picsa-tj.scss'; @import './themes/picsa-zm.scss'; diff --git a/libs/theme/src/themes/picsa-global.scss b/libs/theme/src/themes/picsa-global.scss new file mode 100644 index 000000000..f619b8c3a --- /dev/null +++ b/libs/theme/src/themes/picsa-global.scss @@ -0,0 +1,99 @@ +@use '@angular/material' as mat; + +@include mat.core(); + +// http://mcg.mbitson.com/#!?mcgpalette0=%23ef7d00&themename=mcgtheme +$primary: ( + 50: #f1e5e9, + 100: #dcbec7, + 200: #c593a2, + 300: #ad677c, + 400: #9c4760, + 500: #8a2644, + 600: #82223e, + 700: #771c35, + 800: #6d172d, + 900: #5a0d1f, + A100: #ff90a5, + A200: #ff5d7b, + A400: #ff2a52, + A700: #ff103d, + contrast: ( + 50: #000000, + 100: #000000, + 200: #000000, + 300: #ffffff, + 400: #ffffff, + 500: #ffffff, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + A100: #000000, + A200: #000000, + A400: #ffffff, + A700: #ffffff, + ), +); +$accent: ( + 50: #f4e4e4, + 100: #e3baba, + 200: #d18d8d, + 300: #bf5f5f, + 400: #b13c3c, + 500: #a31a1a, + 600: #9b1717, + 700: #911313, + 800: #880f0f, + 900: #770808, + A100: #ffa7a7, + A200: #ff7474, + A400: #ff4141, + A700: #ff2727, + contrast: ( + 50: #000000, + 100: #000000, + 200: #000000, + 300: #ffffff, + 400: #ffffff, + 500: #ffffff, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + A100: #000000, + A200: #000000, + A400: #ffffff, + A700: #ffffff, + ), +); + +// Define the palettes for your theme using the Material Design palettes available in palette.scss +// (imported above). For each palette, you can optionally specify a default, lighter, and darker +// hue. Available color palettes: https://material.io/design/color/ +$palette-primary: mat.define-palette($primary); +$palette-accent: mat.define-palette($accent, A200, A100, A400); + +// The warn palette is optional (defaults to red). +$palette-warn: mat.define-palette(mat.$red-palette); + +// Create the theme object (a Sass map containing all of the palettes). +$theme-global: mat.define-light-theme( + $palette-primary, + $palette-accent, + $palette-warn +); + +// .theme-global { +// @include mat.all-component-themes($picsa-global); +// } +body[data-theme='picsa-global'] { + @include mat.all-component-themes($theme-global); + + --color-primary: #{map-get($palette-primary, 500)}; + --color-primary-50: #{map-get($palette-primary, 50)}; + --color-secondary: #{map-get($palette-accent, 500)}; + --color-black: #1a2138; + --color-light: #d8d8d8; + --color-white: #ffffff; +} diff --git a/libs/theme/src/themes/picsa-mw.scss b/libs/theme/src/themes/picsa-mw.scss new file mode 100644 index 000000000..029ff067f --- /dev/null +++ b/libs/theme/src/themes/picsa-mw.scss @@ -0,0 +1,99 @@ +@use '@angular/material' as mat; + +@include mat.core(); + +// http://mcg.mbitson.com/#!?mcgpalette0=%23ef7d00&themename=mcgtheme +$primary: ( + 50: #f4e3e4, + 100: #e3b8bd, + 200: #d08991, + 300: #bd5964, + 400: #ae3643, + 500: #a01222, + 600: #98101e, + 700: #8e0d19, + 800: #840a14, + 900: #73050c, + A100: #ffa2a5, + A200: #ff6f74, + A400: #ff3c42, + A700: #ff2329, + contrast: ( + 50: #000000, + 100: #000000, + 200: #000000, + 300: #ffffff, + 400: #ffffff, + 500: #ffffff, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + A100: #000000, + A200: #000000, + A400: #ffffff, + A700: #ffffff, + ), +); +$accent: ( + 50: #f8e8e6, + 100: #edc6c2, + 200: #e1a099, + 300: #d57970, + 400: #cc5d51, + 500: #c34032, + 600: #bd3a2d, + 700: #b53226, + 800: #ae2a1f, + 900: #a11c13, + A100: #ffd5d3, + A200: #ffa5a0, + A400: #ff746d, + A700: #ff5c53, + contrast: ( + 50: #000000, + 100: #000000, + 200: #000000, + 300: #000000, + 400: #ffffff, + 500: #ffffff, + 600: #ffffff, + 700: #ffffff, + 800: #ffffff, + 900: #ffffff, + A100: #000000, + A200: #000000, + A400: #000000, + A700: #000000, + ), +); + +// Define the palettes for your theme using the Material Design palettes available in palette.scss +// (imported above). For each palette, you can optionally specify a default, lighter, and darker +// hue. Available color palettes: https://material.io/design/color/ +$palette-primary: mat.define-palette($primary); +$palette-accent: mat.define-palette($accent, A200, A100, A400); + +// The warn palette is optional (defaults to red). +$palette-warn: mat.define-palette(mat.$red-palette); + +// Create the theme object (a Sass map containing all of the palettes). +$theme-mw: mat.define-light-theme( + $palette-primary, + $palette-accent, + $palette-warn +); + +// .theme-mw { +// @include mat.all-component-themes($picsa-mw); +// } +body[data-theme='picsa-mw'] { + @include mat.all-component-themes($theme-mw); + + --color-primary: #{map-get($palette-primary, 500)}; + --color-primary-50: #{map-get($palette-primary, 50)}; + --color-secondary: #{map-get($palette-accent, 500)}; + --color-black: #1a2138; + --color-light: #d8d8d8; + --color-white: #ffffff; +}